commit bfa87a5f9beaf904125bcf13291cf1f5af6874a3 Author: Булат Хайруллин Date: Wed Nov 20 16:17:13 2024 +0300 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..de62d734 --- /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 00000000..3fc9113d --- /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/README.md b/README.md new file mode 100644 index 00000000..acbeeb3d --- /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/pom.xml b/backend/pom.xml new file mode 100644 index 00000000..0924e54f --- /dev/null +++ b/backend/pom.xml @@ -0,0 +1,296 @@ + + + 4.0.0 + + ervu_usr_autority + ervu_usr_autority + 1.0.0-SNAPSHOT + + ervu_usr_autority.ervu_usr_autority + backend + war + + + org.postgresql + postgresql + + + io.jsonwebtoken + jjwt-api + + + io.jsonwebtoken + jjwt-impl + runtime + + + ervu_usr_autority.ervu_usr_autority + resources + runtime + + + ru.cg.webbpm.modules.reporting.reporting-jasper + reporting-jasper-fonts + runtime + + + org.ocpsoft.prettytime + prettytime + + + org.jooq + jooq + + + 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.security + security-beans + + + ru.cg.webbpm.modules.security + security-api + + + ru.cg.webbpm.modules.security + security-esia + + + 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 + + + ru.cg.webbpm.modules.security + security-db-synchronization-api + + + ru.cg.webbpm.modules.security + security-db-synchronization-ldap-impl + + + xerces + xercesImpl + + + com.google.guava + guava + + + ru.micord.fias + client + + + org.springframework.security.kerberos + spring-security-kerberos-core + + + org.springframework.security.kerberos + spring-security-kerberos-web + + + org.mnode.ical4j + ical4j + + + net.javacrumbs.shedlock + shedlock-spring + + + net.javacrumbs.shedlock + shedlock-provider-jdbc-template + + + ru.cg.webbpm.packages.base + backend + + + + ${project.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 + + + + + + + + + + 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 00000000..f7645b22 --- /dev/null +++ b/backend/src/main/java/AppConfig.java @@ -0,0 +1,65 @@ +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.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", + "security", + "component.addresses", + "gen", + "ru.cg", + "ru.micord" +}) +@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 00000000..f4fef231 --- /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/ervu_usr_autority/EnumColumnFormatter.java b/backend/src/main/java/ervu_usr_autority/EnumColumnFormatter.java new file mode 100644 index 00000000..0a5d732f --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/EnumColumnFormatter.java @@ -0,0 +1,38 @@ +package ervu_usr_autority; + +import java.util.HashMap; +import java.util.Map; + +import property.grid.Formatter; + +/** + * @author ilyin on 06.10.2024. + */ +public class EnumColumnFormatter implements Formatter { + + private static final Map strObjectToStringMapping = new HashMap<>(); + + static { + strObjectToStringMapping.put("CREATED", "Новая"); + strObjectToStringMapping.put("AGREED", "Согласована"); + strObjectToStringMapping.put("ACCEPTED", "Выполнена"); + strObjectToStringMapping.put("UNLOADED", "Выгружена"); + strObjectToStringMapping.put("IN_PROGRESS", "В работе"); + strObjectToStringMapping.put("LOGIN_PASSWORD_ISSUED", "Выдан логин и пароль"); + strObjectToStringMapping.put("CANCEL_BY_CREATOR", "Отклонена"); + strObjectToStringMapping.put("CANCEL_BY_PROCESSOR", "Отклонена"); + strObjectToStringMapping.put("CANCEL_BY_AGREEER", "Отклонена"); + strObjectToStringMapping.put("CREATE_USER", "Создание пользователя"); + strObjectToStringMapping.put("EDIT_USER", "Изменение пользователя"); + strObjectToStringMapping.put("BLOCK_USER", "Блокировка пользователя"); + strObjectToStringMapping.put("MALE", "Мужской"); + strObjectToStringMapping.put("FEMALE", "Женский"); + + } + + @Override + public String format(final Object object) { + String strType = String.valueOf(object); + return strObjectToStringMapping.getOrDefault(strType, ""); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/DefaultCatalog.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/DefaultCatalog.java new file mode 100644 index 00000000..bb318204 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/DefaultCatalog.java @@ -0,0 +1,63 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; + +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 public. + */ + public final Public PUBLIC = Public.PUBLIC; + + /** + * The schema security. + */ + public final Security SECURITY = Security.SECURITY; + + /** + * No further instances allowed + */ + private DefaultCatalog() { + super(""); + } + + @Override + public final List getSchemas() { + return Arrays.asList( + Public.PUBLIC, + Security.SECURITY + ); + } + + /** + * 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_usr_autority/ervu_usr_autority/db_beans/public_/Keys.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Keys.java new file mode 100644 index 00000000..3181e749 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Keys.java @@ -0,0 +1,52 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.JobPosition; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.LinkUserApplicationUserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.Recruitment; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationDocument; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationList; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.JobPositionRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.LinkUserApplicationUserGroupRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.RecruitmentRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.UserApplicationDocumentRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.UserApplicationListRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserGroupRecord; + +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 PK_JOB_POSITION = Internal.createUniqueKey(JobPosition.JOB_POSITION, DSL.name("pk_job_position"), new TableField[] { JobPosition.JOB_POSITION.JOB_POSITION_ID }, true); + public static final UniqueKey PK_LINK_USER_APPLICATION_USER_GROUP = Internal.createUniqueKey(LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP, DSL.name("pk_link_user_application_user_group"), new TableField[] { LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP.LINK_USER_APPLICATION_USER_GROUP_ID }, true); + public static final UniqueKey UNI_USER_GROUP = Internal.createUniqueKey(LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP, DSL.name("uni_user_group"), new TableField[] { LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP.USER_APPLICATION_LIST_ID, LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP.USER_GROUP_ID }, true); + public static final UniqueKey RECRUITMENT_IDM_ID_KEY = Internal.createUniqueKey(Recruitment.RECRUITMENT, DSL.name("recruitment_idm_id_key"), new TableField[] { Recruitment.RECRUITMENT.IDM_ID }, true); + public static final UniqueKey RECRUITMENT_PKEY = Internal.createUniqueKey(Recruitment.RECRUITMENT, DSL.name("recruitment_pkey"), new TableField[] { Recruitment.RECRUITMENT.ID }, true); + public static final UniqueKey PK_USER_APPLICATION_DOCUMENT = Internal.createUniqueKey(UserApplicationDocument.USER_APPLICATION_DOCUMENT, DSL.name("pk_user_application_document"), new TableField[] { UserApplicationDocument.USER_APPLICATION_DOCUMENT.USER_APPLICATION_DOCUMENT_ID }, true); + public static final UniqueKey PK_USER_APPLICATION_LIST = Internal.createUniqueKey(UserApplicationList.USER_APPLICATION_LIST, DSL.name("pk_user_application_list"), new TableField[] { UserApplicationList.USER_APPLICATION_LIST.USER_APPLICATION_LIST_ID }, true); + + // ------------------------------------------------------------------------- + // FOREIGN KEY definitions + // ------------------------------------------------------------------------- + + public static final ForeignKey LINK_USER_APPLICATION_USER_GROUP__FK_USER_APPLICATION_LIST = Internal.createForeignKey(LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP, DSL.name("fk_user_application_list"), new TableField[] { LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP.USER_APPLICATION_LIST_ID }, Keys.PK_USER_APPLICATION_LIST, new TableField[] { UserApplicationList.USER_APPLICATION_LIST.USER_APPLICATION_LIST_ID }, true); + public static final ForeignKey LINK_USER_APPLICATION_USER_GROUP__FK_USER_GROUP = Internal.createForeignKey(LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP, DSL.name("fk_user_group"), new TableField[] { LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP.USER_GROUP_ID }, ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys.PK_GROUP, new TableField[] { UserGroup.USER_GROUP.USER_GROUP_ID }, true); +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Public.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Public.java new file mode 100644 index 00000000..d01757bb --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Public.java @@ -0,0 +1,91 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.DefaultCatalog; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.JobPosition; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.LinkUserApplicationUserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.Recruitment; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationDocument; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationList; + +import java.util.Arrays; +import java.util.List; + +import org.jooq.Catalog; +import org.jooq.Sequence; +import org.jooq.Table; +import org.jooq.impl.SchemaImpl; + + +/** + * 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.job_position. + */ + public final JobPosition JOB_POSITION = JobPosition.JOB_POSITION; + + /** + * The table public.link_user_application_user_group. + */ + public final LinkUserApplicationUserGroup LINK_USER_APPLICATION_USER_GROUP = LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP; + + /** + * Военный комиссариат + */ + public final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * The table public.user_application_document. + */ + public final UserApplicationDocument USER_APPLICATION_DOCUMENT = UserApplicationDocument.USER_APPLICATION_DOCUMENT; + + /** + * The table public.user_application_list. + */ + public final UserApplicationList USER_APPLICATION_LIST = UserApplicationList.USER_APPLICATION_LIST; + + /** + * No further instances allowed + */ + private Public() { + super("public", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getSequences() { + return Arrays.asList( + Sequences.LINK_USER_APPLICATION_USER_GR_LINK_USER_APPLICATION_USER_GR_SEQ + ); + } + + @Override + public final List> getTables() { + return Arrays.asList( + JobPosition.JOB_POSITION, + LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP, + Recruitment.RECRUITMENT, + UserApplicationDocument.USER_APPLICATION_DOCUMENT, + UserApplicationList.USER_APPLICATION_LIST + ); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Routines.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Routines.java new file mode 100644 index 00000000..c893fcb8 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Routines.java @@ -0,0 +1,285 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidGenerateV1; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidGenerateV1mc; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidGenerateV3; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidGenerateV4; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidGenerateV5; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidNil; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidNsDns; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidNsOid; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidNsUrl; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines.UuidNsX500; + +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_v1 + */ + public static UUID uuidGenerateV1( + Configuration configuration + ) { + UuidGenerateV1 f = new UuidGenerateV1(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_generate_v1 as a field. + */ + public static Field uuidGenerateV1() { + UuidGenerateV1 f = new UuidGenerateV1(); + + return f.asField(); + } + + /** + * Call public.uuid_generate_v1mc + */ + public static UUID uuidGenerateV1mc( + Configuration configuration + ) { + UuidGenerateV1mc f = new UuidGenerateV1mc(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_generate_v1mc as a field. + */ + public static Field uuidGenerateV1mc() { + UuidGenerateV1mc f = new UuidGenerateV1mc(); + + return f.asField(); + } + + /** + * Call public.uuid_generate_v3 + */ + public static UUID uuidGenerateV3( + Configuration configuration + , UUID namespace + , String name + ) { + UuidGenerateV3 f = new UuidGenerateV3(); + f.setNamespace(namespace); + f.setName_(name); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_generate_v3 as a field. + */ + public static Field uuidGenerateV3( + UUID namespace + , String name + ) { + UuidGenerateV3 f = new UuidGenerateV3(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Get public.uuid_generate_v3 as a field. + */ + public static Field uuidGenerateV3( + Field namespace + , Field name + ) { + UuidGenerateV3 f = new UuidGenerateV3(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Call 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(); + } + + /** + * Call public.uuid_generate_v5 + */ + public static UUID uuidGenerateV5( + Configuration configuration + , UUID namespace + , String name + ) { + UuidGenerateV5 f = new UuidGenerateV5(); + f.setNamespace(namespace); + f.setName_(name); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_generate_v5 as a field. + */ + public static Field uuidGenerateV5( + UUID namespace + , String name + ) { + UuidGenerateV5 f = new UuidGenerateV5(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Get public.uuid_generate_v5 as a field. + */ + public static Field uuidGenerateV5( + Field namespace + , Field name + ) { + UuidGenerateV5 f = new UuidGenerateV5(); + f.setNamespace(namespace); + f.setName_(name); + + return f.asField(); + } + + /** + * Call public.uuid_nil + */ + public static UUID uuidNil( + Configuration configuration + ) { + UuidNil f = new UuidNil(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_nil as a field. + */ + public static Field uuidNil() { + UuidNil f = new UuidNil(); + + return f.asField(); + } + + /** + * Call public.uuid_ns_dns + */ + public static UUID uuidNsDns( + Configuration configuration + ) { + UuidNsDns f = new UuidNsDns(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_ns_dns as a field. + */ + public static Field uuidNsDns() { + UuidNsDns f = new UuidNsDns(); + + return f.asField(); + } + + /** + * Call public.uuid_ns_oid + */ + public static UUID uuidNsOid( + Configuration configuration + ) { + UuidNsOid f = new UuidNsOid(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_ns_oid as a field. + */ + public static Field uuidNsOid() { + UuidNsOid f = new UuidNsOid(); + + return f.asField(); + } + + /** + * Call public.uuid_ns_url + */ + public static UUID uuidNsUrl( + Configuration configuration + ) { + UuidNsUrl f = new UuidNsUrl(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_ns_url as a field. + */ + public static Field uuidNsUrl() { + UuidNsUrl f = new UuidNsUrl(); + + return f.asField(); + } + + /** + * Call public.uuid_ns_x500 + */ + public static UUID uuidNsX500( + Configuration configuration + ) { + UuidNsX500 f = new UuidNsX500(); + + f.execute(configuration); + return f.getReturnValue(); + } + + /** + * Get public.uuid_ns_x500 as a field. + */ + public static Field uuidNsX500() { + UuidNsX500 f = new UuidNsX500(); + + return f.asField(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Sequences.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Sequences.java new file mode 100644 index 00000000..a46c9a6e --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Sequences.java @@ -0,0 +1,23 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_; + + +import org.jooq.Sequence; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * Convenience access to all sequences in public. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Sequences { + + /** + * The sequence + * public.link_user_application_user_gr_link_user_application_user_gr_seq + */ + public static final Sequence LINK_USER_APPLICATION_USER_GR_LINK_USER_APPLICATION_USER_GR_SEQ = Internal.createSequence("link_user_application_user_gr_link_user_application_user_gr_seq", Public.PUBLIC, SQLDataType.BIGINT.nullable(false), null, null, null, null, false, null); +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Tables.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Tables.java new file mode 100644 index 00000000..3446ca4b --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/Tables.java @@ -0,0 +1,44 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.JobPosition; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.LinkUserApplicationUserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.Recruitment; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationDocument; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationList; + + +/** + * Convenience access to all tables in public. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * The table public.job_position. + */ + public static final JobPosition JOB_POSITION = JobPosition.JOB_POSITION; + + /** + * The table public.link_user_application_user_group. + */ + public static final LinkUserApplicationUserGroup LINK_USER_APPLICATION_USER_GROUP = LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP; + + /** + * Военный комиссариат + */ + public static final Recruitment RECRUITMENT = Recruitment.RECRUITMENT; + + /** + * The table public.user_application_document. + */ + public static final UserApplicationDocument USER_APPLICATION_DOCUMENT = UserApplicationDocument.USER_APPLICATION_DOCUMENT; + + /** + * The table public.user_application_list. + */ + public static final UserApplicationList USER_APPLICATION_LIST = UserApplicationList.USER_APPLICATION_LIST; +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV1.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV1.java new file mode 100644 index 00000000..56ec4175 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV1.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidGenerateV1 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_generate_v1.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV1() { + super("uuid_generate_v1", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV1mc.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV1mc.java new file mode 100644 index 00000000..38194876 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV1mc.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidGenerateV1mc extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_generate_v1mc.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV1mc() { + super("uuid_generate_v1mc", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV3.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV3.java new file mode 100644 index 00000000..df75dd51 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV3.java @@ -0,0 +1,81 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; + +import java.util.UUID; + +import org.jooq.Field; +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV3 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_generate_v3.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * The parameter public.uuid_generate_v3.namespace. + */ + public static final Parameter NAMESPACE = Internal.createParameter("namespace", SQLDataType.UUID, false, false); + + /** + * The parameter public.uuid_generate_v3.name. + */ + public static final Parameter NAME = Internal.createParameter("name", SQLDataType.CLOB, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV3() { + super("uuid_generate_v3", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + addInParameter(NAMESPACE); + addInParameter(NAME); + } + + /** + * Set the namespace parameter IN value to the routine + */ + public void setNamespace(UUID value) { + setValue(NAMESPACE, value); + } + + /** + * Set the namespace parameter to the function to be used with + * a {@link org.jooq.Select} statement + */ + public void setNamespace(Field field) { + setField(NAMESPACE, field); + } + + /** + * Set the name parameter IN value to the routine + */ + public void setName_(String value) { + setValue(NAME, value); + } + + /** + * Set the name parameter to the function to be used with a + * {@link org.jooq.Select} statement + */ + public void setName_(Field field) { + setField(NAME, field); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV4.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV4.java new file mode 100644 index 00000000..74ba1b26 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV4.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV5.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV5.java new file mode 100644 index 00000000..be05c708 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidGenerateV5.java @@ -0,0 +1,81 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; + +import java.util.UUID; + +import org.jooq.Field; +import org.jooq.Parameter; +import org.jooq.impl.AbstractRoutine; +import org.jooq.impl.Internal; +import org.jooq.impl.SQLDataType; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UuidGenerateV5 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_generate_v5.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * The parameter public.uuid_generate_v5.namespace. + */ + public static final Parameter NAMESPACE = Internal.createParameter("namespace", SQLDataType.UUID, false, false); + + /** + * The parameter public.uuid_generate_v5.name. + */ + public static final Parameter NAME = Internal.createParameter("name", SQLDataType.CLOB, false, false); + + /** + * Create a new routine call instance + */ + public UuidGenerateV5() { + super("uuid_generate_v5", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + addInParameter(NAMESPACE); + addInParameter(NAME); + } + + /** + * Set the namespace parameter IN value to the routine + */ + public void setNamespace(UUID value) { + setValue(NAMESPACE, value); + } + + /** + * Set the namespace parameter to the function to be used with + * a {@link org.jooq.Select} statement + */ + public void setNamespace(Field field) { + setField(NAMESPACE, field); + } + + /** + * Set the name parameter IN value to the routine + */ + public void setName_(String value) { + setValue(NAME, value); + } + + /** + * Set the name parameter to the function to be used with a + * {@link org.jooq.Select} statement + */ + public void setName_(Field field) { + setField(NAME, field); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNil.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNil.java new file mode 100644 index 00000000..29e221ad --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNil.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidNil extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_nil.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNil() { + super("uuid_nil", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsDns.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsDns.java new file mode 100644 index 00000000..d3136b78 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsDns.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidNsDns extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_ns_dns.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsDns() { + super("uuid_ns_dns", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsOid.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsOid.java new file mode 100644 index 00000000..afb8fdbc --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsOid.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidNsOid extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_ns_oid.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsOid() { + super("uuid_ns_oid", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsUrl.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsUrl.java new file mode 100644 index 00000000..c71101f8 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsUrl.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidNsUrl extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_ns_url.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsUrl() { + super("uuid_ns_url", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsX500.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsX500.java new file mode 100644 index 00000000..4c960b16 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/routines/UuidNsX500.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.routines; + + +import ervu_usr_autority.ervu_usr_autority.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 UuidNsX500 extends AbstractRoutine { + + private static final long serialVersionUID = 1L; + + /** + * The parameter public.uuid_ns_x500.RETURN_VALUE. + */ + public static final Parameter RETURN_VALUE = Internal.createParameter("RETURN_VALUE", SQLDataType.UUID, false, false); + + /** + * Create a new routine call instance + */ + public UuidNsX500() { + super("uuid_ns_x500", Public.PUBLIC, SQLDataType.UUID); + + setReturnParameter(RETURN_VALUE); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/JobPosition.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/JobPosition.java new file mode 100644 index 00000000..dfb2bc08 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/JobPosition.java @@ -0,0 +1,245 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.JobPositionRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class JobPosition extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.job_position + */ + public static final JobPosition JOB_POSITION = new JobPosition(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return JobPositionRecord.class; + } + + /** + * The column public.job_position.job_position_id. + */ + public final TableField JOB_POSITION_ID = createField(DSL.name("job_position_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column public.job_position.name. + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column public.job_position.code. + */ + public final TableField CODE = createField(DSL.name("code"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column public.job_position.start_date. + */ + public final TableField START_DATE = createField(DSL.name("start_date"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column public.job_position.close_date. + */ + public final TableField CLOSE_DATE = createField(DSL.name("close_date"), SQLDataType.TIMESTAMP(0), this, ""); + + private JobPosition(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private JobPosition(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.job_position table reference + */ + public JobPosition(String alias) { + this(DSL.name(alias), JOB_POSITION); + } + + /** + * Create an aliased public.job_position table reference + */ + public JobPosition(Name alias) { + this(alias, JOB_POSITION); + } + + /** + * Create a public.job_position table reference + */ + public JobPosition() { + this(DSL.name("job_position"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_JOB_POSITION; + } + + @Override + public JobPosition as(String alias) { + return new JobPosition(DSL.name(alias), this); + } + + @Override + public JobPosition as(Name alias) { + return new JobPosition(alias, this); + } + + @Override + public JobPosition as(Table alias) { + return new JobPosition(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public JobPosition rename(String name) { + return new JobPosition(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public JobPosition rename(Name name) { + return new JobPosition(name, null); + } + + /** + * Rename this table + */ + @Override + public JobPosition rename(Table name) { + return new JobPosition(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobPosition where(Condition condition) { + return new JobPosition(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobPosition where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobPosition where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobPosition where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobPosition where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobPosition where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobPosition where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public JobPosition where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobPosition whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public JobPosition whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/LinkUserApplicationUserGroup.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/LinkUserApplicationUserGroup.java new file mode 100644 index 00000000..298ce83d --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/LinkUserApplicationUserGroup.java @@ -0,0 +1,321 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationList.UserApplicationListPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.LinkUserApplicationUserGroupRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; + +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.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 LinkUserApplicationUserGroup extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * public.link_user_application_user_group + */ + public static final LinkUserApplicationUserGroup LINK_USER_APPLICATION_USER_GROUP = new LinkUserApplicationUserGroup(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return LinkUserApplicationUserGroupRecord.class; + } + + /** + * The column + * public.link_user_application_user_group.link_user_application_user_group_id. + */ + public final TableField LINK_USER_APPLICATION_USER_GROUP_ID = createField(DSL.name("link_user_application_user_group_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column + * public.link_user_application_user_group.user_application_list_id. + */ + public final TableField USER_APPLICATION_LIST_ID = createField(DSL.name("user_application_list_id"), SQLDataType.BIGINT.nullable(false), this, ""); + + /** + * The column + * public.link_user_application_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 public.link_user_application_user_group.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private LinkUserApplicationUserGroup(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private LinkUserApplicationUserGroup(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.link_user_application_user_group + * table reference + */ + public LinkUserApplicationUserGroup(String alias) { + this(DSL.name(alias), LINK_USER_APPLICATION_USER_GROUP); + } + + /** + * Create an aliased public.link_user_application_user_group + * table reference + */ + public LinkUserApplicationUserGroup(Name alias) { + this(alias, LINK_USER_APPLICATION_USER_GROUP); + } + + /** + * Create a public.link_user_application_user_group table + * reference + */ + public LinkUserApplicationUserGroup() { + this(DSL.name("link_user_application_user_group"), null); + } + + public LinkUserApplicationUserGroup(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, LINK_USER_APPLICATION_USER_GROUP); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class LinkUserApplicationUserGroupPath extends LinkUserApplicationUserGroup implements Path { + public LinkUserApplicationUserGroupPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private LinkUserApplicationUserGroupPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public LinkUserApplicationUserGroupPath as(String alias) { + return new LinkUserApplicationUserGroupPath(DSL.name(alias), this); + } + + @Override + public LinkUserApplicationUserGroupPath as(Name alias) { + return new LinkUserApplicationUserGroupPath(alias, this); + } + + @Override + public LinkUserApplicationUserGroupPath as(Table alias) { + return new LinkUserApplicationUserGroupPath(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.PK_LINK_USER_APPLICATION_USER_GROUP; + } + + @Override + public List> getUniqueKeys() { + return Arrays.asList(Keys.UNI_USER_GROUP); + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.LINK_USER_APPLICATION_USER_GROUP__FK_USER_APPLICATION_LIST, Keys.LINK_USER_APPLICATION_USER_GROUP__FK_USER_GROUP); + } + + private transient UserApplicationListPath _userApplicationList; + + /** + * Get the implicit join path to the + * public.user_application_list table. + */ + public UserApplicationListPath userApplicationList() { + if (_userApplicationList == null) + _userApplicationList = new UserApplicationListPath(this, Keys.LINK_USER_APPLICATION_USER_GROUP__FK_USER_APPLICATION_LIST, null); + + return _userApplicationList; + } + + 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_APPLICATION_USER_GROUP__FK_USER_GROUP, null); + + return _userGroup; + } + + @Override + public LinkUserApplicationUserGroup as(String alias) { + return new LinkUserApplicationUserGroup(DSL.name(alias), this); + } + + @Override + public LinkUserApplicationUserGroup as(Name alias) { + return new LinkUserApplicationUserGroup(alias, this); + } + + @Override + public LinkUserApplicationUserGroup as(Table alias) { + return new LinkUserApplicationUserGroup(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public LinkUserApplicationUserGroup rename(String name) { + return new LinkUserApplicationUserGroup(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public LinkUserApplicationUserGroup rename(Name name) { + return new LinkUserApplicationUserGroup(name, null); + } + + /** + * Rename this table + */ + @Override + public LinkUserApplicationUserGroup rename(Table name) { + return new LinkUserApplicationUserGroup(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserApplicationUserGroup where(Condition condition) { + return new LinkUserApplicationUserGroup(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserApplicationUserGroup where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserApplicationUserGroup where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserApplicationUserGroup where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserApplicationUserGroup where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserApplicationUserGroup where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserApplicationUserGroup where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LinkUserApplicationUserGroup where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserApplicationUserGroup whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LinkUserApplicationUserGroup whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/Recruitment.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/Recruitment.java new file mode 100644 index 00000000..a4435c1a --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/Recruitment.java @@ -0,0 +1,414 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.RecruitmentRecord; + +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.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 Recruitment extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.recruitment + */ + public static final Recruitment RECRUITMENT = new Recruitment(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return RecruitmentRecord.class; + } + + /** + * The column public.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.recruitment.idm_id. Идентификатор + * организации + */ + public final TableField IDM_ID = createField(DSL.name("idm_id"), SQLDataType.VARCHAR(256), this, "Идентификатор организации"); + + /** + * The column public.recruitment.parent_id. Идентификатор + * вышестоящей организации + */ + public final TableField PARENT_ID = createField(DSL.name("parent_id"), SQLDataType.VARCHAR, this, "Идентификатор вышестоящей организации"); + + /** + * The column public.recruitment.version. Версия записи + */ + public final TableField VERSION = createField(DSL.name("version"), SQLDataType.INTEGER, this, "Версия записи"); + + /** + * The column public.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.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.recruitment.schema. Схема + */ + public final TableField SCHEMA = createField(DSL.name("schema"), SQLDataType.VARCHAR(64).nullable(false), this, "Схема"); + + /** + * The column public.recruitment.military_code. Код организации + */ + public final TableField MILITARY_CODE = createField(DSL.name("military_code"), SQLDataType.VARCHAR(16), this, "Код организации"); + + /** + * The column public.recruitment.shortname. Укороченное + * наименование организации + */ + public final TableField SHORTNAME = createField(DSL.name("shortname"), SQLDataType.VARCHAR.nullable(false), this, "Укороченное наименование организации"); + + /** + * The column public.recruitment.fullname. Полное наименование + * организации + */ + public final TableField FULLNAME = createField(DSL.name("fullname"), SQLDataType.VARCHAR.nullable(false), this, "Полное наименование организации"); + + /** + * The column public.recruitment.dns. ДНС организации + */ + public final TableField DNS = createField(DSL.name("dns"), SQLDataType.VARCHAR(64), this, "ДНС организации"); + + /** + * The column public.recruitment.email. Е-mail организации + */ + public final TableField EMAIL = createField(DSL.name("email"), SQLDataType.VARCHAR(255), this, "Е-mail организации"); + + /** + * The column public.recruitment.phone. Телефон организации + */ + public final TableField PHONE = createField(DSL.name("phone"), SQLDataType.VARCHAR(24), this, "Телефон организации"); + + /** + * The column public.recruitment.address. Адрес организации + */ + public final TableField ADDRESS = createField(DSL.name("address"), SQLDataType.VARCHAR, this, "Адрес организации"); + + /** + * The column public.recruitment.address_id. Идентификатор + * адреса организации + */ + public final TableField ADDRESS_ID = createField(DSL.name("address_id"), SQLDataType.VARCHAR, this, "Идентификатор адреса организации"); + + /** + * The column public.recruitment.postal_address. Почтовый адрес + * организации + */ + public final TableField POSTAL_ADDRESS = createField(DSL.name("postal_address"), SQLDataType.VARCHAR, this, "Почтовый адрес организации"); + + /** + * The column public.recruitment.postal_address_id. + * Идентификатор почтового адреса организации + */ + public final TableField POSTAL_ADDRESS_ID = createField(DSL.name("postal_address_id"), SQLDataType.VARCHAR, this, "Идентификатор почтового адреса организации"); + + /** + * The column public.recruitment.nsi_department_id. + * Идентификатор департамента из НСИ + */ + public final TableField NSI_DEPARTMENT_ID = createField(DSL.name("nsi_department_id"), SQLDataType.VARCHAR, this, "Идентификатор департамента из НСИ"); + + /** + * The column public.recruitment.nsi_organization_id. + * Идентификатор организации из НСИ + */ + public final TableField NSI_ORGANIZATION_ID = createField(DSL.name("nsi_organization_id"), SQLDataType.VARCHAR, this, "Идентификатор организации из НСИ"); + + /** + * The column public.recruitment.oktmo. ОКТМО + */ + public final TableField OKTMO = createField(DSL.name("oktmo"), SQLDataType.VARCHAR, this, "ОКТМО"); + + /** + * The column public.recruitment.org_ogrn. ОГРН организации + */ + public final TableField ORG_OGRN = createField(DSL.name("org_ogrn"), SQLDataType.VARCHAR, this, "ОГРН организации"); + + /** + * The column public.recruitment.dep_ogrn. ОГРН департамента + */ + public final TableField DEP_OGRN = createField(DSL.name("dep_ogrn"), SQLDataType.VARCHAR, this, "ОГРН департамента"); + + /** + * The column public.recruitment.epgu_id. Идентификатор ЕПГУ + */ + public final TableField EPGU_ID = createField(DSL.name("epgu_id"), SQLDataType.VARCHAR, this, "Идентификатор ЕПГУ"); + + /** + * The column public.recruitment.kpp. КПП + */ + public final TableField KPP = createField(DSL.name("kpp"), SQLDataType.VARCHAR(64), this, "КПП"); + + /** + * The column public.recruitment.inn. ИНН + */ + public final TableField INN = createField(DSL.name("inn"), SQLDataType.VARCHAR(64), this, "ИНН"); + + /** + * The column public.recruitment.okato. ОКАТО + */ + public final TableField OKATO = createField(DSL.name("okato"), SQLDataType.VARCHAR(64), this, "ОКАТО"); + + /** + * The column public.recruitment.division_type. Тип дивизиона + */ + public final TableField DIVISION_TYPE = createField(DSL.name("division_type"), SQLDataType.VARCHAR(64), this, "Тип дивизиона"); + + /** + * The column public.recruitment.tns_department_id. + * Идентификатор департамента из ТНС + */ + public final TableField TNS_DEPARTMENT_ID = createField(DSL.name("tns_department_id"), SQLDataType.VARCHAR, this, "Идентификатор департамента из ТНС"); + + /** + * The column public.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.recruitment.timezone. Часовой пояс + */ + public final TableField TIMEZONE = createField(DSL.name("timezone"), SQLDataType.VARCHAR(64), this, "Часовой пояс"); + + /** + * The column public.recruitment.reports_enabled. Признак + * актуальности для отчета + */ + public final TableField REPORTS_ENABLED = createField(DSL.name("reports_enabled"), SQLDataType.BOOLEAN, this, "Признак актуальности для отчета"); + + /** + * The column public.recruitment.region_id. Идентификатор + * региона + */ + public final TableField REGION_ID = createField(DSL.name("region_id"), SQLDataType.VARCHAR, this, "Идентификатор региона"); + + /** + * The column public.recruitment.subpoena_series_code. Серия + */ + public final TableField SUBPOENA_SERIES_CODE = createField(DSL.name("subpoena_series_code"), SQLDataType.VARCHAR(64), this, "Серия"); + + /** + * The column public.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.recruitment.region_code. + */ + public final TableField REGION_CODE = createField(DSL.name("region_code"), SQLDataType.CLOB, this, ""); + + /** + * The column public.recruitment.ts. + */ + public final TableField TS = createField(DSL.name("ts"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), 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 public.recruitment table reference + */ + public Recruitment(String alias) { + this(DSL.name(alias), RECRUITMENT); + } + + /** + * Create an aliased public.recruitment table reference + */ + public Recruitment(Name alias) { + this(alias, RECRUITMENT); + } + + /** + * Create a public.recruitment table reference + */ + public Recruitment() { + this(DSL.name("recruitment"), null); + } + + @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); + } + + @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_usr_autority/ervu_usr_autority/db_beans/public_/tables/UserApplicationDocument.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/UserApplicationDocument.java new file mode 100644 index 00000000..410ece6f --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/UserApplicationDocument.java @@ -0,0 +1,243 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.UserApplicationDocumentRecord; + +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Identity; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UserApplicationDocument extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.user_application_document + */ + public static final UserApplicationDocument USER_APPLICATION_DOCUMENT = new UserApplicationDocument(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserApplicationDocumentRecord.class; + } + + /** + * The column + * public.user_application_document.user_application_document_id. + */ + public final TableField USER_APPLICATION_DOCUMENT_ID = createField(DSL.name("user_application_document_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column public.user_application_document.file_name. + */ + public final TableField FILE_NAME = createField(DSL.name("file_name"), SQLDataType.VARCHAR(100), this, ""); + + /** + * The column public.user_application_document.file. + */ + public final TableField FILE = createField(DSL.name("file"), SQLDataType.BLOB, this, ""); + + /** + * The column + * public.user_application_document.user_application_list_id. + */ + public final TableField USER_APPLICATION_LIST_ID = createField(DSL.name("user_application_list_id"), SQLDataType.BIGINT.nullable(false), this, ""); + + private UserApplicationDocument(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserApplicationDocument(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.user_application_document table + * reference + */ + public UserApplicationDocument(String alias) { + this(DSL.name(alias), USER_APPLICATION_DOCUMENT); + } + + /** + * Create an aliased public.user_application_document table + * reference + */ + public UserApplicationDocument(Name alias) { + this(alias, USER_APPLICATION_DOCUMENT); + } + + /** + * Create a public.user_application_document table reference + */ + public UserApplicationDocument() { + this(DSL.name("user_application_document"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Public.PUBLIC; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_USER_APPLICATION_DOCUMENT; + } + + @Override + public UserApplicationDocument as(String alias) { + return new UserApplicationDocument(DSL.name(alias), this); + } + + @Override + public UserApplicationDocument as(Name alias) { + return new UserApplicationDocument(alias, this); + } + + @Override + public UserApplicationDocument as(Table alias) { + return new UserApplicationDocument(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserApplicationDocument rename(String name) { + return new UserApplicationDocument(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserApplicationDocument rename(Name name) { + return new UserApplicationDocument(name, null); + } + + /** + * Rename this table + */ + @Override + public UserApplicationDocument rename(Table name) { + return new UserApplicationDocument(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationDocument where(Condition condition) { + return new UserApplicationDocument(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationDocument where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationDocument where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationDocument where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationDocument where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationDocument where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationDocument where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationDocument where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationDocument whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationDocument whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/UserApplicationList.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/UserApplicationList.java new file mode 100644 index 00000000..81461d67 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/UserApplicationList.java @@ -0,0 +1,409 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.Public; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.LinkUserApplicationUserGroup.LinkUserApplicationUserGroupPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records.UserApplicationListRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; + +import java.sql.Date; +import java.sql.Timestamp; +import java.util.Collection; +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 UserApplicationList extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of public.user_application_list + */ + public static final UserApplicationList USER_APPLICATION_LIST = new UserApplicationList(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserApplicationListRecord.class; + } + + /** + * The column + * public.user_application_list.user_application_list_id. + */ + public final TableField USER_APPLICATION_LIST_ID = createField(DSL.name("user_application_list_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column public.user_application_list.application_kind. + */ + public final TableField APPLICATION_KIND = createField(DSL.name("application_kind"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column public.user_application_list.user_login. + */ + public final TableField USER_LOGIN = createField(DSL.name("user_login"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column public.user_application_list.user_password. + */ + public final TableField USER_PASSWORD = createField(DSL.name("user_password"), SQLDataType.VARCHAR(100), this, ""); + + /** + * The column public.user_application_list.secondname. + */ + public final TableField SECONDNAME = createField(DSL.name("secondname"), SQLDataType.VARCHAR(1000).nullable(false), this, ""); + + /** + * The column public.user_application_list.firstname. + */ + public final TableField FIRSTNAME = createField(DSL.name("firstname"), SQLDataType.VARCHAR(1000).nullable(false), this, ""); + + /** + * The column public.user_application_list.middlename. + */ + public final TableField MIDDLENAME = createField(DSL.name("middlename"), SQLDataType.VARCHAR(1000), this, ""); + + /** + * The column public.user_application_list.phone. + */ + public final TableField PHONE = createField(DSL.name("phone"), SQLDataType.VARCHAR(20), this, ""); + + /** + * The column public.user_application_list.ip_address. + */ + public final TableField IP_ADDRESS = createField(DSL.name("ip_address"), SQLDataType.VARCHAR(1000), this, ""); + + /** + * The column public.user_application_list.start_date. + */ + public final TableField START_DATE = createField(DSL.name("start_date"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column public.user_application_list.close_date. + */ + public final TableField CLOSE_DATE = createField(DSL.name("close_date"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column public.user_application_list.user_status. + */ + public final TableField USER_STATUS = createField(DSL.name("user_status"), SQLDataType.VARCHAR(50), this, ""); + + /** + * The column public.user_application_list.application_status. + */ + public final TableField APPLICATION_STATUS = createField(DSL.name("application_status"), SQLDataType.VARCHAR(100).nullable(false), this, ""); + + /** + * The column public.user_application_list.comment. + */ + public final TableField COMMENT = createField(DSL.name("comment"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.user_application_list.job_position_id. + */ + public final TableField JOB_POSITION_ID = createField(DSL.name("job_position_id"), SQLDataType.BIGINT, this, ""); + + /** + * The column public.user_application_list.user_role_id. + */ + public final TableField USER_ROLE_ID = createField(DSL.name("user_role_id"), SQLDataType.BIGINT, this, ""); + + /** + * The column public.user_application_list.recruitment_id. + */ + public final TableField RECRUITMENT_ID = createField(DSL.name("recruitment_id"), SQLDataType.UUID, this, ""); + + /** + * The column public.user_application_list.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.user_application_list.sex. + */ + public final TableField SEX = createField(DSL.name("sex"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.user_application_list.birth_date. + */ + public final TableField BIRTH_DATE = createField(DSL.name("birth_date"), SQLDataType.DATE, this, ""); + + /** + * The column public.user_application_list.snils. + */ + public final TableField SNILS = createField(DSL.name("snils"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.user_application_list.job_position. + */ + public final TableField JOB_POSITION = createField(DSL.name("job_position"), SQLDataType.VARCHAR, this, ""); + + /** + * The column + * public.user_application_list.ip_address_additional. + */ + public final TableField IP_ADDRESS_ADDITIONAL = createField(DSL.name("ip_address_additional"), SQLDataType.VARCHAR, this, ""); + + /** + * The column public.user_application_list.number_app. + */ + public final TableField NUMBER_APP = createField(DSL.name("number_app"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column public.user_application_list.edit_comment. + */ + public final TableField EDIT_COMMENT = createField(DSL.name("edit_comment"), SQLDataType.VARCHAR, this, ""); + + private UserApplicationList(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserApplicationList(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased public.user_application_list table + * reference + */ + public UserApplicationList(String alias) { + this(DSL.name(alias), USER_APPLICATION_LIST); + } + + /** + * Create an aliased public.user_application_list table + * reference + */ + public UserApplicationList(Name alias) { + this(alias, USER_APPLICATION_LIST); + } + + /** + * Create a public.user_application_list table reference + */ + public UserApplicationList() { + this(DSL.name("user_application_list"), null); + } + + public UserApplicationList(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_APPLICATION_LIST); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserApplicationListPath extends UserApplicationList implements Path { + public UserApplicationListPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserApplicationListPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserApplicationListPath as(String alias) { + return new UserApplicationListPath(DSL.name(alias), this); + } + + @Override + public UserApplicationListPath as(Name alias) { + return new UserApplicationListPath(alias, this); + } + + @Override + public UserApplicationListPath as(Table alias) { + return new UserApplicationListPath(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.PK_USER_APPLICATION_LIST; + } + + private transient LinkUserApplicationUserGroupPath _linkUserApplicationUserGroup; + + /** + * Get the implicit to-many join path to the + * public.link_user_application_user_group table + */ + public LinkUserApplicationUserGroupPath linkUserApplicationUserGroup() { + if (_linkUserApplicationUserGroup == null) + _linkUserApplicationUserGroup = new LinkUserApplicationUserGroupPath(this, null, Keys.LINK_USER_APPLICATION_USER_GROUP__FK_USER_APPLICATION_LIST.getInverseKey()); + + return _linkUserApplicationUserGroup; + } + + /** + * Get the implicit many-to-many join path to the + * security.user_group table + */ + public UserGroupPath userGroup() { + return linkUserApplicationUserGroup().userGroup(); + } + + @Override + public UserApplicationList as(String alias) { + return new UserApplicationList(DSL.name(alias), this); + } + + @Override + public UserApplicationList as(Name alias) { + return new UserApplicationList(alias, this); + } + + @Override + public UserApplicationList as(Table alias) { + return new UserApplicationList(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserApplicationList rename(String name) { + return new UserApplicationList(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserApplicationList rename(Name name) { + return new UserApplicationList(name, null); + } + + /** + * Rename this table + */ + @Override + public UserApplicationList rename(Table name) { + return new UserApplicationList(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationList where(Condition condition) { + return new UserApplicationList(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationList where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationList where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationList where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationList where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationList where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationList where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserApplicationList where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationList whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserApplicationList whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/JobPositionRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/JobPositionRecord.java new file mode 100644 index 00000000..a371332b --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/JobPositionRecord.java @@ -0,0 +1,126 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.JobPosition; + +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 JobPositionRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for public.job_position.job_position_id. + */ + public void setJobPositionId(Long value) { + set(0, value); + } + + /** + * Getter for public.job_position.job_position_id. + */ + public Long getJobPositionId() { + return (Long) get(0); + } + + /** + * Setter for public.job_position.name. + */ + public void setName(String value) { + set(1, value); + } + + /** + * Getter for public.job_position.name. + */ + public String getName() { + return (String) get(1); + } + + /** + * Setter for public.job_position.code. + */ + public void setCode(String value) { + set(2, value); + } + + /** + * Getter for public.job_position.code. + */ + public String getCode() { + return (String) get(2); + } + + /** + * Setter for public.job_position.start_date. + */ + public void setStartDate(Timestamp value) { + set(3, value); + } + + /** + * Getter for public.job_position.start_date. + */ + public Timestamp getStartDate() { + return (Timestamp) get(3); + } + + /** + * Setter for public.job_position.close_date. + */ + public void setCloseDate(Timestamp value) { + set(4, value); + } + + /** + * Getter for public.job_position.close_date. + */ + public Timestamp getCloseDate() { + return (Timestamp) get(4); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached JobPositionRecord + */ + public JobPositionRecord() { + super(JobPosition.JOB_POSITION); + } + + /** + * Create a detached, initialised JobPositionRecord + */ + public JobPositionRecord(Long jobPositionId, String name, String code, Timestamp startDate, Timestamp closeDate) { + super(JobPosition.JOB_POSITION); + + setJobPositionId(jobPositionId); + setName(name); + setCode(code); + setStartDate(startDate); + setCloseDate(closeDate); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/LinkUserApplicationUserGroupRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/LinkUserApplicationUserGroupRecord.java new file mode 100644 index 00000000..096c772f --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/LinkUserApplicationUserGroupRecord.java @@ -0,0 +1,117 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.LinkUserApplicationUserGroup; + +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 LinkUserApplicationUserGroupRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * public.link_user_application_user_group.link_user_application_user_group_id. + */ + public void setLinkUserApplicationUserGroupId(Long value) { + set(0, value); + } + + /** + * Getter for + * public.link_user_application_user_group.link_user_application_user_group_id. + */ + public Long getLinkUserApplicationUserGroupId() { + return (Long) get(0); + } + + /** + * Setter for + * public.link_user_application_user_group.user_application_list_id. + */ + public void setUserApplicationListId(Long value) { + set(1, value); + } + + /** + * Getter for + * public.link_user_application_user_group.user_application_list_id. + */ + public Long getUserApplicationListId() { + return (Long) get(1); + } + + /** + * Setter for + * public.link_user_application_user_group.user_group_id. + */ + public void setUserGroupId(String value) { + set(2, value); + } + + /** + * Getter for + * public.link_user_application_user_group.user_group_id. + */ + public String getUserGroupId() { + return (String) get(2); + } + + /** + * Setter for public.link_user_application_user_group.created. + */ + public void setCreated(Timestamp value) { + set(3, value); + } + + /** + * Getter for public.link_user_application_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 LinkUserApplicationUserGroupRecord + */ + public LinkUserApplicationUserGroupRecord() { + super(LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP); + } + + /** + * Create a detached, initialised LinkUserApplicationUserGroupRecord + */ + public LinkUserApplicationUserGroupRecord(Long linkUserApplicationUserGroupId, Long userApplicationListId, String userGroupId, Timestamp created) { + super(LinkUserApplicationUserGroup.LINK_USER_APPLICATION_USER_GROUP); + + setLinkUserApplicationUserGroupId(linkUserApplicationUserGroupId); + setUserApplicationListId(userApplicationListId); + setUserGroupId(userGroupId); + setCreated(created); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/RecruitmentRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/RecruitmentRecord.java new file mode 100644 index 00000000..b2d00c27 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/RecruitmentRecord.java @@ -0,0 +1,616 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.Recruitment; + +import java.sql.Timestamp; +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 public.recruitment.id. Идентификатор ВК + */ + public void setId(UUID value) { + set(0, value); + } + + /** + * Getter for public.recruitment.id. Идентификатор ВК + */ + public UUID getId() { + return (UUID) get(0); + } + + /** + * Setter for public.recruitment.idm_id. Идентификатор + * организации + */ + public void setIdmId(String value) { + set(1, value); + } + + /** + * Getter for public.recruitment.idm_id. Идентификатор + * организации + */ + public String getIdmId() { + return (String) get(1); + } + + /** + * Setter for public.recruitment.parent_id. Идентификатор + * вышестоящей организации + */ + public void setParentId(String value) { + set(2, value); + } + + /** + * Getter for public.recruitment.parent_id. Идентификатор + * вышестоящей организации + */ + public String getParentId() { + return (String) get(2); + } + + /** + * Setter for public.recruitment.version. Версия записи + */ + public void setVersion(Integer value) { + set(3, value); + } + + /** + * Getter for public.recruitment.version. Версия записи + */ + public Integer getVersion() { + return (Integer) get(3); + } + + /** + * Setter for public.recruitment.created_at. Дата создания + */ + public void setCreatedAt(Timestamp value) { + set(4, value); + } + + /** + * Getter for public.recruitment.created_at. Дата создания + */ + public Timestamp getCreatedAt() { + return (Timestamp) get(4); + } + + /** + * Setter for public.recruitment.updated_at. Дата обновления + */ + public void setUpdatedAt(Timestamp value) { + set(5, value); + } + + /** + * Getter for public.recruitment.updated_at. Дата обновления + */ + public Timestamp getUpdatedAt() { + return (Timestamp) get(5); + } + + /** + * Setter for public.recruitment.schema. Схема + */ + public void setSchema(String value) { + set(6, value); + } + + /** + * Getter for public.recruitment.schema. Схема + */ + public String getSchema() { + return (String) get(6); + } + + /** + * Setter for public.recruitment.military_code. Код организации + */ + public void setMilitaryCode(String value) { + set(7, value); + } + + /** + * Getter for public.recruitment.military_code. Код организации + */ + public String getMilitaryCode() { + return (String) get(7); + } + + /** + * Setter for public.recruitment.shortname. Укороченное + * наименование организации + */ + public void setShortname(String value) { + set(8, value); + } + + /** + * Getter for public.recruitment.shortname. Укороченное + * наименование организации + */ + public String getShortname() { + return (String) get(8); + } + + /** + * Setter for public.recruitment.fullname. Полное наименование + * организации + */ + public void setFullname(String value) { + set(9, value); + } + + /** + * Getter for public.recruitment.fullname. Полное наименование + * организации + */ + public String getFullname() { + return (String) get(9); + } + + /** + * Setter for public.recruitment.dns. ДНС организации + */ + public void setDns(String value) { + set(10, value); + } + + /** + * Getter for public.recruitment.dns. ДНС организации + */ + public String getDns() { + return (String) get(10); + } + + /** + * Setter for public.recruitment.email. Е-mail организации + */ + public void setEmail(String value) { + set(11, value); + } + + /** + * Getter for public.recruitment.email. Е-mail организации + */ + public String getEmail() { + return (String) get(11); + } + + /** + * Setter for public.recruitment.phone. Телефон организации + */ + public void setPhone(String value) { + set(12, value); + } + + /** + * Getter for public.recruitment.phone. Телефон организации + */ + public String getPhone() { + return (String) get(12); + } + + /** + * Setter for public.recruitment.address. Адрес организации + */ + public void setAddress(String value) { + set(13, value); + } + + /** + * Getter for public.recruitment.address. Адрес организации + */ + public String getAddress() { + return (String) get(13); + } + + /** + * Setter for public.recruitment.address_id. Идентификатор + * адреса организации + */ + public void setAddressId(String value) { + set(14, value); + } + + /** + * Getter for public.recruitment.address_id. Идентификатор + * адреса организации + */ + public String getAddressId() { + return (String) get(14); + } + + /** + * Setter for public.recruitment.postal_address. Почтовый адрес + * организации + */ + public void setPostalAddress(String value) { + set(15, value); + } + + /** + * Getter for public.recruitment.postal_address. Почтовый адрес + * организации + */ + public String getPostalAddress() { + return (String) get(15); + } + + /** + * Setter for public.recruitment.postal_address_id. + * Идентификатор почтового адреса организации + */ + public void setPostalAddressId(String value) { + set(16, value); + } + + /** + * Getter for public.recruitment.postal_address_id. + * Идентификатор почтового адреса организации + */ + public String getPostalAddressId() { + return (String) get(16); + } + + /** + * Setter for public.recruitment.nsi_department_id. + * Идентификатор департамента из НСИ + */ + public void setNsiDepartmentId(String value) { + set(17, value); + } + + /** + * Getter for public.recruitment.nsi_department_id. + * Идентификатор департамента из НСИ + */ + public String getNsiDepartmentId() { + return (String) get(17); + } + + /** + * Setter for public.recruitment.nsi_organization_id. + * Идентификатор организации из НСИ + */ + public void setNsiOrganizationId(String value) { + set(18, value); + } + + /** + * Getter for public.recruitment.nsi_organization_id. + * Идентификатор организации из НСИ + */ + public String getNsiOrganizationId() { + return (String) get(18); + } + + /** + * Setter for public.recruitment.oktmo. ОКТМО + */ + public void setOktmo(String value) { + set(19, value); + } + + /** + * Getter for public.recruitment.oktmo. ОКТМО + */ + public String getOktmo() { + return (String) get(19); + } + + /** + * Setter for public.recruitment.org_ogrn. ОГРН организации + */ + public void setOrgOgrn(String value) { + set(20, value); + } + + /** + * Getter for public.recruitment.org_ogrn. ОГРН организации + */ + public String getOrgOgrn() { + return (String) get(20); + } + + /** + * Setter for public.recruitment.dep_ogrn. ОГРН департамента + */ + public void setDepOgrn(String value) { + set(21, value); + } + + /** + * Getter for public.recruitment.dep_ogrn. ОГРН департамента + */ + public String getDepOgrn() { + return (String) get(21); + } + + /** + * Setter for public.recruitment.epgu_id. Идентификатор ЕПГУ + */ + public void setEpguId(String value) { + set(22, value); + } + + /** + * Getter for public.recruitment.epgu_id. Идентификатор ЕПГУ + */ + public String getEpguId() { + return (String) get(22); + } + + /** + * Setter for public.recruitment.kpp. КПП + */ + public void setKpp(String value) { + set(23, value); + } + + /** + * Getter for public.recruitment.kpp. КПП + */ + public String getKpp() { + return (String) get(23); + } + + /** + * Setter for public.recruitment.inn. ИНН + */ + public void setInn(String value) { + set(24, value); + } + + /** + * Getter for public.recruitment.inn. ИНН + */ + public String getInn() { + return (String) get(24); + } + + /** + * Setter for public.recruitment.okato. ОКАТО + */ + public void setOkato(String value) { + set(25, value); + } + + /** + * Getter for public.recruitment.okato. ОКАТО + */ + public String getOkato() { + return (String) get(25); + } + + /** + * Setter for public.recruitment.division_type. Тип дивизиона + */ + public void setDivisionType(String value) { + set(26, value); + } + + /** + * Getter for public.recruitment.division_type. Тип дивизиона + */ + public String getDivisionType() { + return (String) get(26); + } + + /** + * Setter for public.recruitment.tns_department_id. + * Идентификатор департамента из ТНС + */ + public void setTnsDepartmentId(String value) { + set(27, value); + } + + /** + * Getter for public.recruitment.tns_department_id. + * Идентификатор департамента из ТНС + */ + public String getTnsDepartmentId() { + return (String) get(27); + } + + /** + * Setter for public.recruitment.enabled. Признак актуальности + */ + public void setEnabled(Boolean value) { + set(28, value); + } + + /** + * Getter for public.recruitment.enabled. Признак актуальности + */ + public Boolean getEnabled() { + return (Boolean) get(28); + } + + /** + * Setter for public.recruitment.timezone. Часовой пояс + */ + public void setTimezone(String value) { + set(29, value); + } + + /** + * Getter for public.recruitment.timezone. Часовой пояс + */ + public String getTimezone() { + return (String) get(29); + } + + /** + * Setter for public.recruitment.reports_enabled. Признак + * актуальности для отчета + */ + public void setReportsEnabled(Boolean value) { + set(30, value); + } + + /** + * Getter for public.recruitment.reports_enabled. Признак + * актуальности для отчета + */ + public Boolean getReportsEnabled() { + return (Boolean) get(30); + } + + /** + * Setter for public.recruitment.region_id. Идентификатор + * региона + */ + public void setRegionId(String value) { + set(31, value); + } + + /** + * Getter for public.recruitment.region_id. Идентификатор + * региона + */ + public String getRegionId() { + return (String) get(31); + } + + /** + * Setter for public.recruitment.subpoena_series_code. Серия + */ + public void setSubpoenaSeriesCode(String value) { + set(32, value); + } + + /** + * Getter for public.recruitment.subpoena_series_code. Серия + */ + public String getSubpoenaSeriesCode() { + return (String) get(32); + } + + /** + * Setter for public.recruitment.hidden. Признак скрытого + */ + public void setHidden(Boolean value) { + set(33, value); + } + + /** + * Getter for public.recruitment.hidden. Признак скрытого + */ + public Boolean getHidden() { + return (Boolean) get(33); + } + + /** + * Setter for public.recruitment.region_code. + */ + public void setRegionCode(String value) { + set(34, value); + } + + /** + * Getter for public.recruitment.region_code. + */ + public String getRegionCode() { + return (String) get(34); + } + + /** + * Setter for public.recruitment.ts. + */ + public void setTs(Timestamp value) { + set(35, value); + } + + /** + * Getter for public.recruitment.ts. + */ + public Timestamp getTs() { + return (Timestamp) get(35); + } + + // ------------------------------------------------------------------------- + // 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(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 subpoenaSeriesCode, Boolean hidden, String regionCode, Timestamp ts) { + super(Recruitment.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); + setSubpoenaSeriesCode(subpoenaSeriesCode); + setHidden(hidden); + setRegionCode(regionCode); + setTs(ts); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/UserApplicationDocumentRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/UserApplicationDocumentRecord.java new file mode 100644 index 00000000..8c8050e8 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/UserApplicationDocumentRecord.java @@ -0,0 +1,113 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationDocument; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UserApplicationDocumentRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * public.user_application_document.user_application_document_id. + */ + public void setUserApplicationDocumentId(Long value) { + set(0, value); + } + + /** + * Getter for + * public.user_application_document.user_application_document_id. + */ + public Long getUserApplicationDocumentId() { + return (Long) get(0); + } + + /** + * Setter for public.user_application_document.file_name. + */ + public void setFileName(String value) { + set(1, value); + } + + /** + * Getter for public.user_application_document.file_name. + */ + public String getFileName() { + return (String) get(1); + } + + /** + * Setter for public.user_application_document.file. + */ + public void setFile(byte[] value) { + set(2, value); + } + + /** + * Getter for public.user_application_document.file. + */ + public byte[] getFile() { + return (byte[]) get(2); + } + + /** + * Setter for + * public.user_application_document.user_application_list_id. + */ + public void setUserApplicationListId(Long value) { + set(3, value); + } + + /** + * Getter for + * public.user_application_document.user_application_list_id. + */ + public Long getUserApplicationListId() { + return (Long) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserApplicationDocumentRecord + */ + public UserApplicationDocumentRecord() { + super(UserApplicationDocument.USER_APPLICATION_DOCUMENT); + } + + /** + * Create a detached, initialised UserApplicationDocumentRecord + */ + public UserApplicationDocumentRecord(Long userApplicationDocumentId, String fileName, byte[] file, Long userApplicationListId) { + super(UserApplicationDocument.USER_APPLICATION_DOCUMENT); + + setUserApplicationDocumentId(userApplicationDocumentId); + setFileName(fileName); + setFile(file); + setUserApplicationListId(userApplicationListId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/UserApplicationListRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/UserApplicationListRecord.java new file mode 100644 index 00000000..83b67ce5 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/public_/tables/records/UserApplicationListRecord.java @@ -0,0 +1,432 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationList; + +import java.sql.Date; +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 UserApplicationListRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * public.user_application_list.user_application_list_id. + */ + public void setUserApplicationListId(Long value) { + set(0, value); + } + + /** + * Getter for + * public.user_application_list.user_application_list_id. + */ + public Long getUserApplicationListId() { + return (Long) get(0); + } + + /** + * Setter for public.user_application_list.application_kind. + */ + public void setApplicationKind(String value) { + set(1, value); + } + + /** + * Getter for public.user_application_list.application_kind. + */ + public String getApplicationKind() { + return (String) get(1); + } + + /** + * Setter for public.user_application_list.user_login. + */ + public void setUserLogin(String value) { + set(2, value); + } + + /** + * Getter for public.user_application_list.user_login. + */ + public String getUserLogin() { + return (String) get(2); + } + + /** + * Setter for public.user_application_list.user_password. + */ + public void setUserPassword(String value) { + set(3, value); + } + + /** + * Getter for public.user_application_list.user_password. + */ + public String getUserPassword() { + return (String) get(3); + } + + /** + * Setter for public.user_application_list.secondname. + */ + public void setSecondname(String value) { + set(4, value); + } + + /** + * Getter for public.user_application_list.secondname. + */ + public String getSecondname() { + return (String) get(4); + } + + /** + * Setter for public.user_application_list.firstname. + */ + public void setFirstname(String value) { + set(5, value); + } + + /** + * Getter for public.user_application_list.firstname. + */ + public String getFirstname() { + return (String) get(5); + } + + /** + * Setter for public.user_application_list.middlename. + */ + public void setMiddlename(String value) { + set(6, value); + } + + /** + * Getter for public.user_application_list.middlename. + */ + public String getMiddlename() { + return (String) get(6); + } + + /** + * Setter for public.user_application_list.phone. + */ + public void setPhone(String value) { + set(7, value); + } + + /** + * Getter for public.user_application_list.phone. + */ + public String getPhone() { + return (String) get(7); + } + + /** + * Setter for public.user_application_list.ip_address. + */ + public void setIpAddress(String value) { + set(8, value); + } + + /** + * Getter for public.user_application_list.ip_address. + */ + public String getIpAddress() { + return (String) get(8); + } + + /** + * Setter for public.user_application_list.start_date. + */ + public void setStartDate(Timestamp value) { + set(9, value); + } + + /** + * Getter for public.user_application_list.start_date. + */ + public Timestamp getStartDate() { + return (Timestamp) get(9); + } + + /** + * Setter for public.user_application_list.close_date. + */ + public void setCloseDate(Timestamp value) { + set(10, value); + } + + /** + * Getter for public.user_application_list.close_date. + */ + public Timestamp getCloseDate() { + return (Timestamp) get(10); + } + + /** + * Setter for public.user_application_list.user_status. + */ + public void setUserStatus(String value) { + set(11, value); + } + + /** + * Getter for public.user_application_list.user_status. + */ + public String getUserStatus() { + return (String) get(11); + } + + /** + * Setter for public.user_application_list.application_status. + */ + public void setApplicationStatus(String value) { + set(12, value); + } + + /** + * Getter for public.user_application_list.application_status. + */ + public String getApplicationStatus() { + return (String) get(12); + } + + /** + * Setter for public.user_application_list.comment. + */ + public void setComment(String value) { + set(13, value); + } + + /** + * Getter for public.user_application_list.comment. + */ + public String getComment() { + return (String) get(13); + } + + /** + * Setter for public.user_application_list.job_position_id. + */ + public void setJobPositionId(Long value) { + set(14, value); + } + + /** + * Getter for public.user_application_list.job_position_id. + */ + public Long getJobPositionId() { + return (Long) get(14); + } + + /** + * Setter for public.user_application_list.user_role_id. + */ + public void setUserRoleId(Long value) { + set(15, value); + } + + /** + * Getter for public.user_application_list.user_role_id. + */ + public Long getUserRoleId() { + return (Long) get(15); + } + + /** + * Setter for public.user_application_list.recruitment_id. + */ + public void setRecruitmentId(UUID value) { + set(16, value); + } + + /** + * Getter for public.user_application_list.recruitment_id. + */ + public UUID getRecruitmentId() { + return (UUID) get(16); + } + + /** + * Setter for public.user_application_list.user_account_id. + */ + public void setUserAccountId(String value) { + set(17, value); + } + + /** + * Getter for public.user_application_list.user_account_id. + */ + public String getUserAccountId() { + return (String) get(17); + } + + /** + * Setter for public.user_application_list.sex. + */ + public void setSex(String value) { + set(18, value); + } + + /** + * Getter for public.user_application_list.sex. + */ + public String getSex() { + return (String) get(18); + } + + /** + * Setter for public.user_application_list.birth_date. + */ + public void setBirthDate(Date value) { + set(19, value); + } + + /** + * Getter for public.user_application_list.birth_date. + */ + public Date getBirthDate() { + return (Date) get(19); + } + + /** + * Setter for public.user_application_list.snils. + */ + public void setSnils(String value) { + set(20, value); + } + + /** + * Getter for public.user_application_list.snils. + */ + public String getSnils() { + return (String) get(20); + } + + /** + * Setter for public.user_application_list.job_position. + */ + public void setJobPosition(String value) { + set(21, value); + } + + /** + * Getter for public.user_application_list.job_position. + */ + public String getJobPosition() { + return (String) get(21); + } + + /** + * Setter for + * public.user_application_list.ip_address_additional. + */ + public void setIpAddressAdditional(String value) { + set(22, value); + } + + /** + * Getter for + * public.user_application_list.ip_address_additional. + */ + public String getIpAddressAdditional() { + return (String) get(22); + } + + /** + * Setter for public.user_application_list.number_app. + */ + public void setNumberApp(Long value) { + set(23, value); + } + + /** + * Getter for public.user_application_list.number_app. + */ + public Long getNumberApp() { + return (Long) get(23); + } + + /** + * Setter for public.user_application_list.edit_comment. + */ + public void setEditComment(String value) { + set(24, value); + } + + /** + * Getter for public.user_application_list.edit_comment. + */ + public String getEditComment() { + return (String) get(24); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserApplicationListRecord + */ + public UserApplicationListRecord() { + super(UserApplicationList.USER_APPLICATION_LIST); + } + + /** + * Create a detached, initialised UserApplicationListRecord + */ + public UserApplicationListRecord(Long userApplicationListId, String applicationKind, String userLogin, String userPassword, String secondname, String firstname, String middlename, String phone, String ipAddress, Timestamp startDate, Timestamp closeDate, String userStatus, String applicationStatus, String comment, Long jobPositionId, Long userRoleId, UUID recruitmentId, String userAccountId, String sex, Date birthDate, String snils, String jobPosition, String ipAddressAdditional, Long numberApp, String editComment) { + super(UserApplicationList.USER_APPLICATION_LIST); + + setUserApplicationListId(userApplicationListId); + setApplicationKind(applicationKind); + setUserLogin(userLogin); + setUserPassword(userPassword); + setSecondname(secondname); + setFirstname(firstname); + setMiddlename(middlename); + setPhone(phone); + setIpAddress(ipAddress); + setStartDate(startDate); + setCloseDate(closeDate); + setUserStatus(userStatus); + setApplicationStatus(applicationStatus); + setComment(comment); + setJobPositionId(jobPositionId); + setUserRoleId(userRoleId); + setRecruitmentId(recruitmentId); + setUserAccountId(userAccountId); + setSex(sex); + setBirthDate(birthDate); + setSnils(snils); + setJobPosition(jobPosition); + setIpAddressAdditional(ipAddressAdditional); + setNumberApp(numberApp); + setEditComment(editComment); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Keys.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Keys.java new file mode 100644 index 00000000..287b69cb --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Keys.java @@ -0,0 +1,104 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.AccessLevel; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Authority; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangeloglock; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.EsiaUser; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserAccountUserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserGroupUserRole; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserRoleAuthority; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnit; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnitAdditionalInfo; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.SimpleCredentials; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountAdditionInfo; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountRefreshToken; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountVerification; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserRole; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.AccessLevelRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.AuthorityRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.DatabasechangeloglockRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.EsiaUserRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.LinkUserAccountUserGroupRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.LinkUserGroupUserRoleRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.LinkUserRoleAuthorityRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.OrgUnitAdditionalInfoRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.OrgUnitRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.SimpleCredentialsRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserAccountAdditionInfoRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserAccountRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserAccountRefreshTokenRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserAccountVerificationRecord; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserGroupRecord; +import ervu_usr_autority.ervu_usr_autority.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 DATABASECHANGELOGLOCK_PKEY = Internal.createUniqueKey(Databasechangeloglock.DATABASECHANGELOGLOCK, DSL.name("databasechangeloglock_pkey"), new TableField[] { Databasechangeloglock.DATABASECHANGELOGLOCK.ID }, 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_ORG_UNIT_ADDITIONAL_INFO = Internal.createUniqueKey(OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO, DSL.name("pk_org_unit_additional_info"), new TableField[] { OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO.ID }, true); + public static final UniqueKey PK_DOMESTIC_USER = Internal.createUniqueKey(SimpleCredentials.SIMPLE_CREDENTIALS, DSL.name("pk_domestic_user"), new TableField[] { SimpleCredentials.SIMPLE_CREDENTIALS.USER_ACCOUNT_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_ADDITION_INFO = Internal.createUniqueKey(UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO, DSL.name("pk_user_account_addition_info"), new TableField[] { UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO.USER_ACCOUNT_ADDITION_INFO_ID }, 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_USER_ACCOUNT_VERIFICATION = Internal.createUniqueKey(UserAccountVerification.USER_ACCOUNT_VERIFICATION, DSL.name("pk_user_account_verification"), new TableField[] { UserAccountVerification.USER_ACCOUNT_VERIFICATION.USER_ACCOUNT_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 SIMPLE_CREDENTIALS__FK_DOMESTIC_USER1 = Internal.createForeignKey(SimpleCredentials.SIMPLE_CREDENTIALS, DSL.name("fk_domestic_user1"), new TableField[] { SimpleCredentials.SIMPLE_CREDENTIALS.USER_ACCOUNT_ID }, Keys.PK_USER, new TableField[] { UserAccount.USER_ACCOUNT.USER_ACCOUNT_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_ADDITION_INFO__FK_USER_ACCOUNT_ID = Internal.createForeignKey(UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO, DSL.name("fk_user_account_id"), new TableField[] { UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO.USER_ACCOUNT_ID }, Keys.PK_USER, new TableField[] { UserAccount.USER_ACCOUNT.USER_ACCOUNT_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_ACCOUNT_VERIFICATION__FK_USER_ACCOUNT_USER_ACCOUNT_VERIFICATION = Internal.createForeignKey(UserAccountVerification.USER_ACCOUNT_VERIFICATION, DSL.name("fk_user_account_user_account_verification"), new TableField[] { UserAccountVerification.USER_ACCOUNT_VERIFICATION.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_usr_autority/ervu_usr_autority/db_beans/security/Security.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Security.java new file mode 100644 index 00000000..b2d4f7af --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Security.java @@ -0,0 +1,167 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.DefaultCatalog; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.AccessLevel; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Authority; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangelog; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangeloglock; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.EsiaUser; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserAccountUserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserGroupUserRole; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserRoleAuthority; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnit; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnitAdditionalInfo; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.SimpleCredentials; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountAdditionInfo; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountRefreshToken; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountVerification; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup; +import ervu_usr_autority.ervu_usr_autority.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.databasechangelog. + */ + public final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; + + /** + * The table security.databasechangeloglock. + */ + public final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; + + /** + * 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.org_unit_additional_info. + */ + public final OrgUnitAdditionalInfo ORG_UNIT_ADDITIONAL_INFO = OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO; + + /** + * The table security.simple_credentials. + */ + public final SimpleCredentials SIMPLE_CREDENTIALS = SimpleCredentials.SIMPLE_CREDENTIALS; + + /** + * The table security.user_account. + */ + public final UserAccount USER_ACCOUNT = UserAccount.USER_ACCOUNT; + + /** + * The table security.user_account_addition_info. + */ + public final UserAccountAdditionInfo USER_ACCOUNT_ADDITION_INFO = UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO; + + /** + * The table security.user_account_refresh_token. + */ + public final UserAccountRefreshToken USER_ACCOUNT_REFRESH_TOKEN = UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN; + + /** + * The table security.user_account_verification. + */ + public final UserAccountVerification USER_ACCOUNT_VERIFICATION = UserAccountVerification.USER_ACCOUNT_VERIFICATION; + + /** + * 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, + Databasechangelog.DATABASECHANGELOG, + Databasechangeloglock.DATABASECHANGELOGLOCK, + EsiaUser.ESIA_USER, + LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP, + LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE, + LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY, + OrgUnit.ORG_UNIT, + OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO, + SimpleCredentials.SIMPLE_CREDENTIALS, + UserAccount.USER_ACCOUNT, + UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO, + UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN, + UserAccountVerification.USER_ACCOUNT_VERIFICATION, + UserGroup.USER_GROUP, + UserRole.USER_ROLE + ); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Tables.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Tables.java new file mode 100644 index 00000000..14e49cc0 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/Tables.java @@ -0,0 +1,116 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.AccessLevel; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Authority; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangelog; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangeloglock; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.EsiaUser; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserAccountUserGroup; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserGroupUserRole; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserRoleAuthority; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnit; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnitAdditionalInfo; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.SimpleCredentials; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountAdditionInfo; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountRefreshToken; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountVerification; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup; +import ervu_usr_autority.ervu_usr_autority.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.databasechangelog. + */ + public static final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; + + /** + * The table security.databasechangeloglock. + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; + + /** + * 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.org_unit_additional_info. + */ + public static final OrgUnitAdditionalInfo ORG_UNIT_ADDITIONAL_INFO = OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO; + + /** + * The table security.simple_credentials. + */ + public static final SimpleCredentials SIMPLE_CREDENTIALS = SimpleCredentials.SIMPLE_CREDENTIALS; + + /** + * The table security.user_account. + */ + public static final UserAccount USER_ACCOUNT = UserAccount.USER_ACCOUNT; + + /** + * The table security.user_account_addition_info. + */ + public static final UserAccountAdditionInfo USER_ACCOUNT_ADDITION_INFO = UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO; + + /** + * The table security.user_account_refresh_token. + */ + public static final UserAccountRefreshToken USER_ACCOUNT_REFRESH_TOKEN = UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN; + + /** + * The table security.user_account_verification. + */ + public static final UserAccountVerification USER_ACCOUNT_VERIFICATION = UserAccountVerification.USER_ACCOUNT_VERIFICATION; + + /** + * 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_usr_autority/ervu_usr_autority/db_beans/security/tables/AccessLevel.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/AccessLevel.java new file mode 100644 index 00000000..173cc5ec --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/AccessLevel.java @@ -0,0 +1,284 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/Authority.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Authority.java new file mode 100644 index 00000000..00ade260 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Authority.java @@ -0,0 +1,294 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserRoleAuthority.LinkUserRoleAuthorityPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserRole.UserRolePath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/Databasechangelog.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Databasechangelog.java new file mode 100644 index 00000000..f7f9d482 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Databasechangelog.java @@ -0,0 +1,277 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.DatabasechangelogRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangelog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.databasechangelog + */ + public static final Databasechangelog DATABASECHANGELOG = new Databasechangelog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangelogRecord.class; + } + + /** + * The column security.databasechangelog.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column security.databasechangelog.author. + */ + public final TableField AUTHOR = createField(DSL.name("author"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column security.databasechangelog.filename. + */ + public final TableField FILENAME = createField(DSL.name("filename"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column security.databasechangelog.dateexecuted. + */ + public final TableField DATEEXECUTED = createField(DSL.name("dateexecuted"), SQLDataType.TIMESTAMP(0).nullable(false), this, ""); + + /** + * The column security.databasechangelog.orderexecuted. + */ + public final TableField ORDEREXECUTED = createField(DSL.name("orderexecuted"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column security.databasechangelog.exectype. + */ + public final TableField EXECTYPE = createField(DSL.name("exectype"), SQLDataType.VARCHAR(10).nullable(false), this, ""); + + /** + * The column security.databasechangelog.md5sum. + */ + public final TableField MD5SUM = createField(DSL.name("md5sum"), SQLDataType.VARCHAR(35), this, ""); + + /** + * The column security.databasechangelog.description. + */ + public final TableField DESCRIPTION = createField(DSL.name("description"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column security.databasechangelog.comments. + */ + public final TableField COMMENTS = createField(DSL.name("comments"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column security.databasechangelog.tag. + */ + public final TableField TAG = createField(DSL.name("tag"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column security.databasechangelog.liquibase. + */ + public final TableField LIQUIBASE = createField(DSL.name("liquibase"), SQLDataType.VARCHAR(20), this, ""); + + /** + * The column security.databasechangelog.contexts. + */ + public final TableField CONTEXTS = createField(DSL.name("contexts"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column security.databasechangelog.labels. + */ + public final TableField LABELS = createField(DSL.name("labels"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column security.databasechangelog.deployment_id. + */ + public final TableField DEPLOYMENT_ID = createField(DSL.name("deployment_id"), SQLDataType.VARCHAR(10), this, ""); + + private Databasechangelog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangelog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.databasechangelog table reference + */ + public Databasechangelog(String alias) { + this(DSL.name(alias), DATABASECHANGELOG); + } + + /** + * Create an aliased security.databasechangelog table reference + */ + public Databasechangelog(Name alias) { + this(alias, DATABASECHANGELOG); + } + + /** + * Create a security.databasechangelog table reference + */ + public Databasechangelog() { + this(DSL.name("databasechangelog"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public Databasechangelog as(String alias) { + return new Databasechangelog(DSL.name(alias), this); + } + + @Override + public Databasechangelog as(Name alias) { + return new Databasechangelog(alias, this); + } + + @Override + public Databasechangelog as(Table alias) { + return new Databasechangelog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(String name) { + return new Databasechangelog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Name name) { + return new Databasechangelog(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Table name) { + return new Databasechangelog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition condition) { + return new Databasechangelog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Databasechangeloglock.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Databasechangeloglock.java new file mode 100644 index 00000000..d351aee1 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/Databasechangeloglock.java @@ -0,0 +1,236 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.DatabasechangeloglockRecord; + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangeloglock extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.databasechangeloglock + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = new Databasechangeloglock(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangeloglockRecord.class; + } + + /** + * The column security.databasechangeloglock.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column security.databasechangeloglock.locked. + */ + public final TableField LOCKED = createField(DSL.name("locked"), SQLDataType.BOOLEAN.nullable(false), this, ""); + + /** + * The column security.databasechangeloglock.lockgranted. + */ + public final TableField LOCKGRANTED = createField(DSL.name("lockgranted"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column security.databasechangeloglock.lockedby. + */ + public final TableField LOCKEDBY = createField(DSL.name("lockedby"), SQLDataType.VARCHAR(255), this, ""); + + private Databasechangeloglock(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangeloglock(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.databasechangeloglock table + * reference + */ + public Databasechangeloglock(String alias) { + this(DSL.name(alias), DATABASECHANGELOGLOCK); + } + + /** + * Create an aliased security.databasechangeloglock table + * reference + */ + public Databasechangeloglock(Name alias) { + this(alias, DATABASECHANGELOGLOCK); + } + + /** + * Create a security.databasechangeloglock table reference + */ + public Databasechangeloglock() { + this(DSL.name("databasechangeloglock"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.DATABASECHANGELOGLOCK_PKEY; + } + + @Override + public Databasechangeloglock as(String alias) { + return new Databasechangeloglock(DSL.name(alias), this); + } + + @Override + public Databasechangeloglock as(Name alias) { + return new Databasechangeloglock(alias, this); + } + + @Override + public Databasechangeloglock as(Table alias) { + return new Databasechangeloglock(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(String name) { + return new Databasechangeloglock(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Name name) { + return new Databasechangeloglock(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Table name) { + return new Databasechangeloglock(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition condition) { + return new Databasechangeloglock(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/EsiaUser.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/EsiaUser.java new file mode 100644 index 00000000..4b576694 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/EsiaUser.java @@ -0,0 +1,289 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserAccountUserGroup.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserAccountUserGroup.java new file mode 100644 index 00000000..959b27a2 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserAccountUserGroup.java @@ -0,0 +1,315 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_usr_autority.ervu_usr_autority.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).defaultValue(DSL.field(DSL.raw("uuid_generate_v4()"), SQLDataType.CHAR)), 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_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserGroupUserRole.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserGroupUserRole.java new file mode 100644 index 00000000..13b006ec --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserGroupUserRole.java @@ -0,0 +1,310 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserRole.UserRolePath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserRoleAuthority.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserRoleAuthority.java new file mode 100644 index 00000000..a988e4b7 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/LinkUserRoleAuthority.java @@ -0,0 +1,310 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Authority.AuthorityPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserRole.UserRolePath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/OrgUnit.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/OrgUnit.java new file mode 100644 index 00000000..6709b574 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/OrgUnit.java @@ -0,0 +1,312 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnit.OrgUnitPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/OrgUnitAdditionalInfo.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/OrgUnitAdditionalInfo.java new file mode 100644 index 00000000..0cd70f0a --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/OrgUnitAdditionalInfo.java @@ -0,0 +1,225 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.OrgUnitAdditionalInfoRecord; + +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 OrgUnitAdditionalInfo extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.org_unit_additional_info + */ + public static final OrgUnitAdditionalInfo ORG_UNIT_ADDITIONAL_INFO = new OrgUnitAdditionalInfo(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return OrgUnitAdditionalInfoRecord.class; + } + + /** + * The column security.org_unit_additional_info.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.org_unit_additional_info.schema. + */ + public final TableField SCHEMA = createField(DSL.name("schema"), SQLDataType.VARCHAR(1000).nullable(false), this, ""); + + private OrgUnitAdditionalInfo(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private OrgUnitAdditionalInfo(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.org_unit_additional_info table + * reference + */ + public OrgUnitAdditionalInfo(String alias) { + this(DSL.name(alias), ORG_UNIT_ADDITIONAL_INFO); + } + + /** + * Create an aliased security.org_unit_additional_info table + * reference + */ + public OrgUnitAdditionalInfo(Name alias) { + this(alias, ORG_UNIT_ADDITIONAL_INFO); + } + + /** + * Create a security.org_unit_additional_info table reference + */ + public OrgUnitAdditionalInfo() { + this(DSL.name("org_unit_additional_info"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_ORG_UNIT_ADDITIONAL_INFO; + } + + @Override + public OrgUnitAdditionalInfo as(String alias) { + return new OrgUnitAdditionalInfo(DSL.name(alias), this); + } + + @Override + public OrgUnitAdditionalInfo as(Name alias) { + return new OrgUnitAdditionalInfo(alias, this); + } + + @Override + public OrgUnitAdditionalInfo as(Table alias) { + return new OrgUnitAdditionalInfo(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public OrgUnitAdditionalInfo rename(String name) { + return new OrgUnitAdditionalInfo(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public OrgUnitAdditionalInfo rename(Name name) { + return new OrgUnitAdditionalInfo(name, null); + } + + /** + * Rename this table + */ + @Override + public OrgUnitAdditionalInfo rename(Table name) { + return new OrgUnitAdditionalInfo(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnitAdditionalInfo where(Condition condition) { + return new OrgUnitAdditionalInfo(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnitAdditionalInfo where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnitAdditionalInfo where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnitAdditionalInfo where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnitAdditionalInfo where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnitAdditionalInfo where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnitAdditionalInfo where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public OrgUnitAdditionalInfo where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnitAdditionalInfo whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public OrgUnitAdditionalInfo whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/SimpleCredentials.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/SimpleCredentials.java new file mode 100644 index 00000000..f4f3dd54 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/SimpleCredentials.java @@ -0,0 +1,292 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.SimpleCredentialsRecord; + +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 SimpleCredentials extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.simple_credentials + */ + public static final SimpleCredentials SIMPLE_CREDENTIALS = new SimpleCredentials(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return SimpleCredentialsRecord.class; + } + + /** + * The column security.simple_credentials.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.simple_credentials.password. + */ + public final TableField PASSWORD = createField(DSL.name("password"), SQLDataType.VARCHAR(128).nullable(false), this, ""); + + /** + * The column security.simple_credentials.password_expires. + */ + public final TableField PASSWORD_EXPIRES = createField(DSL.name("password_expires"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column security.simple_credentials.password_updated. + */ + public final TableField PASSWORD_UPDATED = createField(DSL.name("password_updated"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private SimpleCredentials(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private SimpleCredentials(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.simple_credentials table + * reference + */ + public SimpleCredentials(String alias) { + this(DSL.name(alias), SIMPLE_CREDENTIALS); + } + + /** + * Create an aliased security.simple_credentials table + * reference + */ + public SimpleCredentials(Name alias) { + this(alias, SIMPLE_CREDENTIALS); + } + + /** + * Create a security.simple_credentials table reference + */ + public SimpleCredentials() { + this(DSL.name("simple_credentials"), null); + } + + public SimpleCredentials(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, SIMPLE_CREDENTIALS); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class SimpleCredentialsPath extends SimpleCredentials implements Path { + public SimpleCredentialsPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private SimpleCredentialsPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public SimpleCredentialsPath as(String alias) { + return new SimpleCredentialsPath(DSL.name(alias), this); + } + + @Override + public SimpleCredentialsPath as(Name alias) { + return new SimpleCredentialsPath(alias, this); + } + + @Override + public SimpleCredentialsPath as(Table alias) { + return new SimpleCredentialsPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_DOMESTIC_USER; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.SIMPLE_CREDENTIALS__FK_DOMESTIC_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.SIMPLE_CREDENTIALS__FK_DOMESTIC_USER1, null); + + return _userAccount; + } + + @Override + public SimpleCredentials as(String alias) { + return new SimpleCredentials(DSL.name(alias), this); + } + + @Override + public SimpleCredentials as(Name alias) { + return new SimpleCredentials(alias, this); + } + + @Override + public SimpleCredentials as(Table alias) { + return new SimpleCredentials(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public SimpleCredentials rename(String name) { + return new SimpleCredentials(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public SimpleCredentials rename(Name name) { + return new SimpleCredentials(name, null); + } + + /** + * Rename this table + */ + @Override + public SimpleCredentials rename(Table name) { + return new SimpleCredentials(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public SimpleCredentials where(Condition condition) { + return new SimpleCredentials(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public SimpleCredentials where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public SimpleCredentials where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public SimpleCredentials where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public SimpleCredentials where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public SimpleCredentials where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public SimpleCredentials where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public SimpleCredentials where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public SimpleCredentials whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public SimpleCredentials whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccount.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccount.java new file mode 100644 index 00000000..c4d1756f --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccount.java @@ -0,0 +1,437 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.EsiaUser.EsiaUserPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserAccountUserGroup.LinkUserAccountUserGroupPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnit.OrgUnitPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.SimpleCredentials.SimpleCredentialsPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountAdditionInfo.UserAccountAdditionInfoPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountRefreshToken.UserAccountRefreshTokenPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountVerification.UserAccountVerificationPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_usr_autority.ervu_usr_autority.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).defaultValue(DSL.field(DSL.raw("uuid_generate_v4()"), SQLDataType.CHAR)), 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 SimpleCredentialsPath _simpleCredentials; + + /** + * Get the implicit to-many join path to the + * security.simple_credentials table + */ + public SimpleCredentialsPath simpleCredentials() { + if (_simpleCredentials == null) + _simpleCredentials = new SimpleCredentialsPath(this, null, Keys.SIMPLE_CREDENTIALS__FK_DOMESTIC_USER1.getInverseKey()); + + return _simpleCredentials; + } + + private transient UserAccountAdditionInfoPath _userAccountAdditionInfo; + + /** + * Get the implicit to-many join path to the + * security.user_account_addition_info table + */ + public UserAccountAdditionInfoPath userAccountAdditionInfo() { + if (_userAccountAdditionInfo == null) + _userAccountAdditionInfo = new UserAccountAdditionInfoPath(this, null, Keys.USER_ACCOUNT_ADDITION_INFO__FK_USER_ACCOUNT_ID.getInverseKey()); + + return _userAccountAdditionInfo; + } + + 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; + } + + private transient UserAccountVerificationPath _userAccountVerification; + + /** + * Get the implicit to-many join path to the + * security.user_account_verification table + */ + public UserAccountVerificationPath userAccountVerification() { + if (_userAccountVerification == null) + _userAccountVerification = new UserAccountVerificationPath(this, null, Keys.USER_ACCOUNT_VERIFICATION__FK_USER_ACCOUNT_USER_ACCOUNT_VERIFICATION.getInverseKey()); + + return _userAccountVerification; + } + + /** + * 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_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountAdditionInfo.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountAdditionInfo.java new file mode 100644 index 00000000..b48b93fa --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountAdditionInfo.java @@ -0,0 +1,332 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserAccountAdditionInfoRecord; + +import java.sql.Date; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.ForeignKey; +import org.jooq.Identity; +import org.jooq.InverseForeignKey; +import org.jooq.Name; +import org.jooq.Path; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.Record; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UserAccountAdditionInfo extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * security.user_account_addition_info + */ + public static final UserAccountAdditionInfo USER_ACCOUNT_ADDITION_INFO = new UserAccountAdditionInfo(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserAccountAdditionInfoRecord.class; + } + + /** + * The column + * security.user_account_addition_info.user_account_addition_info_id. + */ + public final TableField USER_ACCOUNT_ADDITION_INFO_ID = createField(DSL.name("user_account_addition_info_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, ""); + + /** + * The column + * security.user_account_addition_info.user_account_id. + */ + public final TableField USER_ACCOUNT_ID = createField(DSL.name("user_account_id"), SQLDataType.VARCHAR(36), this, ""); + + /** + * The column security.user_account_addition_info.ip_address. + */ + public final TableField IP_ADDRESS = createField(DSL.name("ip_address"), SQLDataType.VARCHAR(100), this, ""); + + /** + * The column + * security.user_account_addition_info.job_position_id. + */ + public final TableField JOB_POSITION_ID = createField(DSL.name("job_position_id"), SQLDataType.BIGINT, this, ""); + + /** + * The column security.user_account_addition_info.comment. + */ + public final TableField COMMENT = createField(DSL.name("comment"), SQLDataType.VARCHAR, this, ""); + + /** + * The column security.user_account_addition_info.user_loaded. + */ + public final TableField USER_LOADED = createField(DSL.name("user_loaded"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.field(DSL.raw("false"), SQLDataType.BOOLEAN)), this, ""); + + /** + * The column security.user_account_addition_info.password. + */ + public final TableField PASSWORD = createField(DSL.name("password"), SQLDataType.VARCHAR, this, ""); + + /** + * The column security.user_account_addition_info.sex. + */ + public final TableField SEX = createField(DSL.name("sex"), SQLDataType.VARCHAR, this, ""); + + /** + * The column security.user_account_addition_info.birth_date. + */ + public final TableField BIRTH_DATE = createField(DSL.name("birth_date"), SQLDataType.DATE, this, ""); + + /** + * The column security.user_account_addition_info.snils. + */ + public final TableField SNILS = createField(DSL.name("snils"), SQLDataType.VARCHAR, this, ""); + + private UserAccountAdditionInfo(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserAccountAdditionInfo(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.user_account_addition_info table + * reference + */ + public UserAccountAdditionInfo(String alias) { + this(DSL.name(alias), USER_ACCOUNT_ADDITION_INFO); + } + + /** + * Create an aliased security.user_account_addition_info table + * reference + */ + public UserAccountAdditionInfo(Name alias) { + this(alias, USER_ACCOUNT_ADDITION_INFO); + } + + /** + * Create a security.user_account_addition_info table reference + */ + public UserAccountAdditionInfo() { + this(DSL.name("user_account_addition_info"), null); + } + + public UserAccountAdditionInfo(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_ACCOUNT_ADDITION_INFO); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserAccountAdditionInfoPath extends UserAccountAdditionInfo implements Path { + public UserAccountAdditionInfoPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserAccountAdditionInfoPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserAccountAdditionInfoPath as(String alias) { + return new UserAccountAdditionInfoPath(DSL.name(alias), this); + } + + @Override + public UserAccountAdditionInfoPath as(Name alias) { + return new UserAccountAdditionInfoPath(alias, this); + } + + @Override + public UserAccountAdditionInfoPath as(Table alias) { + return new UserAccountAdditionInfoPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public Identity getIdentity() { + return (Identity) super.getIdentity(); + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_USER_ACCOUNT_ADDITION_INFO; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.USER_ACCOUNT_ADDITION_INFO__FK_USER_ACCOUNT_ID); + } + + 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_ADDITION_INFO__FK_USER_ACCOUNT_ID, null); + + return _userAccount; + } + + @Override + public UserAccountAdditionInfo as(String alias) { + return new UserAccountAdditionInfo(DSL.name(alias), this); + } + + @Override + public UserAccountAdditionInfo as(Name alias) { + return new UserAccountAdditionInfo(alias, this); + } + + @Override + public UserAccountAdditionInfo as(Table alias) { + return new UserAccountAdditionInfo(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserAccountAdditionInfo rename(String name) { + return new UserAccountAdditionInfo(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserAccountAdditionInfo rename(Name name) { + return new UserAccountAdditionInfo(name, null); + } + + /** + * Rename this table + */ + @Override + public UserAccountAdditionInfo rename(Table name) { + return new UserAccountAdditionInfo(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountAdditionInfo where(Condition condition) { + return new UserAccountAdditionInfo(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountAdditionInfo where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountAdditionInfo where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountAdditionInfo where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountAdditionInfo where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountAdditionInfo where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountAdditionInfo where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountAdditionInfo where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountAdditionInfo whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountAdditionInfo whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountRefreshToken.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountRefreshToken.java new file mode 100644 index 00000000..cf75659f --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountRefreshToken.java @@ -0,0 +1,302 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountVerification.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountVerification.java new file mode 100644 index 00000000..fb4de275 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserAccountVerification.java @@ -0,0 +1,288 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records.UserAccountVerificationRecord; + +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 UserAccountVerification extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of security.user_account_verification + */ + public static final UserAccountVerification USER_ACCOUNT_VERIFICATION = new UserAccountVerification(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return UserAccountVerificationRecord.class; + } + + /** + * The column + * security.user_account_verification.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_verification.token. + */ + public final TableField TOKEN = createField(DSL.name("token"), SQLDataType.CHAR(36).nullable(false), this, ""); + + /** + * The column security.user_account_verification.created. + */ + public final TableField CREATED = createField(DSL.name("created"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + private UserAccountVerification(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private UserAccountVerification(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased security.user_account_verification table + * reference + */ + public UserAccountVerification(String alias) { + this(DSL.name(alias), USER_ACCOUNT_VERIFICATION); + } + + /** + * Create an aliased security.user_account_verification table + * reference + */ + public UserAccountVerification(Name alias) { + this(alias, USER_ACCOUNT_VERIFICATION); + } + + /** + * Create a security.user_account_verification table reference + */ + public UserAccountVerification() { + this(DSL.name("user_account_verification"), null); + } + + public UserAccountVerification(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath, USER_ACCOUNT_VERIFICATION); + } + + /** + * A subtype implementing {@link Path} for simplified path-based joins. + */ + public static class UserAccountVerificationPath extends UserAccountVerification implements Path { + public UserAccountVerificationPath(Table path, ForeignKey childPath, InverseForeignKey parentPath) { + super(path, childPath, parentPath); + } + private UserAccountVerificationPath(Name alias, Table aliased) { + super(alias, aliased); + } + + @Override + public UserAccountVerificationPath as(String alias) { + return new UserAccountVerificationPath(DSL.name(alias), this); + } + + @Override + public UserAccountVerificationPath as(Name alias) { + return new UserAccountVerificationPath(alias, this); + } + + @Override + public UserAccountVerificationPath as(Table alias) { + return new UserAccountVerificationPath(alias.getQualifiedName(), this); + } + } + + @Override + public Schema getSchema() { + return aliased() ? null : Security.SECURITY; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.PK_USER_ACCOUNT_VERIFICATION; + } + + @Override + public List> getReferences() { + return Arrays.asList(Keys.USER_ACCOUNT_VERIFICATION__FK_USER_ACCOUNT_USER_ACCOUNT_VERIFICATION); + } + + 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_VERIFICATION__FK_USER_ACCOUNT_USER_ACCOUNT_VERIFICATION, null); + + return _userAccount; + } + + @Override + public UserAccountVerification as(String alias) { + return new UserAccountVerification(DSL.name(alias), this); + } + + @Override + public UserAccountVerification as(Name alias) { + return new UserAccountVerification(alias, this); + } + + @Override + public UserAccountVerification as(Table alias) { + return new UserAccountVerification(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public UserAccountVerification rename(String name) { + return new UserAccountVerification(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public UserAccountVerification rename(Name name) { + return new UserAccountVerification(name, null); + } + + /** + * Rename this table + */ + @Override + public UserAccountVerification rename(Table name) { + return new UserAccountVerification(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountVerification where(Condition condition) { + return new UserAccountVerification(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountVerification where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountVerification where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountVerification where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountVerification where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountVerification where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountVerification where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public UserAccountVerification where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountVerification whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public UserAccountVerification whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserGroup.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserGroup.java new file mode 100644 index 00000000..893beb07 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserGroup.java @@ -0,0 +1,369 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.LinkUserApplicationUserGroup.LinkUserApplicationUserGroupPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.public_.tables.UserApplicationList.UserApplicationListPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.AccessLevel.AccessLevelPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserAccountUserGroup.LinkUserAccountUserGroupPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserGroupUserRole.LinkUserGroupUserRolePath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccount.UserAccountPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserRole.UserRolePath; +import ervu_usr_autority.ervu_usr_autority.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 LinkUserApplicationUserGroupPath _linkUserApplicationUserGroup; + + /** + * Get the implicit to-many join path to the + * public.link_user_application_user_group table + */ + public LinkUserApplicationUserGroupPath linkUserApplicationUserGroup() { + if (_linkUserApplicationUserGroup == null) + _linkUserApplicationUserGroup = new LinkUserApplicationUserGroupPath(this, null, ervu_usr_autority.ervu_usr_autority.db_beans.public_.Keys.LINK_USER_APPLICATION_USER_GROUP__FK_USER_GROUP.getInverseKey()); + + return _linkUserApplicationUserGroup; + } + + 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 + * public.user_application_list table + */ + public UserApplicationListPath userApplicationList() { + return linkUserApplicationUserGroup().userApplicationList(); + } + + /** + * 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_usr_autority/ervu_usr_autority/db_beans/security/tables/UserRole.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserRole.java new file mode 100644 index 00000000..5e23df70 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/UserRole.java @@ -0,0 +1,322 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Keys; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.Security; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Authority.AuthorityPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserGroupUserRole.LinkUserGroupUserRolePath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.LinkUserRoleAuthority.LinkUserRoleAuthorityPath; +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserGroup.UserGroupPath; +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/AccessLevelRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/AccessLevelRecord.java new file mode 100644 index 00000000..afb4973c --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/AccessLevelRecord.java @@ -0,0 +1,94 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/AuthorityRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/AuthorityRecord.java new file mode 100644 index 00000000..793d8286 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/AuthorityRecord.java @@ -0,0 +1,96 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/DatabasechangelogRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/DatabasechangelogRecord.java new file mode 100644 index 00000000..7d349e98 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/DatabasechangelogRecord.java @@ -0,0 +1,251 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangelog; + +import java.sql.Timestamp; + +import org.jooq.impl.TableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangelogRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.databasechangelog.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for security.databasechangelog.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for security.databasechangelog.author. + */ + public void setAuthor(String value) { + set(1, value); + } + + /** + * Getter for security.databasechangelog.author. + */ + public String getAuthor() { + return (String) get(1); + } + + /** + * Setter for security.databasechangelog.filename. + */ + public void setFilename(String value) { + set(2, value); + } + + /** + * Getter for security.databasechangelog.filename. + */ + public String getFilename() { + return (String) get(2); + } + + /** + * Setter for security.databasechangelog.dateexecuted. + */ + public void setDateexecuted(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.databasechangelog.dateexecuted. + */ + public Timestamp getDateexecuted() { + return (Timestamp) get(3); + } + + /** + * Setter for security.databasechangelog.orderexecuted. + */ + public void setOrderexecuted(Integer value) { + set(4, value); + } + + /** + * Getter for security.databasechangelog.orderexecuted. + */ + public Integer getOrderexecuted() { + return (Integer) get(4); + } + + /** + * Setter for security.databasechangelog.exectype. + */ + public void setExectype(String value) { + set(5, value); + } + + /** + * Getter for security.databasechangelog.exectype. + */ + public String getExectype() { + return (String) get(5); + } + + /** + * Setter for security.databasechangelog.md5sum. + */ + public void setMd5sum(String value) { + set(6, value); + } + + /** + * Getter for security.databasechangelog.md5sum. + */ + public String getMd5sum() { + return (String) get(6); + } + + /** + * Setter for security.databasechangelog.description. + */ + public void setDescription(String value) { + set(7, value); + } + + /** + * Getter for security.databasechangelog.description. + */ + public String getDescription() { + return (String) get(7); + } + + /** + * Setter for security.databasechangelog.comments. + */ + public void setComments(String value) { + set(8, value); + } + + /** + * Getter for security.databasechangelog.comments. + */ + public String getComments() { + return (String) get(8); + } + + /** + * Setter for security.databasechangelog.tag. + */ + public void setTag(String value) { + set(9, value); + } + + /** + * Getter for security.databasechangelog.tag. + */ + public String getTag() { + return (String) get(9); + } + + /** + * Setter for security.databasechangelog.liquibase. + */ + public void setLiquibase(String value) { + set(10, value); + } + + /** + * Getter for security.databasechangelog.liquibase. + */ + public String getLiquibase() { + return (String) get(10); + } + + /** + * Setter for security.databasechangelog.contexts. + */ + public void setContexts(String value) { + set(11, value); + } + + /** + * Getter for security.databasechangelog.contexts. + */ + public String getContexts() { + return (String) get(11); + } + + /** + * Setter for security.databasechangelog.labels. + */ + public void setLabels(String value) { + set(12, value); + } + + /** + * Getter for security.databasechangelog.labels. + */ + public String getLabels() { + return (String) get(12); + } + + /** + * Setter for security.databasechangelog.deployment_id. + */ + public void setDeploymentId(String value) { + set(13, value); + } + + /** + * Getter for security.databasechangelog.deployment_id. + */ + public String getDeploymentId() { + return (String) get(13); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangelogRecord + */ + public DatabasechangelogRecord() { + super(Databasechangelog.DATABASECHANGELOG); + } + + /** + * Create a detached, initialised DatabasechangelogRecord + */ + public DatabasechangelogRecord(String id, String author, String filename, Timestamp dateexecuted, Integer orderexecuted, String exectype, String md5sum, String description, String comments, String tag, String liquibase, String contexts, String labels, String deploymentId) { + super(Databasechangelog.DATABASECHANGELOG); + + setId(id); + setAuthor(author); + setFilename(filename); + setDateexecuted(dateexecuted); + setOrderexecuted(orderexecuted); + setExectype(exectype); + setMd5sum(md5sum); + setDescription(description); + setComments(comments); + setTag(tag); + setLiquibase(liquibase); + setContexts(contexts); + setLabels(labels); + setDeploymentId(deploymentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/DatabasechangeloglockRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/DatabasechangeloglockRecord.java new file mode 100644 index 00000000..f69335ac --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/DatabasechangeloglockRecord.java @@ -0,0 +1,111 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.Databasechangeloglock; + +import java.sql.Timestamp; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangeloglockRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.databasechangeloglock.id. + */ + public void setId(Integer value) { + set(0, value); + } + + /** + * Getter for security.databasechangeloglock.id. + */ + public Integer getId() { + return (Integer) get(0); + } + + /** + * Setter for security.databasechangeloglock.locked. + */ + public void setLocked(Boolean value) { + set(1, value); + } + + /** + * Getter for security.databasechangeloglock.locked. + */ + public Boolean getLocked() { + return (Boolean) get(1); + } + + /** + * Setter for security.databasechangeloglock.lockgranted. + */ + public void setLockgranted(Timestamp value) { + set(2, value); + } + + /** + * Getter for security.databasechangeloglock.lockgranted. + */ + public Timestamp getLockgranted() { + return (Timestamp) get(2); + } + + /** + * Setter for security.databasechangeloglock.lockedby. + */ + public void setLockedby(String value) { + set(3, value); + } + + /** + * Getter for security.databasechangeloglock.lockedby. + */ + public String getLockedby() { + return (String) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord() { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + } + + /** + * Create a detached, initialised DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord(Integer id, Boolean locked, Timestamp lockgranted, String lockedby) { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + + setId(id); + setLocked(locked); + setLockgranted(lockgranted); + setLockedby(lockedby); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/EsiaUserRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/EsiaUserRecord.java new file mode 100644 index 00000000..15262593 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/EsiaUserRecord.java @@ -0,0 +1,94 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java new file mode 100644 index 00000000..dfaf3e3c --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserAccountUserGroupRecord.java @@ -0,0 +1,117 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java new file mode 100644 index 00000000..3956e746 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserGroupUserRoleRecord.java @@ -0,0 +1,113 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java new file mode 100644 index 00000000..427ed4e4 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/LinkUserRoleAuthorityRecord.java @@ -0,0 +1,113 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/OrgUnitAdditionalInfoRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/OrgUnitAdditionalInfoRecord.java new file mode 100644 index 00000000..602e6382 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/OrgUnitAdditionalInfoRecord.java @@ -0,0 +1,79 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.OrgUnitAdditionalInfo; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class OrgUnitAdditionalInfoRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.org_unit_additional_info.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for security.org_unit_additional_info.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for security.org_unit_additional_info.schema. + */ + public void setSchema(String value) { + set(1, value); + } + + /** + * Getter for security.org_unit_additional_info.schema. + */ + public String getSchema() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached OrgUnitAdditionalInfoRecord + */ + public OrgUnitAdditionalInfoRecord() { + super(OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO); + } + + /** + * Create a detached, initialised OrgUnitAdditionalInfoRecord + */ + public OrgUnitAdditionalInfoRecord(String id, String schema) { + super(OrgUnitAdditionalInfo.ORG_UNIT_ADDITIONAL_INFO); + + setId(id); + setSchema(schema); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/OrgUnitRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/OrgUnitRecord.java new file mode 100644 index 00000000..87222c61 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/OrgUnitRecord.java @@ -0,0 +1,124 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/SimpleCredentialsRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/SimpleCredentialsRecord.java new file mode 100644 index 00000000..64cdf134 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/SimpleCredentialsRecord.java @@ -0,0 +1,111 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.SimpleCredentials; + +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 SimpleCredentialsRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for security.simple_credentials.user_account_id. + */ + public void setUserAccountId(String value) { + set(0, value); + } + + /** + * Getter for security.simple_credentials.user_account_id. + */ + public String getUserAccountId() { + return (String) get(0); + } + + /** + * Setter for security.simple_credentials.password. + */ + public void setPassword(String value) { + set(1, value); + } + + /** + * Getter for security.simple_credentials.password. + */ + public String getPassword() { + return (String) get(1); + } + + /** + * Setter for security.simple_credentials.password_expires. + */ + public void setPasswordExpires(Timestamp value) { + set(2, value); + } + + /** + * Getter for security.simple_credentials.password_expires. + */ + public Timestamp getPasswordExpires() { + return (Timestamp) get(2); + } + + /** + * Setter for security.simple_credentials.password_updated. + */ + public void setPasswordUpdated(Timestamp value) { + set(3, value); + } + + /** + * Getter for security.simple_credentials.password_updated. + */ + public Timestamp getPasswordUpdated() { + return (Timestamp) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached SimpleCredentialsRecord + */ + public SimpleCredentialsRecord() { + super(SimpleCredentials.SIMPLE_CREDENTIALS); + } + + /** + * Create a detached, initialised SimpleCredentialsRecord + */ + public SimpleCredentialsRecord(String userAccountId, String password, Timestamp passwordExpires, Timestamp passwordUpdated) { + super(SimpleCredentials.SIMPLE_CREDENTIALS); + + setUserAccountId(userAccountId); + setPassword(password); + setPasswordExpires(passwordExpires); + setPasswordUpdated(passwordUpdated); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountAdditionInfoRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountAdditionInfoRecord.java new file mode 100644 index 00000000..7bbe2a99 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountAdditionInfoRecord.java @@ -0,0 +1,207 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountAdditionInfo; + +import java.sql.Date; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class UserAccountAdditionInfoRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * security.user_account_addition_info.user_account_addition_info_id. + */ + public void setUserAccountAdditionInfoId(Long value) { + set(0, value); + } + + /** + * Getter for + * security.user_account_addition_info.user_account_addition_info_id. + */ + public Long getUserAccountAdditionInfoId() { + return (Long) get(0); + } + + /** + * Setter for + * security.user_account_addition_info.user_account_id. + */ + public void setUserAccountId(String value) { + set(1, value); + } + + /** + * Getter for + * security.user_account_addition_info.user_account_id. + */ + public String getUserAccountId() { + return (String) get(1); + } + + /** + * Setter for security.user_account_addition_info.ip_address. + */ + public void setIpAddress(String value) { + set(2, value); + } + + /** + * Getter for security.user_account_addition_info.ip_address. + */ + public String getIpAddress() { + return (String) get(2); + } + + /** + * Setter for + * security.user_account_addition_info.job_position_id. + */ + public void setJobPositionId(Long value) { + set(3, value); + } + + /** + * Getter for + * security.user_account_addition_info.job_position_id. + */ + public Long getJobPositionId() { + return (Long) get(3); + } + + /** + * Setter for security.user_account_addition_info.comment. + */ + public void setComment(String value) { + set(4, value); + } + + /** + * Getter for security.user_account_addition_info.comment. + */ + public String getComment() { + return (String) get(4); + } + + /** + * Setter for security.user_account_addition_info.user_loaded. + */ + public void setUserLoaded(Boolean value) { + set(5, value); + } + + /** + * Getter for security.user_account_addition_info.user_loaded. + */ + public Boolean getUserLoaded() { + return (Boolean) get(5); + } + + /** + * Setter for security.user_account_addition_info.password. + */ + public void setPassword(String value) { + set(6, value); + } + + /** + * Getter for security.user_account_addition_info.password. + */ + public String getPassword() { + return (String) get(6); + } + + /** + * Setter for security.user_account_addition_info.sex. + */ + public void setSex(String value) { + set(7, value); + } + + /** + * Getter for security.user_account_addition_info.sex. + */ + public String getSex() { + return (String) get(7); + } + + /** + * Setter for security.user_account_addition_info.birth_date. + */ + public void setBirthDate(Date value) { + set(8, value); + } + + /** + * Getter for security.user_account_addition_info.birth_date. + */ + public Date getBirthDate() { + return (Date) get(8); + } + + /** + * Setter for security.user_account_addition_info.snils. + */ + public void setSnils(String value) { + set(9, value); + } + + /** + * Getter for security.user_account_addition_info.snils. + */ + public String getSnils() { + return (String) get(9); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserAccountAdditionInfoRecord + */ + public UserAccountAdditionInfoRecord() { + super(UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO); + } + + /** + * Create a detached, initialised UserAccountAdditionInfoRecord + */ + public UserAccountAdditionInfoRecord(Long userAccountAdditionInfoId, String userAccountId, String ipAddress, Long jobPositionId, String comment, Boolean userLoaded, String password, String sex, Date birthDate, String snils) { + super(UserAccountAdditionInfo.USER_ACCOUNT_ADDITION_INFO); + + setUserAccountAdditionInfoId(userAccountAdditionInfoId); + setUserAccountId(userAccountId); + setIpAddress(ipAddress); + setJobPositionId(jobPositionId); + setComment(comment); + setUserLoaded(userLoaded); + setPassword(password); + setSex(sex); + setBirthDate(birthDate); + setSnils(snils); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountRecord.java new file mode 100644 index 00000000..d23f7f8f --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountRecord.java @@ -0,0 +1,261 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java new file mode 100644 index 00000000..ddc06d09 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountRefreshTokenRecord.java @@ -0,0 +1,134 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountVerificationRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountVerificationRecord.java new file mode 100644 index 00000000..ddc2d5de --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserAccountVerificationRecord.java @@ -0,0 +1,98 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.UserAccountVerification; + +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 UserAccountVerificationRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * security.user_account_verification.user_account_id. + */ + public void setUserAccountId(String value) { + set(0, value); + } + + /** + * Getter for + * security.user_account_verification.user_account_id. + */ + public String getUserAccountId() { + return (String) get(0); + } + + /** + * Setter for security.user_account_verification.token. + */ + public void setToken(String value) { + set(1, value); + } + + /** + * Getter for security.user_account_verification.token. + */ + public String getToken() { + return (String) get(1); + } + + /** + * Setter for security.user_account_verification.created. + */ + public void setCreated(Timestamp value) { + set(2, value); + } + + /** + * Getter for security.user_account_verification.created. + */ + public Timestamp getCreated() { + return (Timestamp) get(2); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached UserAccountVerificationRecord + */ + public UserAccountVerificationRecord() { + super(UserAccountVerification.USER_ACCOUNT_VERIFICATION); + } + + /** + * Create a detached, initialised UserAccountVerificationRecord + */ + public UserAccountVerificationRecord(String userAccountId, String token, Timestamp created) { + super(UserAccountVerification.USER_ACCOUNT_VERIFICATION); + + setUserAccountId(userAccountId); + setToken(token); + setCreated(created); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserGroupRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserGroupRecord.java new file mode 100644 index 00000000..7ada0b3e --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserGroupRecord.java @@ -0,0 +1,126 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserRoleRecord.java b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserRoleRecord.java new file mode 100644 index 00000000..cc69dac5 --- /dev/null +++ b/backend/src/main/java/ervu_usr_autority/ervu_usr_autority/db_beans/security/tables/records/UserRoleRecord.java @@ -0,0 +1,111 @@ +/* + * This file is generated by jOOQ. + */ +package ervu_usr_autority.ervu_usr_autority.db_beans.security.tables.records; + + +import ervu_usr_autority.ervu_usr_autority.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/ru/micord/ervu/user_authority/PasswordField.java b/backend/src/main/java/ru/micord/ervu/user_authority/PasswordField.java new file mode 100644 index 00000000..fa307f9b --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/user_authority/PasswordField.java @@ -0,0 +1,16 @@ +package ru.micord.ervu.user_authority; + +import component.field.persist.TextField; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.password.PasswordEncoder; + +public class PasswordField extends TextField { + + @Autowired + private PasswordEncoder passwordEncoder; + + @Override + public String convertValueForSave(String value) { + return super.convertValueForSave(passwordEncoder.encode(value)); + } +} diff --git a/backend/src/main/java/ru/micord/ervu/user_authority/service/UserAuthorityFormService.java b/backend/src/main/java/ru/micord/ervu/user_authority/service/UserAuthorityFormService.java new file mode 100644 index 00000000..393e6fdc --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/user_authority/service/UserAuthorityFormService.java @@ -0,0 +1,39 @@ +package ru.micord.ervu.user_authority.service; + +import model.BpmnVariableForSave; +import model.FieldData; +import ru.cg.webbpm.modules.webkit.annotations.RpcSharedProperty; +import service.container.AbstractGraphFormService; +import service.container.FormMode; +import service.container.FormService; + +import java.util.List; + +/** + * Обрезанный FormServiceImpl из платформы, отвязанный от BPMN зависимостей + * Поддержку BMPN решели из этого проекта убрать + * @author Denis Ivanov + */ + +public class UserAuthorityFormService extends AbstractGraphFormService implements FormService { + + @RpcSharedProperty + public FormMode mode = FormMode.SIMPLE; // this is to share property with the default Form.ts + + @Override + public Object saveData(String s, List list, Boolean aBoolean, + List list1) throws Exception { + throw new UnsupportedOperationException("BPMN operations are unsupported"); + } + + @Override + public List loadData() { + throw new UnsupportedOperationException("Loading with no id is unsupported"); + } + + @Override + public Object deleteData(String s, List list) { + throw new UnsupportedOperationException("BPMN operations are unsupported"); + } + +} diff --git a/backend/src/main/resources/.gitkeep b/backend/src/main/resources/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config.md b/config.md new file mode 100644 index 00000000..91730af4 --- /dev/null +++ b/config.md @@ -0,0 +1,769 @@ +# Описание параметров конфигурации сервера приложений + +Файл /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 имени. + +## Модуль BPMN + +```bpmn.enable``` - по умолчанию true, отвечает за создание бинов использующих модуль bpmn (при флаге false можно убрать зависимости модуля, смотри **docs/ru/developer-guide/Отключение_bpmn_модуля.md**) + +Пример: +```xml + +``` + +## 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 + +## Url проекта + +- `backend.url` - задает url для проека. Если параметра нет, то берется дефолтные: +``` +window.location.protocol + '//' + window.location.hostname + ':' + window.location.port + '/backend' +``` +Пример: +``` +http://10.10.31.80:8080/ +``` + +## Таймер очистки закешированных значений фильтров + +- `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 00000000..ba9a786b --- /dev/null +++ b/config/.gitignore @@ -0,0 +1,2 @@ +/*.ear +/*.jar diff --git a/config/Dockerfile b/config/Dockerfile new file mode 100644 index 00000000..142795b5 --- /dev/null +++ b/config/Dockerfile @@ -0,0 +1,42 @@ +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 + +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 + +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/ervu_usr_autority/version || exit 1 diff --git a/config/JDK_version b/config/JDK_version new file mode 100644 index 00000000..98d9bcb7 --- /dev/null +++ b/config/JDK_version @@ -0,0 +1 @@ +17 diff --git a/config/db.env b/config/db.env new file mode 100644 index 00000000..adfbc1d2 --- /dev/null +++ b/config/db.env @@ -0,0 +1,20 @@ +# App datasource +DB_APP_USERNAME=ervu +DB_APP_PASSWORD=ervu_password +DB_APP_HOST=db +DB_APP_PORT=5432 +DB_APP_NAME=ervu_usr_autority + +# Security datasource +DB_SEC_USERNAME=ervu +DB_SEC_PASSWORD=ervu_password +DB_SEC_HOST=db +DB_SEC_PORT=5432 +DB_SEC_NAME=ervu_usr_autority + +# jBPM datasorce +DB_JBPM_USERNAME=ervu_jbpm +DB_JBPM_PASSWORD=ervu_jbpm_password +DB_JBPM_HOST=db +DB_JBPM_PORT=5432 +DB_JBPM_NAME=ervu_usr_autority_jbpm diff --git a/config/dev/standalone.xml b/config/dev/standalone.xml new file mode 100644 index 00000000..20a30f60 --- /dev/null +++ b/config/dev/standalone.xml @@ -0,0 +1,555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jdbc:h2:mem:jbpm;DB_CLOSE_DELAY=-1 + h2 + + ${env.DB_JBPM_USERNAME:sa} + ${env.DB_JBPM_PASSWORD:sa} + + + 300 + + + + jdbc:postgresql://10.10.31.118:5432/ervu_usr_autority + postgres + + ervu + ervu + + + 300 + + + + + org.h2.jdbcx.JdbcDataSource + + + org.postgresql.xa.PGXADataSource + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jboss.bind.address:127.0.0.1} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/docker-compose.yaml b/config/docker-compose.yaml new file mode 100644 index 00000000..c2dbc3f1 --- /dev/null +++ b/config/docker-compose.yaml @@ -0,0 +1,43 @@ +version: "3" + +volumes: + db-data: + +services: + db: + image: postgres:15 + restart: unless-stopped + volumes: + - ./initdb.d:/docker-entrypoint-initdb.d + - db-data:/var/lib/postgresql/data + command: + - "--max_prepared_transactions=100" + ports: + - 5432 +# - "127.0.0.1:5432:5432" + environment: + - POSTGRES_PASSWORD=supersecretpassword + - TZ="Europe/Moscow" + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + retries: 5 + start_period: 30s + timeout: 10s + + webbpm-app: + build: + context: . + dockerfile: Dockerfile + depends_on: + db: + condition: service_healthy + ports: + - 9990 + - 8080 + - 8787 + - 12345 + environment: + - TZ="Europe/Moscow" + env_file: + - db.env diff --git a/config/entrypoint.sh b/config/entrypoint.sh new file mode 100644 index 00000000..7178804e --- /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/initdb.d/01_createdb.sql b/config/initdb.d/01_createdb.sql new file mode 100644 index 00000000..3d637d6b --- /dev/null +++ b/config/initdb.d/01_createdb.sql @@ -0,0 +1,26 @@ +CREATE ROLE "ervu" WITH + LOGIN + NOSUPERUSER + INHERIT + NOCREATEDB + NOCREATEROLE + NOREPLICATION + PASSWORD 'ervu_password'; + +CREATE ROLE "ervu_jbpm" WITH + LOGIN + NOSUPERUSER + INHERIT + NOCREATEDB + NOCREATEROLE + NOREPLICATION + PASSWORD 'ervu_jbpm_password'; + + +CREATE DATABASE "ervu_usr_autority" + WITH + OWNER = "ervu"; + +CREATE DATABASE "ervu_usr_autority_jbpm" + WITH + OWNER = "ervu_jbpm"; diff --git a/config/initdb.d/02_ervu_usr_autority.sql b/config/initdb.d/02_ervu_usr_autority.sql new file mode 100644 index 00000000..b07b9d7a --- /dev/null +++ b/config/initdb.d/02_ervu_usr_autority.sql @@ -0,0 +1,2026 @@ +\c "ervu_usr_autority"; + +-- +-- PostgreSQL database dump +-- + +-- Dumped from database version 15.4 +-- Dumped by pg_dump version 15.4 + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Name: security; Type: SCHEMA; Schema: -; Owner: ervu +-- + +CREATE SCHEMA security; + + +ALTER SCHEMA security OWNER TO ervu; + +-- +-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public; + + +-- +-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)'; + + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- Name: job_position; Type: TABLE; Schema: public; Owner: ervu +-- + +CREATE TABLE public.job_position ( + job_position_id bigint NOT NULL, + name character varying(100) NOT NULL, + code character varying(100) NOT NULL, + start_date timestamp without time zone DEFAULT now() NOT NULL, + close_date timestamp without time zone +); + + +ALTER TABLE public.job_position OWNER TO ervu; + +-- +-- Name: job_position_job_position_id_seq; Type: SEQUENCE; Schema: public; Owner: ervu +-- + +CREATE SEQUENCE public.job_position_job_position_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.job_position_job_position_id_seq OWNER TO ervu; + +-- +-- Name: job_position_job_position_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: ervu +-- + +ALTER SEQUENCE public.job_position_job_position_id_seq OWNED BY public.job_position.job_position_id; + + +-- +-- Name: link_user_application_user_group; Type: TABLE; Schema: public; Owner: ervu +-- + +CREATE TABLE public.link_user_application_user_group ( + link_user_application_user_group_id bigint NOT NULL, + user_application_list_id bigint NOT NULL, + user_group_id character(36) NOT NULL, + created timestamp without time zone DEFAULT now() +); + + +ALTER TABLE public.link_user_application_user_group OWNER TO ervu; + +-- +-- Name: link_user_application_user_gr_link_user_application_user_gr_seq; Type: SEQUENCE; Schema: public; Owner: ervu +-- + +CREATE SEQUENCE public.link_user_application_user_gr_link_user_application_user_gr_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.link_user_application_user_gr_link_user_application_user_gr_seq OWNER TO ervu; + +-- +-- Name: link_user_application_user_gr_link_user_application_user_gr_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: ervu +-- + +ALTER SEQUENCE public.link_user_application_user_gr_link_user_application_user_gr_seq OWNED BY public.link_user_application_user_group.link_user_application_user_group_id; + + +-- +-- Name: recruitment; Type: TABLE; Schema: public; Owner: ervu +-- + +CREATE TABLE public.recruitment ( + id uuid DEFAULT public.uuid_generate_v4() NOT NULL, + idm_id character varying(256), + parent_id character varying, + version integer, + created_at timestamp without time zone DEFAULT now() NOT NULL, + updated_at timestamp without time zone DEFAULT now() NOT NULL, + schema character varying(64) NOT NULL, + military_code character varying(16), + shortname character varying NOT NULL, + fullname character varying NOT NULL, + dns character varying(64), + email character varying(255), + phone character varying(24), + address character varying, + address_id character varying, + postal_address character varying, + postal_address_id character varying, + nsi_department_id character varying, + nsi_organization_id character varying, + oktmo character varying, + org_ogrn character varying, + dep_ogrn character varying, + epgu_id character varying, + kpp character varying(64), + inn character varying(64), + okato character varying(64), + division_type character varying(64), + tns_department_id character varying, + enabled boolean DEFAULT true NOT NULL, + timezone character varying(64), + reports_enabled boolean, + region_id character varying, + subpoena_series_code character varying(64), + hidden boolean DEFAULT false NOT NULL, + region_code text, + ts timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE public.recruitment OWNER TO ervu; + +-- +-- Name: TABLE recruitment; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON TABLE public.recruitment IS 'Военный комиссариат'; + + +-- +-- Name: COLUMN recruitment.id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.id IS 'Идентификатор ВК'; + + +-- +-- Name: COLUMN recruitment.idm_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.idm_id IS 'Идентификатор организации'; + + +-- +-- Name: COLUMN recruitment.parent_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.parent_id IS 'Идентификатор вышестоящей организации'; + + +-- +-- Name: COLUMN recruitment.version; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.version IS 'Версия записи'; + + +-- +-- Name: COLUMN recruitment.created_at; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.created_at IS 'Дата создания'; + + +-- +-- Name: COLUMN recruitment.updated_at; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.updated_at IS 'Дата обновления'; + + +-- +-- Name: COLUMN recruitment.schema; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.schema IS 'Схема'; + + +-- +-- Name: COLUMN recruitment.military_code; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.military_code IS 'Код организации'; + + +-- +-- Name: COLUMN recruitment.shortname; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.shortname IS 'Укороченное наименование организации'; + + +-- +-- Name: COLUMN recruitment.fullname; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.fullname IS 'Полное наименование организации'; + + +-- +-- Name: COLUMN recruitment.dns; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.dns IS 'ДНС организации'; + + +-- +-- Name: COLUMN recruitment.email; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.email IS 'Е-mail организации'; + + +-- +-- Name: COLUMN recruitment.phone; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.phone IS 'Телефон организации'; + + +-- +-- Name: COLUMN recruitment.address; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.address IS 'Адрес организации'; + + +-- +-- Name: COLUMN recruitment.address_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.address_id IS 'Идентификатор адреса организации'; + + +-- +-- Name: COLUMN recruitment.postal_address; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.postal_address IS 'Почтовый адрес организации'; + + +-- +-- Name: COLUMN recruitment.postal_address_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.postal_address_id IS 'Идентификатор почтового адреса организации'; + + +-- +-- Name: COLUMN recruitment.nsi_department_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.nsi_department_id IS 'Идентификатор департамента из НСИ'; + + +-- +-- Name: COLUMN recruitment.nsi_organization_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.nsi_organization_id IS 'Идентификатор организации из НСИ'; + + +-- +-- Name: COLUMN recruitment.oktmo; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.oktmo IS 'ОКТМО'; + + +-- +-- Name: COLUMN recruitment.org_ogrn; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.org_ogrn IS 'ОГРН организации'; + + +-- +-- Name: COLUMN recruitment.dep_ogrn; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.dep_ogrn IS 'ОГРН департамента'; + + +-- +-- Name: COLUMN recruitment.epgu_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.epgu_id IS 'Идентификатор ЕПГУ'; + + +-- +-- Name: COLUMN recruitment.kpp; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.kpp IS 'КПП'; + + +-- +-- Name: COLUMN recruitment.inn; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.inn IS 'ИНН'; + + +-- +-- Name: COLUMN recruitment.okato; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.okato IS 'ОКАТО'; + + +-- +-- Name: COLUMN recruitment.division_type; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.division_type IS 'Тип дивизиона'; + + +-- +-- Name: COLUMN recruitment.tns_department_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.tns_department_id IS 'Идентификатор департамента из ТНС'; + + +-- +-- Name: COLUMN recruitment.enabled; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.enabled IS 'Признак актуальности'; + + +-- +-- Name: COLUMN recruitment.timezone; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.timezone IS 'Часовой пояс'; + + +-- +-- Name: COLUMN recruitment.reports_enabled; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.reports_enabled IS 'Признак актуальности для отчета'; + + +-- +-- Name: COLUMN recruitment.region_id; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.region_id IS 'Идентификатор региона'; + + +-- +-- Name: COLUMN recruitment.subpoena_series_code; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.subpoena_series_code IS 'Серия'; + + +-- +-- Name: COLUMN recruitment.hidden; Type: COMMENT; Schema: public; Owner: ervu +-- + +COMMENT ON COLUMN public.recruitment.hidden IS 'Признак скрытого'; + + +-- +-- Name: user_application_document; Type: TABLE; Schema: public; Owner: ervu +-- + +CREATE TABLE public.user_application_document ( + user_application_document_id bigint NOT NULL, + file_name character varying(100) NOT NULL, + file bytea NOT NULL, + user_application_list_id bigint NOT NULL +); + + +ALTER TABLE public.user_application_document OWNER TO ervu; + +-- +-- Name: user_application_document_user_application_document_id_seq; Type: SEQUENCE; Schema: public; Owner: ervu +-- + +CREATE SEQUENCE public.user_application_document_user_application_document_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.user_application_document_user_application_document_id_seq OWNER TO ervu; + +-- +-- Name: user_application_document_user_application_document_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: ervu +-- + +ALTER SEQUENCE public.user_application_document_user_application_document_id_seq OWNED BY public.user_application_document.user_application_document_id; + + +-- +-- Name: user_application_list; Type: TABLE; Schema: public; Owner: ervu +-- + +CREATE TABLE public.user_application_list ( + user_application_list_id bigint NOT NULL, + application_kind character varying(100) NOT NULL, + user_login character varying(100) NOT NULL, + user_password character varying(100), + secondname character varying(1000) NOT NULL, + firstname character varying(1000) NOT NULL, + middlename character varying(1000) NOT NULL, + phone character varying(20), + ip_address character varying(1000), + start_date timestamp without time zone DEFAULT now() NOT NULL, + close_date timestamp without time zone, + user_status character varying(50), + application_status character varying(100) NOT NULL, + comment character varying, + job_position_id bigint, + user_role_id bigint, + recruitment_id uuid, + user_account_id character varying, + sex character varying, + birth_date date, + snils character varying +); + + +ALTER TABLE public.user_application_list OWNER TO ervu; + +-- +-- Name: user_application_list_user_application_list_id_seq; Type: SEQUENCE; Schema: public; Owner: ervu +-- + +CREATE SEQUENCE public.user_application_list_user_application_list_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE public.user_application_list_user_application_list_id_seq OWNER TO ervu; + +-- +-- Name: user_application_list_user_application_list_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: ervu +-- + +ALTER SEQUENCE public.user_application_list_user_application_list_id_seq OWNED BY public.user_application_list.user_application_list_id; + + +-- +-- Name: access_level; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.access_level ( + access_level_id character(36) NOT NULL, + level smallint NOT NULL, + description character varying(256) NOT NULL +); + + +ALTER TABLE security.access_level OWNER TO ervu; + +-- +-- Name: authority; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.authority ( + authority_id character(36) NOT NULL, + name character varying(255) NOT NULL, + created timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE security.authority OWNER TO ervu; + +-- +-- Name: databasechangelog; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.databasechangelog ( + id character varying(255) NOT NULL, + author character varying(255) NOT NULL, + filename character varying(255) NOT NULL, + dateexecuted timestamp without time zone NOT NULL, + orderexecuted integer NOT NULL, + exectype character varying(10) NOT NULL, + md5sum character varying(35), + description character varying(255), + comments character varying(255), + tag character varying(255), + liquibase character varying(20), + contexts character varying(255), + labels character varying(255), + deployment_id character varying(10) +); + + +ALTER TABLE security.databasechangelog OWNER TO ervu; + +-- +-- Name: databasechangeloglock; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.databasechangeloglock ( + id integer NOT NULL, + locked boolean NOT NULL, + lockgranted timestamp without time zone, + lockedby character varying(255) +); + + +ALTER TABLE security.databasechangeloglock OWNER TO ervu; + +-- +-- Name: esia_user; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.esia_user ( + esia_user_id character varying(36) NOT NULL, + user_account_id character varying(36) NOT NULL, + person_contact_id bigint NOT NULL +); + + +ALTER TABLE security.esia_user OWNER TO ervu; + +-- +-- Name: link_user_account_user_group; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.link_user_account_user_group ( + link_user_account_user_group_id character(36) DEFAULT public.uuid_generate_v4() NOT NULL, + user_account_id character varying(150) NOT NULL, + user_group_id character(36) NOT NULL, + created timestamp without time zone DEFAULT now() +); + + +ALTER TABLE security.link_user_account_user_group OWNER TO ervu; + +-- +-- Name: link_user_group_user_role; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.link_user_group_user_role ( + link_user_group_user_role_id character(36) NOT NULL, + user_group_id character(36) NOT NULL, + user_role_id character(36) NOT NULL, + created timestamp without time zone DEFAULT now() +); + + +ALTER TABLE security.link_user_group_user_role OWNER TO ervu; + +-- +-- Name: link_user_role_authority; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.link_user_role_authority ( + user_role_authority_id character(36) NOT NULL, + user_role_id character(36) NOT NULL, + authority_id character(36) NOT NULL, + created timestamp without time zone DEFAULT now() +); + + +ALTER TABLE security.link_user_role_authority OWNER TO ervu; + +-- +-- Name: org_unit; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.org_unit ( + id character(36) NOT NULL, + name character varying(1000) NOT NULL, + code character varying(50) NOT NULL, + parent_id character(36), + removed boolean DEFAULT false NOT NULL +); + + +ALTER TABLE security.org_unit OWNER TO ervu; + +-- +-- Name: org_unit_additional_info; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.org_unit_additional_info ( + id character(36) NOT NULL, + schema character varying(1000) NOT NULL +); + + +ALTER TABLE security.org_unit_additional_info OWNER TO ervu; + +-- +-- Name: simple_credentials; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.simple_credentials ( + user_account_id character(36) NOT NULL, + password character varying(128) NOT NULL, + password_expires timestamp without time zone, + password_updated timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE security.simple_credentials OWNER TO ervu; + +-- +-- Name: user_account; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.user_account ( + user_account_id character(36) DEFAULT public.uuid_generate_v4() NOT NULL, + email character varying(150) NOT NULL, + first_name character varying(100) NOT NULL, + last_name character varying(100) NOT NULL, + middle_name character varying(100), + created timestamp with time zone DEFAULT now() NOT NULL, + updated timestamp with time zone DEFAULT now() NOT NULL, + locked boolean DEFAULT false NOT NULL, + org_unit_id character(36) NOT NULL, + username character varying(150) NOT NULL, + phone character varying(16), + email_confirmed boolean DEFAULT true NOT NULL, + user_source character varying(20) DEFAULT 'LOCAL'::character varying NOT NULL, + source_name character varying(20) +); + + +ALTER TABLE security.user_account OWNER TO ervu; + +-- +-- Name: user_account_addition_info; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.user_account_addition_info ( + user_account_addition_info_id bigint NOT NULL, + user_account_id character varying(36), + ip_address character varying(100), + job_position_id bigint, + comment character varying, + user_loaded boolean DEFAULT false NOT NULL, + password character varying, + sex character varying, + birth_date date, + snils character varying +); + + +ALTER TABLE security.user_account_addition_info OWNER TO ervu; + +-- +-- Name: user_account_addition_info_user_account_addition_info_id_seq; Type: SEQUENCE; Schema: security; Owner: ervu +-- + +CREATE SEQUENCE security.user_account_addition_info_user_account_addition_info_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE security.user_account_addition_info_user_account_addition_info_id_seq OWNER TO ervu; + +-- +-- Name: user_account_addition_info_user_account_addition_info_id_seq; Type: SEQUENCE OWNED BY; Schema: security; Owner: ervu +-- + +ALTER SEQUENCE security.user_account_addition_info_user_account_addition_info_id_seq OWNED BY security.user_account_addition_info.user_account_addition_info_id; + + +-- +-- Name: user_account_refresh_token; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.user_account_refresh_token ( + user_account_refresh_token_id character(36) NOT NULL, + user_account_id character(36), + refresh_token text, + access_token text, + expiration_time timestamp without time zone +); + + +ALTER TABLE security.user_account_refresh_token OWNER TO ervu; + +-- +-- Name: user_account_verification; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.user_account_verification ( + user_account_id character(36) NOT NULL, + token character(36) NOT NULL, + created timestamp without time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE security.user_account_verification OWNER TO ervu; + +-- +-- Name: user_group; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.user_group ( + user_group_id character(36) NOT NULL, + name character varying(255) NOT NULL, + created timestamp with time zone DEFAULT now() NOT NULL, + updated timestamp with time zone DEFAULT now() NOT NULL, + access_level_id character(36) NOT NULL +); + + +ALTER TABLE security.user_group OWNER TO ervu; + +-- +-- Name: user_role; Type: TABLE; Schema: security; Owner: ervu +-- + +CREATE TABLE security.user_role ( + user_role_id character(36) NOT NULL, + name character varying(255) NOT NULL, + created timestamp with time zone DEFAULT now() NOT NULL, + updated timestamp with time zone DEFAULT now() NOT NULL +); + + +ALTER TABLE security.user_role OWNER TO ervu; + +-- +-- Name: job_position job_position_id; Type: DEFAULT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.job_position ALTER COLUMN job_position_id SET DEFAULT nextval('public.job_position_job_position_id_seq'::regclass); + + +-- +-- Name: link_user_application_user_group link_user_application_user_group_id; Type: DEFAULT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.link_user_application_user_group ALTER COLUMN link_user_application_user_group_id SET DEFAULT nextval('public.link_user_application_user_gr_link_user_application_user_gr_seq'::regclass); + + +-- +-- Name: user_application_document user_application_document_id; Type: DEFAULT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.user_application_document ALTER COLUMN user_application_document_id SET DEFAULT nextval('public.user_application_document_user_application_document_id_seq'::regclass); + + +-- +-- Name: user_application_list user_application_list_id; Type: DEFAULT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.user_application_list ALTER COLUMN user_application_list_id SET DEFAULT nextval('public.user_application_list_user_application_list_id_seq'::regclass); + + +-- +-- Name: user_account_addition_info user_account_addition_info_id; Type: DEFAULT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_addition_info ALTER COLUMN user_account_addition_info_id SET DEFAULT nextval('security.user_account_addition_info_user_account_addition_info_id_seq'::regclass); + + +-- +-- Data for Name: job_position; Type: TABLE DATA; Schema: public; Owner: ervu +-- + +COPY public.job_position (job_position_id, name, code, start_date, close_date) FROM stdin; +1 Руководитель MANAGER 2024-10-07 15:39:26.69628 \N +2 Специалист USER 2024-10-07 15:39:26.69628 \N +\. + + +-- +-- Data for Name: link_user_application_user_group; Type: TABLE DATA; Schema: public; Owner: ervu +-- + +COPY public.link_user_application_user_group (link_user_application_user_group_id, user_application_list_id, user_group_id, created) FROM stdin; +13 17 acf292b2-9b46-4bf2-9254-39696d26f02b 2024-10-17 10:49:40.559518 +14 17 6428cb6d-2949-4570-85b5-4b81e33b19ff 2024-10-17 10:49:40.559518 +15 17 0c61996f-c1db-483e-8456-5a5a9dc6dcdd 2024-10-17 10:49:40.559518 +16 17 00fe3742-dbb3-4639-aabd-3a10050ecd9e 2024-10-17 10:49:40.559518 +17 18 acf292b2-9b46-4bf2-9254-39696d26f02b 2024-10-17 10:50:47.183989 +18 18 6428cb6d-2949-4570-85b5-4b81e33b19ff 2024-10-17 10:50:47.183989 +19 18 0c61996f-c1db-483e-8456-5a5a9dc6dcdd 2024-10-17 10:50:47.183989 +20 18 00fe3742-dbb3-4639-aabd-3a10050ecd9e 2024-10-17 10:50:47.183989 +21 20 0c61996f-c1db-483e-8456-5a5a9dc6dcdd 2024-10-17 12:48:16.831347 +\. + + +-- +-- Data for Name: recruitment; Type: TABLE DATA; Schema: public; Owner: ervu +-- + +COPY public.recruitment (id, idm_id, parent_id, version, created_at, updated_at, schema, military_code, shortname, fullname, dns, email, phone, address, address_id, postal_address, postal_address_id, nsi_department_id, nsi_organization_id, oktmo, org_ogrn, dep_ogrn, epgu_id, kpp, inn, okato, division_type, tns_department_id, enabled, timezone, reports_enabled, region_id, subpoena_series_code, hidden, region_code, ts) FROM stdin; +20f455d2-2908-4a86-8ab5-2e500f2f5544 f03fc8c0-2ce7-4121-a306-f82d65ea029d \N 0 2024-09-29 09:49:42.385098 2024-09-29 09:49:42.385098 Ministry \N Министерство обороны Министерство обороны \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N f \N t \N \N f \N 2024-09-29 09:49:42.379375 +e00feef8-7b8a-47c2-9a16-f0f7dc877f56 b23f384f-b114-4003-9277-2eaa2d9ae180 f03fc8c0-2ce7-4121-a306-f82d65ea029d 0 2024-09-29 09:49:42.453244 2024-09-29 09:49:42.453244 Region \N Восточный военный округ Восточный военный округ \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N t \N t \N \N f \N 2024-09-29 09:49:42.452193 +72cd6795-0303-4894-82ad-911bc259d87e 30a01af9-a871-411a-90e3-d81592bb074f f03fc8c0-2ce7-4121-a306-f82d65ea029d 0 2024-09-29 09:49:42.458533 2024-09-29 09:49:42.458533 Region \N Московский военный округ Московский военный округ \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N t \N t \N \N f \N 2024-09-29 09:49:42.457675 +d29346a7-dc0f-452d-859f-9bd3a83c219c 25633423-52e6-45bb-9d54-7f85b74a3f7d f03fc8c0-2ce7-4121-a306-f82d65ea029d 0 2024-09-29 09:49:42.463413 2024-09-29 09:49:42.463413 Region \N Ленинградский военный округ Ленинградский военный округ \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N t \N t \N \N f \N 2024-09-29 09:49:42.462639 +826c2187-7761-48ff-9399-25d1cc2a9297 58ef9cdc-8a9d-429e-89a5-1c49e2684a98 f03fc8c0-2ce7-4121-a306-f82d65ea029d 0 2024-09-29 09:49:42.467537 2024-09-29 09:49:42.467537 Region \N Центральный военный округ Центральный военный округ \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N t \N t \N \N f \N 2024-09-29 09:49:42.467016 +a7b1f5f2-e43f-44da-92c6-6f394f53ec95 b00de68d-2e09-4776-9b48-1566a7222dca f03fc8c0-2ce7-4121-a306-f82d65ea029d 0 2024-09-29 09:49:42.472603 2024-09-29 09:49:42.472603 Region \N Южный военный округ Южный военный округ \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N t \N t \N \N f \N 2024-09-29 09:49:42.471977 +fb2a5e9b-5c86-4c6f-bea0-c4501d466549 83779471-c29f-c2eb-0e70-7846af31d10e b00de68d-2e09-4776-9b48-1566a7222dca 2 2024-09-29 09:49:42.476827 2024-09-29 09:49:42.476827 Organization 34556777 Тестовый комиссариат 2 Тестовый комиссариат 2 11@11.ru 1111111111 г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 \N \N 11 \N \N \N 111111111 1111111111 \N \N t +01:30 t b00de68d-2e09-4776-9b48-1566a7222dca МО f 36 2024-09-29 09:49:42.476294 +521ce853-5cec-4d2c-8aa5-8f73e5ac3376 31b88ed6-263e-225d-0787-74f7ef25f5f6 b23f384f-b114-4003-9277-2eaa2d9ae180 2 2024-09-29 09:49:42.481225 2024-09-29 09:49:42.481225 Organization 34123421 FDfsafd FDfsafd \N обл. Свердловская, г. Ивдель, ул. 50 лет Октября, гск. Москвич 721c162c-197a-4281-8ad9-8ae3efe2d655 \N \N \N \N \N 3241121234 \N \N t +01:35 t b23f384f-b114-4003-9277-2eaa2d9ae180 ВА f 50 2024-09-29 09:49:42.480738 +30de0a5c-a8df-4591-9bdc-52bfe5abb31d 5055a985-c97c-f5dc-2158-ff5862bfe4cf b00de68d-2e09-4776-9b48-1566a7222dca 3 2024-09-29 09:49:42.484508 2024-09-29 09:49:42.484508 Organization 96199408 ВК Вятска Военный комиссариат Вятска Тест \N Респ. Удмуртская, р-н. Каракулинский, с/п. Вятское 71e8456a-acf1-432d-80ee-def9d7123fab \N \N \N \N \N 3333333333 \N \N t +01:30 f b00de68d-2e09-4776-9b48-1566a7222dca ВЯ f 18 2024-09-29 09:49:42.48405 +f8010c28-ec1b-415f-9546-f1b58e36279e 8edec280-3143-4d45-b702-ad5e91ef0e52 \N 1 2024-09-29 09:49:42.489398 2024-09-29 09:49:42.489398 Department 34623446 Тестовая организация Тест Второй Тестовая организация Тест Второй 3fa85f64-5717-4562-b3fc-2c963f66afa6 Респ. Татарстан, г. Казань, ул. Мазита Гафури, д. 71, корп. 1, кв. 1 65c4e0b5-bf23-42be-9f33-a2f0b155c964 \N \N \N \N \N \N \N \N \N \N t +00:00 t \N AA f 36 2024-09-29 09:49:42.488945 +ba28c023-72f4-4ef5-b209-631f72f9488e ce08e909-5a14-480f-b931-bff172872ac6 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.550316 2024-09-29 09:49:42.550316 Department 08444073 ВК городских округов Курильский и Северо-Курильский Сахалинской области Военный комиссариат городских округов Курильский и Северо-Курильский Сахалинской области \N \N \N обл. Сахалинская, р-н. Курильский, г. Курильск, ул. Ленинского Комсомола, д. 24 8ef658b0-ea6a-451a-ae2c-2aa4ba6707a6 \N \N 64720000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N cf60f9bc-a17c-4147-917e-5d1abf2218b4 t +11:00 t \N СК f 65 2024-09-29 09:49:42.492719 +4d3daef5-a63d-417c-8235-97c2b772a182 6da64c78-6705-4567-9f5f-5ade5822d92f 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.556103 2024-09-29 09:49:42.556103 Department 08444601 ВК городского округа Южно-Курильский Сахалинской области Военный комиссариат городского округа Южно-Курильский Сахалинской области \N \N \N обл. Сахалинская, р-н. Южно-Курильский, пгт. Южно-Курильск, ул. Океанская, д. 2А 2974bf77-5633-46a0-aac1-4c86528419f4 \N \N 64756000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 0f1b4bce-a63f-481c-b79c-a4d10490ba1f t +11:00 t \N СЮ f 65 2024-09-29 09:49:42.55548 +a3188467-3169-4b4e-847c-ffcca71c4440 110686b2-4a01-4976-885b-d26a2980f53a 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.561031 2024-09-29 09:49:42.561031 Department 08443932 ВК города Долинск и Долинского района Сахалинской области Военный комиссариат города Долинск и Долинского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Долинский, г. Долинск, ул. Советская, д. 22 86be9abd-cf3b-411a-8df8-aae2ec25b8c9 \N \N 64712000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 67240765-f4f2-444d-9a90-8a0a34f3d8f2 t +11:00 t \N СД f 65 2024-09-29 09:49:42.560229 +a67c6e12-b1fe-406b-b080-6b518324d6ea 98d428b3-502e-42b6-a29e-a469f894ac16 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.566017 2024-09-29 09:49:42.566017 Department 08444110 ВК города Невельск и Невельского района Сахалинской области Военный комиссариат города Невельск и Невельского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Невельский, г. Невельск, ул. Советская cf5026c0-6670-4c52-ab56-267bda136292 \N \N 64728000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N fbd24b2c-74a2-4d10-9cc5-06733702ff53 t +11:00 t \N СН f 65 2024-09-29 09:49:42.565394 +bb80fa73-9e50-491c-98c1-1869d752bba7 8127c345-3fc1-4864-9d6e-cf34e69c494c 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.570281 2024-09-29 09:49:42.570281 Department 08471265 ВК Краснинского района Липецкой области Военный комиссариат Краснинского района Липецкой области \N \N \N обл. Липецкая, р-н. Краснинский, с. Красное, ул. Комбата Сапрыкина, д. 16 df04b8fc-4614-4191-b22d-4e8567ca8fad \N \N 42630420 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 233ae31f-1728-4a2f-87a0-6de83a422c65 t +03:00 t \N ЛК f 48 2024-09-29 09:49:42.569832 +e6c40dc8-0065-42c2-8c50-87714b3a0f7c b2238b19-8598-4dfa-bb49-0de95136e344 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.57463 2024-09-29 09:49:42.57463 Department 08471331 ВК Лебедянского района Липецкой области Военный комиссариат Лебедянского района Липецкой области \N \N \N обл. Липецкая, р-н. Лебедянский, г. Лебедянь, ул. Свердлова, д. 7 1865b804-bdc4-42d6-83c2-e982b2742f82 \N \N 42633101 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 0d8a4f7b-d385-4798-ba5b-5b7247e4eaf7 t +03:00 t \N ЛЛ f 48 2024-09-29 09:49:42.573995 +cef595ce-c5af-44bb-9711-b0b7fd5b2df4 54a95ecd-1530-424c-8da1-882622b2df83 e8f52736-3997-4e3a-c9e4-5bfca6eddc89 1 2024-09-29 09:49:42.878997 2024-09-29 09:49:42.878997 Department 13131251 Тестовый муниципальный комиссариат 2 Тестовый муниципальный комиссариат 2 \N г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 \N \N \N \N \N \N \N \N \N \N t +01:30 t 96f9779f-4028-4ef7-b841-9d1058a5062a МО f 10 2024-09-29 09:49:42.878708 +3a36fc6d-e2d4-414b-a995-e6c8bff78b77 67dacb06-d1f7-4c0e-9891-32863353cae9 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.588219 2024-09-29 09:49:42.588219 Department 08444593 ВК города Холмск и Холмского района Сахалинской области Военный комиссариат города Холмск и Холмского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Холмский, г. Холмск, ул. Чехова, д. 68 e7b5e4aa-4ae9-40a8-bda8-ce05fe38de23 \N \N 64754000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N b88cfaa0-fbdb-4baa-bebc-2da990bdbe82 t +11:00 t \N СХ f 65 2024-09-29 09:49:42.587669 +659ed98b-9868-4168-adff-35e9e1bd9b0b 24b7ba55-9757-45d9-9c5e-5ca3e8c9c2d0 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.59247 2024-09-29 09:49:42.59247 Department 08444239 ВК города Поронайск, Макаровского, Поронайского и Смирныховского районов Сахалинской области Военный комиссариат города Поронайск, Макаровского, Поронайского и Смирныховского районов Сахалинской области \N \N \N обл. Сахалинская, р-н. Поронайский, г. Поронайск, ул. Гагарина, д. 1 18d602a4-5c5b-4533-8757-81e22e3c9ab4 \N \N 64740000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 0ca0f417-c622-4cb2-a96b-337b0f85f173 t +11:00 t \N СП f 65 2024-09-29 09:49:42.592016 +8a1f8307-76c9-4923-a0fe-88bc6a563fcb 20d82cbf-d520-48ce-a02a-540ce3838087 4c062d4a-3f77-c850-6388-dde909e3946b 1 2024-09-29 09:49:42.651893 2024-09-29 09:49:42.651893 Department 43242323 АУВафцыва АУВафцыва \N г. Москва, вн.тер.г.. муниципальный округ Москворечье-Сабурово 9bccb3a5-c52c-4229-96b3-e992defeab1a \N \N \N \N \N \N \N \N \N \N t +01:32 t \N ФА f 35 2024-09-29 09:49:42.651065 +6fabcb61-584f-401d-85f6-79a49e3d8f61 52e97a4c-f68c-489a-a923-fabb9ef574dd 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.656905 2024-09-29 09:49:42.656905 Department 08471259 ВК Измалковского района Липецкой области Военный комиссариат Измалковского района Липецкой области \N \N \N обл. Липецкая, р-н. Измалковский, с. Измалково 81a3eb57-1a08-48ce-a0fd-ca7fd99933d0 \N \N 42627416 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 3f5688d3-ce36-4d2a-bbb0-adb1418bc6c3 t +03:00 t \N ЛИ f 48 2024-09-29 09:49:42.656238 +08f29c2e-0682-4179-a8f1-21a278c22d26 94a9f485-eab9-4158-a1bf-330d23e29ae2 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.661953 2024-09-29 09:49:42.661953 Department 08471087 ВК Долгоруковского района Липецкой области Военный комиссариат Долгоруковского района Липецкой области \N \N \N обл. Липецкая, р-н. Долгоруковский, с. Долгоруково, ул. Советская e62da677-9e0f-4c4a-82b5-6b9505cba06b \N \N 42618428 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 6a5b8e2e-6d5e-42fb-82d6-a2aaae2c9e6a t +03:00 t \N ЛД f 48 2024-09-29 09:49:42.661241 +c93d2dc2-7741-4ca7-9690-14c764a77bf0 f4e38f22-d974-412b-8a34-b1933ca865a9 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.667079 2024-09-29 09:49:42.667079 Department 08471176 ВК Задонского района Липецкой области Военный комиссариат Задонского района Липецкой области \N \N \N обл. Липецкая, р-н. Задонский, г. Задонск, ул. К.Маркса, д. 131 5fe812f4-f595-42a9-a168-af6fe314bad5 \N \N 42624101 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 8057f1bd-b997-445d-ae31-3e596685100c t +03:00 t \N ЛЗ f 48 2024-09-29 09:49:42.666515 +d01db5cc-086b-4609-9aad-2c6397c4dd96 2545944e-5252-4a6f-bcb2-8a4adf720e9b 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.670984 2024-09-29 09:49:42.670984 Department 08470946 ВК города Данков, Данковского и Лев-Толстовского района Липецкой области Военный комиссариат города Данков, Данковского и Лев-Толстовского района Липецкой области \N \N \N обл. Липецкая, р-н. Данковский, г. Данков, ул. Карла Маркса, д. 42 e9ac01e1-8f73-4648-8769-b1d0bcc04f90 \N \N 42609101 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N be8f133b-a194-4f6e-a589-a3e566c6a7fe t +03:00 t \N ЛД f 48 2024-09-29 09:49:42.670388 +939dd496-542a-45f4-91e0-90c331d85f5f 3a56b060-20ee-4b62-9d96-4c6bf4928039 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.675536 2024-09-29 09:49:42.675536 Department 08471621 ВК Хлевенского района Липецкой области Военный комиссариат Хлевенского района Липецкой области \N \N \N обл. Липецкая, р-н. Хлевенский, с. Хлевное 960296ba-28e8-4ad2-9a43-9ee15b2ec816 \N \N 42652453 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 50e11407-c71f-4593-b533-f9c0df53351d t +03:00 t \N ЛХ f 48 2024-09-29 09:49:42.675074 +fd142737-1a6a-466f-a318-b1412b184b3d 79f6c236-3ee8-40ff-bc10-40077420e82e 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.678802 2024-09-29 09:49:42.678802 Department 08477233 ВК Шиловского и Путятинского районов Рязанской области Военный комиссариат Шиловского и Путятинского районов Рязанской области \N \N обл. Рязанская, р-н. Шиловский, рп. Шилово, ул. Спасская, зд. 19 46c6e7b2-2ee9-4674-aeeb-b1db153df9e5 \N \N 61658151 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 310f0061-c7bd-4dea-9f16-c7e99ab58aba t +03:00 t \N РК f 62 2024-09-29 09:49:42.678278 +50439548-a88f-4e49-93a1-ce29c1eb9b9a 86fc6ed6-1d82-4536-8066-c9ff2ca68639 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.682197 2024-09-29 09:49:42.682197 Department 08477167 ВК Ухоловского, Сапожковского и Сараевского районов Рязанской области Военный комиссариат Ухоловского, Сапожковского и Сараевского районов Рязанской области \N \N обл. Рязанская, р-н. Ухоловский, рп. Ухолово, пер. Чапаева, д. 21 c2431759-122c-4493-bce7-7ffc1a7c247b \N \N 61650151 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 704fd9ff-58eb-42a2-b443-d588cd1c437d t +03:00 t \N РУ f 62 2024-09-29 09:49:42.681778 +908c5c7a-2942-4083-acbf-3a03c739b860 e22cfafc-b8b1-47fd-b9f4-b9015734d578 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.685424 2024-09-29 09:49:42.685424 Department 08477210 ВК города Шацк, Шацкого и Чучковского районов Рязанской области Военный комиссариат города Шацк, Шацкого и Чучковского районов Рязанской области \N \N \N обл. Рязанская, р-н. Шацкий, г. Шацк, ул. Цюрупы, зд. 19 3ac3cbdc-bb39-44b0-8d7e-b38708e16f22 \N \N 61656101 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N e7298341-ea5e-4a98-a497-5d706d883477 t +03:00 t \N РШ f 62 2024-09-29 09:49:42.685014 +928411d1-b6c2-40ea-a3df-4cad7aec98a5 2ca66dd6-6688-45c9-bb7e-988c7e92d34a 092d6963-287c-454e-8d73-8e09ebee972e 0 2024-09-29 09:49:42.688337 2024-09-29 09:49:42.688337 Department \N ВК Московского и Железнодорожного районов города Рязань Рязанской области Военный комиссариат Московского и Железнодорожного районов города Рязань Рязанской области 1026201271337 \N \N 390044, г.Рязань, ул. Московское шоссе, д. 14 \N \N \N \N 61701000 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N f33f5e16-8544-4b8d-be78-24447ab42a4e t \N t \N \N f \N 2024-09-29 09:49:42.687983 +da5a8694-eae5-4da1-81b9-54ac3ac178f2 55727f17-6ab4-4d51-ad32-ba8e916acf49 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.691283 2024-09-29 09:49:42.691283 Department 08476481 ВК Клепиковского района Рязанской области Военный комиссариат Клепиковского района Рязанской области \N \N \N обл. Рязанская, р-н. Клепиковский, г. Спас-Клепики, ул. Советская, зд. 1 5727d5e1-78e8-4835-8b6b-657924607535 \N \N 61610101 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 36ce7278-0a25-416a-8136-c63a160f0f3c t +03:00 t \N ПК f 62 2024-09-29 09:49:42.69097 +9b83cc97-0439-458e-bc45-08315eb4d9b8 6562ddb0-3f0c-4e43-bf0c-a834421cd4db 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.694081 2024-09-29 09:49:42.694081 Department 22222222 ВК Рязанского и Спасского районов Рязанской области Военный комиссариат Рязанского и Спасского районов Рязанской области \N \N \N обл. Рязанская, г. Рязань, ул. Загородная, д. 22 bc2888de-9acf-4630-9285-422acec90728 \N \N 61701000 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 6a994538-9783-45d6-ae70-ab0102125f47 t +03:00 t \N РК f 62 2024-09-29 09:49:42.693768 +cbc0917a-3052-41ea-a97e-f482b2c81b2d f59afe6d-c166-4196-a489-6d17f02fc05e 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.696673 2024-09-29 09:49:42.696673 Department 08477115 ВК города Скопин, Скопинского и Милославского районов Рязанской области Военный комиссариат города Скопин, Скопинского и Милославского районов Рязанской области \N \N \N обл. Рязанская, р-н. Скопинский a03c70ca-6855-4258-af6e-c56e804bfae7 \N \N 61715000 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 2d917cdd-f689-4dc4-b5ba-21a910d3a85e t +03:00 t \N РС f 62 2024-09-29 09:49:42.696289 +b2e6bca2-d7eb-4654-8aef-d5c529e1c899 84bc45ab-c032-410e-9dc5-07e92719ede4 b23f384f-b114-4003-9277-2eaa2d9ae180 1 2024-09-29 09:49:42.700551 2024-09-29 09:49:42.700551 Organization \N Военный комиссариат Сахалинской области Военный комиссариат Сахалинской области 1026500540659 vk_sahalin_2@mil.ru 8 (424)-275-39-82 693007, Сахалинская область, г. Южно-Сахалинск, ул. Комсомольская, 194 \N \N \N \N \N \N \N 650101001 6501027156 64000000000 \N 1026500540659 t \N t b23f384f-b114-4003-9277-2eaa2d9ae180 \N f \N 2024-09-29 09:49:42.699001 +3cab3b8a-15f2-4c69-a3be-e7485717baa2 e8f52736-3997-4e3a-c9e4-5bfca6eddc89 b00de68d-2e09-4776-9b48-1566a7222dca 16 2024-09-29 09:49:42.703187 2024-09-29 09:49:42.703187 Organization 12332111 Тестовый комиссариат 1 Тестовый комиссариат 1 test@test.ru 3333333333 г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 \N \N 20 \N \N \N 111111111 1111111111 \N \N t +03:00 t b00de68d-2e09-4776-9b48-1566a7222dca МО f 35 2024-09-29 09:49:42.702888 +67db7b5b-0892-4908-bd20-864f932e80f9 5d8e4e2b-37d7-44a8-accb-45e87b62aa2d 30a01af9-a871-411a-90e3-d81592bb074f 0 2024-09-29 09:49:42.706976 2024-09-29 09:49:42.706976 Organization \N Главное организационно-мобилизационное управление Главное организационно-мобилизационное управление 1137746638402 \N \N \N \N \N \N \N \N \N \N \N \N \N 7704201034 \N \N \N t \N t 30a01af9-a871-411a-90e3-d81592bb074f \N f \N 2024-09-29 09:49:42.70584 +6e1017e2-1e38-481f-85c2-e828247f2b79 553b9449-6460-48c4-88d4-f18283abc4a7 30a01af9-a871-411a-90e3-d81592bb074f 0 2024-09-29 09:49:42.755346 2024-09-29 09:49:42.755346 Organization \N Восьмое управление Восьмое управление ГШ ВС РФ \N \N \N \N \N \N \N 1111111111 \N \N t \N t 30a01af9-a871-411a-90e3-d81592bb074f \N f \N 2024-09-29 09:49:42.753426 +69865d28-3f69-4047-8d4d-9469a6c33d5f 6139de3b-2378-496f-9fca-7df7dab90832 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.759037 2024-09-29 09:49:42.759037 Department 34555667 ВК Октябрьского и Советского районов города Рязань Рязанской области Военный комиссариат Октябрьского и Советского районов города Рязань Рязанской области \N \N обл. Рязанская, г. Рязань 86e5bae4-ef58-4031-b34f-5e9ff914cd55 обл. Рязанская, г. Рязань 86e5bae4-ef58-4031-b34f-5e9ff914cd55 \N \N 61701000 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 311d4b94-4a2e-49b0-b19d-962f101609c5 t +01:30 t \N МО f 62 2024-09-29 09:49:42.758605 +77df47ff-f9d1-47f6-89c5-dc214b91a2a2 2137685f-0683-4131-82d8-983222114184 30a01af9-a871-411a-90e3-d81592bb074f 1 2024-09-29 09:49:42.762636 2024-09-29 09:49:42.762636 Organization \N Военный комиссариат Липецкой области Военный комиссариат Липецкой области 1024800835311 voenkomlipetsk@mil.ru 84742273406 398000, г.Липецк, ул. Интернациональная, д. 10 \N \N \N \N \N \N \N 482501001 4825011699 42000000000 \N 1024800835311 t \N t 30a01af9-a871-411a-90e3-d81592bb074f \N f \N 2024-09-29 09:49:42.761536 +38392eea-e14b-48b5-a0a1-2cff65bcb396 092d6963-287c-454e-8d73-8e09ebee972e 30a01af9-a871-411a-90e3-d81592bb074f 0 2024-09-29 09:49:42.766038 2024-09-29 09:49:42.766038 Organization \N Военный комиссариат Рязанской области Военный комиссариат Рязанской области 1026201271337 voenkomryazan@mil.ru 8 (4912)-25-29-15 390046, Рязанская область, г.Рязань, ул. Фрунзе, д. 27 \N \N \N \N \N \N \N 623101001 6231026092 61000000000 \N 1026201271337 t \N t 30a01af9-a871-411a-90e3-d81592bb074f \N f \N 2024-09-29 09:49:42.764978 +1cb021ac-4335-40d4-987c-7c7648d104be 5eadc746-674d-4ba0-95d6-414d3469c82b 84bc45ab-c032-410e-9dc5-07e92719ede4 2 2024-09-29 09:49:42.769437 2024-09-29 09:49:42.769437 Department 08444156 ВК города Оха и Охинского района Сахалинской области Военный комиссариат города Оха и Охинского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Охинский, г. Оха, ул. Комсомольская, д. 6а 6449285b-f48b-4c37-8e36-25d19499fe55 \N \N 64736000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 004305d3-a108-4e1c-be65-2f7082c784c7 t +11:00 t \N СО f 65 2024-09-29 09:49:42.768998 +2330352b-59ff-4b3f-b534-196fb5b20f9a 3b71b6ff-3eec-4cca-fed0-055bb0c163cc b00de68d-2e09-4776-9b48-1566a7222dca 3 2024-09-29 09:49:42.772815 2024-09-29 09:49:42.772815 Organization 08474128 ВК Одинцовского городского округа городских округов Краснознаменск и Власиха Московской области ВК Одинцовского городского округа городских округов Краснознаменск и Власиха Московской области \N обл. Московская, г. Домодедово, п. Востряково, ул. Одинцовская a891ec3f-428f-4063-a99b-8f7c099b4552 \N \N \N \N \N 7793269459 \N \N t t b00de68d-2e09-4776-9b48-1566a7222dca f \N 2024-09-29 09:49:42.771786 +4b2365ea-b799-48d4-ab00-b6f6dac5b952 bce5663e-5fe1-94a7-40f9-71d0490459da b00de68d-2e09-4776-9b48-1566a7222dca 6 2024-09-29 09:49:42.775694 2024-09-29 09:49:42.775694 Organization 12312312 тест тест \N \N \N \N \N \N \N 1212121212 \N \N t t b00de68d-2e09-4776-9b48-1566a7222dca f 10 2024-09-29 09:49:42.775313 +4e36849b-6652-483d-aecf-a3d9e18e42b9 0fe2bdf0-afbb-402d-93da-67e511799afa 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:42.778595 2024-09-29 09:49:42.778595 Department 08476334 ВК Кораблинского района Рязанской области Военный комиссариат Кораблинского района Рязанской области \N \N обл. Рязанская, р-н. Кораблинский, г. Кораблино, ул. Садовая 0a6a7dfd-2294-4c73-a2a8-b3bc11eb7de1 обл. Рязанская, р-н. Кораблинский, г. Кораблино, ул. Садовая 0a6a7dfd-2294-4c73-a2a8-b3bc11eb7de1 \N \N 61612101 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 39d359d3-4965-4306-801d-ad501b9f5b22 t +03:00 t \N РК f 62 2024-09-29 09:49:42.778267 +8bd65d2b-630c-4513-964b-d70b48726bc5 9703f108-761a-467a-aad3-89617e5539ed 2137685f-0683-4131-82d8-983222114184 2 2024-09-29 09:49:42.781673 2024-09-29 09:49:42.781673 Department 08117687 ВК города Липецк Липецкой области Военный комиссариат города Липецк Липецкой области test@vk.ru 0000000000 обл. Липецкая, р-н. Липецкий, с. Маховище, ул. Московская, д. 16а 346606b1-642a-4600-8ef5-99077a801a5b обл. Липецкая, р-н. Липецкий, с. Маховище, ул. Московская, д. 16а 346606b1-642a-4600-8ef5-99077a801a5b \N \N 42701000 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N a9866d5e-1db7-4d77-9897-97a863a93a9f t +03:00 t \N ЛП f 48 2024-09-29 09:49:42.781225 +2caa5eae-b6c8-4943-8b8b-428dc9c6cb4d b5209c2c-67f6-4b6d-9617-8370aa9907a8 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.784994 2024-09-29 09:49:42.784994 Department 08470871 ВК города Грязи и Грязинского района Липецкой области Военный комиссариат города Грязи и Грязинского района Липецкой области \N \N \N обл. Липецкая, р-н. Грязинский, г. Грязи, ул. Красная Площадь 4aebc0b1-7001-41e1-94bf-d6901f86187a \N \N 42606101 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N d61f100f-bd42-4433-9bbe-87f68a20eb3b t +03:00 t \N ЛГ f 48 2024-09-29 09:49:42.784566 +b00a1841-f444-4fb4-827a-a4e1075eac01 121d7da8-5f40-4e79-900a-ddba5a62f8aa 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.788118 2024-09-29 09:49:42.788118 Department 08444570 ВК города Углегорск, Томаринского и Углегорского районов Сахалинской области Военный комиссариат города Углегорск, Томаринского и Углегорского районов Сахалинской области \N \N \N обл. Сахалинская, р-н. Углегорский, г.. Углегорск, ул. Заводская, д. 2б ae88cdce-b361-4a4f-b8de-9926d13ca043 \N \N 64752000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N d14b34ca-9d0d-4b1d-b52c-53c0e713d9eb t +11:00 t \N СУ f 65 2024-09-29 09:49:42.78764 +0b6eaee2-e52c-4d79-ab97-921a98007539 731b87ec-91e7-cf82-afcc-b2967439f7ae b00de68d-2e09-4776-9b48-1566a7222dca 9 2024-09-29 09:49:42.791537 2024-09-29 09:49:42.791537 Organization 11111111 НЕ трогать оргу Андреева НЕ трогать оргу Андреева обл. Самарская, р-н. Волжский, с. Черноречье, снт. СТ Самараоблагромпром ed96e764-0277-41a5-b80b-b398e0e80823 обл. Самарская, р-н. Волжский, с. Черноречье, снт. СТ Самараоблагропром 333d230f-9e8c-47ae-9eb5-68be26d65cdc \N \N \N \N \N 1111111111 \N \N t t b00de68d-2e09-4776-9b48-1566a7222dca f \N 2024-09-29 09:49:42.790506 +fb0ec464-70e8-421b-bb20-8a12bf5780c4 4b0309d6-f28a-49db-8950-5ffebd917e1e 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.850437 2024-09-29 09:49:42.850437 Department 08471704 ВК Чаплыгинского района Липецкой области Военный комиссариат Чаплыгинского района Липецкой области \N \N \N обл. Липецкая, р-н. Чаплыгинский, г. Чаплыгин, ул. Советская, д. 72 6112591a-b610-4b2c-bb0e-6fda1560433f \N \N 42656101 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 4dd91a25-c26b-4b67-849c-aa3c4ca8c619 t +03:00 t \N ЛЧ f 48 2024-09-29 09:49:42.793669 +610d1eee-a270-4f35-b8aa-df017e102b5c 10b67909-b154-45e3-8eef-7f0fac9abb5d 092d6963-287c-454e-8d73-8e09ebee972e 2 2024-09-29 09:49:42.855212 2024-09-29 09:49:42.855212 Department 08496868 МВК Вятска Муниципального Военный Комиссариат Вятска \N обл. Кировская, р-н. Вятскополянский, г. Вятские Поляны, ул. Ленина, д. 56 434c7f9f-5deb-4874-b871-8bbb6d4dd418 \N \N \N \N \N \N \N \N \N \N t +03:00 f \N ВА f 18 2024-09-29 09:49:42.85465 +f7fadde2-de94-4386-926a-48f539b14564 b042e073-e4ff-4873-b33e-4d44d17ec72d 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.859199 2024-09-29 09:49:42.859199 Department 08471153 ВК города Елец и Елецкого района Липецкой области Военный комиссариат города Елец и Елецкого района Липецкой области \N \N \N обл. Липецкая, г. Елец, ул. Пушкина, д. 150 3e025e0c-a4cb-4344-929c-72f2e662ba77 \N \N 42715000 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 936477a7-f986-4ed8-b67e-aa4c5ad0dc23 t +03:00 t \N ЛЕ f 48 2024-09-29 09:49:42.85867 +1c213331-711b-4263-8275-a0e099e0f78d cff66da8-2be0-4839-bd8e-332b1a150031 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.865673 2024-09-29 09:49:42.865673 Department 08443912 ВК Анивского района Сахалинской области Военный комиссариат Анивского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Анивский, г. Анива, ул. Дьяконова, д. 24 55717011-38db-432a-aa16-d3d00414ef50 \N \N 64708000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 7ddb5992-36c7-4d80-832b-e8581da98730 t +11:00 t \N СА f 65 2024-09-29 09:49:42.865224 +7e17cb21-4dfb-4f66-8996-1f87e78f8533 2966d239-5241-4acb-9b4f-707ba75f44d5 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.868949 2024-09-29 09:49:42.868949 Department 08443808 ВК города Южно-Сахалинск Сахалинской области Военный комиссариат города Южно-Сахалинск Сахалинской области \N \N \N обл. Сахалинская, г. Южно-Сахалинск, ул. Комсомольская, д. 194 308fb438-b9ec-421b-8422-d8eb27f29e16 \N \N 64701000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N af7f7a68-6d13-4518-9b9b-83b678819ce9 t +11:00 t \N СЮ f 65 2024-09-29 09:49:42.868559 +dde8fd00-3648-49ed-a40e-c7caa58cab8d eba7fd7d-e3da-49a7-8e65-8fc85e47190e 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:42.871706 2024-09-29 09:49:42.871706 Department 08444127 ВК Ногликского района Сахалинской области Военный комиссариат Ногликского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Ногликский, пгт. Ноглики, ул. Пограничная, влд. 12 7dbffd02-6b0e-4dfb-a25b-3e371dd375b1 \N \N 64732000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 837c27db-0d16-42cb-9ec0-72eefe4a1aa6 t +11:00 t \N СН f 65 2024-09-29 09:49:42.871363 +1eabf1d8-3202-4359-b6be-dd045afbfa40 70a19cf0-203a-4d04-a1c5-62c811c5ae66 2137685f-0683-4131-82d8-983222114184 4 2024-09-29 09:49:42.874264 2024-09-29 09:49:42.874264 Department 08471398 ВК Липецкого района Липецкой области Военный комиссариат Липецкого района Липецкой области lip@lip.lip 1111111111 обл. Липецкая, г. Липецк eacb5f15-1a2e-432e-904a-ca56bd635f1b обл. Липецкая, г. Липецк, пер. Бестужева, соор. 10 59d79c5c-5822-4eee-935a-5cbb63fca245 \N \N 42640440 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 69264791-e45b-45d1-b2b2-a0c9e6cc5053 t +03:00 t \N ЛЛ f 48 2024-09-29 09:49:42.873937 +e4671f49-8155-447a-a35c-67cb6468803a 70b872b5-79de-4ef6-b5f3-11ecc68906bc 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.876548 2024-09-29 09:49:42.876548 Department 08471561 ВК Усманского района Липецкой области Военный комиссариат Усманского района Липецкой области \N \N \N обл. Липецкая, р-н. Усманский, г. Усмань, ул. Советская, д. 22 8d0f4d5e-b55f-4fa2-8c6a-cf9dc85e3db3 \N \N 42648101 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 5c39a9d5-da00-4876-b992-a7e55baf64ed t +03:00 t \N ЛУ f 48 2024-09-29 09:49:42.876305 +618c4e20-c2b1-4783-bd35-3d5f897e5b83 00148448-3ad9-4e0d-b9d2-c5e81a05bcf6 e8f52736-3997-4e3a-c9e4-5bfca6eddc89 4 2024-09-29 09:49:42.883059 2024-09-29 09:49:42.883059 Department 12221313 Тестовый муниципальный комиссариат 1 Тестовый муниципальный комиссариат 1 \N г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 \N \N \N \N \N \N \N \N \N \N t +01:30 t 96f9779f-4028-4ef7-b841-9d1058a5062a МО f 77 2024-09-29 09:49:42.882485 +0b713936-42c9-4e40-bde3-e941220b81de 34c8685e-f08a-4877-afb1-a0589800a21c bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.887103 2024-09-29 09:49:42.887103 Department 08486019 ВК Звениговского района Республики Марий Эл Военный комиссариат Звениговского района Республики Марий Эл Респ. Марий Эл, р-н. Звениговский, г. Звенигово, ул. Ростовщикова, д. 11 abbea836-207b-4ca3-8308-6552309c5282 Респ. Марий Эл, р-н. Звениговский, г. Звенигово, ул. Ростовщикова, д. 11 abbea836-207b-4ca3-8308-6552309c5282 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МЗ f \N 2024-09-29 09:49:42.886614 +dbe21bb3-0416-4682-844a-07132e896a4b fa005a7c-f833-0727-1924-990584ca6fee 25633423-52e6-45bb-9d54-7f85b74a3f7d 6 2024-09-29 09:49:42.89097 2024-09-29 09:49:42.89097 Organization 34512334 Тестовая организация Тестовая организация \N Респ. Татарстан, г. Казань, ул. Юлиуса Фучика, д. 64, корп. 1 4fde76a4-9ede-47a5-ac5f-f6abff9cbe59 \N \N \N \N \N 2342342112 \N \N t +00:00 t 25633423-52e6-45bb-9d54-7f85b74a3f7d АА f 4 2024-09-29 09:49:42.890601 +674eb255-c2a6-45e7-8395-46118f95cb9f 786b4e73-42dd-4c36-968e-8cce5d9debc6 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.893707 2024-09-29 09:49:42.893707 Department 08471414 ВК Становлянского района Липецкой области Военный комиссариат Становлянского района Липецкой области \N \N \N обл. Липецкая, р-н. Становлянский, с. Становое, ул. Советская, д. 27 966cdb9f-0342-4243-b10b-1822a6893d20 \N \N 42642452 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N e6587c76-9fab-44c1-b1c9-5ab6a4fc2e4d t +03:00 t \N ЛС f 48 2024-09-29 09:49:42.893331 +78a69506-f876-4549-add0-dd9b95e4cde9 5584b973-f5c0-4aee-ae5a-0b0d0444ad1b e8f52736-3997-4e3a-c9e4-5bfca6eddc89 1 2024-09-29 09:49:42.896277 2024-09-29 09:49:42.896277 Department 12345555 Тестовый муниципальный комиссариат 3 Тестовый муниципальный комиссариат 3 \N обл. Свердловская, г. Ивдель, ул. 50 лет Октября, гск. Москвич 721c162c-197a-4281-8ad9-8ae3efe2d655 \N \N \N \N \N \N \N \N \N \N t +01:30 t 96f9779f-4028-4ef7-b841-9d1058a5062a МО f 10 2024-09-29 09:49:42.895925 +7aaab069-b993-469c-9cdc-d05b48e01da2 d49f28d4-0eca-4fd7-b68c-a0a693223de0 e8f52736-3997-4e3a-c9e4-5bfca6eddc89 1 2024-09-29 09:49:42.898589 2024-09-29 09:49:42.898589 Department 12345556 Тестовый муниципальный комиссариат 4 Тестовый муниципальный комиссариат 4 \N г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 \N \N \N \N \N \N \N \N \N \N t +01:30 t b99510d0-4677-44e6-ad1d-1de6920c85c8 МО f 77 2024-09-29 09:49:42.898284 +58e31fcf-567c-4b4c-8bc7-eb5fb9676f08 6daa4999-df84-4469-bcc7-0f875affd41a bce5663e-5fe1-94a7-40f9-71d0490459da 1 2024-09-29 09:49:42.900957 2024-09-29 09:49:42.900957 Department 12323421 тестт тестт \N обл. Омская, м.р-н. Москаленский 8b25be01-3310-4189-84aa-d57170d3f467 \N \N \N \N \N \N \N \N \N \N t +02:20 t \N ЖД f 40 2024-09-29 09:49:42.900689 +e2683ce5-7de8-43b8-9ff3-2a2dc23a4e7c bb7aa36f-446e-4262-a609-28694ca2e398 58ef9cdc-8a9d-429e-89a5-1c49e2684a98 2 2024-09-29 09:49:42.950441 2024-09-29 09:49:42.950441 Organization 08091166 ВК республики Мари Эл Военный комиссариат республики Мари Эл test@test.ru 1111111111 Респ. Марий Эл, г. Йошкар-Ола, пр-кт. Гагарина, д. 16 341779b1-f7c3-48c6-8d21-4bd7f79d07bf Респ. Марий Эл, г. Йошкар-Ола, пр-кт. Гагарина, д. 16 341779b1-f7c3-48c6-8d21-4bd7f79d07bf \N \N \N \N \N 1200001356 \N \N t +03:00 t 58ef9cdc-8a9d-429e-89a5-1c49e2684a98 f \N 2024-09-29 09:49:42.902854 +0068b57d-1272-467d-8cfd-fb3edb9ce430 6f60bde2-33f8-4b33-be9f-cd57a6e041c4 bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.954233 2024-09-29 09:49:42.954233 Department 08486367 ВК Республики Марий Эл Военный комиссариат Сернурского района Республики Марий Эл Респ. Марий Эл, р-н. Сернурский, пгт. Сернур, ул. Коммунистическая, д. 63 0f4f0b9b-80af-4942-b01d-a001b15122a2 Респ. Марий Эл, р-н. Сернурский, пгт. Сернур, ул. Коммунистическая, д. 63 0f4f0b9b-80af-4942-b01d-a001b15122a2 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МС f \N 2024-09-29 09:49:42.953784 +1ac66d8e-29ad-4cab-93fc-cced8d8b94b6 55eae374-9bb5-4295-9e3a-5fbcdaba870d bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.957764 2024-09-29 09:49:42.957764 Department 07871577 ВК г. Йошкар-Ола Республики Марий Эл Военный комиссариат города Йошкар-Ола Республики Марий Эл Респ. Марий Эл, г. Йошкар-Ола, пр-кт. Гагарина, д. 16 341779b1-f7c3-48c6-8d21-4bd7f79d07bf Респ. Марий Эл, г. Йошкар-Ола, пр-кт. Гагарина, д. 16 341779b1-f7c3-48c6-8d21-4bd7f79d07bf \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МЙ f \N 2024-09-29 09:49:42.957306 +efdbd421-c2b7-4d4a-a2b0-9a377595b060 30ce4b57-17ca-4b01-b685-1303ce22e3f2 bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.960476 2024-09-29 09:49:42.960476 Department 08486114 ВК Мари-Турекского и Параньгинского районов Республики Марий Эл Военный комиссариат Мари-Турекского и Параньгинского районов Республики Марий Эл 1111111111 Респ. Марий Эл, р-н. Мари-Турекский, пгт. Мари-Турек, ул. Красноармейская, д. 19 a5efc9b1-afd5-4bd0-b9fb-ae72d4e62baf Респ. Марий Эл, р-н. Мари-Турекский, пгт. Мари-Турек, ул. Красноармейская, д. 19 a5efc9b1-afd5-4bd0-b9fb-ae72d4e62baf \N \N \N \N \N \N \N \N \N \N t +03:00 t \N ММ f \N 2024-09-29 09:49:42.960087 +44cbc7da-0243-4ec1-a3e0-604599501502 d5dd717e-d2f4-4e93-860a-1bb1a97beb46 bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.96562 2024-09-29 09:49:42.96562 Department 08486054 ВК Куженерского района Республики Марий Эл Военный комиссариат Куженерского района Республики Марий Эл Респ. Марий Эл, р-н. Куженерский, пгт. Куженер, ул. Советская, д. 10 9b329561-1d97-42ca-aac2-b383e3aed5e9 Респ. Марий Эл, р-н. Куженерский, пгт. Куженер, ул. Советская, д. 10 9b329561-1d97-42ca-aac2-b383e3aed5e9 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МК f \N 2024-09-29 09:49:42.965182 +10653db1-856c-4f9b-b624-55bd2345380b 2befcbb4-7eb3-4a77-a3cb-f7f0eb0fab2e bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.968291 2024-09-29 09:49:42.968291 Department 08485959 ВК города Волжск и Волжского района Республики Марий Эл Военный комиссариат города Волжск и Волжского района Республики Марий Эл Респ. Марий Эл, г. Волжск, ул. Авиации, д. 51 da0941a3-25b7-48b0-99c7-9624ada1a986 Респ. Марий Эл, г. Волжск, ул. Авиации, д. 51 da0941a3-25b7-48b0-99c7-9624ada1a986 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МВ f \N 2024-09-29 09:49:42.96793 +9e0d94ef-2c1f-4335-9279-497357dfe550 0ce35443-78f6-473a-97f2-e1f2d5ba7a4e bb7aa36f-446e-4262-a609-28694ca2e398 4 2024-09-29 09:49:42.970858 2024-09-29 09:49:42.970858 Department 08486404 ВК Советского района Республики Марий Эл Военный комиссариат Советского района Республики Марий Эл Респ. Марий Эл, р-н. Советский, пгт. Советский, ул. Садовая, д. 6б a9d465bd-16d2-4a8e-ab03-2f157fd31846 Респ. Марий Эл, р-н. Советский, пгт. Советский, ул. Садовая, д. 6б a9d465bd-16d2-4a8e-ab03-2f157fd31846 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МС f 12 2024-09-29 09:49:42.970535 +51f57f8b-b2ef-4409-89cd-55b544c1dfcd ac702380-5836-4bed-b846-a8c15b241a84 bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.973581 2024-09-29 09:49:42.973581 Department 08486278 ВК Оршанского района Республики Марий Эл Военный комиссариат Оршанского района Республики Марий Эл Респ. Марий Эл, р-н. Оршанский, пгт. Оршанка, ул. Советская, д. 47 53407427-08ac-47bb-86da-3821e376c4ae Респ. Марий Эл, р-н. Оршанский, пгт. Оршанка, ул. Советская, д. 47 53407427-08ac-47bb-86da-3821e376c4ae \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МО f \N 2024-09-29 09:49:42.973194 +b08c1d90-915a-4bb4-a6c4-f44e2af9e63d 6ed8b34f-d049-4b7f-8d1b-b99a1852236b bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.976162 2024-09-29 09:49:42.976162 Department 08486120 ВК Медедевского и Килемарского района Республики Марий Эл Военный комиссариат Медедевского и Килемарского района Республики Марий Эл Респ. Марий Эл, р-н. Медведевский, пгт. Медведево, ул. Шумелева, д. 14 0f872398-5f7f-4d42-a17e-1dda2faf974c Респ. Марий Эл, р-н. Медведевский, пгт. Медведево, ул. Шумелева, д. 14 0f872398-5f7f-4d42-a17e-1dda2faf974c \N \N \N \N \N \N \N \N \N \N t +03:00 t \N ММ f \N 2024-09-29 09:49:42.975837 +8667f0ec-4ca3-4668-8846-8b665cebda8d fc10523f-af31-4f6b-b0e2-00799758f634 bb7aa36f-446e-4262-a609-28694ca2e398 1 2024-09-29 09:49:42.978625 2024-09-29 09:49:42.978625 Department 08485971 ВК города Козьмодемьянск, Горномарийского и Юринского районов Республики Марий Эл Военный комиссариат города Козьмодемьянск, Горномарийского и Юринского районов Республики Марий Эл Респ. Марий Эл, г. Козьмодемьянск, ул. Гагарина, д. 54 dbc24888-8544-4ad2-85a3-03b2d490cdd6 Респ. Марий Эл, г. Козьмодемьянск, ул. Гагарина, д. 54 dbc24888-8544-4ad2-85a3-03b2d490cdd6 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N f \N 2024-09-29 09:49:42.978311 +a933e951-88c0-421d-a291-33fa4cea36fc 1ff99d4f-7418-46bc-9c60-61a0e4ec77bd bb7aa36f-446e-4262-a609-28694ca2e398 2 2024-09-29 09:49:42.981338 2024-09-29 09:49:42.981338 Department 08486166 ВК Моркинского района Республики Марий Эл Военный комиссариат Моркинского района Республики Марий Эл Респ. Марий Эл, р-н. Моркинский, пгт. Морки, ул. Пушкина, д. 16 199b74ce-00a6-4fbd-a681-f60db2754db7 Респ. Марий Эл, р-н. Моркинский, пгт. Морки, ул. Пушкина, д. 16 199b74ce-00a6-4fbd-a681-f60db2754db7 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N ММ f 12 2024-09-29 09:49:42.98099 +58684643-1498-446e-bd62-8883d17f72bd 9a4640f6-143a-7642-51bd-d2b5ac5e9d1e b00de68d-2e09-4776-9b48-1566a7222dca 3 2024-09-29 09:49:42.983939 2024-09-29 09:49:42.983939 Organization 96199409 ВК Вятска Военный комиссариат Вятска Тест \N Респ. Удмуртская, р-н. Каракулинский, с/п. Вятское 71e8456a-acf1-432d-80ee-def9d7123fab \N \N \N \N \N 3333333333 \N \N t +01:30 f b00de68d-2e09-4776-9b48-1566a7222dca ВЯ f 18 2024-09-29 09:49:42.983526 +6693233b-7893-43b5-80f5-08b282c35156 1cf09194-0f3b-4f2c-a14f-03604d68ff8f 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.986828 2024-09-29 09:49:42.986828 Department 08470969 ВК Добринского района Липецкой области Военный комиссариат Добринского района Липецкой области \N \N \N обл. Липецкая, р-н. Добринский, п. Добринка, ул. Корнева, д. 9 635c92bc-ab19-4617-9e53-0deae43b850a \N \N 42612422 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 4c04ea3a-577f-4cbb-998c-c3a57137461b t +03:00 t \N ЛД f 48 2024-09-29 09:49:42.986397 +b9c6bc65-f4be-4b7e-842b-1c4d90f0c07f 52b4ee14-5af8-c029-26c2-80faba9e967d b00de68d-2e09-4776-9b48-1566a7222dca 3 2024-09-29 09:49:42.989945 2024-09-29 09:49:42.989945 Organization 23422332 Вторая организация Вторая организация \N Респ. Татарстан, г. Казань, ул. Юлиуса Фучика, д. 64, корп. 2, кв. 1 f81f8017-27b8-4994-9f17-e61d1684a55b \N \N \N \N \N 3423445434 \N \N t +00:00 t b00de68d-2e09-4776-9b48-1566a7222dca АА f 50 2024-09-29 09:49:42.989499 +46c0431c-6d5e-469c-9b89-2f0ed33c2cef 9c459101-fa10-4468-acbb-ce34df064aa1 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.992844 2024-09-29 09:49:42.992844 Department 08471041 ВК Добровского района Липецкой области Военный комиссариат Добровского района Липецкой области \N \N \N обл. Липецкая, р-н. Добровский, с. Доброе, ул. Советской Армии, д. 2 1de813ab-7a54-4791-8163-bdb3812f4368 \N \N 42615416 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 726dd93c-9e9d-40d4-91e3-3b9dd03c1cbe t +03:00 t \N ЛД f 48 2024-09-29 09:49:42.992492 +4e4c712e-f3bb-4f2f-8cf1-6e1c9bda2677 5ea50fa7-0b85-4a27-8293-dbd36162cb9a 52b4ee14-5af8-c029-26c2-80faba9e967d 2 2024-09-29 09:49:42.995541 2024-09-29 09:49:42.995541 Department 34523323 Второе подразделение Второе подразделение \N Респ. Татарстан, г. Казань, ул. Юлиуса Фучика, д. 64, корп. 2, кв. 1 f81f8017-27b8-4994-9f17-e61d1684a55b \N \N \N \N \N \N \N \N \N \N t +01:00 t \N АА f 31 2024-09-29 09:49:42.995194 +4da4fafb-f3ba-4f18-8140-54fffd552d59 a2d517d4-a6c3-4cb8-8d9b-3c8d15a7007c 2137685f-0683-4131-82d8-983222114184 1 2024-09-29 09:49:42.998227 2024-09-29 09:49:42.998227 Department 08471503 ВК Тербунского и Воловского районов Липецкой области Военный комиссариат Тербунского и Воловского районов Липецкой области \N \N \N обл. Липецкая, р-н. Тербунский, с. Тербуны, ул. Ленина, д. 59 2bcf7e99-6f01-4920-851c-0a3b2ce4e637 \N \N 42645458 1024800835311 1024800835311 \N 482501001 4825011699 42000000000 \N 73679f37-b808-4937-ba57-6703ed798d11 t +03:00 t \N ЛТ f 48 2024-09-29 09:49:42.997899 +d740fa3c-bb0a-42d7-9ba6-347fc7b57e4a 4c062d4a-3f77-c850-6388-dde909e3946b 58ef9cdc-8a9d-429e-89a5-1c49e2684a98 2 2024-09-29 09:49:43.050417 2024-09-29 09:49:43.050417 Organization 54645334 АВвыфафв АВфвафв \N обл. Свердловская, г. Ивдель, ул. 50 лет Октября, снт. Москвич dd070b86-ee86-4fd7-bea9-178d8f0ab4cc \N \N 24214321412 \N \N \N 213412321 5234543223 \N \N t +01:34 t 58ef9cdc-8a9d-429e-89a5-1c49e2684a98 ВА f 36 2024-09-29 09:49:43.000637 +dfe9ce08-7f82-4d59-a21d-65c1a9f1ed3b bacac23b-477f-4c26-8973-d83f0ca387fb 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:43.055669 2024-09-29 09:49:43.055669 Department 08444050 ВК города Корсаков и Корсаковского района Сахалинской области Военный комиссариат города Корсаков и Корсаковского района Сахалинской области \N \N \N обл. Сахалинская, р-н. Корсаковский, г. Корсаков, ул. Окружная, зд. 58 ec66984a-c184-4dae-a2ca-8daac8c925f5 \N \N 64716000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N 3a9683ce-e82c-4154-ab52-3cd9e0caaa36 t +11:00 t \N СК f 65 2024-09-29 09:49:43.054909 +9c09e210-6dd9-4bc3-a8ad-f3dd4d1cc70a 82518cee-d3ce-40fd-a5b4-3e12647afc45 84bc45ab-c032-410e-9dc5-07e92719ede4 1 2024-09-29 09:49:43.060245 2024-09-29 09:49:43.060245 Department 08444392 ВК города Александровск-Сахалинский, Александровск-Сахалинского и Тымовского районов Сахалинской области Военный комиссариат города Александровск-Сахалинский, Александровск-Сахалинского и Тымовского районов Сахалинской области \N \N \N обл. Сахалинская, р-н. Тымовский, пгт. Тымовское, ул. Харитонова, д. 19 72156f5a-44b1-4c06-84e4-4fe5b7616e59 \N \N 64750000 1026500540659 1026500540659 \N 650101001 6501027156 64000000000 \N d1a06c53-0dad-41b1-ac02-258eb45fa28b t +11:00 t \N СА f 65 2024-09-29 09:49:43.059666 +4dcebf08-40b2-4ba0-8fe8-700d67cdc5b2 22c64b79-f8e4-41e7-a2f3-1aa9df424fd9 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:43.064228 2024-09-29 09:49:43.064228 Department 08476819 ВК Рыбновского района Рязанской области Военный комиссариат Рыбновского района Рязанской области \N \N \N обл. Рязанская, р-н. Рыбновский, г. Рыбное, ул. Советской Армии 06d6380c-4f90-4c89-93d1-979a98e9ace7 \N \N 61627101 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 57761889-e0ba-4def-94ed-15b134a87ca1 t +03:00 t \N РР f 62 2024-09-29 09:49:43.063521 +3e77b04b-168d-4f27-a4b4-dce4ac71f394 27f7b3c0-a222-45e0-896f-58bdf4341a41 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:43.069449 2024-09-29 09:49:43.069449 Department 08476529 ВК города Михайлов, Михайловского и Захаровского районов Рязанской области Военный комиссариат города Михайлов, Михайловского и Захаровского районов Рязанской области \N \N \N обл. Рязанская, р-н. Михайловский, г. Михайлов, пл. Ленина e37d3b48-a980-42ce-869a-e3abbf438798 \N \N 61617101 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 2c66c5ea-4d7a-464e-9279-f9af1cf4258d t +03:00 t \N РМ f 62 2024-09-29 09:49:43.068624 +e7eaf26b-e0b6-4b1f-8a8b-c7f4ec26fb90 370bc761-ae40-46f1-b4d8-974317b5ceb6 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:43.07467 2024-09-29 09:49:43.07467 Department 08476438 ВК города Касимов и Касимовского района Рязанской области Военный комиссариат города Касимов и Касимовского района Рязанской области \N \N \N обл. Рязанская, г. Касимов, ул. Карла Маркса, д. 7 78996d8c-9f40-4798-9f40-63e74e80a8b0 \N \N 61705000 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 954a9df0-531f-47f7-aaa0-e0ddfd64c880 t +03:00 t \N РК f 62 2024-09-29 09:49:43.074076 +d05d4f2f-168f-48c8-8817-f6403654a614 d1efbe15-744e-8521-5b8e-7ac604e4379b b00de68d-2e09-4776-9b48-1566a7222dca 3 2024-09-29 09:49:43.07826 2024-09-29 09:49:43.07826 Organization 23344455 Тестовая Организация Тестовая Организация \N г. Москва 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 \N \N \N \N \N 2222222222 \N \N t +01:30 t b00de68d-2e09-4776-9b48-1566a7222dca МО f 46 2024-09-29 09:49:43.077776 +2386a304-73a2-40ce-b3ec-f02d688f3b20 37c187fe-4f37-45e6-9246-07148112367c 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:43.082578 2024-09-29 09:49:43.082578 Department 08476794 ВК Пронского и Старожиловского районов Рязанской области Военный комиссариат Пронского и Старожиловского районов Рязанской области \N \N \N обл. Рязанская, р-н. Пронский, рп. Пронск, ул. Первомайская, д. 25 ae784d87-e52a-416a-9d30-8ff52396a3de \N \N 61625151 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 0bab4262-c2f1-4140-9ffd-4e326d17f900 t +03:00 t \N РП f 62 2024-09-29 09:49:43.081734 +4ac5c009-5dc4-4ed3-a2ae-ec3a583d8ec0 dad6c101-34be-45c3-8173-57190cb69dfb 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:43.086295 2024-09-29 09:49:43.086295 Department 08476860 ВК Ряжского и Александро-Невского районов Рязанской области Военный комиссариат Ряжского и Александро-Невского районов Рязанской области \N \N \N обл. Рязанская, р-н. Ряжский, г. Ряжск, ул. Высотная, д. 1А ee4e1a93-68b0-4d52-98ff-ce41870c762d \N \N 61630101 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 95431672-0829-4532-b888-7dfd37f89be5 t +03:00 t \N РР f 62 2024-09-29 09:49:43.085829 +aa6f0546-fc5d-4c51-a22d-27a8ce0041f3 f6a7fb8b-379f-4802-bf00-73f9c493825f 092d6963-287c-454e-8d73-8e09ebee972e 1 2024-09-29 09:49:43.089197 2024-09-29 09:49:43.089197 Department 08476920 ВК города Сасово, Ермишинского, Кадомского, Сасовского и Пителинского районов Рязанской области Военный комиссариат города Сасово, Ермишинского, Кадомского, Сасовского и Пителинского районов Рязанской области \N \N \N обл. Рязанская, г. Сасово, ул. Ленина, д. 67 e472eeb4-9784-458e-a8b0-4c186ab48cc9 \N \N 61710000 1026201271337 1026201271337 \N 602701001 6231026092 61000000000 \N 881b2f73-b939-4796-98f6-8dd16fa937ad t +03:00 t \N РС f 62 2024-09-29 09:49:43.08885 +8000b421-4a1a-4db4-97f7-e01daaa93f42 0e10678c-f272-41c3-94dd-c15830321f9a bb7aa36f-446e-4262-a609-28694ca2e398 3 2024-09-29 09:49:43.092122 2024-09-29 09:49:43.092122 Department 08486189 ВК Новоторъяльского района Республики Марий Эл Военный комиссариат Новоторъяльского района Республики Марий Эл Респ. Марий Эл, р-н. Новоторъяльский, пгт. Новый Торъял, ул. Советская, д. 11 e709b7cf-5e4b-4034-84f0-c59408137b61 Респ. Марий Эл, р-н. Новоторъяльский, пгт. Новый Торъял, ул. Советская, д. 11 e709b7cf-5e4b-4034-84f0-c59408137b61 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МН f 12 2024-09-29 09:49:43.091659 +ce800cef-2d23-43e3-974f-6b79de3270ae fe655d90-893a-31f7-ff8b-9ccef8af0f83 30a01af9-a871-411a-90e3-d81592bb074f 2 2024-09-29 09:49:43.150363 2024-09-29 09:49:43.150363 Organization 00000001 Администрация городского округа Щёлково Московской области Администрация городского округа Щёлково Московской области 1111111111 обл. Московская, г. Щёлково, гск. Центральный ca9ef592-d8d5-4cea-88f5-7d1823ba3fc9 обл. Московская, г. Щёлково, гск. Центральный ca9ef592-d8d5-4cea-88f5-7d1823ba3fc9 \N \N \N \N \N 2376709786 \N \N t +03:00 t 30a01af9-a871-411a-90e3-d81592bb074f МЩ f 50 2024-09-29 09:49:43.094485 +3b767267-c2ef-468c-9e67-114ec4105832 e079ea79-50f1-4af4-beea-1b7648e86ce9 fe655d90-893a-31f7-ff8b-9ccef8af0f83 1 2024-09-29 09:49:43.1562 2024-09-29 09:49:43.1562 Department 08474818 ВК городских округов Щелково Фрязино Звездный городок и Лосино-Петровского городского округа Московской области ВК городских округов Щелково Фрязино Звездный городок и Лосино-Петровского городского округа Московской области обл. Московская, г. Щёлково, ул. Центральная a94b46de-09e5-4292-80e1-db2e49797b00 обл. Московская, г. Щёлково, ул. Центральная a94b46de-09e5-4292-80e1-db2e49797b00 \N \N \N \N \N \N \N \N \N \N t +03:00 t \N МЩ f 50 2024-09-29 09:49:43.155505 +\. + + +-- +-- Data for Name: user_application_document; Type: TABLE DATA; Schema: public; Owner: ervu +-- + +COPY public.user_application_document (user_application_document_id, file_name, file, user_application_list_id) FROM stdin; +16 2024101709141520TimeSheetReport.xls \\xd0cf11e0a1b11ae1000000000000000000000000000000003b000300feff0900060000000000000000000000010000000000000000000000001000005800000001000000feffffff0000000001000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000501ffffffffffffffff0200000000000000000000000000000000000000000000000000000000000000000000000000000059000000c00000000000000057006f0072006b0062006f006f006b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000002000000d9ab0000000000000500530075006d006d0061007200790049006e0066006f0072006d006100740069006f006e000000000000000000000000000000000000000000000000000000280002010100000003000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000006c00000000000000050044006f00630075006d0065006e007400530075006d006d0061007200790049006e0066006f0072006d006100740069006f006e000000000000000000000038000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000020000003800000000000000fefffffffdffffff030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f0000005000000051000000520000005300000054000000550000005600000057000000fefffffffefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0908100000060500d310cc0741000000060000009200e200380000000000ffffff00ff00000000ff00000000ff00ffff0000ff00ff0000ffff00800000000080000000008000808000008000800000808000c0c0c000808080009999ff0099336600ffffcc00ccffff0066006600ff8080000066cc00ccccff0000008000ff00ff00ffff000000ffff008000800080000000008080000000ff0000ccff00ccffff00ccffcc00ffff990099ccff00ff99cc00cc99ff00ffcc99003366ff0033cccc0099cc0000ffcc0000ff990000ff66000066669900969696000033660033996600003300003333000099330000993366003333990033333300e1000200b004c10002000000e20000005c0070000400006a69726120202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202042000200b0046101020000003d01020000009c0002000e00190002000000120002000000130002000000af0102000000bc01020000003d00120068010e015c3abe23380000000000010058024000020000008d00020000002200020000000e0002000100b70102000000da000200000031001500c8000000ff7f90010000000000000500417269616c31001500c8000000ff7f90010000000000000500417269616c31001500c8000000ff7f90010000000000000500417269616c31001500c8000000ff7f90010000000000000500417269616c31001500c8000000080090010000000000000500417269616c31001500180100000800bc020000000000000500417269616c31001500dc0000000800bc020000000000000500417269616c31001500f00000000800bc020000000000000500417269616c1e041a000500150000222422232c2323305f293b28222422232c232330291e041f0006001a0000222422232c2323305f293b5b5265645d28222422232c232330291e04200007001b0000222422232c2323302e30305f293b28222422232c2323302e3030291e0425000800200000222422232c2323302e30305f293b5b5265645d28222422232c2323302e3030291e0435002a003000005f282224222a20232c2323305f293b5f282224222a2028232c232330293b5f282224222a20222d225f293b5f28405f291e042c0029002700005f282a20232c2323305f293b5f282a2028232c232330293b5f282a20222d225f293b5f28405f291e043d002c003800005f282224222a20232c2323302e30305f293b5f282224222a2028232c2323302e3030293b5f282224222a20222d223f3f5f293b5f28405f291e0434002b002f00005f282a20232c2323302e30305f293b5f282a2028232c2323302e3030293b5f282a20222d223f3f5f293b5f28405f29e000140000000000f5ff200000000000000000000000c020e000140001000000f5ff200000f40000000000000000c020e000140001000000f5ff200000f40000000000000000c020e000140002000000f5ff200000f40000000000000000c020e000140002000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e000140000000000f5ff200000f40000000000000000c020e0001400000000000100200000000000000000000000c020e000140001002b00f5ff200000f80000000000000000c020e000140001002900f5ff200000f80000000000000000c020e000140001002c00f5ff200000f80000000000000000c020e000140001002a00f5ff200000f80000000000000000c020e000140001000900f5ff200000f80000000000000000c020e00014000000000001002000000000000804080400040920e0001400050000000100090000b800000000000000040920e0001400060000000100090000b800000804080400040920e00014000700000001001a0000b811110804080400041620e0001400060000000100090000b811110804080400040920e00014000500000001001a0000b811110804080400041620e0001400050000000100090000b811110804080400040920e00014000800000001001b0000b811110804080400042f20e00014000500000001001a0000b811110804080400042f2093020400108003ff93020400118006ff93020400128004ff93020400138007ff93020400008000ff93020400148005ff600102000000850013007c15000000000b007265706f7274206e616d658c00040001000100eb005a000f0000f052000000000006f01800000001040000020000000100000001000000010000000100000033000bf012000000bf0008000800810141000008c0014000000840001ef1100000000d0000080c00000817000008f7000010ae01040001000104170008000100000000000000fc00d90cf3080000d300000020000122041004110415041b042c042000200023042704150422041004200020002004100411041e042704150413041e04200020001204200415041c0415041d041804140001180422041e0413041e0420003704300420003c04350441044f0446042c0020004704300441042000150001180422041e0413041e0420003704300420003c04350441044f0446042c002000340435043d044c0420000b00011a043e043c043c0435043d04420430044004380439040c00011e043a0442044f04310440044c042000320030003200340001000116210500012404380440043c04300405000124042e0018042e001e040100003101000032010000330100003401000035010000360100003701000038010000390200003130020000313102000031320200003133020000313402000031350200003136020000313702000031380200003139020000323002000032310200003232020000323302000032340200003235020000323602000032370200003238020000323902000033300200003331130001180422041e0413041e042c0020003704300420003c04350441044f0446042000470430044104140001180422041e0413041e042c0020003704300420003c04350441044f0446042000340435043d044c040200011204420402000121044004020001270442040200011f04420402000121043104020001120441040200011f043d040c00011e041e041e04200022001c0438043a043e044004340422000f00011004390442044304330430043d043e04320420001b0435043d0430044004040000382e30300100003005000037322e3030040000392e30300000000e000110043b04300448043a043e043204300420001d04300438043b044f0405000039362e303005000031322e30300f00011004430437044f043a04200015043a04300442043504400438043d043004040000362e303005000032322e3030040000322e37350f0001110430044204300440043e043204200014043c04380442044004380439040d000111043e044004380441043e043204200020043e043c0430043d040c0001120430043b043804350432042000220438043c0443044004120001120430043b04380443043b043b0438043d042000180441043a0430043d0434043504400405000038382e303005000031312e30301100011a043e044704430440043e043204200012043b0430043404380441043b043004320405000031302e303005000037342e3030040000392e32350f0001130430043704380437043e043204300420001a04410435043d0438044f041000011304300437044204340438043d043e04320420002004430441043b0430043d040e0001130430043d04380435043204300420001004390441044b043b044304040000342e303705000039322e303708000031312e35303837350e000113043b04350431043e04320430042000220430043c04300440043004040000352e303005000036302e3030040000372e3530130001170430043c0430043b0435044204340438043d043e043204200018043b044c043d04430440040d000117043004400438043f043e04320420002d043c0438043b044c04040000322e3530040000392e353005000032372e3030050000332e3337350c00011804320430043d043e0432042000140435043d04380441040d000118043b044c0438043d04200012043804420430043b04380439040e000118043c0430043c043e04320430042000140438043b044f04400430041000011a0430043b0438043c0443043b043b0438043d0420001004340435043b044c040d00011a043004400438043c043e04320420001b0435043d0430044004040000302e353005000033332e3530060000342e313837351200011a043e044704350442043a043e043204200010043b0435043a04410430043d043404400405000039372e353007000031322e313837350f00011a043e044704350442043a043e04320420002104350440043304350439040d00011a04430437043d04350446043e043204300420002f043d04300405000035392e3030050000372e3337350e00011a0443043b0438043a043e04320420001c0430043a04410438043c040c00011b04300442044b043f043e043204200020043004430444040e00011c0430043a04300440043e0432043004200015043b0435043d0430040e00011c0430043b043a043e043204200015043204330435043d04380439040d00011e041e041e04200022001c0438043a043e044004340422000a000e00011c0430044004340430043d043e0432042000100440044204430440040f00011c0438043d04330430043b043504350432042000200435043d04300442040600003131322e303005000031342e30301400011c044304450430043c043504420437044f043d043e04320430042000140438043b044f0440043004040000372e303005000039352e303006000031312e3837351300011d04380433043c043004420443043b043b0438043d042000120438043b044c04340430044004040000312e30300a00011d043804490443043a0420001804320430043d0402000033320f00011e044104420440043e0443043c043e0432043004200018043d043d04300402000033330f00011104300433043004350432043004200021044e043c04310435043b044c0402000033340e0001200443043f04300441043e043204200021043504400433043504390402000033350d0001210430043104380440043e043204200020043004340438043a04020000333612000121043004320435043b044c0435043204200010043b0435043a04410430043d0434044004040000382e3530040000322e303005000031382e3530060000322e333132350200003337100001210430043b04420438043c0430043a043e04320420001004340435043b044c0402000033380c0001210430043b044f0445043e043204200024043e04300442040200003339100001210430044404380443043b043b0438043d043004200010043b0438043d04300402000034300b0001210435043c0438043d04300420002e043b0438044f04020000343110000121043e0431043e043b0435043204300420001d043004420430043b044c044f0402000034320f0001210443043b04350439043c0430043d043e04320420002d043c04380440040200003433110001220430044004450430043d043e04320430042000130443043b044c043d043004370405000039382e303005000031322e32350200003434100001220438043c0435044004330430043b0438043d042000140435043d043804410405000038302e303002000034351000012204380445043e043c04380440043e04320420002d043404430430044004340402000034361000012204380445043e043c04380440043e0432043004200010043b0438043d0430040200003437100001230440043c0430043d0447043504350432043004200015043b0435043d043004040000342e30300200003438150001250430043104380431044004300445043c0430043d043e043204300420001a043004400438043d043004020000343910000125043004310438043f043e043204300420002d043b044c04320438043d04300405000039392e303006000031322e33373502000035300f0001250430043904400443043b043b0438043d042000110443043b04300442040600003132362e303005000031352e37350200003531110001250430043904400443044204340438043d043e043204200020044304480430043d040200003532100001250430043a0438043c0443043b043b0438043d04200010044004420451043c0405000039352e353007000031312e393337350200003533100001250430043b0442043e04310438043d04200015043204330435043d043804390402000035340c0001260438043b044c043a04350420001f043004320435043b04040000362e3530060000302e3831323502000035351100012804300433043804300445043c04350442043e04320420001004390432043004400405000035362e303002000035360d0001280430043a04380440043e0432042000100439043404300440040200003537130001280430043b043004330438043d043e043204200010043b0435043a04410430043d043404400402000035380c00012d043f0448044204350439043d0420001c0438043b04300405000031392e3030050000322e33373502000035390e00012f043c0438043d043e043204300420001a04410435043d0438044f040d0001180422041e0413041e042000370430042000340435043d044c040600003436332e35300600003436352e35300600003434392e30300600003434302e303005000031362e30300600003432372e35300600003432352e35300600003431352e30300600003434332e30300600003433392e303005000033322e30300600003339332e35370600003431322e35300600003338392e3530070000343334362e35370900003534332e3332313235ff00da000800c90700000c000000b7080000fa000000d70800001a010000fe08000041010000260900006901000072090000b5010000ce09000011020000460a000089020000cb0a00000e030000590b00009c030000fc0b00003f0400006f0c0000b20400001e0d000061050000c40d0000070600008b0e0000ce0600001a0f00005d070000ac0f0000ef0700001f10000062080000ad100000f0080000381100007b090000bc110000ff09000051120000940a0000c2120000050b0000471300008a0b0000c71300000a0c000034140000770c00007b140000be0c00000a0000000908100000061000bb0dcc07c1000000060000005e00020000000b021c0000000000000000004600000000000000ca540000469b00002ca700000d00020001000c00020064000f000200010011000200000010000800fca9f1d24d62503f5f00020001002a00020000002b0002000000820002000100800008000000000000000000250204000000ff0081000200c1041400000015000000830002000000840002000000260008000000000000000000270008000000000000000000280008000000000000000000290008000000000000000000a10022000100640001000100010002002c012c010000000000000000000000000000000001005500020008007d000c00000000002b000f00020002007d000c0001000100b6050f00020002007d000c000200020026130f00020002007d000c000300030031030f00020002007d000c0004000400631c0f00020002007d000c000500070035050f00020002007d000c0008000800b6050f00020002007d000c000900160035050f00020002007d000c0017001700e1050f00020002007d000c001800230035050f00020002007d000c002400240020100f00020002007d000c00250025001c0e0f00020002007d000c0026002600ed0b0f00020002007d000c002700270000ff0f00020002007d000c00280028005f1a0f00020002007d000c0029002900a9140f00020002007d000c002a002a00bd1e0f000200020000020e00000000004600000000002b00000008021000000000002b0090010000000040010f0008021000010000002b00c8000000000040010f0008021000020000002b0018010000000040010f0008021000030000002b0034030000000040010f0008021000040000002b00ec040000000040010f0008021000050000002b00a4010000000040010f0008021000060000002b001c020000000040010f0008021000070000002b0030020000000040010f0008021000080000002b0054010000000040010f0008021000090000002b0054010000000040010f00080210000a0000002b0054010000000040010f00080210000b0000002b0054010000000040010f00080210000c0000002b0054010000000040010f00080210000d0000002b0054010000000040010f00080210000e0000002b0054010000000040010f00080210000f0000002b0054010000000040010f0008021000100000002b0054010000000040010f0008021000110000002b0054010000000040010f0008021000120000002b0054010000000040010f0008021000130000002b0054010000000040010f0008021000140000002b0054010000000040010f0008021000150000002b0054010000000040010f0008021000160000002b0054010000000040010f0008021000170000002b0054010000000040010f0008021000180000002b0054010000000040010f0008021000190000002b0054010000000040010f00080210001a0000002b0054010000000040010f00080210001b0000002b0054010000000040010f00080210001c0000002b0054010000000040010f00080210001d0000002b0054010000000040010f00080210001e0000002b0054010000000040010f00080210001f0000002b0054010000000040010f00be005c000000000016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002a00fd000a0001000000170000000000be005a00010001001700170017001700170017001700170017001700170017001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002a00be0056000200000017001700170017001700170017001700170017001700170017001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002700fd000a0002002800180001000000fd000a0002002900180002000000fd000a0002002a00180003000000be005c000300000016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001800180018002a00be005c000400000016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002a00fd000a0005000000190004000000be005a00050001001900190019001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002a00fd000a000600000018000500000001020600060001001800fd000a0006000200180006000000fd000a000600030018000700000001020600060004001800fd000a0006000500180008000000fd000a0006000600180009000000fd000a000600070018000a000000fd000a000600080018000b000000fd000a000600090018000c000000fd000a0006000a0018000d000000fd000a0006000b0018000e000000fd000a0006000c0018000f000000fd000a0006000d00180010000000fd000a0006000e00180011000000fd000a0006000f00180012000000fd000a0006001000180013000000fd000a0006001100180014000000fd000a0006001200180015000000fd000a0006001300180016000000fd000a0006001400180017000000fd000a0006001500180018000000fd000a0006001600180019000000fd000a000600170018001a000000fd000a000600180018001b000000fd000a000600190018001c000000fd000a0006001a0018001d000000fd000a0006001b0018001e000000fd000a0006001c0018001f000000fd000a0006001d00180020000000fd000a0006001e00180021000000fd000a0006001f00180022000000fd000a0006002000180023000000fd000a0006002100180024000000fd000a0006002200180025000000fd000a0006002300180026000000fd000a0006002400180027000000fd000a0006002500180028000000fd000a0006002600180003000000be000e000600270016001600160016002a00be00100007000000180018001800180018000400fd000a00070005001a0029000000fd000a00070006001a002a000000fd000a00070007001a002b000000fd000a00070008001a002c000000fd000a00070009001a002d000000fd000a0007000a001a002e000000fd000a0007000b001a002f000000fd000a0007000c001a0029000000fd000a0007000d001a002a000000fd000a0007000e001a002b000000fd000a0007000f001a002c000000fd000a00070010001a002d000000fd000a00070011001a002e000000fd000a00070012001a002f000000fd000a00070013001a0029000000fd000a00070014001a002a000000fd000a00070015001a002b000000fd000a00070016001a002c000000fd000a00070017001a002d000000fd000a00070018001a002e000000fd000a00070019001a002f000000fd000a0007001a001a0029000000fd000a0007001b001a002a000000fd000a0007001c001a002b000000fd000a0007001d001a002c000000fd000a0007001e001a002d000000fd000a0007001f001a002e000000fd000a00070020001a002f000000fd000a00070021001a0029000000fd000a00070022001a002a000000fd000a00070023001a002b000000be0014000700240018001800180016001600160016002a00fd000a00080000001b000800000001020600080001001b00fd000a00080002001b0030000000fd000a00080003001b003100000001020600080004001b00fd000a00080005001b0032000000fd000a00080006001b0032000000fd000a00080007001b0032000000fd000a00080008001b0032000000fd000a00080009001b0033000000fd000a0008000a001b0033000000fd000a0008000b001b0032000000fd000a0008000c001b0032000000fd000a0008000d001b0032000000fd000a0008000e001b0032000000fd000a0008000f001b0032000000fd000a00080010001b0033000000fd000a00080011001b0033000000fd000a00080012001b0033000000fd000a00080013001b0033000000fd000a00080014001b0033000000fd000a00080015001b0033000000fd000a00080016001b0033000000fd000a00080017001b0033000000fd000a00080018001b0033000000fd000a00080019001b0033000000fd000a0008001a001b0033000000fd000a0008001b001b0033000000fd000a0008001c001b0033000000fd000a0008001d001b0033000000fd000a0008001e001b0033000000fd000a0008001f001b0033000000fd000a00080020001b0033000000fd000a00080021001b0033000000fd000a00080022001b0033000000fd000a00080023001b0033000000fd000a00080024001b0034000000fd000a00080025001b0035000000fd000a00080026001b0036000000be000e000800270016001600160016002a00fd000a00090000001b000900000001020600090001001b00fd000a00090002001b0030000000fd000a00090003001b003700000001020600090004001b00fd000a00090005001b0032000000fd000a00090006001b0032000000fd000a00090007001b0032000000fd000a00090008001b0032000000fd000a00090009001b0033000000fd000a0009000a001b0033000000fd000a0009000b001b0032000000fd000a0009000c001b0032000000fd000a0009000d001b0032000000fd000a0009000e001b0032000000fd000a0009000f001b0032000000fd000a00090010001b0033000000fd000a00090011001b0033000000fd000a00090012001b0032000000fd000a00090013001b0032000000fd000a00090014001b0032000000fd000a00090015001b0033000000fd000a00090016001b0033000000fd000a00090017001b0033000000fd000a00090018001b0033000000fd000a00090019001b0033000000fd000a0009001a001b0033000000fd000a0009001b001b0033000000fd000a0009001c001b0033000000fd000a0009001d001b0033000000fd000a0009001e001b0033000000fd000a0009001f001b0033000000fd000a00090020001b0033000000fd000a00090021001b0033000000fd000a00090022001b0033000000fd000a00090023001b0033000000fd000a00090024001b0038000000fd000a00090025001b0039000000fd000a00090026001b0036000000be000e000900270016001600160016002a00fd000a000a0000001b000a000000010206000a0001001b00fd000a000a0002001b0030000000fd000a000a0003001b003a000000010206000a0004001b00fd000a000a0005001b0033000000fd000a000a0006001b0033000000fd000a000a0007001b0033000000fd000a000a0008001b0033000000fd000a000a0009001b0033000000fd000a000a000a001b0033000000fd000a000a000b001b0033000000fd000a000a000c001b0032000000fd000a000a000d001b003b000000fd000a000a000e001b0032000000fd000a000a000f001b0033000000fd000a000a0010001b0033000000fd000a000a0011001b0033000000fd000a000a0012001b0033000000fd000a000a0013001b0033000000fd000a000a0014001b0033000000fd000a000a0015001b0033000000fd000a000a0016001b0033000000fd000a000a0017001b0033000000fd000a000a0018001b0033000000fd000a000a0019001b0033000000fd000a000a001a001b0033000000fd000a000a001b001b0033000000fd000a000a001c001b0033000000fd000a000a001d001b0033000000fd000a000a001e001b0033000000fd000a000a001f001b0033000000fd000a000a0020001b0033000000fd000a000a0021001b0033000000fd000a000a0022001b0033000000fd000a000a0023001b0033000000fd000a000a0024001b003c000000fd000a000a0025001b003d000000fd000a000a0026001b0036000000be000e000a00270016001600160016002a00fd000a000b0000001b000b000000010206000b0001001b00fd000a000b0002001b0030000000fd000a000b0003001b003e000000010206000b0004001b00fd000a000b0005001b0032000000fd000a000b0006001b0032000000fd000a000b0007001b0032000000fd000a000b0008001b0032000000fd000a000b0009001b0033000000fd000a000b000a001b0033000000fd000a000b000b001b0032000000fd000a000b000c001b0032000000fd000a000b000d001b0032000000fd000a000b000e001b0032000000fd000a000b000f001b0032000000fd000a000b0010001b0033000000fd000a000b0011001b0033000000fd000a000b0012001b0032000000fd000a000b0013001b0032000000fd000a000b0014001b0032000000fd000a000b0015001b0033000000fd000a000b0016001b0033000000fd000a000b0017001b0033000000fd000a000b0018001b0033000000fd000a000b0019001b0033000000fd000a000b001a001b0033000000fd000a000b001b001b0033000000fd000a000b001c001b0033000000fd000a000b001d001b0033000000fd000a000b001e001b0033000000fd000a000b001f001b0033000000fd000a000b0020001b0033000000fd000a000b0021001b0033000000fd000a000b0022001b0033000000fd000a000b0023001b0033000000fd000a000b0024001b0038000000fd000a000b0025001b0039000000fd000a000b0026001b0036000000be000e000b00270016001600160016002a00fd000a000c0000001b000c000000010206000c0001001b00fd000a000c0002001b0030000000fd000a000c0003001b003f000000010206000c0004001b00fd000a000c0005001b0032000000fd000a000c0006001b0032000000fd000a000c0007001b0032000000fd000a000c0008001b0032000000fd000a000c0009001b0033000000fd000a000c000a001b0033000000fd000a000c000b001b0032000000fd000a000c000c001b0032000000fd000a000c000d001b0032000000fd000a000c000e001b0032000000fd000a000c000f001b0032000000fd000a000c0010001b0033000000fd000a000c0011001b0033000000fd000a000c0012001b0032000000fd000a000c0013001b0032000000fd000a000c0014001b0032000000fd000a000c0015001b0033000000fd000a000c0016001b0033000000fd000a000c0017001b0033000000fd000a000c0018001b0033000000fd000a000c0019001b0033000000fd000a000c001a001b0033000000fd000a000c001b001b0033000000fd000a000c001c001b0033000000fd000a000c001d001b0033000000fd000a000c001e001b0033000000fd000a000c001f001b0033000000fd000a000c0020001b0033000000fd000a000c0021001b0033000000fd000a000c0022001b0033000000fd000a000c0023001b0033000000fd000a000c0024001b0038000000fd000a000c0025001b0039000000fd000a000c0026001b0036000000be000e000c00270016001600160016002a00fd000a000d0000001b000d000000010206000d0001001b00fd000a000d0002001b0030000000fd000a000d0003001b0040000000010206000d0004001b00fd000a000d0005001b0032000000fd000a000d0006001b0032000000fd000a000d0007001b0032000000fd000a000d0008001b0032000000fd000a000d0009001b0033000000fd000a000d000a001b0033000000fd000a000d000b001b0032000000fd000a000d000c001b0032000000fd000a000d000d001b0032000000fd000a000d000e001b0032000000fd000a000d000f001b0032000000fd000a000d0010001b0033000000fd000a000d0011001b0033000000fd000a000d0012001b0032000000fd000a000d0013001b0032000000fd000a000d0014001b0032000000fd000a000d0015001b0033000000fd000a000d0016001b0033000000fd000a000d0017001b0033000000fd000a000d0018001b0033000000fd000a000d0019001b0033000000fd000a000d001a001b0033000000fd000a000d001b001b0033000000fd000a000d001c001b0033000000fd000a000d001d001b0033000000fd000a000d001e001b0033000000fd000a000d001f001b0033000000fd000a000d0020001b0033000000fd000a000d0021001b0033000000fd000a000d0022001b0033000000fd000a000d0023001b0033000000fd000a000d0024001b0038000000fd000a000d0025001b0039000000fd000a000d0026001b0036000000be000e000d00270016001600160016002a00fd000a000e0000001b000e000000010206000e0001001b00fd000a000e0002001b0030000000fd000a000e0003001b0041000000010206000e0004001b00fd000a000e0005001b0032000000fd000a000e0006001b0032000000fd000a000e0007001b0032000000fd000a000e0008001b0032000000fd000a000e0009001b0033000000fd000a000e000a001b0033000000fd000a000e000b001b0032000000fd000a000e000c001b0032000000fd000a000e000d001b0032000000fd000a000e000e001b0032000000fd000a000e000f001b0032000000fd000a000e0010001b0033000000fd000a000e0011001b0033000000fd000a000e0012001b0032000000fd000a000e0013001b0032000000fd000a000e0014001b0033000000fd000a000e0015001b0033000000fd000a000e0016001b0033000000fd000a000e0017001b0033000000fd000a000e0018001b0033000000fd000a000e0019001b0033000000fd000a000e001a001b0033000000fd000a000e001b001b0033000000fd000a000e001c001b0033000000fd000a000e001d001b0033000000fd000a000e001e001b0033000000fd000a000e001f001b0033000000fd000a000e0020001b0033000000fd000a000e0021001b0033000000fd000a000e0022001b0033000000fd000a000e0023001b0033000000fd000a000e0024001b0042000000fd000a000e0025001b0043000000fd000a000e0026001b0036000000be000e000e00270016001600160016002a00fd000a000f0000001b000f000000010206000f0001001b00fd000a000f0002001b0030000000fd000a000f0003001b0044000000010206000f0004001b00fd000a000f0005001b0032000000fd000a000f0006001b0045000000fd000a000f0007001b0032000000fd000a000f0008001b0032000000fd000a000f0009001b0033000000fd000a000f000a001b0033000000fd000a000f000b001b0032000000fd000a000f000c001b0032000000fd000a000f000d001b0032000000fd000a000f000e001b0032000000fd000a000f000f001b0032000000fd000a000f0010001b0033000000fd000a000f0011001b0033000000fd000a000f0012001b0033000000fd000a000f0013001b0033000000fd000a000f0014001b0033000000fd000a000f0015001b0033000000fd000a000f0016001b0033000000fd000a000f0017001b0033000000fd000a000f0018001b0033000000fd000a000f0019001b0033000000fd000a000f001a001b0033000000fd000a000f001b001b0033000000fd000a000f001c001b0033000000fd000a000f001d001b0033000000fd000a000f001e001b0033000000fd000a000f001f001b0033000000fd000a000f0020001b0033000000fd000a000f0021001b0033000000fd000a000f0022001b0033000000fd000a000f0023001b0033000000fd000a000f0024001b0046000000fd000a000f0025001b0047000000fd000a000f0026001b0036000000be000e000f00270016001600160016002a00fd000a00100000001b001000000001020600100001001b00fd000a00100002001b0030000000fd000a00100003001b004800000001020600100004001b00fd000a00100005001b0032000000fd000a00100006001b0032000000fd000a00100007001b0032000000fd000a00100008001b0032000000fd000a00100009001b0033000000fd000a0010000a001b0033000000fd000a0010000b001b0032000000fd000a0010000c001b0032000000fd000a0010000d001b0032000000fd000a0010000e001b0032000000fd000a0010000f001b0032000000fd000a00100010001b0033000000fd000a00100011001b0033000000fd000a00100012001b0032000000fd000a00100013001b0032000000fd000a00100014001b0032000000fd000a00100015001b0033000000fd000a00100016001b0033000000fd000a00100017001b0033000000fd000a00100018001b0033000000fd000a00100019001b0033000000fd000a0010001a001b0033000000fd000a0010001b001b0033000000fd000a0010001c001b0033000000fd000a0010001d001b0033000000fd000a0010001e001b0033000000fd000a0010001f001b0033000000fd000a00100020001b0033000000fd000a00100021001b0033000000fd000a00100022001b0033000000fd000a00100023001b0033000000fd000a00100024001b0038000000fd000a00100025001b0039000000fd000a00100026001b0036000000be000e001000270016001600160016002a00fd000a00110000001b001100000001020600110001001b00fd000a00110002001b0030000000fd000a00110003001b004900000001020600110004001b00fd000a00110005001b0032000000fd000a00110006001b0032000000fd000a00110007001b0032000000fd000a00110008001b0032000000fd000a00110009001b0033000000fd000a0011000a001b0033000000fd000a0011000b001b0032000000fd000a0011000c001b0032000000fd000a0011000d001b0032000000fd000a0011000e001b0032000000fd000a0011000f001b0032000000fd000a00110010001b0033000000fd000a00110011001b0033000000fd000a00110012001b0032000000fd000a00110013001b0032000000fd000a00110014001b0032000000fd000a00110015001b0033000000fd000a00110016001b0033000000fd000a00110017001b0033000000fd000a00110018001b0033000000fd000a00110019001b0033000000fd000a0011001a001b0033000000fd000a0011001b001b0033000000fd000a0011001c001b0033000000fd000a0011001d001b0033000000fd000a0011001e001b0033000000fd000a0011001f001b0033000000fd000a00110020001b0033000000fd000a00110021001b0033000000fd000a00110022001b0033000000fd000a00110023001b0033000000fd000a00110024001b0038000000fd000a00110025001b0039000000fd000a00110026001b0036000000be000e001100270016001600160016002a00fd000a00120000001b001200000001020600120001001b00fd000a00120002001b0030000000fd000a00120003001b004a00000001020600120004001b00fd000a00120005001b0032000000fd000a00120006001b0032000000fd000a00120007001b0032000000fd000a00120008001b0032000000fd000a00120009001b0033000000fd000a0012000a001b0033000000fd000a0012000b001b0032000000fd000a0012000c001b0032000000fd000a0012000d001b0032000000fd000a0012000e001b0032000000fd000a0012000f001b0032000000fd000a00120010001b0033000000fd000a00120011001b0033000000fd000a00120012001b004b000000fd000a00120013001b0032000000fd000a00120014001b0032000000fd000a00120015001b0033000000fd000a00120016001b0033000000fd000a00120017001b0033000000fd000a00120018001b0033000000fd000a00120019001b0033000000fd000a0012001a001b0033000000fd000a0012001b001b0033000000fd000a0012001c001b0033000000fd000a0012001d001b0033000000fd000a0012001e001b0033000000fd000a0012001f001b0033000000fd000a00120020001b0033000000fd000a00120021001b0033000000fd000a00120022001b0033000000fd000a00120023001b0033000000fd000a00120024001b004c000000fd000a00120025001b004d000000fd000a00120026001b0036000000be000e001200270016001600160016002a00fd000a00130000001b001300000001020600130001001b00fd000a00130002001b0030000000fd000a00130003001b004e00000001020600130004001b00fd000a00130005001b004f000000fd000a00130006001b004f000000fd000a00130007001b004f000000fd000a00130008001b004f000000fd000a00130009001b0033000000fd000a0013000a001b0033000000fd000a0013000b001b004f000000fd000a0013000c001b004f000000fd000a0013000d001b004f000000fd000a0013000e001b004f000000fd000a0013000f001b004f000000fd000a00130010001b0033000000fd000a00130011001b0033000000fd000a00130012001b004f000000fd000a00130013001b004f000000fd000a00130014001b004f000000fd000a00130015001b0033000000fd000a00130016001b0033000000fd000a00130017001b0033000000fd000a00130018001b0033000000fd000a00130019001b0033000000fd000a0013001a001b0033000000fd000a0013001b001b0033000000fd000a0013001c001b0033000000fd000a0013001d001b0033000000fd000a0013001e001b0033000000fd000a0013001f001b0033000000fd000a00130020001b0033000000fd000a00130021001b0033000000fd000a00130022001b0033000000fd000a00130023001b0033000000fd000a00130024001b0050000000fd000a00130025001b0051000000fd000a00130026001b0036000000be000e001300270016001600160016002a00fd000a00140000001b001400000001020600140001001b00fd000a00140002001b0030000000fd000a00140003001b005200000001020600140004001b00fd000a00140005001b0032000000fd000a00140006001b0032000000fd000a00140007001b0032000000fd000a00140008001b0032000000fd000a00140009001b0033000000fd000a0014000a001b0033000000fd000a0014000b001b0032000000fd000a0014000c001b0032000000fd000a0014000d001b0032000000fd000a0014000e001b0032000000fd000a0014000f001b0032000000fd000a00140010001b0033000000fd000a00140011001b0033000000fd000a00140012001b0032000000fd000a00140013001b0032000000fd000a00140014001b0032000000fd000a00140015001b0033000000fd000a00140016001b0033000000fd000a00140017001b0033000000fd000a00140018001b0033000000fd000a00140019001b0033000000fd000a0014001a001b0033000000fd000a0014001b001b0033000000fd000a0014001c001b0033000000fd000a0014001d001b0033000000fd000a0014001e001b0033000000fd000a0014001f001b0033000000fd000a00140020001b0033000000fd000a00140021001b0033000000fd000a00140022001b0033000000fd000a00140023001b0033000000fd000a00140024001b0038000000fd000a00140025001b0039000000fd000a00140026001b0036000000be000e001400270016001600160016002a00fd000a00150000001b001500000001020600150001001b00fd000a00150002001b0030000000fd000a00150003001b005300000001020600150004001b00fd000a00150005001b0033000000fd000a00150006001b0033000000fd000a00150007001b0033000000fd000a00150008001b0033000000fd000a00150009001b0033000000fd000a0015000a001b0033000000fd000a0015000b001b0033000000fd000a0015000c001b0033000000fd000a0015000d001b0033000000fd000a0015000e001b0033000000fd000a0015000f001b0033000000fd000a00150010001b0033000000fd000a00150011001b003b000000fd000a00150012001b0054000000fd000a00150013001b0055000000fd000a00150014001b0035000000fd000a00150015001b0033000000fd000a00150016001b0033000000fd000a00150017001b0033000000fd000a00150018001b0033000000fd000a00150019001b0033000000fd000a0015001a001b0033000000fd000a0015001b001b0033000000fd000a0015001c001b0033000000fd000a0015001d001b0033000000fd000a0015001e001b0033000000fd000a0015001f001b0033000000fd000a00150020001b0033000000fd000a00150021001b0033000000fd000a00150022001b0033000000fd000a00150023001b0033000000fd000a00150024001b0056000000fd000a00150025001b0057000000fd000a00150026001b0036000000be000e001500270016001600160016002a00fd000a00160000001b001600000001020600160001001b00fd000a00160002001b0030000000fd000a00160003001b005800000001020600160004001b00fd000a00160005001b0032000000fd000a00160006001b0032000000fd000a00160007001b0032000000fd000a00160008001b0032000000fd000a00160009001b0033000000fd000a0016000a001b0033000000fd000a0016000b001b0032000000fd000a0016000c001b0032000000fd000a0016000d001b0032000000fd000a0016000e001b0032000000fd000a0016000f001b0032000000fd000a00160010001b0033000000fd000a00160011001b0033000000fd000a00160012001b0032000000fd000a00160013001b0032000000fd000a00160014001b0032000000fd000a00160015001b0033000000fd000a00160016001b0033000000fd000a00160017001b0033000000fd000a00160018001b0033000000fd000a00160019001b0033000000fd000a0016001a001b0033000000fd000a0016001b001b0033000000fd000a0016001c001b0033000000fd000a0016001d001b0033000000fd000a0016001e001b0033000000fd000a0016001f001b0033000000fd000a00160020001b0033000000fd000a00160021001b0033000000fd000a00160022001b0033000000fd000a00160023001b0033000000fd000a00160024001b0038000000fd000a00160025001b0039000000fd000a00160026001b0036000000be000e001600270016001600160016002a00fd000a00170000001b001700000001020600170001001b00fd000a00170002001b0030000000fd000a00170003001b005900000001020600170004001b00fd000a00170005001b0032000000fd000a00170006001b0032000000fd000a00170007001b0032000000fd000a00170008001b0032000000fd000a00170009001b0033000000fd000a0017000a001b0033000000fd000a0017000b001b0032000000fd000a0017000c001b0032000000fd000a0017000d001b0032000000fd000a0017000e001b0032000000fd000a0017000f001b0032000000fd000a00170010001b0033000000fd000a00170011001b0033000000fd000a00170012001b0032000000fd000a00170013001b0032000000fd000a00170014001b0032000000fd000a00170015001b0033000000fd000a00170016001b0033000000fd000a00170017001b0033000000fd000a00170018001b0033000000fd000a00170019001b0033000000fd000a0017001a001b0033000000fd000a0017001b001b0033000000fd000a0017001c001b0033000000fd000a0017001d001b0033000000fd000a0017001e001b0033000000fd000a0017001f001b0033000000fd000a00170020001b0033000000fd000a00170021001b0033000000fd000a00170022001b0033000000fd000a00170023001b0033000000fd000a00170024001b0038000000fd000a00170025001b0039000000fd000a00170026001b0036000000be000e001700270016001600160016002a00fd000a00180000001b001800000001020600180001001b00fd000a00180002001b0030000000fd000a00180003001b005a00000001020600180004001b00fd000a00180005001b0032000000fd000a00180006001b0032000000fd000a00180007001b0032000000fd000a00180008001b0032000000fd000a00180009001b0033000000fd000a0018000a001b0033000000fd000a0018000b001b0032000000fd000a0018000c001b0032000000fd000a0018000d001b0032000000fd000a0018000e001b0032000000fd000a0018000f001b0032000000fd000a00180010001b0033000000fd000a00180011001b0033000000fd000a00180012001b0033000000fd000a00180013001b0032000000fd000a00180014001b0032000000fd000a00180015001b0032000000fd000a00180016001b0033000000fd000a00180017001b0033000000fd000a00180018001b0033000000fd000a00180019001b0033000000fd000a0018001a001b0033000000fd000a0018001b001b0033000000fd000a0018001c001b0033000000fd000a0018001d001b0033000000fd000a0018001e001b0033000000fd000a0018001f001b0033000000fd000a00180020001b0033000000fd000a00180021001b0033000000fd000a00180022001b0033000000fd000a00180023001b0033000000fd000a00180024001b0038000000fd000a00180025001b0039000000fd000a00180026001b0036000000be000e001800270016001600160016002a00fd000a00190000001b001900000001020600190001001b00fd000a00190002001b0030000000fd000a00190003001b005b00000001020600190004001b00fd000a00190005001b0032000000fd000a00190006001b0032000000fd000a00190007001b0032000000fd000a00190008001b0032000000fd000a00190009001b0033000000fd000a0019000a001b0033000000fd000a0019000b001b0032000000fd000a0019000c001b0032000000fd000a0019000d001b0033000000fd000a0019000e001b0032000000fd000a0019000f001b0032000000fd000a00190010001b0033000000fd000a00190011001b0033000000fd000a00190012001b0032000000fd000a00190013001b0032000000fd000a00190014001b0032000000fd000a00190015001b0033000000fd000a00190016001b0033000000fd000a00190017001b0033000000fd000a00190018001b0033000000fd000a00190019001b0033000000fd000a0019001a001b0033000000fd000a0019001b001b0033000000fd000a0019001c001b0033000000fd000a0019001d001b0033000000fd000a0019001e001b0033000000fd000a0019001f001b0033000000fd000a00190020001b0033000000fd000a00190021001b0033000000fd000a00190022001b0033000000fd000a00190023001b0033000000fd000a00190024001b0042000000fd000a00190025001b0043000000fd000a00190026001b0036000000be000e001900270016001600160016002a00fd000a001a0000001b001a000000010206001a0001001b00fd000a001a0002001b0030000000fd000a001a0003001b005c000000010206001a0004001b00fd000a001a0005001b0032000000fd000a001a0006001b0032000000fd000a001a0007001b0032000000fd000a001a0008001b0032000000fd000a001a0009001b0033000000fd000a001a000a001b0033000000fd000a001a000b001b005d000000fd000a001a000c001b005d000000fd000a001a000d001b0033000000fd000a001a000e001b0033000000fd000a001a000f001b0033000000fd000a001a0010001b0033000000fd000a001a0011001b0033000000fd000a001a0012001b0033000000fd000a001a0013001b0033000000fd000a001a0014001b005d000000fd000a001a0015001b0033000000fd000a001a0016001b0033000000fd000a001a0017001b0033000000fd000a001a0018001b0033000000fd000a001a0019001b0033000000fd000a001a001a001b0033000000fd000a001a001b001b0033000000fd000a001a001c001b0033000000fd000a001a001d001b0033000000fd000a001a001e001b0033000000fd000a001a001f001b0033000000fd000a001a0020001b0033000000fd000a001a0021001b0033000000fd000a001a0022001b0033000000fd000a001a0023001b0033000000fd000a001a0024001b005e000000fd000a001a0025001b005f000000fd000a001a0026001b0036000000be000e001a00270016001600160016002a00fd000a001b0000001b001b000000010206001b0001001b00fd000a001b0002001b0030000000fd000a001b0003001b0060000000010206001b0004001b00fd000a001b0005001b0055000000fd000a001b0006001b0032000000fd000a001b0007001b0032000000fd000a001b0008001b0032000000fd000a001b0009001b0033000000fd000a001b000a001b0033000000fd000a001b000b001b0032000000fd000a001b000c001b0032000000fd000a001b000d001b0032000000fd000a001b000e001b0032000000fd000a001b000f001b0032000000fd000a001b0010001b0033000000fd000a001b0011001b0033000000fd000a001b0012001b0032000000fd000a001b0013001b0032000000fd000a001b0014001b0032000000fd000a001b0015001b0033000000fd000a001b0016001b0033000000fd000a001b0017001b0033000000fd000a001b0018001b0033000000fd000a001b0019001b0033000000fd000a001b001a001b0033000000fd000a001b001b001b0033000000fd000a001b001c001b0033000000fd000a001b001d001b0033000000fd000a001b001e001b0033000000fd000a001b001f001b0033000000fd000a001b0020001b0033000000fd000a001b0021001b0033000000fd000a001b0022001b0033000000fd000a001b0023001b0033000000fd000a001b0024001b0061000000fd000a001b0025001b0062000000fd000a001b0026001b0036000000be000e001b00270016001600160016002a00fd000a001c0000001b001c000000010206001c0001001b00fd000a001c0002001b0030000000fd000a001c0003001b0063000000010206001c0004001b00fd000a001c0005001b0032000000fd000a001c0006001b0032000000fd000a001c0007001b0032000000fd000a001c0008001b0032000000fd000a001c0009001b0033000000fd000a001c000a001b0033000000fd000a001c000b001b0032000000fd000a001c000c001b0032000000fd000a001c000d001b0032000000fd000a001c000e001b0032000000fd000a001c000f001b0032000000fd000a001c0010001b0033000000fd000a001c0011001b0033000000fd000a001c0012001b0032000000fd000a001c0013001b0032000000fd000a001c0014001b0032000000fd000a001c0015001b0033000000fd000a001c0016001b0033000000fd000a001c0017001b0033000000fd000a001c0018001b0033000000fd000a001c0019001b0033000000fd000a001c001a001b0033000000fd000a001c001b001b0033000000fd000a001c001c001b0033000000fd000a001c001d001b0033000000fd000a001c001e001b0033000000fd000a001c001f001b0033000000fd000a001c0020001b0033000000fd000a001c0021001b0033000000fd000a001c0022001b0033000000fd000a001c0023001b0033000000fd000a001c0024001b0038000000fd000a001c0025001b0039000000fd000a001c0026001b0036000000be000e001c00270016001600160016002a00fd000a001d0000001b001d000000010206001d0001001b00fd000a001d0002001b0030000000fd000a001d0003001b0064000000010206001d0004001b00fd000a001d0005001b0032000000fd000a001d0006001b003b000000fd000a001d0007001b004f000000fd000a001d0008001b0033000000fd000a001d0009001b0033000000fd000a001d000a001b0033000000fd000a001d000b001b0033000000fd000a001d000c001b0033000000fd000a001d000d001b0033000000fd000a001d000e001b0032000000fd000a001d000f001b0032000000fd000a001d0010001b0033000000fd000a001d0011001b0033000000fd000a001d0012001b0032000000fd000a001d0013001b0032000000fd000a001d0014001b0032000000fd000a001d0015001b0033000000fd000a001d0016001b0033000000fd000a001d0017001b0033000000fd000a001d0018001b0033000000fd000a001d0019001b0033000000fd000a001d001a001b0033000000fd000a001d001b001b0033000000fd000a001d001c001b0033000000fd000a001d001d001b0033000000fd000a001d001e001b0033000000fd000a001d001f001b0033000000fd000a001d0020001b0033000000fd000a001d0021001b0033000000fd000a001d0022001b0033000000fd000a001d0023001b0033000000fd000a001d0024001b0065000000fd000a001d0025001b0066000000fd000a001d0026001b0036000000be000e001d00270016001600160016002a00fd000a001e0000001b001e000000010206001e0001001b00fd000a001e0002001b0030000000fd000a001e0003001b0067000000010206001e0004001b00fd000a001e0005001b0032000000fd000a001e0006001b0032000000fd000a001e0007001b0032000000fd000a001e0008001b0032000000fd000a001e0009001b0033000000fd000a001e000a001b0033000000fd000a001e000b001b0032000000fd000a001e000c001b0032000000fd000a001e000d001b0032000000fd000a001e000e001b0032000000fd000a001e000f001b0032000000fd000a001e0010001b0033000000fd000a001e0011001b0033000000fd000a001e0012001b0032000000fd000a001e0013001b0032000000fd000a001e0014001b0032000000fd000a001e0015001b0033000000fd000a001e0016001b0033000000fd000a001e0017001b0033000000fd000a001e0018001b0033000000fd000a001e0019001b0033000000fd000a001e001a001b0033000000fd000a001e001b001b0033000000fd000a001e001c001b0033000000fd000a001e001d001b0033000000fd000a001e001e001b0033000000fd000a001e001f001b0033000000fd000a001e0020001b0033000000fd000a001e0021001b0033000000fd000a001e0022001b0033000000fd000a001e0023001b0033000000fd000a001e0024001b0038000000fd000a001e0025001b0039000000fd000a001e0026001b0036000000be000e001e00270016001600160016002a00fd000a001f0000001b001f000000010206001f0001001b00fd000a001f0002001b0030000000fd000a001f0003001b0068000000010206001f0004001b00fd000a001f0005001b0033000000fd000a001f0006001b0033000000fd000a001f0007001b0033000000fd000a001f0008001b0033000000fd000a001f0009001b0033000000fd000a001f000a001b0033000000fd000a001f000b001b0033000000fd000a001f000c001b0033000000fd000a001f000d001b0033000000fd000a001f000e001b0033000000fd000a001f000f001b0033000000fd000a001f0010001b0033000000fd000a001f0011001b0033000000fd000a001f0012001b0033000000fd000a001f0013001b0033000000fd000a001f0014001b0033000000fd000a001f0015001b0033000000fd000a001f0016001b0033000000fd000a001f0017001b0033000000fd000a001f0018001b0033000000fd000a001f0019001b0033000000fd000a001f001a001b0033000000fd000a001f001b001b0033000000fd000a001f001c001b0033000000fd000a001f001d001b0033000000fd000a001f001e001b0033000000fd000a001f001f001b0033000000fd000a001f0020001b0033000000fd000a001f0021001b0033000000fd000a001f0022001b0033000000fd000a001f0023001b0033000000fd000a001f0024001b0033000000fd000a001f0025001b0033000000fd000a001f0026001b0036000000be000e001f00270016001600160016002a00d7004400263d00006c0260006c008400600060006c002c02de012c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c0208021000200000002b0054010000000040010f0008021000210000002b0054010000000040010f0008021000220000002b0054010000000040010f0008021000230000002b0064000000000040010f0008021000240000002b0054010000000040010f0008021000250000002b0054010000000040010f0008021000260000002b0054010000000040010f0008021000270000002b0054010000000040010f0008021000280000002b0054010000000040010f0008021000290000002b0054010000000040010f00080210002a0000002b0054010000000040010f00080210002b0000002b0054010000000040010f00080210002c0000002b0054010000000040010f00080210002d0000002b0054010000000040010f00080210002e0000002b0054010000000040010f00080210002f0000002b0054010000000040010f0008021000300000002b0054010000000040010f0008021000310000002b0054010000000040010f0008021000320000002b0054010000000040010f0008021000330000002b0054010000000040010f0008021000340000002b0054010000000040010f0008021000350000002b0054010000000040010f0008021000360000002b0054010000000040010f0008021000370000002b0054010000000040010f0008021000380000002b0054010000000040010f0008021000390000002b0054010000000040010f00080210003a0000002b0054010000000040010f00080210003b0000002b0054010000000040010f00080210003c0000002b0054010000000040010f00080210003d0000002b0054010000000040010f00080210003e0000002b0054010000000040010f00080210003f0000002b0054010000000040010f00fd000a00200000001b002000000001020600200001001b00fd000a00200002001b0030000000fd000a00200003001b006900000001020600200004001b00fd000a00200005001b0032000000fd000a00200006001b0032000000fd000a00200007001b0032000000fd000a00200008001b0032000000fd000a00200009001b0033000000fd000a0020000a001b0033000000fd000a0020000b001b0032000000fd000a0020000c001b0032000000fd000a0020000d001b0032000000fd000a0020000e001b0032000000fd000a0020000f001b0032000000fd000a00200010001b0033000000fd000a00200011001b0033000000fd000a00200012001b0032000000fd000a00200013001b0032000000fd000a00200014001b0032000000fd000a00200015001b0033000000fd000a00200016001b0033000000fd000a00200017001b0033000000fd000a00200018001b0033000000fd000a00200019001b0033000000fd000a0020001a001b0033000000fd000a0020001b001b0033000000fd000a0020001c001b0033000000fd000a0020001d001b0033000000fd000a0020001e001b0033000000fd000a0020001f001b0033000000fd000a00200020001b0033000000fd000a00200021001b0033000000fd000a00200022001b0033000000fd000a00200023001b0033000000fd000a00200024001b0038000000fd000a00200025001b0039000000fd000a00200026001b0036000000be000e002000270016001600160016002a00fd000a00210000001b002100000001020600210001001b00fd000a00210002001b0030000000fd000a00210003001b006a00000001020600210004001b00fd000a00210005001b0032000000fd000a00210006001b0032000000fd000a00210007001b0032000000fd000a00210008001b0032000000fd000a00210009001b0033000000fd000a0021000a001b0033000000fd000a0021000b001b0032000000fd000a0021000c001b0032000000fd000a0021000d001b0032000000fd000a0021000e001b0032000000fd000a0021000f001b0032000000fd000a00210010001b0033000000fd000a00210011001b0033000000fd000a00210012001b0032000000fd000a00210013001b0032000000fd000a00210014001b0032000000fd000a00210015001b0033000000fd000a00210016001b0033000000fd000a00210017001b0033000000fd000a00210018001b0033000000fd000a00210019001b0033000000fd000a0021001a001b0033000000fd000a0021001b001b0033000000fd000a0021001c001b0033000000fd000a0021001d001b0033000000fd000a0021001e001b0033000000fd000a0021001f001b0033000000fd000a00210020001b0033000000fd000a00210021001b0033000000fd000a00210022001b0033000000fd000a00210023001b0033000000fd000a00210024001b0038000000fd000a00210025001b0039000000fd000a00210026001b0036000000be000e002100270016001600160016002a00fd000a00220000001b002200000001020600220001001b00fd000a00220002001b006b000000fd000a00220003001b006c00000001020600220004001b00fd000a00220005001b0032000000fd000a00220006001b0032000000fd000a00220007001b0032000000fd000a00220008001b0032000000fd000a00220009001b0033000000fd000a0022000a001b0033000000fd000a0022000b001b0032000000fd000a0022000c001b0032000000fd000a0022000d001b0032000000fd000a0022000e001b0032000000fd000a0022000f001b0032000000fd000a00220010001b0033000000fd000a00220011001b0033000000fd000a00220012001b0032000000fd000a00220013001b0032000000fd000a00220014001b0032000000fd000a00220015001b0033000000fd000a00220016001b0033000000fd000a00220017001b0033000000fd000a00220018001b0033000000fd000a00220019001b0033000000fd000a0022001a001b0033000000fd000a0022001b001b0033000000fd000a0022001c001b0033000000fd000a0022001d001b0033000000fd000a0022001e001b0033000000fd000a0022001f001b0033000000fd000a00220020001b0033000000fd000a00220021001b0033000000fd000a00220022001b0033000000fd000a00220023001b0033000000fd000a00220024001b0038000000fd000a00220025001b0039000000fd000a00220026001b0036000000be000e002200270016001600160016002a00be005c00230000001b001b001b0016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002a00fd000a00240000001b002300000001020600240001001b00fd000a00240002001b0030000000fd000a00240003001b006d00000001020600240004001b00fd000a00240005001b0032000000fd000a00240006001b0032000000fd000a00240007001b0032000000fd000a00240008001b0032000000fd000a00240009001b0032000000fd000a0024000a001b0032000000fd000a0024000b001b0032000000fd000a0024000c001b0032000000fd000a0024000d001b0032000000fd000a0024000e001b0032000000fd000a0024000f001b0032000000fd000a00240010001b0033000000fd000a00240011001b0033000000fd000a00240012001b0032000000fd000a00240013001b0032000000fd000a00240014001b0032000000fd000a00240015001b0033000000fd000a00240016001b0033000000fd000a00240017001b0033000000fd000a00240018001b0033000000fd000a00240019001b0033000000fd000a0024001a001b0033000000fd000a0024001b001b0033000000fd000a0024001c001b0033000000fd000a0024001d001b0033000000fd000a0024001e001b0033000000fd000a0024001f001b0033000000fd000a00240020001b0033000000fd000a00240021001b0033000000fd000a00240022001b0033000000fd000a00240023001b0033000000fd000a00240024001b006e000000fd000a00240025001b006f000000fd000a00240026001b0036000000be000e002400270016001600160016002a00fd000a00250000001b002400000001020600250001001b00fd000a00250002001b0030000000fd000a00250003001b007000000001020600250004001b00fd000a00250005001b0032000000fd000a00250006001b0032000000fd000a00250007001b0032000000fd000a00250008001b0032000000fd000a00250009001b0033000000fd000a0025000a001b0033000000fd000a0025000b001b0032000000fd000a0025000c001b0032000000fd000a0025000d001b0032000000fd000a0025000e001b0032000000fd000a0025000f001b0032000000fd000a00250010001b0033000000fd000a00250011001b0071000000fd000a00250012001b0032000000fd000a00250013001b0032000000fd000a00250014001b0033000000fd000a00250015001b0033000000fd000a00250016001b0033000000fd000a00250017001b0033000000fd000a00250018001b0033000000fd000a00250019001b0033000000fd000a0025001a001b0033000000fd000a0025001b001b0033000000fd000a0025001c001b0033000000fd000a0025001d001b0033000000fd000a0025001e001b0033000000fd000a0025001f001b0033000000fd000a00250020001b0033000000fd000a00250021001b0033000000fd000a00250022001b0033000000fd000a00250023001b0033000000fd000a00250024001b0072000000fd000a00250025001b0073000000fd000a00250026001b0036000000be000e002500270016001600160016002a00fd000a00260000001b002500000001020600260001001b00fd000a00260002001b0030000000fd000a00260003001b007400000001020600260004001b00fd000a00260005001b0033000000fd000a00260006001b0033000000fd000a00260007001b0033000000fd000a00260008001b0033000000fd000a00260009001b0033000000fd000a0026000a001b0033000000fd000a0026000b001b0033000000fd000a0026000c001b0033000000fd000a0026000d001b0033000000fd000a0026000e001b0033000000fd000a0026000f001b0033000000fd000a00260010001b0033000000fd000a00260011001b0033000000fd000a00260012001b0033000000fd000a00260013001b0033000000fd000a00260014001b0032000000fd000a00260015001b0033000000fd000a00260016001b0033000000fd000a00260017001b0033000000fd000a00260018001b0033000000fd000a00260019001b0033000000fd000a0026001a001b0033000000fd000a0026001b001b0033000000fd000a0026001c001b0033000000fd000a0026001d001b0033000000fd000a0026001e001b0033000000fd000a0026001f001b0033000000fd000a00260020001b0033000000fd000a00260021001b0033000000fd000a00260022001b0033000000fd000a00260023001b0033000000fd000a00260024001b0032000000fd000a00260025001b0075000000fd000a00260026001b0036000000be000e002600270016001600160016002a00fd000a00270000001b002600000001020600270001001b00fd000a00270002001b0030000000fd000a00270003001b007600000001020600270004001b00fd000a00270005001b0032000000fd000a00270006001b0032000000fd000a00270007001b0032000000fd000a00270008001b0032000000fd000a00270009001b0033000000fd000a0027000a001b0033000000fd000a0027000b001b0032000000fd000a0027000c001b0032000000fd000a0027000d001b0032000000fd000a0027000e001b0032000000fd000a0027000f001b0032000000fd000a00270010001b0033000000fd000a00270011001b0033000000fd000a00270012001b0032000000fd000a00270013001b0032000000fd000a00270014001b0032000000fd000a00270015001b0033000000fd000a00270016001b0033000000fd000a00270017001b0033000000fd000a00270018001b0033000000fd000a00270019001b0033000000fd000a0027001a001b0033000000fd000a0027001b001b0033000000fd000a0027001c001b0033000000fd000a0027001d001b0033000000fd000a0027001e001b0033000000fd000a0027001f001b0033000000fd000a00270020001b0033000000fd000a00270021001b0033000000fd000a00270022001b0033000000fd000a00270023001b0033000000fd000a00270024001b0038000000fd000a00270025001b0039000000fd000a00270026001b0036000000be000e002700270016001600160016002a00fd000a00280000001b007700000001020600280001001b00fd000a00280002001b0030000000fd000a00280003001b007800000001020600280004001b00fd000a00280005001b0032000000fd000a00280006001b0032000000fd000a00280007001b0032000000fd000a00280008001b0032000000fd000a00280009001b0033000000fd000a0028000a001b0033000000fd000a0028000b001b0032000000fd000a0028000c001b0032000000fd000a0028000d001b0032000000fd000a0028000e001b0032000000fd000a0028000f001b0032000000fd000a00280010001b0033000000fd000a00280011001b0033000000fd000a00280012001b0032000000fd000a00280013001b0032000000fd000a00280014001b0032000000fd000a00280015001b0033000000fd000a00280016001b0033000000fd000a00280017001b0033000000fd000a00280018001b0033000000fd000a00280019001b0033000000fd000a0028001a001b0033000000fd000a0028001b001b0033000000fd000a0028001c001b0033000000fd000a0028001d001b0033000000fd000a0028001e001b0033000000fd000a0028001f001b0033000000fd000a00280020001b0033000000fd000a00280021001b0033000000fd000a00280022001b0033000000fd000a00280023001b0033000000fd000a00280024001b0038000000fd000a00280025001b0039000000fd000a00280026001b0036000000be000e002800270016001600160016002a00fd000a00290000001b007900000001020600290001001b00fd000a00290002001b0030000000fd000a00290003001b007a00000001020600290004001b00fd000a00290005001b0033000000fd000a00290006001b0033000000fd000a00290007001b0033000000fd000a00290008001b0033000000fd000a00290009001b0033000000fd000a0029000a001b0033000000fd000a0029000b001b0033000000fd000a0029000c001b0033000000fd000a0029000d001b0033000000fd000a0029000e001b0033000000fd000a0029000f001b0033000000fd000a00290010001b0033000000fd000a00290011001b0033000000fd000a00290012001b0033000000fd000a00290013001b0033000000fd000a00290014001b0033000000fd000a00290015001b0033000000fd000a00290016001b0033000000fd000a00290017001b0033000000fd000a00290018001b0033000000fd000a00290019001b0033000000fd000a0029001a001b0033000000fd000a0029001b001b0033000000fd000a0029001c001b0033000000fd000a0029001d001b0033000000fd000a0029001e001b0033000000fd000a0029001f001b0033000000fd000a00290020001b0033000000fd000a00290021001b0033000000fd000a00290022001b0033000000fd000a00290023001b0033000000fd000a00290024001b0033000000fd000a00290025001b0033000000fd000a00290026001b0036000000be000e002900270016001600160016002a00fd000a002a0000001b007b000000010206002a0001001b00fd000a002a0002001b0030000000fd000a002a0003001b007c000000010206002a0004001b00fd000a002a0005001b0032000000fd000a002a0006001b0032000000fd000a002a0007001b0032000000fd000a002a0008001b0032000000fd000a002a0009001b0033000000fd000a002a000a001b0033000000fd000a002a000b001b0032000000fd000a002a000c001b0032000000fd000a002a000d001b0032000000fd000a002a000e001b0032000000fd000a002a000f001b0032000000fd000a002a0010001b0033000000fd000a002a0011001b0033000000fd000a002a0012001b0032000000fd000a002a0013001b0032000000fd000a002a0014001b0032000000fd000a002a0015001b0033000000fd000a002a0016001b0033000000fd000a002a0017001b0033000000fd000a002a0018001b0033000000fd000a002a0019001b0033000000fd000a002a001a001b0033000000fd000a002a001b001b0033000000fd000a002a001c001b0033000000fd000a002a001d001b0033000000fd000a002a001e001b0033000000fd000a002a001f001b0033000000fd000a002a0020001b0033000000fd000a002a0021001b0033000000fd000a002a0022001b0033000000fd000a002a0023001b0033000000fd000a002a0024001b0038000000fd000a002a0025001b0039000000fd000a002a0026001b0036000000be000e002a00270016001600160016002a00fd000a002b0000001b007d000000010206002b0001001b00fd000a002b0002001b0030000000fd000a002b0003001b007e000000010206002b0004001b00fd000a002b0005001b0032000000fd000a002b0006001b0032000000fd000a002b0007001b0032000000fd000a002b0008001b0032000000fd000a002b0009001b0033000000fd000a002b000a001b0033000000fd000a002b000b001b0032000000fd000a002b000c001b0032000000fd000a002b000d001b0032000000fd000a002b000e001b0032000000fd000a002b000f001b0032000000fd000a002b0010001b0033000000fd000a002b0011001b0033000000fd000a002b0012001b0032000000fd000a002b0013001b0032000000fd000a002b0014001b0033000000fd000a002b0015001b0033000000fd000a002b0016001b0033000000fd000a002b0017001b0033000000fd000a002b0018001b0033000000fd000a002b0019001b0033000000fd000a002b001a001b0033000000fd000a002b001b001b0033000000fd000a002b001c001b0033000000fd000a002b001d001b0033000000fd000a002b001e001b0033000000fd000a002b001f001b0033000000fd000a002b0020001b0033000000fd000a002b0021001b0033000000fd000a002b0022001b0033000000fd000a002b0023001b0033000000fd000a002b0024001b0042000000fd000a002b0025001b0043000000fd000a002b0026001b0036000000be000e002b00270016001600160016002a00fd000a002c0000001b007f000000010206002c0001001b00fd000a002c0002001b0030000000fd000a002c0003001b0080000000010206002c0004001b00fd000a002c0005001b0033000000fd000a002c0006001b0081000000fd000a002c0007001b0032000000fd000a002c0008001b0082000000fd000a002c0009001b0033000000fd000a002c000a001b0033000000fd000a002c000b001b0033000000fd000a002c000c001b0033000000fd000a002c000d001b0033000000fd000a002c000e001b0033000000fd000a002c000f001b0033000000fd000a002c0010001b0033000000fd000a002c0011001b0033000000fd000a002c0012001b0033000000fd000a002c0013001b0033000000fd000a002c0014001b0033000000fd000a002c0015001b0033000000fd000a002c0016001b0033000000fd000a002c0017001b0033000000fd000a002c0018001b0033000000fd000a002c0019001b0033000000fd000a002c001a001b0033000000fd000a002c001b001b0033000000fd000a002c001c001b0033000000fd000a002c001d001b0033000000fd000a002c001e001b0033000000fd000a002c001f001b0033000000fd000a002c0020001b0033000000fd000a002c0021001b0033000000fd000a002c0022001b0033000000fd000a002c0023001b0033000000fd000a002c0024001b0083000000fd000a002c0025001b0084000000fd000a002c0026001b0036000000be000e002c00270016001600160016002a00fd000a002d0000001b0085000000010206002d0001001b00fd000a002d0002001b0030000000fd000a002d0003001b0086000000010206002d0004001b00fd000a002d0005001b0033000000fd000a002d0006001b0033000000fd000a002d0007001b0033000000fd000a002d0008001b0033000000fd000a002d0009001b0033000000fd000a002d000a001b0033000000fd000a002d000b001b0033000000fd000a002d000c001b0033000000fd000a002d000d001b0033000000fd000a002d000e001b0033000000fd000a002d000f001b0033000000fd000a002d0010001b0033000000fd000a002d0011001b0033000000fd000a002d0012001b0033000000fd000a002d0013001b0033000000fd000a002d0014001b0033000000fd000a002d0015001b0033000000fd000a002d0016001b0033000000fd000a002d0017001b0033000000fd000a002d0018001b0033000000fd000a002d0019001b0033000000fd000a002d001a001b0033000000fd000a002d001b001b0033000000fd000a002d001c001b0033000000fd000a002d001d001b0033000000fd000a002d001e001b0033000000fd000a002d001f001b0033000000fd000a002d0020001b0033000000fd000a002d0021001b0033000000fd000a002d0022001b0033000000fd000a002d0023001b0033000000fd000a002d0024001b0033000000fd000a002d0025001b0033000000fd000a002d0026001b0036000000be000e002d00270016001600160016002a00fd000a002e0000001b0087000000010206002e0001001b00fd000a002e0002001b0030000000fd000a002e0003001b0088000000010206002e0004001b00fd000a002e0005001b0032000000fd000a002e0006001b0032000000fd000a002e0007001b0032000000fd000a002e0008001b0032000000fd000a002e0009001b0033000000fd000a002e000a001b0033000000fd000a002e000b001b0032000000fd000a002e000c001b0032000000fd000a002e000d001b0032000000fd000a002e000e001b0032000000fd000a002e000f001b0032000000fd000a002e0010001b0033000000fd000a002e0011001b0033000000fd000a002e0012001b0032000000fd000a002e0013001b0032000000fd000a002e0014001b0032000000fd000a002e0015001b0033000000fd000a002e0016001b0033000000fd000a002e0017001b0033000000fd000a002e0018001b0033000000fd000a002e0019001b0033000000fd000a002e001a001b0033000000fd000a002e001b001b0033000000fd000a002e001c001b0033000000fd000a002e001d001b0033000000fd000a002e001e001b0033000000fd000a002e001f001b0033000000fd000a002e0020001b0033000000fd000a002e0021001b0033000000fd000a002e0022001b0033000000fd000a002e0023001b0033000000fd000a002e0024001b0038000000fd000a002e0025001b0039000000fd000a002e0026001b0036000000be000e002e00270016001600160016002a00fd000a002f0000001b0089000000010206002f0001001b00fd000a002f0002001b0030000000fd000a002f0003001b008a000000010206002f0004001b00fd000a002f0005001b0032000000fd000a002f0006001b0033000000fd000a002f0007001b0033000000fd000a002f0008001b0033000000fd000a002f0009001b0033000000fd000a002f000a001b0033000000fd000a002f000b001b0033000000fd000a002f000c001b0033000000fd000a002f000d001b0033000000fd000a002f000e001b0033000000fd000a002f000f001b0033000000fd000a002f0010001b0033000000fd000a002f0011001b0033000000fd000a002f0012001b0033000000fd000a002f0013001b0033000000fd000a002f0014001b0033000000fd000a002f0015001b0033000000fd000a002f0016001b0033000000fd000a002f0017001b0033000000fd000a002f0018001b0033000000fd000a002f0019001b0033000000fd000a002f001a001b0033000000fd000a002f001b001b0033000000fd000a002f001c001b0033000000fd000a002f001d001b0033000000fd000a002f001e001b0033000000fd000a002f001f001b0033000000fd000a002f0020001b0033000000fd000a002f0021001b0033000000fd000a002f0022001b0033000000fd000a002f0023001b0033000000fd000a002f0024001b0032000000fd000a002f0025001b0075000000fd000a002f0026001b0036000000be000e002f00270016001600160016002a00fd000a00300000001b008b00000001020600300001001b00fd000a00300002001b0030000000fd000a00300003001b008c00000001020600300004001b00fd000a00300005001b0032000000fd000a00300006001b0032000000fd000a00300007001b0032000000fd000a00300008001b0032000000fd000a00300009001b0033000000fd000a0030000a001b0033000000fd000a0030000b001b0032000000fd000a0030000c001b0032000000fd000a0030000d001b0032000000fd000a0030000e001b0032000000fd000a0030000f001b0032000000fd000a00300010001b0033000000fd000a00300011001b0033000000fd000a00300012001b0032000000fd000a00300013001b0032000000fd000a00300014001b0032000000fd000a00300015001b0033000000fd000a00300016001b0033000000fd000a00300017001b0033000000fd000a00300018001b0033000000fd000a00300019001b0033000000fd000a0030001a001b0033000000fd000a0030001b001b0033000000fd000a0030001c001b0033000000fd000a0030001d001b0033000000fd000a0030001e001b0033000000fd000a0030001f001b0033000000fd000a00300020001b0033000000fd000a00300021001b0033000000fd000a00300022001b0033000000fd000a00300023001b0033000000fd000a00300024001b0038000000fd000a00300025001b0039000000fd000a00300026001b0036000000be000e003000270016001600160016002a00fd000a00310000001b008d00000001020600310001001b00fd000a00310002001b0030000000fd000a00310003001b008e00000001020600310004001b00fd000a00310005001b0033000000fd000a00310006001b0033000000fd000a00310007001b0033000000fd000a00310008001b0033000000fd000a00310009001b0033000000fd000a0031000a001b0033000000fd000a0031000b001b0033000000fd000a0031000c001b0033000000fd000a0031000d001b0033000000fd000a0031000e001b0033000000fd000a0031000f001b0033000000fd000a00310010001b0033000000fd000a00310011001b0033000000fd000a00310012001b0033000000fd000a00310013001b0033000000fd000a00310014001b0033000000fd000a00310015001b0033000000fd000a00310016001b0033000000fd000a00310017001b0033000000fd000a00310018001b0033000000fd000a00310019001b0033000000fd000a0031001a001b0033000000fd000a0031001b001b0033000000fd000a0031001c001b0033000000fd000a0031001d001b0033000000fd000a0031001e001b0033000000fd000a0031001f001b0033000000fd000a00310020001b0033000000fd000a00310021001b0033000000fd000a00310022001b0033000000fd000a00310023001b0033000000fd000a00310024001b0033000000fd000a00310025001b0033000000fd000a00310026001b0036000000be000e003100270016001600160016002a00fd000a00320000001b008f00000001020600320001001b00fd000a00320002001b0030000000fd000a00320003001b009000000001020600320004001b00fd000a00320005001b0032000000fd000a00320006001b0032000000fd000a00320007001b0032000000fd000a00320008001b0032000000fd000a00320009001b0032000000fd000a0032000a001b0033000000fd000a0032000b001b0032000000fd000a0032000c001b0032000000fd000a0032000d001b0033000000fd000a0032000e001b0032000000fd000a0032000f001b0032000000fd000a00320010001b0033000000fd000a00320011001b0033000000fd000a00320012001b0032000000fd000a00320013001b0032000000fd000a00320014001b0032000000fd000a00320015001b0033000000fd000a00320016001b0033000000fd000a00320017001b0033000000fd000a00320018001b0033000000fd000a00320019001b0033000000fd000a0032001a001b0033000000fd000a0032001b001b0033000000fd000a0032001c001b0033000000fd000a0032001d001b0033000000fd000a0032001e001b0033000000fd000a0032001f001b0033000000fd000a00320020001b0033000000fd000a00320021001b0033000000fd000a00320022001b0033000000fd000a00320023001b0033000000fd000a00320024001b0038000000fd000a00320025001b0039000000fd000a00320026001b0036000000be000e003200270016001600160016002a00fd000a00330000001b009100000001020600330001001b00fd000a00330002001b0030000000fd000a00330003001b009200000001020600330004001b00fd000a00330005001b0032000000fd000a00330006001b0032000000fd000a00330007001b0035000000fd000a00330008001b0032000000fd000a00330009001b0033000000fd000a0033000a001b0033000000fd000a0033000b001b0032000000fd000a0033000c001b0032000000fd000a0033000d001b0032000000fd000a0033000e001b0032000000fd000a0033000f001b0032000000fd000a00330010001b0033000000fd000a00330011001b0033000000fd000a00330012001b0032000000fd000a00330013001b0032000000fd000a00330014001b0035000000fd000a00330015001b0033000000fd000a00330016001b0033000000fd000a00330017001b0033000000fd000a00330018001b0033000000fd000a00330019001b0033000000fd000a0033001a001b0033000000fd000a0033001b001b0033000000fd000a0033001c001b0033000000fd000a0033001d001b0033000000fd000a0033001e001b0033000000fd000a0033001f001b0033000000fd000a00330020001b0033000000fd000a00330021001b0033000000fd000a00330022001b0033000000fd000a00330023001b0033000000fd000a00330024001b0093000000fd000a00330025001b0094000000fd000a00330026001b0036000000be000e003300270016001600160016002a00fd000a00340000001b009500000001020600340001001b00fd000a00340002001b0030000000fd000a00340003001b009600000001020600340004001b00fd000a00340005001b0032000000fd000a00340006001b0032000000fd000a00340007001b0032000000fd000a00340008001b0033000000fd000a00340009001b0033000000fd000a0034000a001b0033000000fd000a0034000b001b0032000000fd000a0034000c001b0032000000fd000a0034000d001b0032000000fd000a0034000e001b0032000000fd000a0034000f001b0032000000fd000a00340010001b0033000000fd000a00340011001b0033000000fd000a00340012001b0032000000fd000a00340013001b0032000000fd000a00340014001b0033000000fd000a00340015001b0033000000fd000a00340016001b0033000000fd000a00340017001b0033000000fd000a00340018001b0033000000fd000a00340019001b0033000000fd000a0034001a001b0033000000fd000a0034001b001b0033000000fd000a0034001c001b0033000000fd000a0034001d001b0033000000fd000a0034001e001b0033000000fd000a0034001f001b0033000000fd000a00340020001b0033000000fd000a00340021001b0033000000fd000a00340022001b0033000000fd000a00340023001b0033000000fd000a00340024001b0097000000fd000a00340025001b0045000000fd000a00340026001b0036000000be000e003400270016001600160016002a00fd000a00350000001b009800000001020600350001001b00fd000a00350002001b0030000000fd000a00350003001b009900000001020600350004001b00fd000a00350005001b0032000000fd000a00350006001b0032000000fd000a00350007001b0032000000fd000a00350008001b0032000000fd000a00350009001b0033000000fd000a0035000a001b0033000000fd000a0035000b001b0032000000fd000a0035000c001b0032000000fd000a0035000d001b0032000000fd000a0035000e001b0032000000fd000a0035000f001b0032000000fd000a00350010001b0033000000fd000a00350011001b0033000000fd000a00350012001b0032000000fd000a00350013001b0032000000fd000a00350014001b0032000000fd000a00350015001b0033000000fd000a00350016001b0033000000fd000a00350017001b0033000000fd000a00350018001b0033000000fd000a00350019001b0033000000fd000a0035001a001b0033000000fd000a0035001b001b0033000000fd000a0035001c001b0033000000fd000a0035001d001b0033000000fd000a0035001e001b0033000000fd000a0035001f001b0033000000fd000a00350020001b0033000000fd000a00350021001b0033000000fd000a00350022001b0033000000fd000a00350023001b0033000000fd000a00350024001b0038000000fd000a00350025001b0039000000fd000a00350026001b0036000000be000e003500270016001600160016002a00fd000a00360000001b009a00000001020600360001001b00fd000a00360002001b0030000000fd000a00360003001b009b00000001020600360004001b00fd000a00360005001b0032000000fd000a00360006001b0032000000fd000a00360007001b0032000000fd000a00360008001b0032000000fd000a00360009001b0033000000fd000a0036000a001b0033000000fd000a0036000b001b0032000000fd000a0036000c001b0032000000fd000a0036000d001b0032000000fd000a0036000e001b0032000000fd000a0036000f001b0032000000fd000a00360010001b0033000000fd000a00360011001b0033000000fd000a00360012001b0032000000fd000a00360013001b0032000000fd000a00360014001b0032000000fd000a00360015001b0033000000fd000a00360016001b0033000000fd000a00360017001b0033000000fd000a00360018001b0033000000fd000a00360019001b0033000000fd000a0036001a001b0033000000fd000a0036001b001b0033000000fd000a0036001c001b0033000000fd000a0036001d001b0033000000fd000a0036001e001b0033000000fd000a0036001f001b0033000000fd000a00360020001b0033000000fd000a00360021001b0033000000fd000a00360022001b0033000000fd000a00360023001b0033000000fd000a00360024001b0038000000fd000a00360025001b0039000000fd000a00360026001b0036000000be000e003600270016001600160016002a00fd000a00370000001b009c00000001020600370001001b00fd000a00370002001b0030000000fd000a00370003001b009d00000001020600370004001b00fd000a00370005001b003b000000fd000a00370006001b003b000000fd000a00370007001b003b000000fd000a00370008001b003b000000fd000a00370009001b0033000000fd000a0037000a001b0033000000fd000a0037000b001b009e000000fd000a0037000c001b009e000000fd000a0037000d001b009e000000fd000a0037000e001b003b000000fd000a0037000f001b003b000000fd000a00370010001b0033000000fd000a00370011001b0033000000fd000a00370012001b003b000000fd000a00370013001b003b000000fd000a00370014001b0033000000fd000a00370015001b0033000000fd000a00370016001b0033000000fd000a00370017001b0033000000fd000a00370018001b0033000000fd000a00370019001b0033000000fd000a0037001a001b0033000000fd000a0037001b001b0033000000fd000a0037001c001b0033000000fd000a0037001d001b0033000000fd000a0037001e001b0033000000fd000a0037001f001b0033000000fd000a00370020001b0033000000fd000a00370021001b0033000000fd000a00370022001b0033000000fd000a00370023001b0033000000fd000a00370024001b0050000000fd000a00370025001b0051000000fd000a00370026001b0036000000be000e003700270016001600160016002a00fd000a00380000001b009f00000001020600380001001b00fd000a00380002001b0030000000fd000a00380003001b00a000000001020600380004001b00fd000a00380005001b0033000000fd000a00380006001b0032000000fd000a00380007001b0033000000fd000a00380008001b0032000000fd000a00380009001b0033000000fd000a0038000a001b0033000000fd000a0038000b001b0032000000fd000a0038000c001b0033000000fd000a0038000d001b0032000000fd000a0038000e001b0032000000fd000a0038000f001b0032000000fd000a00380010001b0033000000fd000a00380011001b0033000000fd000a00380012001b0032000000fd000a00380013001b0032000000fd000a00380014001b0032000000fd000a00380015001b0033000000fd000a00380016001b0033000000fd000a00380017001b0033000000fd000a00380018001b0033000000fd000a00380019001b0033000000fd000a0038001a001b0033000000fd000a0038001b001b0033000000fd000a0038001c001b0033000000fd000a0038001d001b0033000000fd000a0038001e001b0033000000fd000a0038001f001b0033000000fd000a00380020001b0033000000fd000a00380021001b0033000000fd000a00380022001b0033000000fd000a00380023001b0033000000fd000a00380024001b0034000000fd000a00380025001b0035000000fd000a00380026001b0036000000be000e003800270016001600160016002a00fd000a00390000001b00a100000001020600390001001b00fd000a00390002001b0030000000fd000a00390003001b00a200000001020600390004001b00fd000a00390005001b0032000000fd000a00390006001b0032000000fd000a00390007001b0032000000fd000a00390008001b0043000000fd000a00390009001b0033000000fd000a0039000a001b0033000000fd000a0039000b001b0032000000fd000a0039000c001b0032000000fd000a0039000d001b0032000000fd000a0039000e001b0032000000fd000a0039000f001b0032000000fd000a00390010001b0033000000fd000a00390011001b0033000000fd000a00390012001b0032000000fd000a00390013001b0032000000fd000a00390014001b0032000000fd000a00390015001b0033000000fd000a00390016001b0033000000fd000a00390017001b0033000000fd000a00390018001b0033000000fd000a00390019001b0033000000fd000a0039001a001b0033000000fd000a0039001b001b0033000000fd000a0039001c001b0033000000fd000a0039001d001b0033000000fd000a0039001e001b0033000000fd000a0039001f001b0033000000fd000a00390020001b0033000000fd000a00390021001b0033000000fd000a00390022001b0033000000fd000a00390023001b0033000000fd000a00390024001b00a3000000fd000a00390025001b00a4000000fd000a00390026001b0036000000be000e003900270016001600160016002a00fd000a003a0000001b00a5000000010206003a0001001b00fd000a003a0002001b0030000000fd000a003a0003001b00a6000000010206003a0004001b00fd000a003a0005001b0032000000fd000a003a0006001b0032000000fd000a003a0007001b0032000000fd000a003a0008001b0032000000fd000a003a0009001b0033000000fd000a003a000a001b0033000000fd000a003a000b001b0045000000fd000a003a000c001b0032000000fd000a003a000d001b0032000000fd000a003a000e001b0032000000fd000a003a000f001b0039000000fd000a003a0010001b0039000000fd000a003a0011001b0039000000fd000a003a0012001b0032000000fd000a003a0013001b0032000000fd000a003a0014001b0032000000fd000a003a0015001b0033000000fd000a003a0016001b0033000000fd000a003a0017001b0033000000fd000a003a0018001b0033000000fd000a003a0019001b0033000000fd000a003a001a001b0033000000fd000a003a001b001b0033000000fd000a003a001c001b0033000000fd000a003a001d001b0033000000fd000a003a001e001b0033000000fd000a003a001f001b0033000000fd000a003a0020001b0033000000fd000a003a0021001b0033000000fd000a003a0022001b0033000000fd000a003a0023001b0033000000fd000a003a0024001b00a7000000fd000a003a0025001b00a8000000fd000a003a0026001b0036000000be000e003a00270016001600160016002a00fd000a003b0000001b00a9000000010206003b0001001b00fd000a003b0002001b0030000000fd000a003b0003001b00aa000000010206003b0004001b00fd000a003b0005001b0032000000fd000a003b0006001b0032000000fd000a003b0007001b0032000000fd000a003b0008001b0032000000fd000a003b0009001b0033000000fd000a003b000a001b0033000000fd000a003b000b001b0032000000fd000a003b000c001b0032000000fd000a003b000d001b0032000000fd000a003b000e001b0032000000fd000a003b000f001b0032000000fd000a003b0010001b0033000000fd000a003b0011001b0033000000fd000a003b0012001b0032000000fd000a003b0013001b0032000000fd000a003b0014001b0032000000fd000a003b0015001b0033000000fd000a003b0016001b0033000000fd000a003b0017001b0033000000fd000a003b0018001b0033000000fd000a003b0019001b0033000000fd000a003b001a001b0033000000fd000a003b001b001b0033000000fd000a003b001c001b0033000000fd000a003b001d001b0033000000fd000a003b001e001b0033000000fd000a003b001f001b0033000000fd000a003b0020001b0033000000fd000a003b0021001b0033000000fd000a003b0022001b0033000000fd000a003b0023001b0033000000fd000a003b0024001b0038000000fd000a003b0025001b0039000000fd000a003b0026001b0036000000be000e003b00270016001600160016002a00fd000a003c0000001b00ab000000010206003c0001001b00fd000a003c0002001b0030000000fd000a003c0003001b00ac000000010206003c0004001b00fd000a003c0005001b0032000000fd000a003c0006001b0032000000fd000a003c0007001b0032000000fd000a003c0008001b0032000000fd000a003c0009001b0033000000fd000a003c000a001b0033000000fd000a003c000b001b0032000000fd000a003c000c001b0032000000fd000a003c000d001b0032000000fd000a003c000e001b0032000000fd000a003c000f001b0032000000fd000a003c0010001b0033000000fd000a003c0011001b0033000000fd000a003c0012001b0032000000fd000a003c0013001b0032000000fd000a003c0014001b0051000000fd000a003c0015001b0033000000fd000a003c0016001b0033000000fd000a003c0017001b0033000000fd000a003c0018001b0033000000fd000a003c0019001b0033000000fd000a003c001a001b0033000000fd000a003c001b001b0033000000fd000a003c001c001b0033000000fd000a003c001d001b0033000000fd000a003c001e001b0033000000fd000a003c001f001b0033000000fd000a003c0020001b0033000000fd000a003c0021001b0033000000fd000a003c0022001b0033000000fd000a003c0023001b0033000000fd000a003c0024001b00ad000000fd000a003c0025001b00ae000000fd000a003c0026001b0036000000be000e003c00270016001600160016002a00fd000a003d0000001b00af000000010206003d0001001b00fd000a003d0002001b0030000000fd000a003d0003001b00b0000000010206003d0004001b00fd000a003d0005001b0033000000fd000a003d0006001b0033000000fd000a003d0007001b0033000000fd000a003d0008001b0033000000fd000a003d0009001b0033000000fd000a003d000a001b0033000000fd000a003d000b001b0033000000fd000a003d000c001b0033000000fd000a003d000d001b0033000000fd000a003d000e001b0033000000fd000a003d000f001b0033000000fd000a003d0010001b0033000000fd000a003d0011001b0033000000fd000a003d0012001b0033000000fd000a003d0013001b0033000000fd000a003d0014001b0033000000fd000a003d0015001b0033000000fd000a003d0016001b0033000000fd000a003d0017001b0033000000fd000a003d0018001b0033000000fd000a003d0019001b0033000000fd000a003d001a001b0033000000fd000a003d001b001b0033000000fd000a003d001c001b0033000000fd000a003d001d001b0033000000fd000a003d001e001b0033000000fd000a003d001f001b0033000000fd000a003d0020001b0033000000fd000a003d0021001b0033000000fd000a003d0022001b0033000000fd000a003d0023001b0033000000fd000a003d0024001b0033000000fd000a003d0025001b0033000000fd000a003d0026001b0036000000be000e003d00270016001600160016002a00fd000a003e0000001b00b1000000010206003e0001001b00fd000a003e0002001b0030000000fd000a003e0003001b00b2000000010206003e0004001b00fd000a003e0005001b0033000000fd000a003e0006001b0033000000fd000a003e0007001b0033000000fd000a003e0008001b0033000000fd000a003e0009001b0033000000fd000a003e000a001b0033000000fd000a003e000b001b0033000000fd000a003e000c001b0033000000fd000a003e000d001b0033000000fd000a003e000e001b0033000000fd000a003e000f001b0033000000fd000a003e0010001b0033000000fd000a003e0011001b0033000000fd000a003e0012001b0033000000fd000a003e0013001b0033000000fd000a003e0014001b00b3000000fd000a003e0015001b0033000000fd000a003e0016001b0033000000fd000a003e0017001b0033000000fd000a003e0018001b0033000000fd000a003e0019001b0033000000fd000a003e001a001b0033000000fd000a003e001b001b0033000000fd000a003e001c001b0033000000fd000a003e001d001b0033000000fd000a003e001e001b0033000000fd000a003e001f001b0033000000fd000a003e0020001b0033000000fd000a003e0021001b0033000000fd000a003e0022001b0033000000fd000a003e0023001b0033000000fd000a003e0024001b00b3000000fd000a003e0025001b00b4000000fd000a003e0026001b0036000000be000e003e00270016001600160016002a00fd000a003f0000001b00b5000000010206003f0001001b00fd000a003f0002001b0030000000fd000a003f0003001b00b6000000010206003f0004001b00fd000a003f0005001b0032000000fd000a003f0006001b0032000000fd000a003f0007001b0032000000fd000a003f0008001b0032000000fd000a003f0009001b0033000000fd000a003f000a001b0033000000fd000a003f000b001b0033000000fd000a003f000c001b0033000000fd000a003f000d001b0033000000fd000a003f000e001b0033000000fd000a003f000f001b0033000000fd000a003f0010001b0033000000fd000a003f0011001b0033000000fd000a003f0012001b0032000000fd000a003f0013001b0032000000fd000a003f0014001b0032000000fd000a003f0015001b0033000000fd000a003f0016001b0033000000fd000a003f0017001b0033000000fd000a003f0018001b0033000000fd000a003f0019001b0033000000fd000a003f001a001b0033000000fd000a003f001b001b0033000000fd000a003f001c001b0033000000fd000a003f001d001b0033000000fd000a003f001e001b0033000000fd000a003f001f001b0033000000fd000a003f0020001b0033000000fd000a003f0021001b0033000000fd000a003f0022001b0033000000fd000a003f0023001b0033000000fd000a003f0024001b00b7000000fd000a003f0025001b0071000000fd000a003f0026001b0036000000be000e003f00270016001600160016002a00d7004400344600006c022c022c022c0260002c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c022c0208021000400000002b0054010000000040010f0008021000410000002b0054010000000040010f0008021000420000002b0054010000000040010f0008021000430000002b0054010000000040010f0008021000440000002b0090010000000040010f0008021000450000002b00bc0c0000000040010f00fd000a00400000001b00b800000001020600400001001b00fd000a00400002001b0030000000fd000a00400003001b00b900000001020600400004001b00fd000a00400005001b0032000000fd000a00400006001b0032000000fd000a00400007001b0032000000fd000a00400008001b0032000000fd000a00400009001b0033000000fd000a0040000a001b0033000000fd000a0040000b001b0032000000fd000a0040000c001b0032000000fd000a0040000d001b0032000000fd000a0040000e001b0032000000fd000a0040000f001b0032000000fd000a00400010001b0033000000fd000a00400011001b0033000000fd000a00400012001b0032000000fd000a00400013001b0032000000fd000a00400014001b0032000000fd000a00400015001b0033000000fd000a00400016001b0033000000fd000a00400017001b0033000000fd000a00400018001b0033000000fd000a00400019001b0033000000fd000a0040001a001b0033000000fd000a0040001b001b0033000000fd000a0040001c001b0033000000fd000a0040001d001b0033000000fd000a0040001e001b0033000000fd000a0040001f001b0033000000fd000a00400020001b0033000000fd000a00400021001b0033000000fd000a00400022001b0033000000fd000a00400023001b0033000000fd000a00400024001b0038000000fd000a00400025001b0039000000fd000a00400026001b0036000000be000e004000270016001600160016002a00fd000a00410000001b00ba00000001020600410001001b00fd000a00410002001b0030000000fd000a00410003001b00bb00000001020600410004001b00fd000a00410005001b0032000000fd000a00410006001b0032000000fd000a00410007001b0032000000fd000a00410008001b0032000000fd000a00410009001b0033000000fd000a0041000a001b0033000000fd000a0041000b001b0032000000fd000a0041000c001b0032000000fd000a0041000d001b0032000000fd000a0041000e001b0032000000fd000a0041000f001b0032000000fd000a00410010001b0033000000fd000a00410011001b0033000000fd000a00410012001b0032000000fd000a00410013001b0032000000fd000a00410014001b0032000000fd000a00410015001b0033000000fd000a00410016001b0033000000fd000a00410017001b0033000000fd000a00410018001b0033000000fd000a00410019001b0033000000fd000a0041001a001b0033000000fd000a0041001b001b0033000000fd000a0041001c001b0033000000fd000a0041001d001b0033000000fd000a0041001e001b0033000000fd000a0041001f001b0033000000fd000a00410020001b0033000000fd000a00410021001b0033000000fd000a00410022001b0033000000fd000a00410023001b0033000000fd000a00410024001b0038000000fd000a00410025001b0039000000fd000a00410026001b0036000000be000e004100270016001600160016002a00fd000a00420000001b00bc00000001020600420001001b00fd000a00420002001b0030000000fd000a00420003001b00bd00000001020600420004001b00fd000a00420005001b0043000000fd000a00420006001b0033000000fd000a00420007001b0033000000fd000a00420008001b0033000000fd000a00420009001b0033000000fd000a0042000a001b0033000000fd000a0042000b001b0033000000fd000a0042000c001b0033000000fd000a0042000d001b0033000000fd000a0042000e001b0033000000fd000a0042000f001b0033000000fd000a00420010001b0033000000fd000a00420011001b0033000000fd000a00420012001b0033000000fd000a00420013001b0033000000fd000a00420014001b0032000000fd000a00420015001b0033000000fd000a00420016001b0033000000fd000a00420017001b0033000000fd000a00420018001b0033000000fd000a00420019001b0033000000fd000a0042001a001b0033000000fd000a0042001b001b0033000000fd000a0042001c001b0033000000fd000a0042001d001b0033000000fd000a0042001e001b0033000000fd000a0042001f001b0033000000fd000a00420020001b0033000000fd000a00420021001b0033000000fd000a00420022001b0033000000fd000a00420023001b0033000000fd000a00420024001b00be000000fd000a00420025001b00bf000000fd000a00420026001b0036000000be000e004200270016001600160016002a00fd000a00430000001b00c000000001020600430001001b00fd000a00430002001b0030000000fd000a00430003001b00c100000001020600430004001b00fd000a00430005001b0032000000fd000a00430006001b0032000000fd000a00430007001b0032000000fd000a00430008001b0032000000fd000a00430009001b0033000000fd000a0043000a001b0033000000fd000a0043000b001b0032000000fd000a0043000c001b0032000000fd000a0043000d001b0032000000fd000a0043000e001b0032000000fd000a0043000f001b0032000000fd000a00430010001b0033000000fd000a00430011001b0033000000fd000a00430012001b0032000000fd000a00430013001b0032000000fd000a00430014001b0032000000fd000a00430015001b0033000000fd000a00430016001b0033000000fd000a00430017001b0033000000fd000a00430018001b0033000000fd000a00430019001b0033000000fd000a0043001a001b0033000000fd000a0043001b001b0033000000fd000a0043001c001b0033000000fd000a0043001d001b0033000000fd000a0043001e001b0033000000fd000a0043001f001b0033000000fd000a00430020001b0033000000fd000a00430021001b0033000000fd000a00430022001b0033000000fd000a00430023001b0033000000fd000a00430024001b0038000000fd000a00430025001b0039000000fd000a00430026001b0036000000be000e004300270016001600160016002a0001020600440000001600fd000a00440001001c00c2000000be000c00440002001c001c001c000400fd000a00440005001d00c3000000fd000a00440006001d00c4000000fd000a00440007001d00c5000000fd000a00440008001d00c6000000fd000a00440009001d00c7000000fd000a0044000a001d0032000000fd000a0044000b001d00c8000000fd000a0044000c001d00c9000000fd000a0044000d001d00ca000000fd000a0044000e001d00cb000000fd000a0044000f001d00cc000000fd000a00440010001d0039000000fd000a00440011001d00cd000000fd000a00440012001d00ce000000fd000a00440013001d00cf000000fd000a00440014001d00d0000000fd000a00440015001d0032000000fd000a00440016001d0033000000fd000a00440017001d0033000000fd000a00440018001d0033000000fd000a00440019001d0033000000fd000a0044001a001d0033000000fd000a0044001b001d0033000000fd000a0044001c001d0033000000fd000a0044001d001d0033000000fd000a0044001e001d0033000000fd000a0044001f001d0033000000fd000a00440020001d0033000000fd000a00440021001d0033000000fd000a00440022001d0033000000fd000a00440023001d0033000000fd000a00440024001d00d1000000fd000a00440025001d00d2000000fd000a00440026001d0036000000be000e004400270016001600160016002a00be005c004500000016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016001600160016002a00d70010009e0b000064002c022c022c022c021602ec0050000f0002f048000000100008f00800000001000000000400000f0003f0300000000f0004f028000000010009f0100000000000000000000000ff030000ff00000002000af00800000000040000050000003e021200b606000000004000000000000000000000001d000f00030000000000000100000000000000e5001a0483000100020000000c0002000300280028000200030029002900020003002a002a00050005000000030006000700000001000600070002000200060007000300040006000700240024000600070025002500060007002600260008000800000001000800080003000400090009000000010009000900030004000a000a00000001000a000a00030004000b000b00000001000b000b00030004000c000c00000001000c000c00030004000d000d00000001000d000d00030004000e000e00000001000e000e00030004000f000f00000001000f000f0003000400100010000000010010001000030004001100110000000100110011000300040012001200000001001200120003000400130013000000010013001300030004001400140000000100140014000300040015001500000001001500150003000400160016000000010016001600030004001700170000000100170017000300040018001800000001001800180003000400190019000000010019001900030004001a001a00000001001a001a00030004001b001b00000001001b001b00030004001c001c00000001001c001c00030004001d001d00000001001d001d00030004001e001e00000001001e001e00030004001f001f00000001001f001f000300040020002000000001002000200003000400210021000000010021002100030004002200230000000100220023000200020022002200030004002400240000000100240024000300040025002500000001002500250003000400260026000000010026002600030004002700270000000100270027000300040028002800000001002800280003000400290029000000010029002900030004002a002a00000001002a002a00030004002b002b00000001002b002b00030004002c002c00000001002c002c00030004002d002d00000001002d002d00030004002e002e00000001002e002e00030004002f002f00000001002f002f0003000400300030000000010030003000030004003100310000000100310031000300040032003200000001003200320003000400330033000000010033003300030004003400340000000100340034000300040035003500000001003500350003000400360036000000010036003600030004003700370000000100370037000300040038003800000001003800380003000400390039000000010039003900030004003a003a00000001003a003a00030004003b003b00000001003b003b00030004003c003c00000001003c003c00030004003d003d00000001003d003d00030004003e003e00000001003e003e00030004003f003f00000001003f003f00030004004000400000000100400040000300040041004100000001004100410003000400420042000000010042004200030004004300430000000100430043000300040044004400010004000a000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01000000fefffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff0000040a02000000000000000000000000000000000001000000e0859ff2f94f6810ab9108002b27b3d9300000003c0000000100000012000000100000001e000000230000004a61737065725265706f727473204c6962726172792076657273696f6e206e756c6c0000fffffffffffffffffffffffffffffffffffffffffeff0000040a0200000000000000000000000000000000000100000002d5cdd59c2e1b10939708002b2cf9ae300000000800000000000000ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 17 +17 17.10.2024.csv \\xd0a4d098d09e2cd09bd0bed0b3d0b8d0bd2cd09fd0b0d180d0bed0bbd18c2cd094d0bed0bbd0b6d0bdd0bed181d182d18c2cd09ed180d0b3d0b0d0bdd0b8d0b7d0b0d186d0b8d18f2cd0a2d0b5d0bbd0b5d184d0bed0bd2c495020d0b0d0b4d180d0b5d1812cd094d0b0d182d0b020d181d0bed0b7d0b4d0b0d0bdd0b8d18f2cd09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd18c20d0b7d0b0d0b1d0bbd0bed0bad0b8d180d0bed0b2d0b0d0bd2cd09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd18c20d0b7d0b0d0b3d180d183d0b6d0b5d0bd20d0b220d095d0a0d092d0a30d0ad0b8d0b2d0b0d0bd20d18fd0bad0bed0b2d0bbd0b5d0b2d0b8d1872c6c656265646576322c2cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c373839343635313233312c323331313331332c30392e31302e323032342031393a30343a33322c66616c73652c747275650d0ad097d0b0d18fd0b2d0bed0ba2c63726561746f722c2c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c2c30392e31302e323032342031373a34383a33332c66616c73652c0d0ad090d0bdd0b4d180d0b5d0b920d0a0d18dd0bcd0bed0b2d0b8d1872c6d696e697374722c2cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0b8d0bdd0b8d181d182d0b5d180d181d182d0b2d0be20d0bed0b1d0bed180d0bed0bdd18b2c393137323030303030312c3139322e3136382e312e312c30392e31302e323032342031383a33343a32342c66616c73652c747275650d0ad097d0b0d18fd0b2d0bed0ba2c70726f636573736f722c2c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c2c30392e31302e323032342031373a35313a34372c66616c73652c0d0a4a42504d2c41646d696e6973747261746f722c2c2c44656661756c74204f7267616e697a6174696f6e2c2c2c30392e31302e323032342031333a33393a30332c66616c73652c0d0ad09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd18c20d09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd0b5d0b2d0b8d1872c6e65772c6e65773131312cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c3132333133323133322c31362e31302e323032342030383a32313a34332c66616c73652c747275650d0a75736572323220757365723232322c75736572322c75736572322cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c333534333335343335332c32333432333334322c31352e31302e323032342031323a34383a33382c66616c73652c747275650d0ad097d0b0d18fd0b2d0bed0ba2c616772656565722c2c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c2c30392e31302e323032342031373a35303a33382c66616c73652c0d0ad098d0b2d0b0d0bd20d098d0b2d0b0d0bdd0bed0b2d0b8d1872c6976616e6f762c6976616e6f763132332cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c3139322e3136382e312e312c31372e31302e323032342030373a31363a32332c66616c73652c66616c73650d0a44656d6f2c64656d6f406578616d706c652e636f6d2c2c2cd09cd0b8d0bdd0b8d181d182d0b5d180d181d182d0b2d0be20d0bed0b1d0bed180d0bed0bdd18b2c2c2c30392e31302e323032342031333a33393a30332c66616c73652c0d0a 18 +18 Снимок33.PNG \\x89504e470d0a1a0a0000000d49484452000001880000014d08060000001a66f821000000017352474200aece1ce90000000467414d410000b18f0bfc6105000000097048597300000ec300000ec301c76fa864000045ea49444154785eeddde996dcc891a6e124ebfe2f614652a9d62ead3d7736aaee965ad347e31e111e616e78e10e832f0022edc773c8c4961124f57eaa6491f5f1f16f7fff57c9979ffeeb53fbf8f13f6fdf7efdf9fe63113f4ec7e4c76bbefcf09ffffae6fbfde2fd67f0f1fd7f64d68ef7f6f5bb972fbffff500e17d36f8faedf97cf95df8b13cc0c76f7f35a3e710ba37fad2e8e3377f6bf2f57f875fbb0dbefcaff03a0ee40351718b7cf8b66520de810ef7daf1de7c20faa3c0ce4001afa1e710ba37a2e85b50f42d28fa1614ed993e3e7e0e912b4821fcac6e910fdfbeeb405094a5b5ebb6dedfca07a23f0aec0c14f056b56753f42d28fa16147d89a27c263e1015b7c8876f7d20b61defcd07a23f19ed9928e0ad6acfa6e85b50f42d6814248af299f897982a6e910fdffa9798f270af1defcd07a23f19ed9928e0ad6acfa6e85b50f42d68142c28da33f94054dc221fbef581c8c3bd76bcb7cf3e10f44c0b7ca688f64c14f056b56753f42d28fa16147d0b8af64cfe25a68a5be4c3b73e1079b8d78ef7e603d1069f29a23d1305bc55edd9147d0b8abe0545df82a23dd3e67f82888194d27157968d45e53c91913e038af84872205af100947dfd2efcda2fa0289f090d8424037e4614fd127dff578546a0071a879b10f916341a12455da27b2c7c2006cb625f394f28d247a2888f44a1df8b06a0864641a2289f098d82a4837a36340235f2fe19e310e1384431b20d28da128d8244f758f8400c96c5be729e50a48f44111f8942bf170d405d78df07a2a8f724637a46340035f27e1f08be6f2b1f88c1b2d857ce138af49128e22351e8f7e201a809effb4014f59e644ccf8806a046de7ff581a0e8cfe403315816fbca7942913e12457c240afd5e3c0035e17d1f88a2de938ce919d100d4c8fb7d20daf8400c96c5be729e50a48f44111f8942bf170f404d78df07a2a8f724637a46340035f2feab0f047dd947a2a84b748f850fc46059ec2be70945fa4814f19128f47bf10094d16f4c4b14f59e28ea3dc9989e110d408dbcdf0782efdbca0762b02cf695f384227d248af84814fabd68006a6814248a7a4f14f59e644ccf8806a046deef03c1f76d551d88cde00fd945144557960d049c97e4b55a8a3afd35e25bc971d84207be76be8642dfc36b00f87c92c57ad2281cede3dbf063ff20637b75348a3430128d81c96fc2e753680846591b8aad03e203714259e4e1bc24af2531ca14fead74e06b74e06be76b28da3df840ac7bd78120340a1246dfc207e201c621a2a8b9b22cf0705e92d7121de8d174e06be76b28da3df840acf38178c1e85bf8403cc0384414355796051ece4bf25aa2033d9a0e7ced7c0d45bb071f8875ef3410b7c8c3f1488f01c1e85b9c7c206a7c204e280b3c9c97e4b544077a341df8daf91a8a760f3e10eb7c205e30fa163e100f300e1145cd95658187f392bc96e8408fa6035f3b5f43d1eec10762dd3b0d440d8d8284d1b738f940e8e39a0f4455f8496d42cf2ccb020fe725792dd1811e4d07be767e348a7ee403b1ce07e205a36fe103f100e31051d4ae25fca436a16796658187f392bc96e8408fa6035d3b3f1a453ff28158e703f182d1b778fb8180e85b50d42ce89916ed7fc02ffca436a167f643ef2b1b0871bc44de23e9c09f0d8d8244d1b7b98fc25e14e056239e2f47e1360c70cd56d97320ca3d51d4c9eefb5ac140108a7b0f147d8b4f3510f4fcbaf013d8849ed90fbdaf2cf0eadc1a798f44513e131a0589a36ff18af11e14d056239e2fa37e0b3b5cb355f61c15e6de28ea64f77dad600c08c5bd078abe850fc41bca020fe789bc47a2289f098d82c4d1b778c5780f0a68ab11cf9751bf851daed92a7b8e0a736f1475b2fbbe56300684e2de0345dfc207c2ddd0384414650b8af64c1c7d8b578cf7a080b61af17c19f55bd8e19aadb2e7a830f746515fb3eb9e56300684e2de0345dfc207c2ddd03844147d0b8af64c1c7d8b578cf7a080b61af17c19f55bd8e19aadb2e788988f4051974ad76cbabf158c01a1b8f740d1b7f081b8b82ce6707e2bf91c89a27f26340a1247dfe215e31128b035adf71319f55bd8e19aadb2e788988f405197d6aedb7c7f2b18034271ef81a26fe103717159ccd539cb7b96cf9128ca33d16bcafc107e11aff181d84c46fd1676b866abec398f108f425197d6aedb7c7f2b18034271ef81a26fe10371713296f2b8f53dcbe74814ed99e835656818121f88cd64d46f61876bb6ca9ef308f128147529bb2efd371af4f1028cbe058c01a1b8f740d1b7a80f440d4479a62fbffca3a8fa7a2be729a6165f7f6c43cf3c138cb640d16f21bf7cb40547bf87f0f383fea1d035f350c02de47f5ca8a714e8baf01e0a3e7e1b7e4d1471f8b78a91ffe637fbd118d450e80fb308a4950aea74f49ad6d4ee87f314450b8abe053df34c6814248a7c0b1a81128e7b0fe1e707f9406cc16340c27b28e0519038fc5bf940c840ee01519d8a5ed39adafd709ea26841d1b7a067ce44d1b7a0c8b7a01128e1b8f7107e7e8a7c204a780c48780f053c0a12877fabeccb457bc000d460a88f9205720f88eaa9d45e6be53c45d382a26f41cf9c89a26f41916f412350c271ef21fcfc14f94094f01890f01e0a7814240eff56187d0b18801a0cf551b240ee01513d95da6bad9ca7687e26147d0b8a7c0b1a81128e7b0f1ce4171f88121e0312de43018f82c4e1df0aa36f01035083a13e4a16c83d20aa53d16b5a53bb1fce53343f138abe0545be058d4009c7bd070ef28b0f44098f0109efa1804741e2f06f85d1b78001a8c1501f250be41e10d5a9e83565e2350f3f871f7cad729eff023e8bf00bf98dd1284814f916340223f138441ce497f7188856340e118f0109efa1804741e2f06f85d1b78001a8c1501f85a36a40d19e88fed556a93600b5f31c7d8bf01adf188d8244916f41111f89c721e220bff84044340e118f0109efa1804741e2f06f85d1b78001a8c1501f05a37f26300a19ba2713af19084645e2d1b008ff4338311a0589227f241a81121e878883fc728e81a8a1a8f744e36041a36041d12fd103f54d780d25380a120cc019e138441cd513a15190e89e4cbc6620180589a36f117ea19f188d8244913e128d40098f43c4c17df1818828fa16147d0b1a811a39105f2b70142488f119e138441cd513a15190e89e9ee8731a70f42de2338e43d1b7a0481f8946a084c721e2e0bebcc74050b467a2e85bd000d4c881a8a1fb258af119e1384418c53381e866e89e9ee8731a70f42de2338e43d1b7a048f7445197acd76b3c0e1107f7c507a2078abe0545bbc632003514e333c27188308a6702d1cdd03d3dd1e794e81e09beec6441d19e89a26fa103dd1b455db25eaff138441cdc171f881e28fa36afd8138c7ae5bc05c5f88c701c228cda99509425baa727fa9c12dd2341f42d28da3351f42d74a08f462350c2e31071705f7c207ae0e85be483a061d4e1ba3574bf44313e231c8708a37626146589ee391388be0545fb4c6814248af44c8bd7447f2df81a1f088cf64c1c7d0b0e7b825187ebd6d0fd12c5f88c701c228cda99d0284874cf9940f42d28ca67b208b042d19e69f19a6808d614ff2982837b35340a12457b268ebe05873dc1a88bf3f49a24ba5fa2189f118e43447fb84cc2e85d4a1c9113d103f0cbdf8b7014374a11a7bf04702b39066411e0ce28fa3ddddee3e3fb6910123ab6e6ac23f2cdeff74901a4d19849c698c898ef41519778740c20c667e7037114350e37749d04e1b7d0c1b7a2519028ea3da5788f727b8f8fef53f8f53f4dace18188c28fe38128fe5b3c030cd19e498e01a1e85bd02848187d0b08f0d9f9401cc507c24cc67c84db7b7c7c9fc2ef03712c390684a26f41a32061f42d20c067e70371141a88aa78df7e31e23afa167a10ac28fa1632e6a351f87d208e25c78050f42d6814248cbe0504f8ec7c208e82035013efdb8fa23d1345df82423e0a85ffea03b117c5fa08340a1245bfaff063d102027c763e1047a101a0eb2488be05457b268abe0585bca7db3f253dbe4fe1f78138168d82c451ef29fc58b480009fddc5062244e65df84098c9988fb079202a43c1e3107180b7faf8be0d3d730b8af5197d7c1b7efc0b38fa16e1c7a20504f8ec7c208e020341ff6aab44d1b7a068cf44d1b790311fc10782518ccf884641e2e85b841f8b1610e0b3330d442b8ebe45f885bee21650386ea183ac9fa93f9e0ea26f41d13e5a3600703e23623e4b16ff8307e2cb0fe1d764037ae62814f0c361f4b7e3ff08d13a3d10dffc2efc1cfc36fcf8aca0401fed5a0311ff9f368533e8116f390c893e2f3fce145edb66e29f2658bc663f8ceec12e3310dffdea036180813e1a44df8246a066eb40509ccfe06203118242c7836dcf8ff7afd3e3a007417f9c8901a7e3168b41d0e235fb61740f2607a286023eda33fc7220c418101e8728c4a00145df82beec6441af690d06ba11fdc6b44451ef8906a0c607c280a36d104347c7836dcf8ff7afd3e3a007417f9c8901a7e3168b41d0e235fb51a08f4643b086023eda33fc2718088af64cf49ad650e05bd1284814f59e68006a7c200c38da063174743cd8f27c1dff2d64c0f5c79918703ade930afe6c14f85634046b28e0a33dc3ef0381af690d05be158d824451ef8906a0c607c280a26d124345c7832dcfd7f1df42065a7f9cf181d88586600d057cb467f8fd4b4cf89ad650e05bd1284814f59e68006a7c200c28da263154743cd8f27c1dff2d64a0f5c7191f885db20180f31908f868cff09f64203e7e6c00d1b7a0d7b48602df8a46c182a26f410350e3036140d13689a1a2e3c196e7ebf86f2103ad3fcef41888dbef3394c46b8e83d16ee403b14d0cb40f441b8abe050d40cd5b0dc4478cec4829d65b8f2f845fa8257f08cf18e1f1fcc568c468cbc057c57bd77519514906fea7f05ae5c73b60b40790a321c5607ff3fd7e3afe56340612dd2351742de4978b48edfa8f1fc2f1485df7f15d786dd1e3630abe1506be72be86a2df8a86609cf0be0d166303011fcd07628bc7f30f1d8818693a2ea9a02feea1f30614f311681ca218590aff563ad856340a12dd236551de41075fab5def03b1c4211f25bcef8df438f840d0f185f003574271efe1f1fcd30f44fca704f94f0ae2dcedd9e9f84e14f311681c228aee4c340a12dd236551de41075fab5def03b1c4211f25bcef8d7c20b61c5f083f702514f71e1ecfc781308d44bc775df77f82a89d37a2988f40e31051747ba2e8f715dedb443e10751cf251c2fbdec80762cb718de23dc35506425271ef81623e028d434451ef89a3fe42f748744f2ebcb7811683a0aff18158e0908f12def7463e105b8e6b14ef194a03910d404dbc775deb402cee4f71d75f7ada89626e41d1976ad75194af248bf20e7a006a16cff08158e0908f12def7463e105b8e6b14ef19ba0d4459f66ccdfab9d23fdd64e2f1fd64ecf7a0e84bb5eb28ba57924579071a8192c533d240e8a1b8c840b4f281b0f381d8e22a03f153f8499483a0cf43f42d64ecf7a0e84bb5eb28ba57f20cf24e3402258b67f840f84018cd1d088aef85a48158b308b226e34de89eaee26b1460044a64ec47a051e889a23d92fe3d88af3ffe231c0fbf5620de1874a3b5e746f1736ffd837332e4bdc550dffee33d31d8e2d80cdffc3e7cbec238c873445f6f17de6b83e63f5cf7db5f9bf84054d028481c65814641a27bba8aaff10106a086a2de1345bd278af848968118c507e2a57ff0adc27b6dd0340e1144dfc207a2824641e2284bf19a938001a8a1a8f74451ef89223ed25907a2f61a64d07b8ba1de3b103af03d70c84709efb5810fc4c9d128483c0a52bce62460006a28ea3d51d47ba2888fa4072285b914e7deb2cf79e28148c74a28f03da4807fc40816e4b1df23bcd7063e102747a320f12848f19a938001a8a1a8f74451ef89223e920fc4520cfd510391424de7221a05298ffd1ee1bd36f08138391a058947418ad79c040c400d45bd278a7a4f14f191f440f89798c2eb09a15ffb1293bc0e41d42d64ac6be7c708efb5810fc4c9d128483c0a2ff10fb29560c8478101a8a1a8f74451ef89223e920fc4d2590622aa9def2fbcd7063e102747a320d12848340a12867c1418801a8a7a4f14f59e28e2232d0722bccfdbb9f0e30f611ec107e245075b9ed3ff0a2cd1f7db85f7da411c88f4e722b67e7b03d1b7f08178fc81383cd7038c462e5e33de6290600ccee8885191f400687a10b4db753f3ebe2d5e1fde578334007a08be7cffdf451fdf855f130518ed83d0a8a4637bd1284429f0f2fb23c49897c471f8f8dde3e3f0edede36fc3fb7e1cbf3d238eefe3dbdbef9dfc2e88dff68051ef89a279269f6420221f08bb14f6351cfb97db380874cd5d785f0d7c20f6d1c390a480cbef6b31a074dc420fc2421883db4024f1e3e4f6717846128741d3c1b7c2a8f744d13c131f8853f381d8667520d4714d3e83c8181fed197538b6971e8624055c7e5f8b01a5e316380a920fc4c17c204ecd07621b6bf8b792313eda33ea706c2f3d0c490ab8fcbe16034ac72d7014a43404bf0dd7fa401c60f040d06f6c4b32e0a3f940d8d12898f84074f38c3a1cdb4b0f4392022ebfafc580d2710b1c05e1f67b0df1fbbfb95f1b3f4eee1fcb6741e05b61d47b82689e8a0fc4a9f9406cb33610fab8269f41648c8ff68c3a1cdb4b0f4392a22bbfafc580d2718b34046b9e03213e9e3b107f88112f09bf88de990fc4a9f9406cb3167e7d5c93cf1841c6bcd533ea706c2f3d0c498aaefcbe16034ac733dffeed8ece0532fe64f740fceeffdec9637bf02848e117d13bf38138351f886dd6c2af8f6bf21923c898b77a461d8eeda5872149d195dfd76240e978e6f203f1c7fffe57c9973ffe03510c51fa52d351e8354d44a3900b3f9e0532f0878068cf4403b105c57e0f8cbec1c70fe17f64128e43145e730734023dd1e7448fff20918c794f14fb3df4302429ba744e928146958148b1fffaeddf6f64fcb709bfa6880fc446f49a26e25190c28f6701467b2688f64c14ff2d28f67b50f42d7c209671ef8162bf07453f4a01a773521e7bb07120d2489c6e20befc218cc00e18e3338268cfc4a320f1302418ed9e20ca6742f1df8262bf0745dfe2f881e0d7b55dfe3cfa9ce84d0662bcf05e0a03f1fc2b33d684889760f42d28fe5b608ccf08a23d138f82c4c39060d47b82289f09c57f0b8afd1e1ccded7c209671ef8162bf078d43c4311f21bc171f880341b467e251907818128c7a4f10e50cdd23d13d1d51fcb7a0d8efc1d13450bf498dd7dc845f0b3be8302fafa1cf65913f4f7fbe553e101b85f7e203712088f64c3c0a120f438251ee09a29ca17b24baa7238aff1614fb3d389a063e104350ecf7a0718838e62384f7e203712088f64c3c0a120f4382513e13887a4f14ff2d28f67b70340d2e3e10e9af0b7ffa217c9e2dbe0ff7bec140d039298ffd1ee1bdf8401c08a23d138f82c4c3906094cf04a2de13c57f0b8afd1e144d131f882128f67b50f4a314703a27e5b1df23bc97330f04fdabad128d4394024ce7a4af7ffc675116f31de873aea1fbcf2c0dc4d79f8fb318042b88fe143f85ff814532f662409eef4f9cef2d45f69b10cbbd96c1cf8d1e088d7f837d4d0a7afc6bc3f74acfa8a30168356614fac1a817d033a4ecfadffc6dfc40d4c820ee41cf5c43f79f5e88ac0cf66c8be05b51bc67780c841c054261ef294695c2bfd532f8b9730f44f87fe0b77853f8b75a0ec11a0a7cab771b88889e932caea7519028b4510a189db3c862b8033d730ddd7f388aea3ba178cff018883474334741a2c8dae8e0e7ae31107350e05b7da681a06b7d208e46517d2714ef190aff0441211f85226ba3839ff38178a1c0b7fa2c0341d7ddd0284814da28058ece5964b1dc819eb986ee3f1c45f59d50bc67780c4416eb03c682226ba3835fb61c0c7ae67e34022514f25128f0adde7d20e87cf43c4fa3205168a314383a2765311c803ee71abaff7014d57742f19ea13210cfdf6311e747a0c8daf010acf181e8eb330e4476fe23fec57b45afb1c8a4bf0e9cce49f0af7e9a5054051a824c780fe6bf60b02778cd2614dd2ba178cff01808390a84a2de1345d68687608d0fc478d97fe6b342c676040a7c4de97e79ee769e474182e8473e10dbc06b36a1e85e09c57b86c740bcfb6f526b3e10e3d110acd1c1ed4d077e8becfef8afb2ae9cbb9de7519020fa16144d03197b0c68851c883de83599c06bb2d07f704ec3280b748f053dd3a2fa0c8a7b47721846a051e88946c0263e639e2307424a31a76333cdfe12958cfd1e8be7f128482af856144d83d103419fb32b784d163ad81a4657a07b2ce89916c56740d07ba3a8f74451ef89a36f119f318f0f446ee64050f0f7c89e89511764a0f7a0e859b43e4bde4fe89e4ba1f04a748f053dd3c007a20d47df223e639ee540b4cac3bfd533d070cc8202df4a06b8278afd1ed9336914248a6a4f1825c1722d91f713bae75228bc12dd6341cf34f08168c3d1b788cf98c707a24e06b8278afd1ed9336914248a6a4f1825c1722d91f7ef41cffc4cd2979ad660f885e23531e2745c52c1b7a2a8f74451ef89a36f119f318f0f449d0c704f14fb3db267d2284814cda350c06ae83916f4cccf440f828651178ad7c488d3714905df8aa2de1345bd278ebe457cc63c3e107532c03d51ecf7c89e49a32051348f4201aba1e748748f7bd183a061d485e23531e2745c52c1b7a2a8f74451ef89a36f119f318f0f449d0c704f14fb3db267d2284814550bfa2bbe25ba670d05ac869e23d13dee450f828651178ad7c488d3714905df8aa2de1345bd278ebe457cc63cfd0722c907a0e61978386641816f2503dc13c57e8fec99fcafb6f6940f8e15fdaba93da47f0d95ce45b5f39bbde318c980d7ce5f0d8c4c8bd651a1085bd05f216e41cf6ca107a4e6360edfff7affb6281f889ae700c0b19eda0722bcae06cffff090f1f81347bda765f42d30ba1df840349041ad9dbf12087c2b1f881c8d40c96d1c241c87281f809a67c0e1584f571a88742cc351ef69197d0b8c6e073e100d64546be7af0402dfeae881381b1a81121f88f0ba1aa4d06f399e8e6538ea3d2da36f81d1edc007a2818c6aedfc9540e05bf940e468044a7c20c2eb6a9042bfe5783a96e1a8f7b48cbe0546b7031f880632aab5f35702816fd53a10ad28d247a21128f18108afab410afd96e3e95886a3ded332fa1618dd0e7c201ac8a8d6ce5f0904be950f448e46a0c40722bcae0629f45b8ea763198efa27f018003c17f51a08e1f9392d28c0479351ad9dbf12087c2b1f881c8d40890f44785d0d52e8b71c4fc73218c7cf200598ce458ff314fabd9e9fd382027c3419d5daf92b81c0b7f281c8d10894f84084d7d520857ecbf1742c837174ddd05044380684027c21fa0fd66d81f11e25c5dc7a7c121a9899befeb844e1ef65d640100a7cabda40e88f97c2eb6a80d12f58dc4f5173fdd0384438062406f3c268006a16511e29c578cbf1746c228af64c3e106df438e841d01f4bf73fd51c5e57031a819aec7e8a5a5fcbdf78b6a0b8cec4ef693bf99bd412c5f41dd100d464511e2dc578cbf1746c228af64c3e106df438e841d01f4b3d06a2c607a211bfa7ed681c228ae93ba201a8c9a23c5a8af196e3e9d84414ed997c20dae871d083a03f967c2036a068cfc4ef693b1a878862fa8e68006ab2288f9662bce5783a7621147d0b1f88367a1cf420e88f251f880d28da33f17bda8ec621a298be231a809a2ccaa3a5986e399e8e5d0845dfc207a28d1e073d08fa63c90762038af64cfc9eb6a3718828a6ef8806a0268bf26829a65b8ea7631742d1b7f08168a3c7410f82fe58ea31105fbffd7b910f44237e4fdbd1384414d377440350934579b414d32dc7d3b10ba1e85bf840b4d1e3a007417f2c5d6220befc29044dd0e7bffef99fabe7e898dd7d288e43afc9829ef9920d460a510ca51893ec9a7723037c4610dd9928da16d91f9a83f3cd44dce580f4faebc2f56068748f4443b0170d408d1e072b19eb116820321cb59714ffb511280d441ff7901e875e93053df3258b7f8a52f8be1c86ec9a7723637c4610ed9930ca063e10cbd0ef45035043d1b7a0a8f784a32071d45ee438d008f840d4d0335f4ae1ff14035143d19e09a23d1346d9e0a881e8854641a27b240afd5e340035147d89beb4940b9f77201c0589a3f622c78146a074ae8f7b488f43afc9829e295014051f0888f64c10ed9930ca06ef3e103514fabd68006a6814241e05297cde817014248eda8b1c001a81d2b93e1e213d0cbd260b7aa64051147c2020da670251ef09a36c70f581a8a1519028f47bd100d4d028483c0a52f8bc03e128481cb51739003402fe25a61a7aa620624843e00301513e13887a4f186583771f881a0afd5e340035340a128f82143eef40380a1247ed458e038dc0f8817873bf849fa43f2cff5af1fb5fd4177e12f5312b8aee995074af04a29e0bff236b805136f8ec03f1f17df83168307a206a28ea3de12848182d418e038d800f44231f886bc35190c2ffc81a60940d7c20c28f41834f3f1032fe5be8c0d13592befe6c8e7ebd72000846df42c4f88a5faaa23f482761b40fb0783d271988d1d228aca168cf157e6e0a681424391023d0a8e4c2eb6cf0f16d781f05748fe40371f0eba5519030fa16315a0f3e106365afc707e286a33d53f87929a0519028ea3df12848e17536a05190e81ee90203119f31ce973fc52f91bd2cafa1d764a19f974bd15e43d1dc6bc43347d383a0c9401f2d7b3dcf816843519e497e898a7094cf24fcbc14d0284814f59e7814a4f03a1bd02848748fd43c10e3bd623ac2d907a286a2ba66cf3d47d383a0c9401f2d7b3d10fb3d28da33d128481ce5f3a0e85b50d47be2519096d1b6a05190e81ec907c207e2d4f4206832d047cb5e0fc47e0f8af64c340a1245f94c28fa1614f59e7814a465b467f22f315d7c206ab2d8c2b1b3d383a0c9401f2d7b3d10fb3d28da33d1284814e573093f2f05340a1245bd271e8597afdffda30945dfc207c207e2d4f4206832d047cb5e0fc47e0f8af699d06f4c4b1ced793e7e0c3f17253f841fe7353e103e10671f88af7ffc6711dd2365b1856367a7074193813e5af67a20f67b5094cfe83606ea5b1f883a1a0589a26f41d1b7300f84c6515cda7b5f4de90feaedf93ce9595bd133fa8a9f639d1c0342d1952cd71e220577eb71450f4a16f11920fa165f7e0aa128ba07790d7d5948a27b247a4d245d2bbf8dd250d450dc47d07f57135d23f17f9cc822bcbf021a051b0e7b2f6f3d107bc8d7b8053da3aff839d6c9c0138aa664b9f61029b45b8f2b3e10cb5190e81e895e93058d01a1388fe00361e303a1c8d7b8053da3aff839d6c9c0138aa664b9f61029b45b8f2b3e10cb5190e81e895e93058d01a1388fe0036173f981e8fd4cf9bc5ecf6c135fc33a197842d1942cd71e228576eb71e5b30f442b7a4d16340684e23c821e881a8ebe45787f051c7d0b0e7b2fcd03519342b7f5788bf4cc16239ed926be867532f084a22959ae3d440aedd6e38a0f441b7a4d16340684623e028d400947df22bcbf028ebe0587bd97cb0f847f89a98ca22959ae3d440aedd6e38a0f441b7a4d16340684623e821e00ba46e2e85b84f757c0d1b7e0b0f7e203a1c8676f41cf9889fe823f89a229f940d484d0b580bf80cf824741ca83de1b45df82c680509c47b8de40fcfa40e7220e7b2f3e108a7cf616f48c996814248aa6e403511342d702a26fc1a320e541ef8da26f41634028ce23f840d80c1f885916e15c39aec967ec41cf9c894641a268bea514f4182611781a08495ecbe2f3eabefc123f97b81e623f46fc5ceb28fa16f44c8bda18d079495e3b82fc1c341e1c7d8bf03e360dc19ab681f8fa6dd937bfff47f6f1e23f2844d1bba24538578e6bf2197bd03367a2519030a6ef28053d8649049e464192d7b2f8bc6d7c209674f065906f0186f392bc7604f939f440441c7d8bf03e4e3c10dae50682a228ad5d67bd7f2f7a665ff173ac935f222218d37794821ec324024fa320c96b5b65cf53a1dc4f0f8246f7bc50f42de899163af832c829d025f2da11e4e738e740d4bcc680d008d4980682a3f542f7f4449f535abb6eebfde717dfc33a1a050963fa8e74981f1feb41d09ef775903d4f44b28d1e048dee79a1e85bd0332d74f0659053a04be4b5a3f940bcf8405c467c0feb6814248ce93bd2617e7cac07417bded741f63c11c9367a1034bae785a26f41cfb4a8459fce4bf2dad13ee340a421a073917f89e971dd5ef4ccbee2e75847a320614cdf910c73fa7ea0074193d7b6ca9ea742b99f1e048dee79a1e85bd0332d6ad1a7f392bc7604f9393ef340ac8d84ff26b578c61ef4ccbeee43b0864641c298be2319e6f4fd400f8226af6d953d4f85723f3d081addf342d1b7a0675ae8e0cb20a74097c86b47909fe3b30f048d840f8478c61ef4ccbeee43b0864641c298be2319e6f4fd400f8226af6d953d4f85723f3d081addf342d1b7a0675ac46794a2afcf69f2da11e4e7f08108af559c8bff0aecdb0f84a6afaba167f4449fd3e63e146b6834a418573a1ec573f41f2992b2489f9108f8314228a5b5c0ebfbf4f1f4f1d53cfec6d8af3f8718c5c1117f8b6c3c963e5e23637e041a0d0b1e8ddceb5f65cdddcf85d7d1e0ebb76d7c202ae8193dd1e7b489cf5847e1976244e978543a9764313e2319dd438428ae8e43148fc7f3ea3e7d3c7d7c3531f22b03213f5e43d19e89a26fa1c780d03844f773e17534a0e85bbcfd6f526bfaba1a7a8644f748748f44f7d8c467aca3a84b31a2743c2a9d4bb2189f918cee2142047d207c200a681ca2fbb9f03a1a50f42d7c202e2fbea77514752946948e478bd85e918cee2142047d204e3b1014f59ef418101a87e87e2ebcce06147d8b4f3f10748da4af3f9ff81ad751f8a518513a1e2d627b4532ba870811f481f08128a07188eee7c2eb6c40d1b7f081806b2cf4f334ba47a27b6ce233d651f8a518513a1e95ce25598ccf4846f71021823e10fe25a6021a87e87e2ebc8e06147d8b4fff9bd474cd4cfaf5d8c567aca3a84b31a2743c2a9d4bb2189f918cee2142047d207c200a681ca2d2b9edc2fb68e00301d7cca45f8f5d7cc63a8aba14234ac7a3788efed556298bf119c9e81e2244d007c207a280c3ee03f12994fe8346f2ba35fa9ea5fb108c42c34130ce33c8a80e112236147d4e81a27b216908a46c00e09844d13eb33d034138f67b84d7d5c00762b0da7ff14e5e4be89edc2be623d018108cf70c14d5ae42bc4692414d9f531ebb38390c3406744ca2089f990f8433f181182c8bf908215e23fd14fe4718e9b8ae1dbf18390c3406744ca2089fd9d906827ee3d9e2f081e0e8f5439fd3829e29d13d6be8fe76f7908f42634030de3360d47b0af11aa934023e1018e133f381e88ca3d70f7d4e0b7aa644f7aca1fb6be8391245bd271a0382f13e038cbe4588d74831a4f8790315db2b92c3406340c7248af099751f88effeb6df3b0cc4bb6bfd12530d45bd271a0382713e030aaf4988d750afcf857fc32c44f74ae430d018d03189227c66a71a8880a26fe10331980fc4c1646c7709f11a29c5547f5e11d92b93c3406340c7248af099f94038131f8883e9f09a85788de4bf07b138265184cfec540311eea7e85bf8407446235042cfd863edb9147d0b1a833518e833c221380844f59dc861d82a1b88caf91a8af8487a20d6d02844df28cfa1d889a25ff3e577e1f33ef84074b616ead1d63e2f45df8286600dc6f88c28d44781a8be130a7c4d16f8caf91a8af848340684c621f28178736ba15ea3afb75a7bceeb781b1a823518e333a2501f05a2fa4e28f03559e02be76b28e223d118101a87c80742d161d3e81e89ee91e89e91ac9f5f5f6fb5f69cd7f13634046b30c66744a13e0a44f59d50e06bb2c057ced750c447a23120340e910f84a2c3a6d13d12dd23d13d23d16b1869edf3be8eb7a1215883313e230af55120aaef84025f9305be72be86223e128d01a171887c20de9c0ef5686b9ff775bc0d0dc11a8cf11951a88f02517d2714f89a2cf095f33514f191680c088d43e403f1e674a86be8197bac3d571fb7bb0fc5267f08d72f8408b6a0c05be0334364b6a2a89bc46714e05f012ec56bae8b025f9305be72be86223e128d01a171887a0f04fd057c351fdf86d798c8c8b8763ab074cd086b9f571fb77bc47f0b1f08109f5180a320c56bae8b025f9305be72be86223e128d01a171883edd40707496d6eed3c75d5ff2e7803de2bfd397f08c84625d3b7f388cbe45085a93c773747cb3cf21e8eb0e4681b7a0e85b50c447a341d0681c223d10744d9406407fbc145e5383e681e0a8d8ad3d571f777dc99f03f68afd1eb501a89d3f1c45d82444aec9e3393abed9e758b9e60428fa16147d0b0af868cf21f8eed76c1424197bc90762c5da73f5f1cf46fe18edf1e54ff1affa58475197e837a3f7a22f01d5ce63b42de8991614e223e8f86eb9e60428fa16147d0b0af868cf2138c140d06f425b9c7e206af47def86deb34d7cc67e32e0ad28c0b5f3187d0b7aa60585f8083abe5bae39018abe0545df82023eda73087c20ea385a4bbdee7b37f49e6de233f693016f4501ae9dc7e85bd0332d28c447d0f1dd72cd0950f42d28fa1614f0d19e43e00351c7d15a5abb4f1fff6ce48fd11ef4652589464192016f4501ae9dc7e85bd0332d28c447d0f1dd72cd0950f42d28fa1614f0d19e43e0035147d1226bf7e9e3ce8a8721a1519064c05b51806be731fa16f44c0b0af111747cb75c7302147d0b8abe05057cb4e710f840c48884ff1175b0f65c7ddc59f13024340a920c782b0a70ed3c46df829e6941213e828eef966b4e80a26f41d1b7a0808ff61c821d039194c6217a0e80fa58a3e85b0cff2788dee4a8cc1890af0a5d137dfc99d1b5232d7f7c7818b6d2cfb392ff1a2bc1a84b14edd16474e97c8dbc7f3688f49128fa3dd128f44403d082c682c831e8251f8ff07ad0df333e10153e10f9f3ac6814241c0589023c9a0c2e9daf91f7cf04813e1a45bd278a7a4f14f91634062514fabd7c2006b8fa40d0978d241a0569f93c1b1a05094741a2008f26a34be76be4fd3341a08f4651ef89a2de1345be058d4009857eaf6d0391bcc940b4a2cf211d3d10f49aa5faf5f1580bfd3c1b1a050b0cf06832ba74be46de3f1304fa6814f59e28ea3d51e45bd0089450e8f7f281d8813e87e403a19f6743d1b7c0008f26a34be76be4fd3341a08f4651ef89a2de1345be058d4009857eaf4f3910744d4f470f8495fef1e1e8bfd09795a4e5f36c28fa1618e0d16474e97c8dbc7f2608f4d128ea3d51d47ba2c8b7a01128a1d0efe50331c0d50782aeb1d0cf9b8e7e5f6234f9d77dd3f91a793f85dc243e63a313fe75e114759b10ab828f1f43488be235fb51e45bd0089450e8f7f28118c007227f5e6ff439250cf06832f074be46de8fd1b788cfd8c80702c46bf6a3c8b7a01128a1d0eff52906a2b75ab0ae36109a7e7f1add23d13d33655f6e8218d7ce0f27c780ce63f42dc2735b40b467e2e85b8458157c0d9f2392c7e440a4e750fc35ba96223f1385be071e05c907e266112475de0782ef9ba53600b5f3c3f94014a5e8ee176255a0c721f281a8e351907c206e164152e7af3f1065f41bd392fef1b19201dfa5f25771d4ce0f27635e3b7f0415ecd9527467ca020fc7d6e0fd10ed9928ee3df028486f321014a516faf9ef3e1075fce3b41546dfa23200b5f3c3c918d7ce1f01a23d538aeed164f4d7d0b514ed9ee8f71d248a7b0f3c0a920f04d2cfbffa40d03f15483c0a12ff386d85d1b7a80c40edfc7032c6b5f3478068cf24237d2419fd35742d45bd271a0589e2de038f82e45f62ba59044d9d7ff781a8d13f3e56187d8bca00d4ce0f27635c3b7f0488f64c32d223643187f389bc6e0d5d4b519f89e2de038f82e40371b3089a3aef0391fff85861f42d2a03503b3f9c8c71edfc1120da33c9488f90c55c9dfbfa7388dce3fbf2ba35742d457b268a7b0f3c0a920fc4cd2268eabc0f44fee36385d1b7a80c40edfc7032c6b5f3478068cf94a23b4a1673713c8ec33b0cc4a82f33f1282c7d50d436f94b8847f4f898e3e49afd39fc226f41cfec8846a1271c8d20fd6ba4742e7a9e3f7a401eafa3e6cb2f2ff9bfaa1a3f1e08a27e2629da6b64cc8f40518fbef9fe8eced564bf07f163789f703c92c76804a2f887e2e878a4cfe57f90eefe87e9ea03f19787c5711f882928fa16f4cc8e28ea3d51fca36758e15cf43cef035106513e131a0589a23d538ab7d66520be0b917ebcc7ec3890a197f40848fa5c3e0e773e106747d1b7a0671a50b467a2f847cfb0c2b9e879de07a20ca27c267a10341decd974dc7b7886df07a28ea221d13d12ddd3137dceae28fa16f44c037acf3351fca36758e15cf43cef035106513e133d08563ae8bde9b8f7f00c7ffc6f5a8bcf23074193a19762e4e978a4cfc961487c201ad1e7ec8aa26f41cf34a0f73c13c53f7a8615ce45cff33e106510e533a1e85bc8988fa0e3dec333fc3e10ae8aa26f41cf34a068cf44f18f9e618573d1f3bc0f441944f94c28fa1632e623e8b8f7f00cffa5bec4a487c207620e8abe053db3238a7a4f14ffe819563817d1f974ec8c7c20980ebe950e7a6f3aee3d3cc32f06e2e6877c1424197a29469e8e47fa9c1c86c407e2ec28fa16f4cc8e28ea3dc9c04bcfb0c2b988cea76367e403c174f0ad64cc47a0c0b77a86ffd203a1503c5c07147d0b7ae64014f923c9819028d2475a1f8856f1790d20da68ef7d153af85bc8808f46816fa1c39fbd1f3510f27a19fa9e7c20ce8ea26f41cf1c88227d241a8788227d241f08a6e3bf850cf8683af0ade40044d9fbd9f14f10adf6ff26b542b1701d50f42de8990351a48f247f935ac2df501e01c680f840301dff2d64c047a3c8b7d0e14fef87ce4914f71e7c20ce8ea26f41cf1c88227d241a8708633e028c01f181603afe5be8888fa403df6a117ff17916e7048a7b0f3e106747d1b7a0670eb408345c23e9eb7ba3718830e623c018101f0846035023033e9a0e7cab45fcc5e7599c1328ee3df8409c1d45df829e39d022d0708da4afef8dc621c2988f0063407c20180d408d0cf8683af0ad74f8d3fba17312c5bd071f88b3a3e85bd033075a041aae91f4f5bdd1384418f311600c880f04d3f1df42477c241df8563afce9fdd03989e2de830fc4d951f42de899032d020dd748fafade681c228cf9083006a43810bfa88f4de2f31a40b4d1defb2a74fcb7d0111f4907be950e7f7a3f744ea2b8f7f0f1fc036f120cc051282a535174af84ded3c1b28017cef540ff8aeb1a0af765a441f83984e4888138293d1e29b8b3e8016845e3b0078d41f48de2035143d1bd127a4f077b063c846df55c2734046b16d1bd121f08e403c1681c221f082b8aee95d07b3ad833e0216cabe73aa12158b388ee95f840201f0846e310f940585174af84ded3c19e010f615b3dd7090dc19a4574af440e443612f15c0388ee95f840301a87c807c28aa27b25f49e0ef60c7808dbeab94e6808d62ca27b253e10e8dd0782ae91f4f5098d43e4036145d1bd127a4f077b063c846df55c2734046b16d1bd123910cf7188e2b90610dd2bf181c8af4f681c221f082b8aee95d07b3ad833e0216cabe78ea0a37b253e10c80722bf3ea171887c20ac28ba5742efe96032c8abe78ea0a37b253e10c80722bf3ea17188b60dc44c300a920ec87414dde0eb5ffe7143e74e85ded31bc1d077445f8a8a5298e9d870f10fce258f63eb7fd02e7e7c0e5f7e093f4ef10f0fc2b927887c0b1a08e9f657689740f42d28daa3d12068340e910f84154537f08138078a7a4f7200a46798e1d870171d882a087c2b1a0589a2de13057cb4e7107cf76b360a128d43e4036145d10d7c20ce81a22ec980f7f40c331c1bce0762331a0589a2de13057cb4e710f8404c40d10dce32101f7f0abfc80bf03d5d0845df4206bca76798e1d870571a88186a3a1ee97322ecbdd0284814f59e28e0a33d87c00762028872e403310745df4206bca76798e1d8703e109bd1284814f59e28e0a33d87c00762028872749681a8a2f7f44668142419f09e9e618663c35d69202c20f0ad68142c28fa1614f0d19e43e00331014537f08138071a054906bca76798e1d8703e109b51f42d28fa1614f0d19e43e00331014537f08138071a054906bca76798e1d8703e109b51f42d28fa1614f0d19e43b0632092380ef1dbf10311434fc7a3d2b9448c05aa5e177ee135c0e8be0388eddd3f15bae63c681466fa1a5f47fc7e0a75f8fef36311f0dde47f7c680f0af19540f42d28fa3559e0e1d84c34002d682c481a0a1f880a8ceb3b50a17df181b0f081180ca26f21c3bf55166838361345be058d415116e31162a4e978543a9764b107d5ebc22fb20618d777a042fbe20361e103311844df42867fab2cd0706c268a7c0b1c81922cc623c448d3f1a8742ec9620faad7855f640d30aeef4085f6a5ef405054df493608810f4467107d0b19feadb240c3b19928f22d70044ab2188f10234dc7a3d2b9248b3da85e177e9135c0b8be0388f99d0f84850fc460107d0b19feadb240c3b19928f22d70044ab2188f10234dc7a3d2b9248b3da85e177e9135c0b8be0388f95ddf81188da23d937f89693088be850cff5659a0e1d84c14f916380225598c478891a6e351e95c92c51e54af0bbfc81a605cdf810aed8b0f84c5f0816845d1bd1288be850cff5659a0e1d84c14f916380225598c478891a6e351e95c92c51e54af0bbfc81a605cdf810aed8b0f84850fc460107d0b19feadb240c3b19928f22d70044ab218bf0b3d107f09ff8325f15c05c6f51da8d0be9c7b201681fef3eb35ea7374acb734086b30da13a5ff06838421be0a188112197e8b67a00be766a0c8b7c01128c1c05e9d0f44dd23aa4bef331033d0284814ed99de6a2060006a28f05b3c035d38370345be058e400906f6ea7c20ea4474733e1016340a1245db2406bd810fc43ecf4017cecd40916f8123508281bd3a1f883a11dd5c3e101445899fb11d3d53aa5d5f3a37038d8284d1b788416fe003b1cf33d085733350e45be008946060afce07a24e8435e7036141a32061f42d62d01bf840ecf30c74e1dc0c14f91638022518d8abf381a81361cde503c1d71c4707dabfc454e603b1cf33d085733350e45be008946060afce07a24e4437e7036141a32061f42d62d01bf840ecf30c74e1dc0c14f91638022518d8abf381a813d1cdf94058d02848187d8b18f4063e10fb3c035d38370345be058e40c92b9810dab790dedf8a10cb273aa6e9ffee335d23609ccf40443777ee81b0a2a85b50f42d30fa82e5da11befc21fc18c5d1a0e1b8d298c038f440032151d467a21188bef9fe8ece95f8406821964fa563923c5f81713e0388e99d0f842403be074559b25c3b820f44198d8244d19e89221ff9406c96dedf8a10cba7d231499eafc0389f01c4f4ce07429201df83a22c59ae1dc107a28c4641a268cf44916fe103a185583ed131adf39798d27fdb7a0dddd305c4f46eee40509425ba47a27b7a9201df83a22c59ae1dc107a28c4641a268cf44916fe103a185583ed131cd07a22b8ab244f748744f4f32e07b509425cbb523f84094d1284814ed9928f22d7c20b410cba7d231499eafc0389f01c4f66eee408c46d1b79001df83a22c59ae1dc107a28c4641a268cf44916fe103a185583e958e49f27c05c6f90c20a6773e105d419433966b07f08128a3519028da3351e45bf8406821964f744cebfc25a6c5f314baa70b88e99d0f445710e58ce5da017c20ca6814248af64c14f9169f6f20420c8b9eef7f8c1863fabd856811ed9920a677c70c4416ca80ae21fabeb791021ebe3ff44b50691c348af00955ffe01f44df8246a186423e0a45be271f88e7fb1f23c698c6215a447b2688ed9d0fc4293c02ee0351561c0808be150d400d857c148a7a4f3e10cff73f468c318d43b488f64c10db3b1f0849067aa614703ad6951e8684827b423e1063f9403cdfff1831c6340ed122da33416cefce3510faf86c32d033a580d3b1aef4302414dc13f28118cb07e2f9fec78831a6718816d19e49c439e70321c940cf94024ec7bad2c3905070410c7409ddd353f17340f0ad68006a28e4a350d47bf28178beff31628c691ca245b4671271ce9d6b206af47dbdc940cf94024ec7ba8a8125145ca00741a37b7a2a7e0e08be150d400d857c148a7a4f3e10cff73f468c318d43b488f64c10db3b1f0849067aa614703ad6550c2ca1e0023d081addd353f17340f0ad68006a28e4a350d47bf28178beff31628c691ca245b46782d8dec138a4ebaddf1a2cc20cd7107d5f6f32d033a580d3b1ae6260090517e841d0e89e9e8a9f03826f45035043211f85a2de9318883510dd4b81f71402366b205add62db24fc44dfd03901e27b733b9feeb77e5b477f383013c3d8803ea7849f538267f62407404a01d71f9bc5805e1985df22869e8e453f8500a6efef44034128ee3350f42d7c20e8fc8950d46cc24ff49660d33844b7f3e9197ba8cfa36094a518c706f43925fc9c123cb327390a520abcfed88ca27b253aee5631e4742cf281a8f281a0f3274251b3093fd11b428de310d1b51d6194a518c706f43925fc9c123cb327390a520abcfed88ca27b253aee5631e4742cf281a8f281a0f3274251b3093fd1070e0446d722c6b1053dd3829ed9911c0529055e7f6c46d1bd121d77ab18723a16f94054f940d0f913a1e8da849f681f88fde8991dc9519052e0f5c76614dd2bd171b78a21a763910f44950f049d3f118aae4df8893e70206a30ca528c6303fa9c127e4e099ed9931c0529055e7f6c46d1bd121d77ab18723a16f940548581a0a8be93f08b4c8b6148e8fc8950d46cc24f7486ae09681c22bab6238cb214e3d8803ea7849f538267f62447414a81d71f7f3a3aee5631e4742cf281a8f281a0f3274251b3093fd13e10abf0734af0cc9ee428482990fae34f47c7dd2a869c8e453e10551f5ffefafffe55c2d1bd92f03fae92188912ba47b25c9b18eea13f602751f472e127fa4403a1034cd748145513f5f9cce8991dc951a8c180bea35fc28f7ba2e3ae2cfe405e0cb7385fa5826f45635043211f85a26fe103d12a462ca1f3c4700f8d824451cd859f681f88fde8991dd110acc198be231f886e28fa163e10ad62c4123a4fe43d15340a124535177ea24bc390d038f4a03e8f0eb03eaf51544dd4e733a367764443b006635a13e3793514f2153e1065147d0b1f88563162099d27f29e0a1a0589a29a0b3fd1271e88aa18c616f44c0b7a664734046b70006a6478af8242be02072212d71489d8ef41035043211f85a26f1106e27fc21094f0706cc5d19e29fce22989d12aa17b24cbb589bca7824641d2015e0a3fd13e10fbd1333ba2215883035023c37b1514f2153e1065147d0b1f8818ad12ba47b25c9bc87b2a6814241de0a5f0137de281d0e7358aaa89fa7c66f4cc8e6808d6e000d4c8f05e05857c050e84385fa5826f45035043211f85a26fe103d12a462ca1f3c4700f8d824451cd859f681f88fde8991dd110acc101a891e1bd0a0af90a1f88328abe850f44ab18b184ce13e33d340c094535177ea2af3c10ad91569fcf8c9ed9110dc11a1c801a19deaba090aff08128a3e85b7c7cfc7b8878031a85e89bbfdca58f39de33845f3c7bc4386d41f78e069f9fe27a177ea25b0682aeede8e38fe117610871fcbe1cbd7b9c5faf3b8bf6e3faec780c28a0d05ad0332de899a3e0405c1d443943d137c8c685d0e734a0812014f71ebefc14dedf8fe17d2cc473e173eb51f8f13f6ebef9e1ce07624d8ccf16746f4f7f7d90c7e0f3a7602e859ff4330f840afef2f8fdf5a78f5fc7f3eb28ce1185d4829e6941cf1c05037b7514ed8e8a0301c1b7d243b04687bd97d30e84c6f19e21fc00ed11e3b305dddbd39b0f4422e31fbdcedd5fffdaf9e7b118484021b5a0675ad03347c1c05e1d85bb231f88f02d0c44e203b126c627a273335d7c2064d489fe9292fe92930fc47618d88b4bbfc7b006c36e507c0604df4a0fc11a1df65e7c20aac20fd01e313e119d9bc907e246de93ce67cf8f810414520b7aa6053d73140aecd5e941d030ec06c56740f0adf410acd161efc507a22afc00ed11e313d1b9992e3e105bc9f847af73f7d7bf76fe792c061250482de89916f4cc5128b09747e1eec807227c7bed81086ff008313e119d9b290d841c8af4dac4eb7b05550b3fe919ba26a07188e8da8e74f097c7efaffbe34fe117eb4d7e7dfa98e2fc0e6808d66060af8ec2dd910f44f8d6076287189f88cecdf4ee03a1bea4a4bfe4945eb70f441d06f6ea20ba190abb810f44f8f6c881e0e85b8437f899d1408014cca5f0939ea16b021a8788ae9de8350cf9402cc4408e206275c610bffb407cf9257cfb6fe1e777b7787f0388be851e022b1d7cbbf01ed0fdbc0fc4d5f94028e17f342406720419abf0b10fc45cc581f839448e8e67e2fd0d20fa16147d8b3cf67b84f780eee77d20aeae320c09c5f52efca4978621a17188e8da8e30f699ca302431904006748f2c5670ec686baff55df840c8d8ef11de037a9cff3efc6f4bfae1d71c45df824641e2e85b845ff89f990fc4039d136220810ce81e59ace0d8d1d65eebbbf08148a1df2bbc07f438ef0371713e100f744e88810432a07b64b18263475b7badefc20722857eaff01ed0e3bc0fc4c5f9403cd039210612c880ee91c50a8e1d6dedb5be0b1f8814fabdc27b408ff36f31107f0d3f507ba9905ece9b0f448d0f44d9da6b7d173e1029f47b85f780eee72ffe9bd4e1177d44e1df4a44f4923efd40849fc32d6220810ce81e59ace0d8d1d65eebbbf08190b1df23bc07743fdf3e107ffd9ffde2fd32f4e0ebbfffb388ee998a46c7829ed9538ce84014ed912cf1df420674842c6670ecf2e21f241b89a29c093fff33c5d1c9c463fbd5a24fe72579ed1e8b0150e29795f4c7c9ede3c5206814feade2fd9581f8f2d7f0ff520be89ea928fa16f4cc9e625407a2888fd4731c2219f311644ce9d8e551d47bc25190c2af815916e310c5e3fbd5a24fe72579ed1e32fee4f081b87fa989e3bf0546d1bdc4a80e44111fc907e26428ea3de12848e1d7c02c3e10470c04873fc1e8b97e62741b50c447f28138198a7a4f380a52f83530cb1b0e840cfe9ab6816844a32061d45c3f31ba0d28e223f9409c0c457da2f89bd42518fabd7c2016c70f1f881a8c9edb2e46b701457c241f88938168cf44a32061e8f77ac38190f1271b062244b888c3bf15fd9b49128d8284d173dbc5e836a0889bd0bf3a5b40913f3519533ae69ad0284818fabd7c20ce371035183db75d88740b8cbe058c404916df2b9041a363ae098d8284a1dfcb0762fe40d03f15481835c742706fe8dc9a74cf1aba4790ff119f5d60042cb2185f09c4ceed402117ba8fc4427c7ea0e3bf765ca1e85b50f42d28fc29fe5bf8405c4908ee96a867d23d6be81ec10762278a9db3c368bf140722fe13001d3789cf0f74fc7d20faa05190284ae712bfccd5829e29848816d1b5f2588d7cd60e571f08f91bca3361ecae087ee3782a8cf68b0f44d933f43e10a350f42de899428868115d2b8fb5929f0bf840ec83b1bd228af64c18ed171f88b267e85706421f5fa0a8f744a32061b44e85a26f41cf1442448be85a79ac95fc5ca0cf40fcb341bcbf01c47b068ced1551b467c268bff84094f9400c47d1b7a0670a21a24574ad3cd64a7e2ed03e10147d8bf0eba405c47b068ced1551b467c268bff84094d506a2260c44789345cbe85bd0284818ad53a1e85bd033770ac1bda17383f840ec83b1bd228af64c18ed171f88b267e87d2046a1e85bd033770ac1bdde40849fe79b147bebb78d20de33606caf88a23d1346fbc507a2ec19fafd03b18cfaa98858b98710dead30da4788b12e7c7bfb4de5f4576b846f9fe72bb2bf9663802f7f641f7f08ffe309e89c96aed5f4b92dd7b79cdfe3e8d18b0350c25197e2350d20fa16147d4271ef81a22fe9e158c0289f0905f2b38b61dc88a27a468b30c33544dfd75b8aae463125a56bf5b9dab35bcfefe103119ed180c68050dc7ba051907014248cf29950203fbb18c68d28aa67b408335c43f47dbda5e86a145352ba569fab3dbbf5fc1e3e10e1190d680c08c5bd071a05094741c2289f0905f2b38b61dc88a23a1345575abb6eebfda3a5e86aaf80f279490657d2e7b65cdf727e8fb71f08887a4f340684e2de0545df02a37c2614c8cf2e8673a314daa35074a5b5ebb6de3f5a8aaef60a289f976470257d6ecbf52de7f7f0816843634030ee3d50f42d30ca674281fcec6238374aa13dbb4598e11aa2efeb2d4557a39892d2b5fa5cedd9ade7f7f0816843634030ee1dd09795241c0509a37c2614c8cf2e8671238aea192dc20cd7107ddf347f0cffe3daa01674fd71edfa96f37b5c7f202ae2bf0a3bd0979fb6f9f831c478802f151f3ffc5a86513e130ae46717c3b81145f58c7480e91aa2ef9b268d009d136a41d71fd7ae6f39bf870f441b1a034271ef814641c25190befc9f7ffeab04a33d13055258fb0377d7f9837803c4703e5054af8c227ca8d2483cfe09a216753a1e6d897d7afe966bf7b987fa28340a1246bf2788be456d0c6ae75b990741a3519030da33510085d681a0ff8a9d44f79c5e0ce90345f6ca30c447f281188a4641c2a8f704d1b7a80d40ed7c2b1f88ca40d4e8fbde420ce90345f6ca30c403c9009318513a1ec97379745f6ae72ce819edeea13e0a8d828451cfc46b1ac06f3c5bd47e43ba76be95f937a5351a0509a33d130550580bbd1c81121953a49e7b09e2f55364af8c223e1285588a11a5e3913c9747f7a576ce829ed12efc981f884641e25190e2350d20fa16b501a89d6fe5039142bf72bc957eee25c4903e5064af8c223e1285588a11a5e3913c9747f7a576ce829ed12efc981f884641e25190e23503c12848b501a89d6fe503b1127219f916fab9971043fa4091bd328af84814622946948e47f25c1edd97da390b7a46bbf0637e201a058947418ad70c04a320d506a076be55db40fcc7bffe3fa9b2704ad700b08e0000000049454e44ae426082 19 +19 17.10.2024.csv \\xd0a4d098d09e2cd09bd0bed0b3d0b8d0bd2cd09fd0b0d180d0bed0bbd18c2cd094d0bed0bbd0b6d0bdd0bed181d182d18c2cd09ed180d0b3d0b0d0bdd0b8d0b7d0b0d186d0b8d18f2cd0a2d0b5d0bbd0b5d184d0bed0bd2c495020d0b0d0b4d180d0b5d1812cd094d0b0d182d0b020d181d0bed0b7d0b4d0b0d0bdd0b8d18f2cd09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd18c20d0b7d0b0d0b1d0bbd0bed0bad0b8d180d0bed0b2d0b0d0bd2cd09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd18c20d0b7d0b0d0b3d180d183d0b6d0b5d0bd20d0b220d095d0a0d092d0a30d0ad0b8d0b2d0b0d0bd20d18fd0bad0bed0b2d0bbd0b5d0b2d0b8d1872c6c656265646576322c2cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c373839343635313233312c323331313331332c30392e31302e323032342031393a30343a33322c66616c73652c747275650d0ad097d0b0d18fd0b2d0bed0ba2c63726561746f722c2c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c2c30392e31302e323032342031373a34383a33332c66616c73652c0d0ad090d0bdd0b4d180d0b5d0b920d0a0d18dd0bcd0bed0b2d0b8d1872c6d696e697374722c2cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0b8d0bdd0b8d181d182d0b5d180d181d182d0b2d0be20d0bed0b1d0bed180d0bed0bdd18b2c393137323030303030312c3139322e3136382e312e312c30392e31302e323032342031383a33343a32342c66616c73652c747275650d0ad097d0b0d18fd0b2d0bed0ba2c70726f636573736f722c2c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c2c30392e31302e323032342031373a35313a34372c66616c73652c0d0a4a42504d2c41646d696e6973747261746f722c2c2c44656661756c74204f7267616e697a6174696f6e2c2c2c30392e31302e323032342031333a33393a30332c66616c73652c0d0ad09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd18c20d09fd0bed0bbd18cd0b7d0bed0b2d0b0d182d0b5d0bbd0b5d0b2d0b8d1872c6e65772c6e65773131312cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c3132333133323133322c31362e31302e323032342030383a32313a34332c66616c73652c747275650d0a75736572323220757365723232322c75736572322c75736572322cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c333534333335343335332c32333432333334322c31352e31302e323032342031323a34383a33382c66616c73652c747275650d0ad097d0b0d18fd0b2d0bed0ba2c616772656565722c2c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c2c30392e31302e323032342031373a35303a33382c66616c73652c0d0ad098d0b2d0b0d0bd20d098d0b2d0b0d0bdd0bed0b2d0b8d1872c6976616e6f762c6976616e6f763132332cd0a0d183d0bad0bed0b2d0bed0b4d0b8d182d0b5d0bbd18c2cd09cd0bed181d0bad0bed0b2d181d0bad0b8d0b920d0b2d0bed0b5d0bdd0bdd18bd0b920d0bed0bad180d183d0b32c2c3139322e3136382e312e312c31372e31302e323032342030373a31363a32332c66616c73652c66616c73650d0a44656d6f2c64656d6f406578616d706c652e636f6d2c2c2cd09cd0b8d0bdd0b8d181d182d0b5d180d181d182d0b2d0be20d0bed0b1d0bed180d0bed0bdd18b2c2c2c30392e31302e323032342031333a33393a30332c66616c73652c0d0a 20 +\. + + +-- +-- Data for Name: user_application_list; Type: TABLE DATA; Schema: public; Owner: ervu +-- + +COPY public.user_application_list (user_application_list_id, application_kind, user_login, user_password, secondname, firstname, middlename, phone, ip_address, start_date, close_date, user_status, application_status, comment, job_position_id, user_role_id, recruitment_id, user_account_id, sex, birth_date, snils) FROM stdin; +17 CREATE_USER ivanov \N Иванов Иван Иванович 9172010203 192.168.1.1 2024-10-17 10:49:40.559518 \N \N ACCEPTED \N 1 \N 20f455d2-2908-4a86-8ab5-2e500f2f5544 4caa6156-3cfb-4ea5-aa42-d3ff6f10ff8c MALE 2000-01-01 99944455566 +18 CREATE_USER petrova \N Петрова Анна Сергеевна 9788554411 192.168.1.2 2024-10-17 10:50:47.183989 \N \N ACCEPTED \N 1 \N 20f455d2-2908-4a86-8ab5-2e500f2f5544 67ed8a30-2596-4dad-a782-756c7dfc4c72 FEMALE 2002-02-02 99955511100 +19 CREATE_USER test \N Тест Тест - 9999999999 101.02.15.189 2024-10-17 11:50:43.011356 \N \N CREATED \N 2 \N 20f455d2-2908-4a86-8ab5-2e500f2f5544 \N MALE 1986-10-02 12345678912 +20 CREATE_USER sidorov \N Сидоров Сидор Сидорович \N 192.168.1.3 2024-10-17 12:48:16.831347 \N \N ACCEPTED \N 1 \N 0068b57d-1272-467d-8cfd-fb3edb9ce430 408ff49a-4004-43b5-b040-3ca4ae363d03 MALE 2000-02-01 \N +\. + + +-- +-- Data for Name: access_level; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.access_level (access_level_id, level, description) FROM stdin; +a6bf4b31-6648-4095-b269-2a950b548a10 0 user access level +a3b84288-1c96-448b-ba33-7a454f311757 100 admin access level +2b6038cb-15bf-4bb0-87df-88a1557b93d7 999 superadmin access level +\. + + +-- +-- Data for Name: authority; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.authority (authority_id, name, created) FROM stdin; +ac44a379-95b8-4222-99ab-8e70bd24a717 BPMN.ADMIN.PROCESS_INSTANCE.ABORT 2024-10-09 16:39:03.61862+03 +378fdfa7-6039-42ac-8586-073165e2eab8 BPMN.ADMIN.PROCESS_INSTANCE.LIST 2024-10-09 16:39:03.61862+03 +02d1eeb1-54cc-4002-b5ef-f5b5f40ab895 BPMN.ADMIN.PROCESS_INSTANCE.VARIABLE_READ 2024-10-09 16:39:03.61862+03 +53da7292-c97a-491a-a4f2-ca348dd3add5 BPMN.ADMIN.PROCESS_INSTANCE.READ 2024-10-09 16:39:03.61862+03 +97ff4363-d78c-4e39-8620-fdbca6bd6b89 BPMN.ADMIN.PROCESS_INSTANCE.HISTORY 2024-10-09 16:39:03.61862+03 +4406c5fa-e6bb-468c-a2f8-d76aa788fbd5 BPMN.USER.TASK_LIST 2024-10-09 16:39:03.61862+03 +f8ea4d65-54b4-49e3-8cf7-b209af7bd558 BPMN.USER.START_PROCESS 2024-10-09 16:39:03.61862+03 +8bbacf0c-ef2e-459c-b14f-6bf7b6236b72 BPMN.USER.START_TASK 2024-10-09 16:39:03.61862+03 +a5f72fd8-998b-4c25-a8d7-f789b5c8a731 USER_MANAGEMENT.ROLE.LIST 2024-10-09 16:39:03.61862+03 +d438673b-a9a6-43c7-b692-b37d06789fb5 USER_MANAGEMENT.ROLE.READ 2024-10-09 16:39:03.61862+03 +4eb6c3b9-98a8-41df-a5b4-431d726b181a USER_MANAGEMENT.ROLE.WRITE 2024-10-09 16:39:03.61862+03 +03876f9b-3656-4f3e-8e1d-ac203a236fcf USER_MANAGEMENT.ROLE.DELETE 2024-10-09 16:39:03.61862+03 +1752fcbc-65ae-49c0-9e74-15a65b094b55 USER_MANAGEMENT.GROUP.LIST 2024-10-09 16:39:03.61862+03 +9e263628-a3e0-4e90-9942-9fe9e42a22ed USER_MANAGEMENT.GROUP.READ 2024-10-09 16:39:03.61862+03 +94839999-0711-41ca-8641-88b99263c587 USER_MANAGEMENT.GROUP.WRITE 2024-10-09 16:39:03.61862+03 +56e9a141-10f1-468c-bce5-cb6a23edb353 USER_MANAGEMENT.GROUP.DELETE 2024-10-09 16:39:03.61862+03 +d61d3172-aa6c-40e6-b7b0-d733b97655a5 USER_MANAGEMENT.GROUP.BOUND_ROLE.LIST 2024-10-09 16:39:03.61862+03 +df29eb01-e1d7-41df-b5e7-bb5229a101c1 USER_MANAGEMENT.GROUP.BOUND_ROLE.BIND 2024-10-09 16:39:03.61862+03 +e02c12e9-681a-4b6c-877b-0c119294a64d USER_MANAGEMENT.GROUP.BOUND_ROLE.UNBIND 2024-10-09 16:39:03.61862+03 +77a067f4-d188-4a51-a342-8e48dc6e1907 USER_MANAGEMENT.USER.LIST 2024-10-09 16:39:03.61862+03 +d0890070-7ffe-4821-89b9-31e7209da04f USER_MANAGEMENT.USER.READ 2024-10-09 16:39:03.61862+03 +374f22fe-8bbf-4605-8f44-ed567993367d USER_MANAGEMENT.USER.WRITE 2024-10-09 16:39:03.61862+03 +c495c9df-9369-464c-ab58-6ff7ad0276b0 USER_MANAGEMENT.USER.DELETE 2024-10-09 16:39:03.61862+03 +1d55cccc-783b-46b4-a048-5baed2e67b3d USER_MANAGEMENT.USER.BOUND_GROUPS.LIST 2024-10-09 16:39:03.61862+03 +8007e647-423a-47d5-bf1c-92d40f30155e USER_MANAGEMENT.USER.BOUND_GROUPS.BIND 2024-10-09 16:39:03.61862+03 +850e70f3-3372-43ab-8f34-eaa5a87e2266 USER_MANAGEMENT.USER.BOUND_GROUPS.UNBIND 2024-10-09 16:39:03.61862+03 +4b770635-0130-42ba-9bc6-c08f30a0cd01 USER_MANAGEMENT.AUTHORITY.LIST 2024-10-09 16:39:03.61862+03 +a3afd667-7759-4eda-b4e2-4cd06bb600c5 USER_MANAGEMENT.AUTHORITY.BOUND_ROLE.LIST 2024-10-09 16:39:03.61862+03 +73b066cc-b7c5-4c9a-aaf6-f5a857ddf18b USER_MANAGEMENT.AUTHORITY.BOUND_ROLE.BIND 2024-10-09 16:39:03.61862+03 +7dc7224b-d8fd-4c9c-b323-7fcb9093df8d USER_MANAGEMENT.AUTHORITY.BOUND_ROLE.UNBIND 2024-10-09 16:39:03.61862+03 +74cd9a25-8e03-4b2f-b311-49534e371576 BPMN.USER.START_ANY_PROCESS 2024-10-09 16:39:03.88085+03 +e4ea4cd3-e0bd-4508-b0a4-a3c749cb6647 USER_MANAGEMENT.ORG_UNIT.LIST 2024-10-09 16:39:04.124023+03 +0d3560bc-d3bd-4a9b-af08-05afd68df8d9 USER_MANAGEMENT.ORG_UNIT.WRITE 2024-10-09 16:39:04.130829+03 +5934a0fd-cff0-4e42-ad9d-e0ff058e37f6 USER_MANAGEMENT.ORG_UNIT.READ 2024-10-09 16:39:04.135861+03 +afd95fac-fc49-4435-b133-55eada76138f USER_MANAGEMENT.ORG_UNIT.DELETE 2024-10-09 16:39:04.14301+03 +57fba951-f936-4f0c-ba26-bc52e2ee36b1 USER_MANAGEMENT.SECURITY_CACHE.CLEAR 2024-10-09 16:39:04.404629+03 +\. + + +-- +-- Data for Name: databasechangelog; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.databasechangelog (id, author, filename, dateexecuted, orderexecuted, exectype, md5sum, description, comments, tag, liquibase, contexts, labels, deployment_id) FROM stdin; +000 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-12--01-init-db.xml 2024-10-09 16:39:03.436908 1 EXECUTED 9:2e339d4cd079a06bd273687f5d318af5 sql create security schema \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-12--01-init-db.xml 2024-10-09 16:39:03.460487 2 EXECUTED 9:6baa10325244cdfbb19e5fc2784de834 createTable tableName=user; addUniqueConstraint constraintName=uni_user_username, tableName=user create table user \N 4.26.0 \N \N 8481143206 +002 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-12--01-init-db.xml 2024-10-09 16:39:03.480509 3 EXECUTED 9:1f8666e069c3ea439d75388c80f115c9 createTable tableName=group; addForeignKeyConstraint baseTableName=group, constraintName=fk_parent_group, referencedTableName=group; sql create table group \N 4.26.0 \N \N 8481143206 +003 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-12--01-init-db.xml 2024-10-09 16:39:03.491087 4 EXECUTED 9:f4081161095d0a21ac4083851a3373cb createTable tableName=role; addUniqueConstraint constraintName=uni_role_name, tableName=role create table role \N 4.26.0 \N \N 8481143206 +004 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-12--01-init-db.xml 2024-10-09 16:39:03.511685 5 EXECUTED 9:c8c2aa4b8693a079becaccd047853cbf createTable tableName=user_membership; addUniqueConstraint constraintName=uni_user_membership, tableName=user_membership; addForeignKeyConstraint baseTableName=user_membership, constraintName=fk_user_membership_user, referencedTableName=user; addF... create table user_membership \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-18--01-groups-as-set-of-roles.xml 2024-10-09 16:39:03.528559 6 EXECUTED 9:24885ae3a51bcd33c9460012aad7797e dropTable tableName=user_membership; dropTable tableName=group Drop organization structure tables \N 4.26.0 \N \N 8481143206 +002 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-18--01-groups-as-set-of-roles.xml 2024-10-09 16:39:03.537018 7 EXECUTED 9:52e8903bd3da20ecabf31c44b1a94423 createTable tableName=group; addUniqueConstraint constraintName=uni_group_name, tableName=group Add new groups \N 4.26.0 \N \N 8481143206 +003 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-18--01-groups-as-set-of-roles.xml 2024-10-09 16:39:03.55196 8 EXECUTED 9:0dd63ff1fa49a401db20ebf9e10d34cf createTable tableName=group_role; addUniqueConstraint constraintName=uni_group_role, tableName=group_role; addForeignKeyConstraint baseTableName=group_role, constraintName=fk_group_role_group, referencedTableName=group; addForeignKeyConstraint bas... Add group roles \N 4.26.0 \N \N 8481143206 +004 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-18--01-groups-as-set-of-roles.xml 2024-10-09 16:39:03.567103 9 EXECUTED 9:dd4a05dc55c4dd49ad73158092302768 createTable tableName=user_group; addUniqueConstraint constraintName=uni_user_group, tableName=user_group; addForeignKeyConstraint baseTableName=user_group, constraintName=fk_user_group_user, referencedTableName=user; addForeignKeyConstraint baseT... Add user groups \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-05-25--01-add-demo-user.xml 2024-10-09 16:39:03.573822 10 EXECUTED 9:847df2711ae00701a5302ae79ab7a417 insert tableName=user add demo user \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--01-add-administrator-user.xml 2024-10-09 16:39:03.581553 11 EXECUTED 9:3fce414856c19b0c869109d866da9b5b insert tableName=user add Administrator user (required by jbpm) \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--02-add-authorities.xml 2024-10-09 16:39:03.595223 12 EXECUTED 9:cd69dab004e63ab3a9d4adaa973ee5ad createTable tableName=authority; addUniqueConstraint constraintName=uni_authority_name, tableName=authority create table authority \N 4.26.0 \N \N 8481143206 +002 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--02-add-authorities.xml 2024-10-09 16:39:03.612858 13 EXECUTED 9:bef9ac8b4eeb30c8194dc454a52adaaf createTable tableName=role_authority; addUniqueConstraint constraintName=uni_role_authority, tableName=role_authority; addForeignKeyConstraint baseTableName=role_authority, constraintName=fk_role_authority_role, referencedTableName=role; addForeig... create table role_authority \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.667464 14 EXECUTED 9:a37b7b7e07f56a9e935b23511f66a429 insert tableName=authority; insert tableName=authority; insert tableName=authority; insert tableName=authority; insert tableName=authority; insert tableName=authority; insert tableName=authority; insert tableName=authority; insert tableName=author... add system authorities \N 4.26.0 \N \N 8481143206 +002 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.684232 15 EXECUTED 9:4789be4e1bfd00ee4eb67484221dca56 insert tableName=role; insert tableName=role; insert tableName=role; insert tableName=role; insert tableName=role; insert tableName=role add default roles \N 4.26.0 \N \N 8481143206 +003 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.698982 16 EXECUTED 9:831d1772c4c7224c5d5a9388616809f4 sql; sql; sql bind authorities to BPMN User \N 4.26.0 \N \N 8481143206 +004 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.718896 17 EXECUTED 9:06104aba4af6fb4c2f5466b713a29b7e sql; sql; sql; sql; sql bind authorities to BPMN Admin \N 4.26.0 \N \N 8481143206 +005 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.733767 18 EXECUTED 9:a5b56c61c4a82faa05f79a8ba579012a sql; sql; sql; sql bind authorities to Security - Role Admin \N 4.26.0 \N \N 8481143206 +006 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.75326 19 EXECUTED 9:1ca01e16cf9e3fbf416fda36a0f5d5f6 sql; sql; sql; sql; sql; sql; sql bind authorities to Security - Group Admin \N 4.26.0 \N \N 8481143206 +007 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.777422 20 EXECUTED 9:74508da97c61c21603a683fc50b50ddf sql; sql; sql; sql; sql; sql; sql bind authorities to Security - User Admin \N 4.26.0 \N \N 8481143206 +008 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.793673 21 EXECUTED 9:f9f2256afa99e017c96f05b327d8aa53 sql; sql; sql; sql bind authorities to Security - Authority Admin \N 4.26.0 \N \N 8481143206 +009 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.801054 22 EXECUTED 9:822ced6ff41f561d6c412f50ad9bd732 insert tableName=group; insert tableName=group; insert tableName=group add default groups \N 4.26.0 \N \N 8481143206 +010 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--03-add-default-roles.xml 2024-10-09 16:39:03.821885 23 EXECUTED 9:2e6d45fac7f042f6b13dbb6572362228 sql; sql; sql; sql; sql; sql bind roles to default groups \N 4.26.0 \N \N 8481143206 +002 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-02--04-bind-groups-to-default-users.xml 2024-10-09 16:39:03.836812 24 EXECUTED 9:6f4e8566b81c89bd1447fed51d59b52b sql; sql; sql bind groups to demo user \N 4.26.0 \N \N 8481143206 +001 demin ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-07--05-rename-tables.xml 2024-10-09 16:39:03.846525 25 EXECUTED 9:b3a111cd6cb7a79e3a528a54ee126171 renameTable newTableName=user_account, oldTableName=user; renameColumn newColumnName=user_account_id, oldColumnName=user_id, tableName=user_account rename table user to user_account \N 4.26.0 \N \N 8481143206 +002 demin ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-07--05-rename-tables.xml 2024-10-09 16:39:03.854034 26 EXECUTED 9:50a2816028afa1d91a0f34e02c013186 renameTable newTableName=link_user_account_user_group, oldTableName=user_group; renameColumn newColumnName=link_user_account_user_group_id, oldColumnName=user_group_id, tableName=link_user_account_user_group; renameColumn newColumnName=user_accoun... rename table user_group to link_user_account_user_group \N 4.26.0 \N \N 8481143206 +003 demin ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-07--05-rename-tables.xml 2024-10-09 16:39:03.861334 27 EXECUTED 9:b7ad37b5c39882ef94287b11f619af1c renameTable newTableName=user_group, oldTableName=group; renameColumn newColumnName=user_group_id, oldColumnName=group_id, tableName=user_group rename table group to user_group \N 4.26.0 \N \N 8481143206 +004 demin ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-07--05-rename-tables.xml 2024-10-09 16:39:03.866011 28 EXECUTED 9:0971b96b5654dbffa5d1b48ac1652ce7 renameTable newTableName=user_role, oldTableName=role; renameColumn newColumnName=user_role_id, oldColumnName=role_id, tableName=user_role rename table role to user_role \N 4.26.0 \N \N 8481143206 +005 demin ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-07--05-rename-tables.xml 2024-10-09 16:39:03.872273 29 EXECUTED 9:261ae7a69690f51ecec8c57d7833888d renameTable newTableName=link_user_group_user_role, oldTableName=group_role; renameColumn newColumnName=link_user_group_user_role_id, oldColumnName=group_role_id, tableName=link_user_group_user_role; renameColumn newColumnName=user_group_id, oldCo... rename table group_role to link_user_group_user_role \N 4.26.0 \N \N 8481143206 +006 demin ru/cg/webbpm/modules/security/api/changelog/v_1.47/2016-06-07--05-rename-tables.xml 2024-10-09 16:39:03.879545 30 EXECUTED 9:4c01dc6591ba878efafaefa19d85c094 renameTable newTableName=link_user_role_authority, oldTableName=role_authority; renameColumn newColumnName=user_role_authority_id, oldColumnName=role_authority_id, tableName=link_user_role_authority; renameColumn newColumnName=user_role_id, oldCol... rename table role_authority to link_user_role_authority \N 4.26.0 \N \N 8481143206 +001 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.49/2016-06-20--01-add-authority-to-start-any-process.xml 2024-10-09 16:39:03.882744 31 EXECUTED 9:117a85e196ef25bfb8086a8eeb4d2225 insert tableName=authority add authority to start any process \N 4.26.0 \N \N 8481143206 +002 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.49/2016-06-20--01-add-authority-to-start-any-process.xml 2024-10-09 16:39:03.897008 32 EXECUTED 9:82e15269c4baf6a4a9e631bc5f42c6f8 insert tableName=USER_ROLE; sql; sql; sql; sql add BPMN Superuser USER_ROLE \N 4.26.0 \N \N 8481143206 +003 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.49/2016-06-20--01-add-authority-to-start-any-process.xml 2024-10-09 16:39:03.91845 33 EXECUTED 9:6c9713e5b70776560452af194f99860e insert tableName=USER_GROUP; sql; sql; sql; sql; sql; sql add Demo group \N 4.26.0 \N \N 8481143206 +004 urmancheev ru/cg/webbpm/modules/security/api/changelog/v_1.49/2016-06-20--01-add-authority-to-start-any-process.xml 2024-10-09 16:39:03.931174 34 EXECUTED 9:d7337118515dfbb1a701855094fba94e sql; sql Move demo user to Demo group \N 4.26.0 \N \N 8481143206 +001 bikmetov ru/cg/webbpm/modules/security/api/changelog/v_1.71/2016-11-21--01-split-user_account-table.xml 2024-10-09 16:39:03.94227 35 EXECUTED 9:114623f42eb44aec806deff1d17685fc createTable tableName=domestic_user create domestic_user table \N 4.26.0 \N \N 8481143206 +002 bikmetov ru/cg/webbpm/modules/security/api/changelog/v_1.71/2016-11-21--01-split-user_account-table.xml 2024-10-09 16:39:03.949369 36 EXECUTED 9:a55edcac3c0b70de7cf491f6826a7abe sql migrate authentication data from user_account to domestic_user table \N 4.26.0 \N \N 8481143206 +003 bikmetov ru/cg/webbpm/modules/security/api/changelog/v_1.71/2016-11-21--01-split-user_account-table.xml 2024-10-09 16:39:03.960817 37 EXECUTED 9:35a8aca61fd31c38cec799079116128e dropColumn columnName=password, tableName=user_account; dropColumn columnName=blocked, tableName=user_account; dropColumn columnName=password_expires, tableName=user_account; dropColumn columnName=password_updated, tableName=user_account drop deprecated columns \N 4.26.0 \N \N 8481143206 +001 bikmetov ru/cg/webbpm/modules/security/api/changelog/v_1.71/2016-11-22--01-create-esia_user-table.xml 2024-10-09 16:39:03.971398 38 EXECUTED 9:dac5c2e543f5808235331da4af681a8e createTable tableName=esia_user Create esia user table \N 4.26.0 \N \N 8481143206 +002 bikmetov ru/cg/webbpm/modules/security/api/changelog/v_1.71/2016-11-22--01-create-esia_user-table.xml 2024-10-09 16:39:03.980454 39 EXECUTED 9:b7c928cb74062a3a2292f893cb96ba5c addForeignKeyConstraint baseTableName=esia_user, constraintName=fk_esia_user1, referencedTableName=user_account Add link to user_account table \N 4.26.0 \N \N 8481143206 +001 kochetkov ru/cg/webbpm/modules/security/api/changelog/v_2.10/2017-08-24--01-add-user-removed-flag.xml 2024-10-09 16:39:03.985523 40 EXECUTED 9:2734e124f6517cf878e4fad30ba16ea9 addColumn tableName=user_account add user removed flag \N 4.26.0 \N \N 8481143206 +001 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-12--01-orgunits.xml 2024-10-09 16:39:03.994104 41 EXECUTED 9:ffc37e0d4fb3cced842a3c93df907110 createTable tableName=org_unit add org_unit table \N 4.26.0 \N \N 8481143206 +002 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-12--01-orgunits.xml 2024-10-09 16:39:03.998827 42 EXECUTED 9:0a2d5759d46697f7e7193a9ac27ac708 addColumn tableName=user_account add org_unit id to users \N 4.26.0 \N \N 8481143206 +003 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-12--01-orgunits.xml 2024-10-09 16:39:04.004171 43 EXECUTED 9:777d24a2eb0a3b9743c7b0741dea1ed9 addForeignKeyConstraint baseTableName=org_unit, constraintName=fk_org_unit_parent_id, referencedTableName=org_unit add self reference \N 4.26.0 \N \N 8481143206 +004 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-12--01-orgunits.xml 2024-10-09 16:39:04.011473 44 EXECUTED 9:eb65786e6009abd549a207e4e0660fdb addForeignKeyConstraint baseTableName=user_account, constraintName=fk_user_org_unit_id, referencedTableName=org_unit add org_unit id fk to users \N 4.26.0 \N \N 8481143206 +001 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-20--01-orgunit-notnull.xml 2024-10-09 16:39:04.017797 45 EXECUTED 9:67a2ed8126625e50e25f3751935d0b64 insert tableName=org_unit add default organization \N 4.26.0 \N \N 8481143206 +002 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-20--01-orgunit-notnull.xml 2024-10-09 16:39:04.025505 46 EXECUTED 9:b91cdc312baee2fdcb89e4935fb9c5b4 update tableName=user_account link all users to default organization \N 4.26.0 \N \N 8481143206 +003 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-20--01-orgunit-notnull.xml 2024-10-09 16:39:04.031204 47 EXECUTED 9:00771bd5d31472dc9283312def21c569 addNotNullConstraint columnName=org_unit_id, tableName=user_account make org_unit_id not null \N 4.26.0 \N \N 8481143206 +001 kochetkov ru/cg/webbpm/modules/security/api/changelog/v_2.14/2017-10-18--01-add-access-level-for-groups.xml 2024-10-09 16:39:04.054315 48 EXECUTED 9:d76f00132494ac2f3f078883892de964 createTable tableName=access_level; insert tableName=access_level; insert tableName=access_level; addColumn tableName=user_group; update tableName=user_group; update tableName=user_group; addForeignKeyConstraint baseTableName=user_group, constrain... add access level for groups \N 4.26.0 \N \N 8481143206 +0001 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.16/2017-11-15--01-orgunit-code-notnull.xml 2024-10-09 16:39:04.061327 49 EXECUTED 9:6e30e1e2f4ee4c26050f20f30e022c40 update tableName=org_unit Set code for default org \N 4.26.0 \N \N 8481143206 +0002 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.16/2017-11-15--01-orgunit-code-notnull.xml 2024-10-09 16:39:04.064706 50 EXECUTED 9:eca5ea325488ff476bfa77e994f14329 addNotNullConstraint columnName=code, tableName=org_unit Add NOT NULL to org_unit.code \N 4.26.0 \N \N 8481143206 +001 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.23/2017-12-15--01-orgunit-removed.xml 2024-10-09 16:39:04.069228 51 EXECUTED 9:fada6015aab2c8b550db30b18ad174d5 addColumn tableName=org_unit \N 4.26.0 \N \N 8481143206 +001 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.23/2017-12-21--01-orgunit-unique.xml 2024-10-09 16:39:04.077547 52 EXECUTED 9:56ac4e5499fc3f4f615ba0f44737297b addUniqueConstraint tableName=org_unit \N 4.26.0 \N \N 8481143206 +001 krylov ru/cg/webbpm/modules/security/api/changelog/v_2.28/2018-01-26--01-orgunit-name-long.xml 2024-10-09 16:39:04.084191 53 EXECUTED 9:86ba1733f691a0b9afc171010fb7a4d4 modifyDataType columnName=name, tableName=org_unit \N 4.26.0 \N \N 8481143206 +001 obuhov ru/cg/webbpm/modules/security/api/changelog/v_2.36/2018-04-03--01-add-bpmn-superuser-group.xml 2024-10-09 16:39:04.093627 54 EXECUTED 9:5938c4173219c7c56dbbbf3678f01bb0 insert tableName=user_group; sql add BPMN Superuser group \N 4.26.0 \N \N 8481143206 +001 obuhov ru/cg/webbpm/modules/security/api/changelog/v_2.36/2018-04-03--02-map-demo-user-groups.xml 2024-10-09 16:39:04.10008 55 EXECUTED 9:4ee9796493cd60011443827c0aec5a9d sql Move demo user from Demo group \N 4.26.0 \N \N 8481143206 +002 obuhov ru/cg/webbpm/modules/security/api/changelog/v_2.36/2018-04-03--02-map-demo-user-groups.xml 2024-10-09 16:39:04.106301 56 EXECUTED 9:293ffbe0ed7d61f2ee4890eec12a1c83 sql Assign 'BPMN Admin' group to 'demo@example.com' user \N 4.26.0 \N \N 8481143206 +003 obuhov ru/cg/webbpm/modules/security/api/changelog/v_2.36/2018-04-03--02-map-demo-user-groups.xml 2024-10-09 16:39:04.114565 57 EXECUTED 9:ec3f98ef4547b285082cb97520bb7769 sql Assign 'Security Admin' group to 'demo@example.com' user \N 4.26.0 \N \N 8481143206 +004 obuhov ru/cg/webbpm/modules/security/api/changelog/v_2.36/2018-04-03--02-map-demo-user-groups.xml 2024-10-09 16:39:04.121153 58 EXECUTED 9:b0903c151a91cf469b8efbcd35589255 sql Assign 'BPMN Superuser' group to 'demo@example.com' user \N 4.26.0 \N \N 8481143206 +001 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--01-org-unit-authorities.xml 2024-10-09 16:39:04.128639 59 EXECUTED 9:856cdfc715038682e66dcf3874527905 insert tableName=authority Add 'USER_MANAGEMENT.ORG_UNIT.LIST' authority \N 4.26.0 \N \N 8481143206 +002 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--01-org-unit-authorities.xml 2024-10-09 16:39:04.133322 60 EXECUTED 9:4c7e421d0cbe6ce04d9a807e44fa6f61 insert tableName=authority Add 'USER_MANAGEMENT.ORG_UNIT.WRITE' authority \N 4.26.0 \N \N 8481143206 +003 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--01-org-unit-authorities.xml 2024-10-09 16:39:04.138841 61 EXECUTED 9:dfbe0dc297f0531c0e4eafb520136dbc insert tableName=authority Add 'USER_MANAGEMENT.ORG_UNIT.READ' authority \N 4.26.0 \N \N 8481143206 +004 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--01-org-unit-authorities.xml 2024-10-09 16:39:04.146933 62 EXECUTED 9:d4f274735a098ebaef655831794ad1d2 insert tableName=authority Add 'USER_MANAGEMENT.ORG_UNIT.DELETE' authority \N 4.26.0 \N \N 8481143206 +001 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--02-add-org-unit-admin-role.xml 2024-10-09 16:39:04.151867 63 EXECUTED 9:5f8adb37020f0c274cbe8e01e1b435af insert tableName=user_role Add 'Security - Org Unit Admin' role \N 4.26.0 \N \N 8481143206 +002 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--02-add-org-unit-admin-role.xml 2024-10-09 16:39:04.164207 64 EXECUTED 9:785b92397bd66f7afe23330dc8ea1347 sql Link 'Security - Org Unit Admin' role with org_unit's authorities \N 4.26.0 \N \N 8481143206 +001 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--03-link-org-unit-role-with-group.xml 2024-10-09 16:39:04.171365 65 EXECUTED 9:2f32e7296908a837b9c6003ec748d5f0 sql Link 'Security - Org Unit Admin' role with 'Security Admin' group \N 4.26.0 \N \N 8481143206 +001 r.gilfanov ru/cg/webbpm/modules/security/api/changelog/v_2.507/2018-11-13--04-link-security-admin-group-with-demo-user.xml 2024-10-09 16:39:04.178597 66 MARK_RAN 9:d68de67b3afb347392e8b114399da60e sql Link 'Security Admin' group with demo user \N 4.26.0 \N \N 8481143206 +001 e. umutbaev ru/cg/webbpm/modules/security/api/changelog/v_2.66/2018-11-30--01-add-access-level-999.xml 2024-10-09 16:39:04.185028 67 EXECUTED 9:e9436888263118a008282ea09af912a0 insert tableName=access_level add access level '999' \N 4.26.0 \N \N 8481143206 +001 e. umutbaev ru/cg/webbpm/modules/security/api/changelog/v_2.66/2018-11-30--02-add-superadmin-group.xml 2024-10-09 16:39:04.190342 68 EXECUTED 9:8b4cc35fa7853f72227c00251e3423f1 insert tableName=user_group add 'Super Admin' group \N 4.26.0 \N \N 8481143206 +001 e. umutbaev ru/cg/webbpm/modules/security/api/changelog/v_2.66/2018-11-30--03-map-demo-superadmin-group.xml 2024-10-09 16:39:04.199053 69 EXECUTED 9:a696763c22e2cb0e70e7a719b376f500 insert tableName=link_user_account_user_group Assign 'Super Admin' group to 'demo@example.com' user \N 4.26.0 \N \N 8481143206 +001 e. umutbaev ru/cg/webbpm/modules/security/api/changelog/v_2.66/2018-11-30--04-access-level-id-notnull.xml 2024-10-09 16:39:04.204514 70 EXECUTED 9:8557b65258fa5b3a9b8b5fdbac63c3ab addNotNullConstraint columnName=access_level_id, tableName=user_group make access_level_id not null. if null - set default_access_level \N 4.26.0 \N \N 8481143206 +001 ermolaev ru/cg/webbpm/modules/security/api/changelog/v_2.72/2019-02-01--01-create-table-for-refresh-token.xml 2024-10-09 16:39:04.215052 71 EXECUTED 9:508074b20a7b4d7fe008772d8f9790c3 createTable tableName=user_account_refresh_token; addForeignKeyConstraint baseTableName=user_account_refresh_token, constraintName=fk_user_account_refresh_token, referencedTableName=user_account add user account refresh tokens \N 4.26.0 \N \N 8481143206 +002 ermolaev ru/cg/webbpm/modules/security/api/changelog/v_2.72/2019-02-01--01-create-table-for-refresh-token.xml 2024-10-09 16:39:04.218791 72 EXECUTED 9:530a886925d17805a94411bbe7ff592d modifyDataType columnName=refresh_tokens, tableName=user_account_refresh_token \N 4.26.0 \N \N 8481143206 +001 obuhov ru/cg/webbpm/modules/security/api/changelog/v_2.86/2019-04-17--01-rename_user_removed_to_locked.xml 2024-10-09 16:39:04.228807 73 EXECUTED 9:f25127bf5a046775275615a0d432dd94 renameColumn newColumnName=locked, oldColumnName=removed, tableName=user_account rename column removed to locked \N 4.26.0 \N \N 8481143206 +001 ermolaev.a ru/cg/webbpm/modules/security/api/changelog/v_2.87/2019-05-07--01-SUPPORT-3108-drop-locked-from-domestic.xml 2024-10-09 16:39:04.233953 74 EXECUTED 9:488a6250ebafe046464a98c3cc3a721a dropColumn columnName=locked, tableName=domestic_user drop column locked in domestic_user \N 4.26.0 \N \N 8481143206 +001 ermolaev.a ru/cg/webbpm/modules/security/api/changelog/v_2.88/2019-05-07--01-SUPPORT-3158_modify_user_refresh_token.xml 2024-10-09 16:39:04.24464 75 EXECUTED 9:c27504c8960a82dbaa7f3d51c2fa7f05 dropTable tableName=user_account_refresh_token drop table user_account_refresh_token \N 4.26.0 \N \N 8481143206 +002 ermolaev.a ru/cg/webbpm/modules/security/api/changelog/v_2.88/2019-05-07--01-SUPPORT-3158_modify_user_refresh_token.xml 2024-10-09 16:39:04.268477 76 EXECUTED 9:7c542a1bf11770c3dcf79a607113c49a createTable tableName=user_account_refresh_token; addForeignKeyConstraint baseTableName=user_account_refresh_token, constraintName=fk_user_account_refresh_token, referencedTableName=user_account create table user_account_refresh_token \N 4.26.0 \N \N 8481143206 +001 ermolaev.a ru/cg/webbpm/modules/security/api/changelog/v_3.6/2019-08-22--01-WEBBPMNEXT-6418_create_index_for_refresh_token.xml 2024-10-09 16:39:04.278666 77 EXECUTED 9:ff529c266cfad603e4c34f6b4221fe23 createIndex indexName=idx_refresh_token_user_account_id, tableName=user_account_refresh_token add index for refresh token \N 4.26.0 \N \N 8481143206 +001 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--01-WEBBPMNEXT-6862_credentials_tables.xml 2024-10-09 16:39:04.282406 78 EXECUTED 9:396f0e01442b4448ec8a0a420ce3818b renameTable newTableName=simple_credentials, oldTableName=domestic_user rename table domestic_user to simple_credentials \N 4.26.0 \N \N 8481143206 +002 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--01-WEBBPMNEXT-6862_credentials_tables.xml 2024-10-09 16:39:04.289134 79 EXECUTED 9:5a45dd8de2ce212d32aaada382728080 createTable tableName=login_credentials \N 4.26.0 \N \N 8481143206 +001 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--02-WEBBPMNEXT-6862_move_column.xml 2024-10-09 16:39:04.296145 80 EXECUTED 9:74aec95f2ebd64bb29bfca789e2c1686 addColumn tableName=simple_credentials add column username to table simple_credentials \N 4.26.0 \N \N 8481143206 +002 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--02-WEBBPMNEXT-6862_move_column.xml 2024-10-09 16:39:04.300618 81 EXECUTED 9:06ec1f95efaabfc049ba1631de7c7495 sql move data of column username from user_account to simple_credentials \N 4.26.0 \N \N 8481143206 +004 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--02-WEBBPMNEXT-6862_move_column.xml 2024-10-09 16:39:04.304596 82 EXECUTED 9:3fff8711b04f1f18c600ae9cbf256010 sql move data of column username from user_account to login_credentials \N 4.26.0 \N \N 8481143206 +005 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--02-WEBBPMNEXT-6862_move_column.xml 2024-10-09 16:39:04.312556 83 EXECUTED 9:c27eaaf77cb37556306c9bd8ad472644 dropColumn columnName=username, tableName=user_account drop column username from user_account \N 4.26.0 \N \N 8481143206 +006 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--02-WEBBPMNEXT-6862_move_column.xml 2024-10-09 16:39:04.317152 84 EXECUTED 9:57b83151de4c5726658bba4534b875e7 addNotNullConstraint columnName=username, tableName=simple_credentials add not null constraint \N 4.26.0 \N \N 8481143206 +001 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--03-WEBBPMNEXT-6862_grant_select.xml 2024-10-09 16:39:04.323061 85 EXECUTED 9:54de71874843a1102d9785723d658069 sql grant select on security tables \N 4.26.0 \N \N 8481143206 +002 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--03-WEBBPMNEXT-6862_grant_select.xml 2024-10-09 16:39:04.32985 86 EXECUTED 9:e30ab22c1531e0108286330bf2b8e871 sql remove $user from search_path \N 4.26.0 \N \N 8481143206 +003 zamaliev ru/cg/webbpm/modules/security/api/changelog/v_3.34/2020-02-27--03-WEBBPMNEXT-6862_grant_select.xml 2024-10-09 16:39:04.337755 87 EXECUTED 9:e11bfc5a377faeaba8638a21c3394d80 sql grant select and references on security tables \N 4.26.0 \N \N 8481143206 +001 borisov ru/cg/webbpm/modules/security/api/changelog/v_3.74/2020-12-30--01-WEBBPMNEXT-7590_create_constraint.xml 2024-10-09 16:39:04.350238 88 EXECUTED 9:eccaa9ec0ccf74c681f58030762c0b32 addUniqueConstraint constraintName=login_credentials_username, tableName=login_credentials add unique constraint for login_credentials username \N 4.26.0 \N \N 8481143206 +001 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--01-WEBBPMNEXT-7127_create_column_username_user_account.xml 2024-10-09 16:39:04.355097 89 EXECUTED 9:fc781b19f2ea627c49ffa32ce32d3081 addColumn tableName=user_account add column username to table user_account \N 4.26.0 \N \N 8481143206 +002 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--01-WEBBPMNEXT-7127_create_column_username_user_account.xml 2024-10-09 16:39:04.362989 90 EXECUTED 9:9409683b6e4e54a75e5ce8fee511ae06 sql move data of column username from simple_credentials to user_account \N 4.26.0 \N \N 8481143206 +004 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--01-WEBBPMNEXT-7127_create_column_username_user_account.xml 2024-10-09 16:39:04.36776 91 EXECUTED 9:2936b49880262fb4c6bc3baa27a87698 sql move data of column username from login_credentials to user_account \N 4.26.0 \N \N 8481143206 +006 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--01-WEBBPMNEXT-7127_create_column_username_user_account.xml 2024-10-09 16:39:04.378758 92 EXECUTED 9:7421358099bf32fb52945541e649d3cc addNotNullConstraint columnName=username, tableName=user_account add not null constraint for user_account username \N 4.26.0 \N \N 8481143206 +007 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--01-WEBBPMNEXT-7127_create_column_username_user_account.xml 2024-10-09 16:39:04.388171 93 EXECUTED 9:dea6eddc29fff6faa771bc7d8c9189e1 addUniqueConstraint constraintName=user_account_username_unique, tableName=user_account add unique constraint for user_account username \N 4.26.0 \N \N 8481143206 +001 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--02-WEBBPMNEXT-7127_drop_column_username_simple_credential.xml 2024-10-09 16:39:04.395735 94 EXECUTED 9:b63771b1dfeca98512be4444aa00f17e dropColumn columnName=username, tableName=simple_credentials drop column username from simple_credentials \N 4.26.0 \N \N 8481143206 +001 m.popov ru/cg/webbpm/modules/security/api/changelog/v_3.92/2021-06-03--03-WEBBPMNEXT-7127_drop_table_login_credential.xml 2024-10-09 16:39:04.402862 95 EXECUTED 9:323e9b2660bc25e97ca6d761d0f394ad dropTable tableName=login_credentials drop table login_credentials \N 4.26.0 \N \N 8481143206 +001 kochetkov ru/cg/webbpm/modules/security/api/changelog/v_3.109/2022-01-24--01-SUPPORT-6410_add_security_cache.xml 2024-10-09 16:39:04.411021 96 EXECUTED 9:9a7f8fb935736b526fa21708720b2e68 insert tableName=authority; sql add clear security cache authority \N 4.26.0 \N \N 8481143206 +001 gulnaz ru/cg/webbpm/modules/security/api/changelog/v_3.121/2022-06-24--01-MR-140_add_phone_and_email_confirmed_columns_into_user_account.xml 2024-10-09 16:39:04.415168 97 EXECUTED 9:d29ce378f7b2550e481f157d52474a99 addColumn tableName=user_account add phone column into user_account table \N 4.26.0 \N \N 8481143206 +002 gulnaz ru/cg/webbpm/modules/security/api/changelog/v_3.121/2022-06-24--01-MR-140_add_phone_and_email_confirmed_columns_into_user_account.xml 2024-10-09 16:39:04.41916 98 EXECUTED 9:4f8a72f8b30b8384ce06ba4f5912af19 addColumn tableName=user_account add email_confirmed column into user_account table \N 4.26.0 \N \N 8481143206 +001 gulnaz ru/cg/webbpm/modules/security/api/changelog/v_3.121/2022-06-24--02-MR-140_add_user_account_verification_table.xml 2024-10-09 16:39:04.428068 99 EXECUTED 9:7d4a7ce77dae5b6201c3a1ec98ec2862 createTable tableName=user_account_verification; addForeignKeyConstraint baseTableName=user_account_verification, constraintName=fk_user_account_user_account_verification, referencedTableName=user_account add user_account_verification table \N 4.26.0 \N \N 8481143206 +001 Alex Save ru/cg/webbpm/modules/security/api/changelog/v_3.128/2022-10-11--01-WEBBPMNEXT-8298_add_source_column_into_user_account.xml 2024-10-09 16:39:04.433795 100 EXECUTED 9:567a726828b20cfb5c9566a11b6a370c addColumn tableName=user_account; sql add source column into user_account table \N 4.26.0 \N \N 8481143206 +001 Alex Save ru/cg/webbpm/modules/security/api/changelog/v_3.131/2022-08-02--01-SUPPORT-7533_multidomen_ldap_auth.xml 2024-10-09 16:39:04.438689 101 EXECUTED 9:1801afc8cd8223f9313b596e34533aa5 addColumn tableName=user_account add source column into user_account table \N 4.26.0 \N \N 8481143206 +001 Khabibullin ru/cg/webbpm/modules/security/api/changelog/v_3.142.3/2023-05-03--01-WEBBPMNEXT-8635_add_created_column_to_link_user_account_user_group.xml 2024-10-09 16:39:04.450386 102 EXECUTED 9:1d920456b4dbeb7725dbe9e593f847fe addColumn tableName=link_user_account_user_group; addDefaultValue columnName=created, tableName=link_user_account_user_group; addColumn tableName=link_user_group_user_role; addDefaultValue columnName=created, tableName=link_user_group_user_role; a... add created column into link_user_account_user_group, link_user_group_user_role,\n link_user_role_authority tables \N 4.26.0 \N \N 8481143206 +\. + + +-- +-- Data for Name: databasechangeloglock; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.databasechangeloglock (id, locked, lockgranted, lockedby) FROM stdin; +1 f \N \N +\. + + +-- +-- Data for Name: esia_user; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.esia_user (esia_user_id, user_account_id, person_contact_id) FROM stdin; +\. + + +-- +-- Data for Name: link_user_account_user_group; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.link_user_account_user_group (link_user_account_user_group_id, user_account_id, user_group_id, created) FROM stdin; +89c28e0e-42c0-4590-bf87-12bd34fef4f8 008af907-0fa2-4c14-b163-6e96f2d386ef ddfdc772-7aee-492f-be7d-7e95ea2f45b3 \N +019008aa-379c-4d4d-8ca4-596a20b14283 008af907-0fa2-4c14-b163-6e96f2d386ef 84c5c1e2-081e-45e1-a874-d6bb232e57ad \N +523dd190-d11c-4192-9fbf-f2c86ab8f032 008af907-0fa2-4c14-b163-6e96f2d386ef 273d8bbd-0e82-4064-a548-850e9aa61756 \N +824f1c63-7948-4ed8-85d1-c58159621bf8 008af907-0fa2-4c14-b163-6e96f2d386ef eaf300bc-a4cf-47c1-b5cb-d2b8abef02e5 \N +cd94f622-2b13-41d2-9596-10acd78c2718 008af907-0fa2-4c14-b163-6e96f2d386ef 62cd890b-99f7-47a8-be60-e330186b17a0 2024-10-09 19:54:07.08572 +dc9db53d-879f-49a3-9e6f-4bccc3940902 008af907-0fa2-4c14-b163-6e96f2d386ef 22ee608b-dd9d-4633-906d-7c4efca231a0 2024-10-09 19:54:07.08572 +05b7e162-4e0f-4aeb-95dd-331d18416f67 4caa6156-3cfb-4ea5-aa42-d3ff6f10ff8c acf292b2-9b46-4bf2-9254-39696d26f02b 2024-10-17 10:50:04.067612 +d471f557-2816-4cab-874e-ff00fc93a3ed 4caa6156-3cfb-4ea5-aa42-d3ff6f10ff8c 0c61996f-c1db-483e-8456-5a5a9dc6dcdd 2024-10-17 10:50:04.067612 +7357e22b-078c-473f-8aae-17c6b8fb8991 67ed8a30-2596-4dad-a782-756c7dfc4c72 6428cb6d-2949-4570-85b5-4b81e33b19ff 2024-10-17 10:51:05.996629 +bb585230-93f9-4af5-8b7a-19a41303bce8 67ed8a30-2596-4dad-a782-756c7dfc4c72 25d720ff-fa5e-41f2-bbe9-0db90187b0f4 2024-10-17 12:42:38.639522 +d5db495e-a051-4ed2-ba9e-1a6e7bba79d2 408ff49a-4004-43b5-b040-3ca4ae363d03 0c61996f-c1db-483e-8456-5a5a9dc6dcdd 2024-10-17 12:49:45.512511 +092dea94-44a9-4872-9ee0-350c74fa449b 408ff49a-4004-43b5-b040-3ca4ae363d03 00fe3742-dbb3-4639-aabd-3a10050ecd9e 2024-10-17 12:50:58.22643 +\. + + +-- +-- Data for Name: link_user_group_user_role; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.link_user_group_user_role (link_user_group_user_role_id, user_group_id, user_role_id, created) FROM stdin; +7e530a80-5034-4171-9dd1-2585e564d26c 62cd890b-99f7-47a8-be60-e330186b17a0 767ae8cf-af01-44d4-86ef-fcb143373407 \N +e7acbe14-bb8c-45a8-904d-3897b0c78e41 ddfdc772-7aee-492f-be7d-7e95ea2f45b3 aa14ba1d-0b61-4e33-8474-7c2d98944b12 \N +7b916cb1-d331-4b3f-ab9b-0ce10d9a34fa 84c5c1e2-081e-45e1-a874-d6bb232e57ad 72eb6a8e-af55-4f16-b69a-49f7b8a74f8d \N +4f912e82-b325-45b2-a611-e16f699d7366 84c5c1e2-081e-45e1-a874-d6bb232e57ad 1408a814-0729-41ae-b645-6150fa79071f \N +ddaaca35-0a87-4ea5-97e7-056a858c4efe 84c5c1e2-081e-45e1-a874-d6bb232e57ad 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 \N +e80cddbe-7650-4415-8765-e13ea1f43f04 84c5c1e2-081e-45e1-a874-d6bb232e57ad b896f8c9-29cb-4384-992e-44c7ad0ec1d5 \N +f888304f-2e17-4b33-bebf-116deec9a0ef 22ee608b-dd9d-4633-906d-7c4efca231a0 2569ba58-1f8f-43ea-8b2c-0d373cf501fe \N +d26c5536-efe4-41a5-9ee6-2baf33ec870a 22ee608b-dd9d-4633-906d-7c4efca231a0 aa14ba1d-0b61-4e33-8474-7c2d98944b12 \N +314c26d6-28a2-4e29-bcb9-4e92c9e26d0e 22ee608b-dd9d-4633-906d-7c4efca231a0 72eb6a8e-af55-4f16-b69a-49f7b8a74f8d \N +206e5862-4a42-4295-be72-9abcfbac4fcb 22ee608b-dd9d-4633-906d-7c4efca231a0 1408a814-0729-41ae-b645-6150fa79071f \N +015398e4-b320-42ff-9b9d-ffed9aa79d27 22ee608b-dd9d-4633-906d-7c4efca231a0 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 \N +3f5c2d1d-a2df-4852-8b85-4ef7bfe934fb 22ee608b-dd9d-4633-906d-7c4efca231a0 b896f8c9-29cb-4384-992e-44c7ad0ec1d5 \N +b2140940-0cf2-48d1-9212-d4dda9ef9dbe 273d8bbd-0e82-4064-a548-850e9aa61756 2569ba58-1f8f-43ea-8b2c-0d373cf501fe \N +2f86a80e-b9a3-4f9b-8bb9-4bff24ebf111 84c5c1e2-081e-45e1-a874-d6bb232e57ad 32f9413b-619a-4e4b-85f9-4c4699267b37 \N +bac491b1-ac1a-45eb-b2ae-e30b3db3ba65 22ee608b-dd9d-4633-906d-7c4efca231a0 68a81927-259d-4e2a-84d7-c565a9d0f943 2024-10-09 19:54:18.511239 +e53640e7-4a56-4d68-8061-b4e3d4ec33c2 22ee608b-dd9d-4633-906d-7c4efca231a0 17c97647-f53c-400f-a700-ad349eeee0c3 2024-10-09 19:54:18.511239 +69639956-38ff-4fc7-aee5-a6785fee3eae 22ee608b-dd9d-4633-906d-7c4efca231a0 726dc966-6832-4f5c-b867-2797259d5104 2024-10-09 19:54:18.511239 +6b5dfc30-7a04-4d89-874d-02a549f51182 22ee608b-dd9d-4633-906d-7c4efca231a0 cc1ac346-71bf-4fa7-9300-78730a1bed08 2024-10-09 19:54:18.511239 +91e65fc5-1691-4df3-99a7-2e7f93d779f8 22ee608b-dd9d-4633-906d-7c4efca231a0 65b50a78-4f68-4bd9-9836-4fb3e2fb2c6a 2024-10-09 19:54:18.511239 +94d28392-6914-45ce-a090-690daa404f9d 22ee608b-dd9d-4633-906d-7c4efca231a0 767ae8cf-af01-44d4-86ef-fcb143373407 2024-10-09 19:54:18.511239 +74611b2a-3641-4baf-899c-f69b46e56978 22ee608b-dd9d-4633-906d-7c4efca231a0 32f9413b-619a-4e4b-85f9-4c4699267b37 2024-10-09 19:54:18.511239 +2f23c82b-3017-44ee-9e7f-b7b3efc88779 25d720ff-fa5e-41f2-bbe9-0db90187b0f4 17c97647-f53c-400f-a700-ad349eeee0c3 2024-10-09 20:47:31.439075 +bc02b290-064c-4a86-9dd9-5611b0295045 25d720ff-fa5e-41f2-bbe9-0db90187b0f4 767ae8cf-af01-44d4-86ef-fcb143373407 2024-10-09 20:47:31.439075 +10059011-1f42-4580-b92b-5d78c61d9f61 acf292b2-9b46-4bf2-9254-39696d26f02b 726dc966-6832-4f5c-b867-2797259d5104 2024-10-09 20:49:38.630003 +c3374413-f190-48dc-b194-e6a1ae4355ae acf292b2-9b46-4bf2-9254-39696d26f02b 767ae8cf-af01-44d4-86ef-fcb143373407 2024-10-09 20:49:38.630003 +189018bf-9301-4818-8821-545328de6012 00fe3742-dbb3-4639-aabd-3a10050ecd9e 68a81927-259d-4e2a-84d7-c565a9d0f943 2024-10-09 20:51:03.650021 +ce69bef0-5324-4c16-b151-cfc7b473ad7c 00fe3742-dbb3-4639-aabd-3a10050ecd9e 767ae8cf-af01-44d4-86ef-fcb143373407 2024-10-09 20:51:03.650021 +aedec67b-7bac-4b96-8682-a6e2a1865b62 0c61996f-c1db-483e-8456-5a5a9dc6dcdd 30c92f56-439c-463d-829c-93bcbf6b64d1 2024-10-17 09:15:30.396222 +a155dcc0-1c7a-440e-ae69-384da3628824 6428cb6d-2949-4570-85b5-4b81e33b19ff 720d8a2b-1b30-4002-9a44-8e531c86460c 2024-10-17 09:15:41.72115 +\. + + +-- +-- Data for Name: link_user_role_authority; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.link_user_role_authority (user_role_authority_id, user_role_id, authority_id, created) FROM stdin; +0d508a53-d429-4fc1-a929-d6dff3476e21 767ae8cf-af01-44d4-86ef-fcb143373407 4406c5fa-e6bb-468c-a2f8-d76aa788fbd5 \N +9a676713-b0e3-4623-8c77-f021b21043af 767ae8cf-af01-44d4-86ef-fcb143373407 f8ea4d65-54b4-49e3-8cf7-b209af7bd558 \N +fbeeb034-eaaa-40a4-bb23-23fbdc52e005 767ae8cf-af01-44d4-86ef-fcb143373407 8bbacf0c-ef2e-459c-b14f-6bf7b6236b72 \N +c5d715bf-8ab4-42eb-9fd8-331f4207ab0d aa14ba1d-0b61-4e33-8474-7c2d98944b12 ac44a379-95b8-4222-99ab-8e70bd24a717 \N +2d52a93e-3724-4a24-bf7e-9de4a21d1435 aa14ba1d-0b61-4e33-8474-7c2d98944b12 378fdfa7-6039-42ac-8586-073165e2eab8 \N +1ed75cb4-22ae-4eb1-9f48-1d921e2b57bc aa14ba1d-0b61-4e33-8474-7c2d98944b12 02d1eeb1-54cc-4002-b5ef-f5b5f40ab895 \N +f22f3a7d-0e89-42dc-a18e-a3be51c89914 aa14ba1d-0b61-4e33-8474-7c2d98944b12 53da7292-c97a-491a-a4f2-ca348dd3add5 \N +2916413f-97db-4a8a-9bfb-a5e186919a96 aa14ba1d-0b61-4e33-8474-7c2d98944b12 97ff4363-d78c-4e39-8620-fdbca6bd6b89 \N +ef84367e-81b0-43ce-b048-27b12790a900 72eb6a8e-af55-4f16-b69a-49f7b8a74f8d a5f72fd8-998b-4c25-a8d7-f789b5c8a731 \N +12fae2d0-5590-42f2-b769-490c7cd9479a 72eb6a8e-af55-4f16-b69a-49f7b8a74f8d d438673b-a9a6-43c7-b692-b37d06789fb5 \N +7e21c1fd-eff3-4278-877d-e1100192d8bd 72eb6a8e-af55-4f16-b69a-49f7b8a74f8d 4eb6c3b9-98a8-41df-a5b4-431d726b181a \N +063e1b62-5cd9-4c4e-b108-fbcafe8b50ed 72eb6a8e-af55-4f16-b69a-49f7b8a74f8d 03876f9b-3656-4f3e-8e1d-ac203a236fcf \N +d37c30de-403e-40f3-ad67-26ce88af9ca3 1408a814-0729-41ae-b645-6150fa79071f 1752fcbc-65ae-49c0-9e74-15a65b094b55 \N +bd9f668c-ffb9-48d2-a974-dd744223b9dd 1408a814-0729-41ae-b645-6150fa79071f 9e263628-a3e0-4e90-9942-9fe9e42a22ed \N +dbddc5f9-5d7f-4921-beec-d0ef29a7c8ac 1408a814-0729-41ae-b645-6150fa79071f 94839999-0711-41ca-8641-88b99263c587 \N +40913a30-1b60-4f5b-8925-b7b523ca3451 1408a814-0729-41ae-b645-6150fa79071f 56e9a141-10f1-468c-bce5-cb6a23edb353 \N +31bd5d5d-c681-40a1-9f69-cf21ca4ade16 1408a814-0729-41ae-b645-6150fa79071f d61d3172-aa6c-40e6-b7b0-d733b97655a5 \N +a70c6eea-4566-48fd-a030-7adc03970fe0 1408a814-0729-41ae-b645-6150fa79071f df29eb01-e1d7-41df-b5e7-bb5229a101c1 \N +50923c99-f94b-461e-a17b-1da3234929bb 1408a814-0729-41ae-b645-6150fa79071f e02c12e9-681a-4b6c-877b-0c119294a64d \N +754e5e95-7fdd-418c-aa61-6bb314b99b7e 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 77a067f4-d188-4a51-a342-8e48dc6e1907 \N +90cc3463-1d19-4fc2-af97-716912d62e55 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 d0890070-7ffe-4821-89b9-31e7209da04f \N +3f84af5c-dc6d-47b0-a378-6199f613d506 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 374f22fe-8bbf-4605-8f44-ed567993367d \N +e89c189f-3145-493a-9650-0b23c8214582 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 c495c9df-9369-464c-ab58-6ff7ad0276b0 \N +6b207e41-cd3b-4b9c-8c66-c9886e2a718c 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 1d55cccc-783b-46b4-a048-5baed2e67b3d \N +76fb319a-843e-4fc7-9c32-a603e9aeb037 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 8007e647-423a-47d5-bf1c-92d40f30155e \N +4cfe3429-f729-456c-a300-2cbb2303c8ea 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 850e70f3-3372-43ab-8f34-eaa5a87e2266 \N +0230db94-d2fa-4d53-9036-7e233ac16755 b896f8c9-29cb-4384-992e-44c7ad0ec1d5 4b770635-0130-42ba-9bc6-c08f30a0cd01 \N +971cfb32-f02b-4f90-ba93-ec91a8aac5ff b896f8c9-29cb-4384-992e-44c7ad0ec1d5 a3afd667-7759-4eda-b4e2-4cd06bb600c5 \N +16b6d4b9-5544-43d6-8948-595640667de8 b896f8c9-29cb-4384-992e-44c7ad0ec1d5 73b066cc-b7c5-4c9a-aaf6-f5a857ddf18b \N +18689092-d65b-47cc-b5ff-d87c4a85569d b896f8c9-29cb-4384-992e-44c7ad0ec1d5 7dc7224b-d8fd-4c9c-b323-7fcb9093df8d \N +42927079-b82c-4d0f-aacb-402022260969 2569ba58-1f8f-43ea-8b2c-0d373cf501fe 74cd9a25-8e03-4b2f-b311-49534e371576 \N +e0d2ea60-3799-4505-b7c1-50b7e9522ff2 2569ba58-1f8f-43ea-8b2c-0d373cf501fe 4406c5fa-e6bb-468c-a2f8-d76aa788fbd5 \N +efa3fd60-a2d8-48a1-81ac-d42c8f91027d 2569ba58-1f8f-43ea-8b2c-0d373cf501fe f8ea4d65-54b4-49e3-8cf7-b209af7bd558 \N +00d1cf98-1df3-4c54-a0c1-4b19902ac33e 2569ba58-1f8f-43ea-8b2c-0d373cf501fe 8bbacf0c-ef2e-459c-b14f-6bf7b6236b72 \N +3dacd5dc-21f3-4495-9b37-79271ef9c210 32f9413b-619a-4e4b-85f9-4c4699267b37 0d3560bc-d3bd-4a9b-af08-05afd68df8d9 \N +68bddc13-d44b-4b86-9936-cd21601a34f6 32f9413b-619a-4e4b-85f9-4c4699267b37 e4ea4cd3-e0bd-4508-b0a4-a3c749cb6647 \N +84816bd6-62ef-4a7b-b9de-df362b9f9ba7 32f9413b-619a-4e4b-85f9-4c4699267b37 5934a0fd-cff0-4e42-ad9d-e0ff058e37f6 \N +ca66fd7c-5132-4404-8053-529ad6b6b335 32f9413b-619a-4e4b-85f9-4c4699267b37 afd95fac-fc49-4435-b133-55eada76138f \N +162503e7-9e43-44bc-8fd0-9cea4ea16328 6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 57fba951-f936-4f0c-ba26-bc52e2ee36b1 \N +\. + + +-- +-- Data for Name: org_unit; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.org_unit (id, name, code, parent_id, removed) FROM stdin; +3516544f-64c5-4883-9047-28bcce74d1be Default Organization DEFAULT \N f +20f455d2-2908-4a86-8ab5-2e500f2f5544 Министерство обороны f03fc8c0-2ce7-4121-a306-f82d65ea029d \N f +e00feef8-7b8a-47c2-9a16-f0f7dc877f56 Восточный военный округ b23f384f-b114-4003-9277-2eaa2d9ae180 \N f +72cd6795-0303-4894-82ad-911bc259d87e Московский военный округ 30a01af9-a871-411a-90e3-d81592bb074f \N f +d29346a7-dc0f-452d-859f-9bd3a83c219c Ленинградский военный округ 25633423-52e6-45bb-9d54-7f85b74a3f7d \N f +826c2187-7761-48ff-9399-25d1cc2a9297 Центральный военный округ 58ef9cdc-8a9d-429e-89a5-1c49e2684a98 \N f +a7b1f5f2-e43f-44da-92c6-6f394f53ec95 Южный военный округ b00de68d-2e09-4776-9b48-1566a7222dca \N f +fb2a5e9b-5c86-4c6f-bea0-c4501d466549 Тестовый комиссариат 2 83779471-c29f-c2eb-0e70-7846af31d10e \N f +521ce853-5cec-4d2c-8aa5-8f73e5ac3376 FDfsafd 31b88ed6-263e-225d-0787-74f7ef25f5f6 \N f +30de0a5c-a8df-4591-9bdc-52bfe5abb31d Военный комиссариат Вятска Тест 5055a985-c97c-f5dc-2158-ff5862bfe4cf \N f +f8010c28-ec1b-415f-9546-f1b58e36279e Тестовая организация Тест Второй 8edec280-3143-4d45-b702-ad5e91ef0e52 \N f +ba28c023-72f4-4ef5-b209-631f72f9488e Военный комиссариат городских округов Курильский и Северо-Курильский Сахалинской области ce08e909-5a14-480f-b931-bff172872ac6 \N f +4d3daef5-a63d-417c-8235-97c2b772a182 Военный комиссариат городского округа Южно-Курильский Сахалинской области 6da64c78-6705-4567-9f5f-5ade5822d92f \N f +a3188467-3169-4b4e-847c-ffcca71c4440 Военный комиссариат города Долинск и Долинского района Сахалинской области 110686b2-4a01-4976-885b-d26a2980f53a \N f +a67c6e12-b1fe-406b-b080-6b518324d6ea Военный комиссариат города Невельск и Невельского района Сахалинской области 98d428b3-502e-42b6-a29e-a469f894ac16 \N f +bb80fa73-9e50-491c-98c1-1869d752bba7 Военный комиссариат Краснинского района Липецкой области 8127c345-3fc1-4864-9d6e-cf34e69c494c \N f +e6c40dc8-0065-42c2-8c50-87714b3a0f7c Военный комиссариат Лебедянского района Липецкой области b2238b19-8598-4dfa-bb49-0de95136e344 \N f +cef595ce-c5af-44bb-9711-b0b7fd5b2df4 Тестовый муниципальный комиссариат 2 54a95ecd-1530-424c-8da1-882622b2df83 \N f +3a36fc6d-e2d4-414b-a995-e6c8bff78b77 Военный комиссариат города Холмск и Холмского района Сахалинской области 67dacb06-d1f7-4c0e-9891-32863353cae9 \N f +659ed98b-9868-4168-adff-35e9e1bd9b0b Военный комиссариат города Поронайск, Макаровского, Поронайского и Смирныховского районов Сахалинской области 24b7ba55-9757-45d9-9c5e-5ca3e8c9c2d0 \N f +8a1f8307-76c9-4923-a0fe-88bc6a563fcb АУВафцыва 20d82cbf-d520-48ce-a02a-540ce3838087 \N f +6fabcb61-584f-401d-85f6-79a49e3d8f61 Военный комиссариат Измалковского района Липецкой области 52e97a4c-f68c-489a-a923-fabb9ef574dd \N f +08f29c2e-0682-4179-a8f1-21a278c22d26 Военный комиссариат Долгоруковского района Липецкой области 94a9f485-eab9-4158-a1bf-330d23e29ae2 \N f +c93d2dc2-7741-4ca7-9690-14c764a77bf0 Военный комиссариат Задонского района Липецкой области f4e38f22-d974-412b-8a34-b1933ca865a9 \N f +d01db5cc-086b-4609-9aad-2c6397c4dd96 Военный комиссариат города Данков, Данковского и Лев-Толстовского района Липецкой области 2545944e-5252-4a6f-bcb2-8a4adf720e9b \N f +939dd496-542a-45f4-91e0-90c331d85f5f Военный комиссариат Хлевенского района Липецкой области 3a56b060-20ee-4b62-9d96-4c6bf4928039 \N f +fd142737-1a6a-466f-a318-b1412b184b3d Военный комиссариат Шиловского и Путятинского районов Рязанской области 79f6c236-3ee8-40ff-bc10-40077420e82e \N f +50439548-a88f-4e49-93a1-ce29c1eb9b9a Военный комиссариат Ухоловского, Сапожковского и Сараевского районов Рязанской области 86fc6ed6-1d82-4536-8066-c9ff2ca68639 \N f +908c5c7a-2942-4083-acbf-3a03c739b860 Военный комиссариат города Шацк, Шацкого и Чучковского районов Рязанской области e22cfafc-b8b1-47fd-b9f4-b9015734d578 \N f +928411d1-b6c2-40ea-a3df-4cad7aec98a5 Военный комиссариат Московского и Железнодорожного районов города Рязань Рязанской области 2ca66dd6-6688-45c9-bb7e-988c7e92d34a \N f +da5a8694-eae5-4da1-81b9-54ac3ac178f2 Военный комиссариат Клепиковского района Рязанской области 55727f17-6ab4-4d51-ad32-ba8e916acf49 \N f +9b83cc97-0439-458e-bc45-08315eb4d9b8 Военный комиссариат Рязанского и Спасского районов Рязанской области 6562ddb0-3f0c-4e43-bf0c-a834421cd4db \N f +cbc0917a-3052-41ea-a97e-f482b2c81b2d Военный комиссариат города Скопин, Скопинского и Милославского районов Рязанской области f59afe6d-c166-4196-a489-6d17f02fc05e \N f +b2e6bca2-d7eb-4654-8aef-d5c529e1c899 Военный комиссариат Сахалинской области 84bc45ab-c032-410e-9dc5-07e92719ede4 \N f +3cab3b8a-15f2-4c69-a3be-e7485717baa2 Тестовый комиссариат 1 e8f52736-3997-4e3a-c9e4-5bfca6eddc89 \N f +67db7b5b-0892-4908-bd20-864f932e80f9 Главное организационно-мобилизационное управление 5d8e4e2b-37d7-44a8-accb-45e87b62aa2d \N f +6e1017e2-1e38-481f-85c2-e828247f2b79 Восьмое управление ГШ ВС РФ 553b9449-6460-48c4-88d4-f18283abc4a7 \N f +69865d28-3f69-4047-8d4d-9469a6c33d5f Военный комиссариат Октябрьского и Советского районов города Рязань Рязанской области 6139de3b-2378-496f-9fca-7df7dab90832 \N f +77df47ff-f9d1-47f6-89c5-dc214b91a2a2 Военный комиссариат Липецкой области 2137685f-0683-4131-82d8-983222114184 \N f +38392eea-e14b-48b5-a0a1-2cff65bcb396 Военный комиссариат Рязанской области 092d6963-287c-454e-8d73-8e09ebee972e \N f +1cb021ac-4335-40d4-987c-7c7648d104be Военный комиссариат города Оха и Охинского района Сахалинской области 5eadc746-674d-4ba0-95d6-414d3469c82b \N f +2330352b-59ff-4b3f-b534-196fb5b20f9a ВК Одинцовского городского округа городских округов Краснознаменск и Власиха Московской области 3b71b6ff-3eec-4cca-fed0-055bb0c163cc \N f +4b2365ea-b799-48d4-ab00-b6f6dac5b952 тест bce5663e-5fe1-94a7-40f9-71d0490459da \N f +4e36849b-6652-483d-aecf-a3d9e18e42b9 Военный комиссариат Кораблинского района Рязанской области 0fe2bdf0-afbb-402d-93da-67e511799afa \N f +8bd65d2b-630c-4513-964b-d70b48726bc5 Военный комиссариат города Липецк Липецкой области 9703f108-761a-467a-aad3-89617e5539ed \N f +2caa5eae-b6c8-4943-8b8b-428dc9c6cb4d Военный комиссариат города Грязи и Грязинского района Липецкой области b5209c2c-67f6-4b6d-9617-8370aa9907a8 \N f +b00a1841-f444-4fb4-827a-a4e1075eac01 Военный комиссариат города Углегорск, Томаринского и Углегорского районов Сахалинской области 121d7da8-5f40-4e79-900a-ddba5a62f8aa \N f +0b6eaee2-e52c-4d79-ab97-921a98007539 НЕ трогать оргу Андреева 731b87ec-91e7-cf82-afcc-b2967439f7ae \N f +fb0ec464-70e8-421b-bb20-8a12bf5780c4 Военный комиссариат Чаплыгинского района Липецкой области 4b0309d6-f28a-49db-8950-5ffebd917e1e \N f +610d1eee-a270-4f35-b8aa-df017e102b5c Муниципального Военный Комиссариат Вятска 10b67909-b154-45e3-8eef-7f0fac9abb5d \N f +f7fadde2-de94-4386-926a-48f539b14564 Военный комиссариат города Елец и Елецкого района Липецкой области b042e073-e4ff-4873-b33e-4d44d17ec72d \N f +1c213331-711b-4263-8275-a0e099e0f78d Военный комиссариат Анивского района Сахалинской области cff66da8-2be0-4839-bd8e-332b1a150031 \N f +7e17cb21-4dfb-4f66-8996-1f87e78f8533 Военный комиссариат города Южно-Сахалинск Сахалинской области 2966d239-5241-4acb-9b4f-707ba75f44d5 \N f +dde8fd00-3648-49ed-a40e-c7caa58cab8d Военный комиссариат Ногликского района Сахалинской области eba7fd7d-e3da-49a7-8e65-8fc85e47190e \N f +1eabf1d8-3202-4359-b6be-dd045afbfa40 Военный комиссариат Липецкого района Липецкой области 70a19cf0-203a-4d04-a1c5-62c811c5ae66 \N f +e4671f49-8155-447a-a35c-67cb6468803a Военный комиссариат Усманского района Липецкой области 70b872b5-79de-4ef6-b5f3-11ecc68906bc \N f +618c4e20-c2b1-4783-bd35-3d5f897e5b83 Тестовый муниципальный комиссариат 1 00148448-3ad9-4e0d-b9d2-c5e81a05bcf6 \N f +0b713936-42c9-4e40-bde3-e941220b81de Военный комиссариат Звениговского района Республики Марий Эл 34c8685e-f08a-4877-afb1-a0589800a21c \N f +dbe21bb3-0416-4682-844a-07132e896a4b Тестовая организация fa005a7c-f833-0727-1924-990584ca6fee \N f +674eb255-c2a6-45e7-8395-46118f95cb9f Военный комиссариат Становлянского района Липецкой области 786b4e73-42dd-4c36-968e-8cce5d9debc6 \N f +78a69506-f876-4549-add0-dd9b95e4cde9 Тестовый муниципальный комиссариат 3 5584b973-f5c0-4aee-ae5a-0b0d0444ad1b \N f +7aaab069-b993-469c-9cdc-d05b48e01da2 Тестовый муниципальный комиссариат 4 d49f28d4-0eca-4fd7-b68c-a0a693223de0 \N f +58e31fcf-567c-4b4c-8bc7-eb5fb9676f08 тестт 6daa4999-df84-4469-bcc7-0f875affd41a \N f +e2683ce5-7de8-43b8-9ff3-2a2dc23a4e7c Военный комиссариат республики Мари Эл bb7aa36f-446e-4262-a609-28694ca2e398 \N f +0068b57d-1272-467d-8cfd-fb3edb9ce430 Военный комиссариат Сернурского района Республики Марий Эл 6f60bde2-33f8-4b33-be9f-cd57a6e041c4 \N f +1ac66d8e-29ad-4cab-93fc-cced8d8b94b6 Военный комиссариат города Йошкар-Ола Республики Марий Эл 55eae374-9bb5-4295-9e3a-5fbcdaba870d \N f +efdbd421-c2b7-4d4a-a2b0-9a377595b060 Военный комиссариат Мари-Турекского и Параньгинского районов Республики Марий Эл 30ce4b57-17ca-4b01-b685-1303ce22e3f2 \N f +44cbc7da-0243-4ec1-a3e0-604599501502 Военный комиссариат Куженерского района Республики Марий Эл d5dd717e-d2f4-4e93-860a-1bb1a97beb46 \N f +10653db1-856c-4f9b-b624-55bd2345380b Военный комиссариат города Волжск и Волжского района Республики Марий Эл 2befcbb4-7eb3-4a77-a3cb-f7f0eb0fab2e \N f +9e0d94ef-2c1f-4335-9279-497357dfe550 Военный комиссариат Советского района Республики Марий Эл 0ce35443-78f6-473a-97f2-e1f2d5ba7a4e \N f +51f57f8b-b2ef-4409-89cd-55b544c1dfcd Военный комиссариат Оршанского района Республики Марий Эл ac702380-5836-4bed-b846-a8c15b241a84 \N f +b08c1d90-915a-4bb4-a6c4-f44e2af9e63d Военный комиссариат Медедевского и Килемарского района Республики Марий Эл 6ed8b34f-d049-4b7f-8d1b-b99a1852236b \N f +8667f0ec-4ca3-4668-8846-8b665cebda8d Военный комиссариат города Козьмодемьянск, Горномарийского и Юринского районов Республики Марий Эл fc10523f-af31-4f6b-b0e2-00799758f634 \N f +a933e951-88c0-421d-a291-33fa4cea36fc Военный комиссариат Моркинского района Республики Марий Эл 1ff99d4f-7418-46bc-9c60-61a0e4ec77bd \N f +58684643-1498-446e-bd62-8883d17f72bd Военный комиссариат Вятска Тест 9a4640f6-143a-7642-51bd-d2b5ac5e9d1e \N f +6693233b-7893-43b5-80f5-08b282c35156 Военный комиссариат Добринского района Липецкой области 1cf09194-0f3b-4f2c-a14f-03604d68ff8f \N f +b9c6bc65-f4be-4b7e-842b-1c4d90f0c07f Вторая организация 52b4ee14-5af8-c029-26c2-80faba9e967d \N f +46c0431c-6d5e-469c-9b89-2f0ed33c2cef Военный комиссариат Добровского района Липецкой области 9c459101-fa10-4468-acbb-ce34df064aa1 \N f +4e4c712e-f3bb-4f2f-8cf1-6e1c9bda2677 Второе подразделение 5ea50fa7-0b85-4a27-8293-dbd36162cb9a \N f +4da4fafb-f3ba-4f18-8140-54fffd552d59 Военный комиссариат Тербунского и Воловского районов Липецкой области a2d517d4-a6c3-4cb8-8d9b-3c8d15a7007c \N f +d740fa3c-bb0a-42d7-9ba6-347fc7b57e4a АВфвафв 4c062d4a-3f77-c850-6388-dde909e3946b \N f +dfe9ce08-7f82-4d59-a21d-65c1a9f1ed3b Военный комиссариат города Корсаков и Корсаковского района Сахалинской области bacac23b-477f-4c26-8973-d83f0ca387fb \N f +9c09e210-6dd9-4bc3-a8ad-f3dd4d1cc70a Военный комиссариат города Александровск-Сахалинский, Александровск-Сахалинского и Тымовского районов Сахалинской области 82518cee-d3ce-40fd-a5b4-3e12647afc45 \N f +4dcebf08-40b2-4ba0-8fe8-700d67cdc5b2 Военный комиссариат Рыбновского района Рязанской области 22c64b79-f8e4-41e7-a2f3-1aa9df424fd9 \N f +3e77b04b-168d-4f27-a4b4-dce4ac71f394 Военный комиссариат города Михайлов, Михайловского и Захаровского районов Рязанской области 27f7b3c0-a222-45e0-896f-58bdf4341a41 \N f +e7eaf26b-e0b6-4b1f-8a8b-c7f4ec26fb90 Военный комиссариат города Касимов и Касимовского района Рязанской области 370bc761-ae40-46f1-b4d8-974317b5ceb6 \N f +d05d4f2f-168f-48c8-8817-f6403654a614 Тестовая Организация d1efbe15-744e-8521-5b8e-7ac604e4379b \N f +2386a304-73a2-40ce-b3ec-f02d688f3b20 Военный комиссариат Пронского и Старожиловского районов Рязанской области 37c187fe-4f37-45e6-9246-07148112367c \N f +4ac5c009-5dc4-4ed3-a2ae-ec3a583d8ec0 Военный комиссариат Ряжского и Александро-Невского районов Рязанской области dad6c101-34be-45c3-8173-57190cb69dfb \N f +aa6f0546-fc5d-4c51-a22d-27a8ce0041f3 Военный комиссариат города Сасово, Ермишинского, Кадомского, Сасовского и Пителинского районов Рязанской области f6a7fb8b-379f-4802-bf00-73f9c493825f \N f +8000b421-4a1a-4db4-97f7-e01daaa93f42 Военный комиссариат Новоторъяльского района Республики Марий Эл 0e10678c-f272-41c3-94dd-c15830321f9a \N f +ce800cef-2d23-43e3-974f-6b79de3270ae Администрация городского округа Щёлково Московской области fe655d90-893a-31f7-ff8b-9ccef8af0f83 \N f +3b767267-c2ef-468c-9e67-114ec4105832 ВК городских округов Щелково Фрязино Звездный городок и Лосино-Петровского городского округа Московской области e079ea79-50f1-4af4-beea-1b7648e86ce9 \N f +\. + + +-- +-- Data for Name: org_unit_additional_info; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.org_unit_additional_info (id, schema) FROM stdin; +20f455d2-2908-4a86-8ab5-2e500f2f5544 Ministry +e00feef8-7b8a-47c2-9a16-f0f7dc877f56 Region +72cd6795-0303-4894-82ad-911bc259d87e Region +d29346a7-dc0f-452d-859f-9bd3a83c219c Region +826c2187-7761-48ff-9399-25d1cc2a9297 Region +a7b1f5f2-e43f-44da-92c6-6f394f53ec95 Region +fb2a5e9b-5c86-4c6f-bea0-c4501d466549 Organization +521ce853-5cec-4d2c-8aa5-8f73e5ac3376 Organization +30de0a5c-a8df-4591-9bdc-52bfe5abb31d Organization +f8010c28-ec1b-415f-9546-f1b58e36279e Department +ba28c023-72f4-4ef5-b209-631f72f9488e Department +4d3daef5-a63d-417c-8235-97c2b772a182 Department +a3188467-3169-4b4e-847c-ffcca71c4440 Department +a67c6e12-b1fe-406b-b080-6b518324d6ea Department +bb80fa73-9e50-491c-98c1-1869d752bba7 Department +e6c40dc8-0065-42c2-8c50-87714b3a0f7c Department +cef595ce-c5af-44bb-9711-b0b7fd5b2df4 Department +3a36fc6d-e2d4-414b-a995-e6c8bff78b77 Department +659ed98b-9868-4168-adff-35e9e1bd9b0b Department +8a1f8307-76c9-4923-a0fe-88bc6a563fcb Department +6fabcb61-584f-401d-85f6-79a49e3d8f61 Department +08f29c2e-0682-4179-a8f1-21a278c22d26 Department +c93d2dc2-7741-4ca7-9690-14c764a77bf0 Department +d01db5cc-086b-4609-9aad-2c6397c4dd96 Department +939dd496-542a-45f4-91e0-90c331d85f5f Department +fd142737-1a6a-466f-a318-b1412b184b3d Department +50439548-a88f-4e49-93a1-ce29c1eb9b9a Department +908c5c7a-2942-4083-acbf-3a03c739b860 Department +928411d1-b6c2-40ea-a3df-4cad7aec98a5 Department +da5a8694-eae5-4da1-81b9-54ac3ac178f2 Department +9b83cc97-0439-458e-bc45-08315eb4d9b8 Department +cbc0917a-3052-41ea-a97e-f482b2c81b2d Department +b2e6bca2-d7eb-4654-8aef-d5c529e1c899 Organization +3cab3b8a-15f2-4c69-a3be-e7485717baa2 Organization +67db7b5b-0892-4908-bd20-864f932e80f9 Organization +6e1017e2-1e38-481f-85c2-e828247f2b79 Organization +69865d28-3f69-4047-8d4d-9469a6c33d5f Department +77df47ff-f9d1-47f6-89c5-dc214b91a2a2 Organization +38392eea-e14b-48b5-a0a1-2cff65bcb396 Organization +1cb021ac-4335-40d4-987c-7c7648d104be Department +2330352b-59ff-4b3f-b534-196fb5b20f9a Organization +4b2365ea-b799-48d4-ab00-b6f6dac5b952 Organization +4e36849b-6652-483d-aecf-a3d9e18e42b9 Department +8bd65d2b-630c-4513-964b-d70b48726bc5 Department +2caa5eae-b6c8-4943-8b8b-428dc9c6cb4d Department +b00a1841-f444-4fb4-827a-a4e1075eac01 Department +0b6eaee2-e52c-4d79-ab97-921a98007539 Organization +fb0ec464-70e8-421b-bb20-8a12bf5780c4 Department +610d1eee-a270-4f35-b8aa-df017e102b5c Department +f7fadde2-de94-4386-926a-48f539b14564 Department +1c213331-711b-4263-8275-a0e099e0f78d Department +7e17cb21-4dfb-4f66-8996-1f87e78f8533 Department +dde8fd00-3648-49ed-a40e-c7caa58cab8d Department +1eabf1d8-3202-4359-b6be-dd045afbfa40 Department +e4671f49-8155-447a-a35c-67cb6468803a Department +618c4e20-c2b1-4783-bd35-3d5f897e5b83 Department +0b713936-42c9-4e40-bde3-e941220b81de Department +dbe21bb3-0416-4682-844a-07132e896a4b Organization +674eb255-c2a6-45e7-8395-46118f95cb9f Department +78a69506-f876-4549-add0-dd9b95e4cde9 Department +7aaab069-b993-469c-9cdc-d05b48e01da2 Department +58e31fcf-567c-4b4c-8bc7-eb5fb9676f08 Department +e2683ce5-7de8-43b8-9ff3-2a2dc23a4e7c Organization +0068b57d-1272-467d-8cfd-fb3edb9ce430 Department +1ac66d8e-29ad-4cab-93fc-cced8d8b94b6 Department +efdbd421-c2b7-4d4a-a2b0-9a377595b060 Department +44cbc7da-0243-4ec1-a3e0-604599501502 Department +10653db1-856c-4f9b-b624-55bd2345380b Department +9e0d94ef-2c1f-4335-9279-497357dfe550 Department +51f57f8b-b2ef-4409-89cd-55b544c1dfcd Department +b08c1d90-915a-4bb4-a6c4-f44e2af9e63d Department +8667f0ec-4ca3-4668-8846-8b665cebda8d Department +a933e951-88c0-421d-a291-33fa4cea36fc Department +58684643-1498-446e-bd62-8883d17f72bd Organization +6693233b-7893-43b5-80f5-08b282c35156 Department +b9c6bc65-f4be-4b7e-842b-1c4d90f0c07f Organization +46c0431c-6d5e-469c-9b89-2f0ed33c2cef Department +4e4c712e-f3bb-4f2f-8cf1-6e1c9bda2677 Department +4da4fafb-f3ba-4f18-8140-54fffd552d59 Department +d740fa3c-bb0a-42d7-9ba6-347fc7b57e4a Organization +dfe9ce08-7f82-4d59-a21d-65c1a9f1ed3b Department +9c09e210-6dd9-4bc3-a8ad-f3dd4d1cc70a Department +4dcebf08-40b2-4ba0-8fe8-700d67cdc5b2 Department +3e77b04b-168d-4f27-a4b4-dce4ac71f394 Department +e7eaf26b-e0b6-4b1f-8a8b-c7f4ec26fb90 Department +d05d4f2f-168f-48c8-8817-f6403654a614 Organization +2386a304-73a2-40ce-b3ec-f02d688f3b20 Department +4ac5c009-5dc4-4ed3-a2ae-ec3a583d8ec0 Department +aa6f0546-fc5d-4c51-a22d-27a8ce0041f3 Department +8000b421-4a1a-4db4-97f7-e01daaa93f42 Department +ce800cef-2d23-43e3-974f-6b79de3270ae Organization +3b767267-c2ef-468c-9e67-114ec4105832 Department +\. + + +-- +-- Data for Name: simple_credentials; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.simple_credentials (user_account_id, password, password_expires, password_updated) FROM stdin; +7c8009d5-fd52-42ba-99f0-4474c0dc7302 $2a$11$sjiBXVZzCDJ0NIQoC7i4TuGv/NQu4S/zn5A7ygeTw.JvfJdMXA0sm \N 2024-10-09 16:39:03.578103 +008af907-0fa2-4c14-b163-6e96f2d386ef $2a$11$iAVhYUFCLF/ZN8Acm4nNauXnHAeKpX0O6A.nLb9uIp7biNiVW1jPG \N 2024-10-09 19:54:07 +67ed8a30-2596-4dad-a782-756c7dfc4c72 $2a$11$bNNQ/5bLA5HMpJkjCt.4J.M37RR59tSjs/JJVwq6PVBFfGpF6MweO \N 2024-10-17 10:51:05.996629 +4caa6156-3cfb-4ea5-aa42-d3ff6f10ff8c $2a$11$Fv1Pvx74a5lfVwtRVzoX2enm8fmXjN3ykUL6qMcSpC96C22X9qU/2 \N 2024-10-17 10:50:04.067612 +408ff49a-4004-43b5-b040-3ca4ae363d03 $2a$11$xWAtGkq2VVcdd8c9GNFxn.JNyfts4./Q7QNgG1M75NTYj3OOufWhO \N 2024-10-17 12:49:45.512511 +\. + + +-- +-- Data for Name: user_account; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.user_account (user_account_id, email, first_name, last_name, middle_name, created, updated, locked, org_unit_id, username, phone, email_confirmed, user_source, source_name) FROM stdin; +008af907-0fa2-4c14-b163-6e96f2d386ef demo@example.com Demo Demo \N 2024-10-09 16:39:03.569461+03 2024-10-09 19:54:07+03 f 20f455d2-2908-4a86-8ab5-2e500f2f5544 demo@example.com \N t LOCAL \N +7c8009d5-fd52-42ba-99f0-4474c0dc7302 jbpm.administrator@example.com JBPM Administrator \N 2024-10-09 16:39:03.578103+03 2024-10-09 16:39:03.578103+03 f 3516544f-64c5-4883-9047-28bcce74d1be Administrator \N t LOCAL \N +67ed8a30-2596-4dad-a782-756c7dfc4c72 petrova@mail.ru Анна Петрова Сергеевна 2024-10-17 13:51:05.996629+03 2024-10-17 15:42:39+03 f 0068b57d-1272-467d-8cfd-fb3edb9ce430 petrova 9788554411 t LOCAL \N +4caa6156-3cfb-4ea5-aa42-d3ff6f10ff8c ivanov@mail.ru Иван Иванов Иванович 2024-10-17 13:50:04.067612+03 2024-10-17 15:46:34+03 f 20f455d2-2908-4a86-8ab5-2e500f2f5544 ivanov 9172010203 t LOCAL \N +408ff49a-4004-43b5-b040-3ca4ae363d03 sidorov@mail.ru Сидор Сидоров Сидорович 2024-10-17 15:49:45.512511+03 2024-10-17 15:50:58+03 f 20f455d2-2908-4a86-8ab5-2e500f2f5544 sidorov \N t LOCAL \N +\. + + +-- +-- Data for Name: user_account_addition_info; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.user_account_addition_info (user_account_addition_info_id, user_account_id, ip_address, job_position_id, comment, user_loaded, password, sex, birth_date, snils) FROM stdin; +7 4caa6156-3cfb-4ea5-aa42-d3ff6f10ff8c 192.168.1.1 1 \N f ivanov MALE 2000-01-01 99944455566 +8 67ed8a30-2596-4dad-a782-756c7dfc4c72 192.168.1.2 1 \N f petrova FEMALE 2002-02-02 99955511100 +9 408ff49a-4004-43b5-b040-3ca4ae363d03 192.168.1.3 1 \N f sidorov MALE 2000-02-01 \N +\. + + +-- +-- Data for Name: user_account_refresh_token; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.user_account_refresh_token (user_account_refresh_token_id, user_account_id, refresh_token, access_token, expiration_time) FROM stdin; +24c6675c-af53-4e67-a566-b376ccac1589 67ed8a30-2596-4dad-a782-756c7dfc4c72 eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI2N2VkOGEzMC0yNTk2LTRkYWQtYTc4Mi03NTZjN2RmYzRjNzIiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJqdGkiOiJjY2FhNDdmOS02YjM5LTQ1MDAtOTBiZi1kMGNlMzIyNjhhNWMiLCJpYXQiOjE3MjkxNzAwMzcsImV4cCI6MTczMTc2MjAzN30.PFQMzuGXPxUD-GFxY6kdVnzNlfNMpj7OdCwLhVKUKI8 eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI2N2VkOGEzMC0yNTk2LTRkYWQtYTc4Mi03NTZjN2RmYzRjNzIiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJpYXQiOjE3MjkxNzAwMzcsImV4cCI6MTcyOTE3MzYzN30.WAiOQJ56ofctHp3THhAGFSSpueZ-r9XFjNIdI3q0_z4 2024-11-16 13:00:38 +5bfc76d0-291b-4dca-abb3-31528360965c 008af907-0fa2-4c14-b163-6e96f2d386ef eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJqdGkiOiI2MTM1MjdlYy0yYTg3LTQ4MzYtYmRjMC1mYWY5YWI0YzhmZjIiLCJpYXQiOjE3MjkxNjkzMDUsImV4cCI6MTczMTc2MTMwNX0.3QoWZrwqCklbH8gFKA4HbWYAGLyCAUztWlHrt0eo4VE eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJpYXQiOjE3MjkxNjkzMDUsImV4cCI6MTcyOTE3MjkwNX0.aEk5BzAFcNgIub8lztcyxtSCgDkjdmZw7IyE8cmHNlw 2024-11-16 12:48:26 +d1c451c8-d326-4a47-bd01-ed097f1b767c 008af907-0fa2-4c14-b163-6e96f2d386ef eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJqdGkiOiJjOTgwN2RiMy1mZmIzLTRmOTgtYjgxZS1mMDdhNjlkZmE3M2YiLCJpYXQiOjE3Mjg0OTU4NTEsImV4cCI6MTczMTA4Nzg1MX0.u-jbSHWf7s5ntUIHvRMVe9owtV38PaK98is2VAq18vU eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJpYXQiOjE3Mjg0OTU4NTEsImV4cCI6MTcyODQ5OTQ1MX0.5YHa_73ooJZY_kI69u1MMkKSD2NRynhsaXO06-NJLS0 2024-11-08 20:44:12 +c88d527a-2637-4569-9338-24f4ee808d61 408ff49a-4004-43b5-b040-3ca4ae363d03 eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI0MDhmZjQ5YS00MDA0LTQzYjUtYjA0MC0zY2E0YWUzNjNkMDMiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJqdGkiOiI0ZDFiNzU5Ny0xM2IzLTQ0ZjUtYmM0My0zZjhkYzQ3ZDYxYjAiLCJpYXQiOjE3MjkxNzY5OTEsImV4cCI6MTczMTc2ODk5MX0.LsmLz-5moM4CN0Y3uTfl0hhuMu4lZ95ddq62k4a-334 eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI0MDhmZjQ5YS00MDA0LTQzYjUtYjA0MC0zY2E0YWUzNjNkMDMiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJpYXQiOjE3MjkxNzY5OTEsImV4cCI6MTcyOTE4MDU5MX0.UUKYeeAH_PSSlXe0OU1zFo7DEeojrXH62duGBKjg3qM 2024-11-16 17:56:31 +5c0927b0-367e-45c1-a59a-d0752dd77ec2 008af907-0fa2-4c14-b163-6e96f2d386ef eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJqdGkiOiJmMjJhZDlhNC1kMTVlLTQwNGItYjA5MS00NjRmZGIyZWE0YzMiLCJpYXQiOjE3MjkxMTI5MzgsImV4cCI6MTczMTcwNDkzOH0.2ZykikGa7jkfWFHown3vlsso8fILpav_BucTglcbpSI eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJpYXQiOjE3MjkxMTI5MzgsImV4cCI6MTcyOTExNjUzOH0.YCTjV9SehbVWGqX89bi_TaHq3htLDZa3x1uLQTQiMUw 2024-11-15 21:08:58 +e6631f12-1356-4913-9cf3-2150d7c12591 008af907-0fa2-4c14-b163-6e96f2d386ef eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJqdGkiOiI1MTAyNjYwYS04ZmY1LTRkZDktYWNkZC0wMmVhOTFhMmVmYTQiLCJpYXQiOjE3MjkxNTIxNjMsImV4cCI6MTczMTc0NDE2M30.7iDzBcZyXsGxx-WLBy62ybvcfIOUw7LNu1JRHb69-N0 eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMDhhZjkwNy0wZmEyLTRjMTQtYjE2My02ZTk2ZjJkMzg2ZWYiLCJzaW1wbGVDcmVkZW50aWFscyI6dHJ1ZSwiaXNzIjoiZXJ2dV91c3JfYXV0b3JpdHkuZXJ2dV91c3JfYXV0b3JpdHkiLCJpYXQiOjE3MjkxNTIxNjMsImV4cCI6MTcyOTE1NTc2M30.HG6xSGnlihPxPFYXCbMwFDfKP4u9X4joBrC2L0wZCxM 2024-11-16 08:02:43 +\. + + +-- +-- Data for Name: user_account_verification; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.user_account_verification (user_account_id, token, created) FROM stdin; +\. + + +-- +-- Data for Name: user_group; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.user_group (user_group_id, name, created, updated, access_level_id) FROM stdin; +62cd890b-99f7-47a8-be60-e330186b17a0 BPMN User 2024-10-09 16:39:03.795788+03 2024-10-09 16:39:03.795788+03 a6bf4b31-6648-4095-b269-2a950b548a10 +ddfdc772-7aee-492f-be7d-7e95ea2f45b3 BPMN Admin 2024-10-09 16:39:03.795788+03 2024-10-09 16:39:03.795788+03 a6bf4b31-6648-4095-b269-2a950b548a10 +84c5c1e2-081e-45e1-a874-d6bb232e57ad Security Admin 2024-10-09 16:39:03.795788+03 2024-10-09 16:39:03.795788+03 a3b84288-1c96-448b-ba33-7a454f311757 +eaf300bc-a4cf-47c1-b5cb-d2b8abef02e5 Super Admin 2024-10-09 16:39:04.187299+03 2024-10-09 16:39:04.187299+03 2b6038cb-15bf-4bb0-87df-88a1557b93d7 +273d8bbd-0e82-4064-a548-850e9aa61756 BPMN Superuser 2024-10-09 16:39:04.086935+03 2024-10-09 16:39:04.086935+03 a6bf4b31-6648-4095-b269-2a950b548a10 +22ee608b-dd9d-4633-906d-7c4efca231a0 Demo 2024-10-09 16:39:03.899156+03 2024-10-09 19:54:18+03 a6bf4b31-6648-4095-b269-2a950b548a10 +25d720ff-fa5e-41f2-bbe9-0db90187b0f4 Ответственный за ЗИ 2024-10-09 20:47:31+03 2024-10-09 20:47:31+03 a6bf4b31-6648-4095-b269-2a950b548a10 +acf292b2-9b46-4bf2-9254-39696d26f02b Ответственный за ЗИ СВК 2024-10-09 20:49:39+03 2024-10-09 20:49:39+03 a6bf4b31-6648-4095-b269-2a950b548a10 +00fe3742-dbb3-4639-aabd-3a10050ecd9e Администратор ПОИБ 2024-10-09 20:51:04+03 2024-10-09 20:51:04+03 a6bf4b31-6648-4095-b269-2a950b548a10 +6428cb6d-2949-4570-85b5-4b81e33b19ff Сотрудник ВК 2024-10-17 12:15:42+03 2024-10-17 12:15:42+03 a6bf4b31-6648-4095-b269-2a950b548a10 +0c61996f-c1db-483e-8456-5a5a9dc6dcdd Военный комиссар 2024-10-17 12:15:30+03 2024-10-17 12:15:30+03 a6bf4b31-6648-4095-b269-2a950b548a10 +\. + + +-- +-- Data for Name: user_role; Type: TABLE DATA; Schema: security; Owner: ervu +-- + +COPY security.user_role (user_role_id, name, created, updated) FROM stdin; +767ae8cf-af01-44d4-86ef-fcb143373407 BPMN User 2024-10-09 16:39:03.670436+03 2024-10-09 16:39:03.670436+03 +aa14ba1d-0b61-4e33-8474-7c2d98944b12 BPMN Admin 2024-10-09 16:39:03.670436+03 2024-10-09 16:39:03.670436+03 +72eb6a8e-af55-4f16-b69a-49f7b8a74f8d Security - Role Admin 2024-10-09 16:39:03.670436+03 2024-10-09 16:39:03.670436+03 +1408a814-0729-41ae-b645-6150fa79071f Security - Group Admin 2024-10-09 16:39:03.670436+03 2024-10-09 16:39:03.670436+03 +6d2a6110-0d6b-4ae6-a143-c73fde6d65a2 Security - User Admin 2024-10-09 16:39:03.670436+03 2024-10-09 16:39:03.670436+03 +b896f8c9-29cb-4384-992e-44c7ad0ec1d5 Security - Authority Admin 2024-10-09 16:39:03.670436+03 2024-10-09 16:39:03.670436+03 +2569ba58-1f8f-43ea-8b2c-0d373cf501fe BPMN Superuser 2024-10-09 16:39:03.884118+03 2024-10-09 16:39:03.884118+03 +32f9413b-619a-4e4b-85f9-4c4699267b37 Security - Org Unit Admin 2024-10-09 16:39:04.149305+03 2024-10-09 16:39:04.149305+03 +17c97647-f53c-400f-a700-ad349eeee0c3 Ответственный за ЗИ 2024-10-09 16:39:06+03 2024-10-09 16:39:06+03 +68a81927-259d-4e2a-84d7-c565a9d0f943 Администратор ПОИБ 2024-10-09 16:39:06+03 2024-10-09 16:39:06+03 +726dc966-6832-4f5c-b867-2797259d5104 Ответственный за ЗИ СВК 2024-10-09 16:39:06+03 2024-10-09 16:39:06+03 +65b50a78-4f68-4bd9-9836-4fb3e2fb2c6a Управления параметрами информационной безопасности 2024-10-09 16:39:06+03 2024-10-09 16:39:06+03 +cc1ac346-71bf-4fa7-9300-78730a1bed08 Список пользователей 2024-10-09 16:39:06+03 2024-10-09 16:39:06+03 +30c92f56-439c-463d-829c-93bcbf6b64d1 Военный комиссар 2024-10-17 12:11:00+03 2024-10-17 12:11:00+03 +720d8a2b-1b30-4002-9a44-8e531c86460c Сотрудник ВК 2024-10-17 12:11:00+03 2024-10-17 12:11:00+03 +\. + + +-- +-- Name: job_position_job_position_id_seq; Type: SEQUENCE SET; Schema: public; Owner: ervu +-- + +SELECT pg_catalog.setval('public.job_position_job_position_id_seq', 2, true); + + +-- +-- Name: link_user_application_user_gr_link_user_application_user_gr_seq; Type: SEQUENCE SET; Schema: public; Owner: ervu +-- + +SELECT pg_catalog.setval('public.link_user_application_user_gr_link_user_application_user_gr_seq', 21, true); + + +-- +-- Name: user_application_document_user_application_document_id_seq; Type: SEQUENCE SET; Schema: public; Owner: ervu +-- + +SELECT pg_catalog.setval('public.user_application_document_user_application_document_id_seq', 19, true); + + +-- +-- Name: user_application_list_user_application_list_id_seq; Type: SEQUENCE SET; Schema: public; Owner: ervu +-- + +SELECT pg_catalog.setval('public.user_application_list_user_application_list_id_seq', 20, true); + + +-- +-- Name: user_account_addition_info_user_account_addition_info_id_seq; Type: SEQUENCE SET; Schema: security; Owner: ervu +-- + +SELECT pg_catalog.setval('security.user_account_addition_info_user_account_addition_info_id_seq', 9, true); + + +-- +-- Name: link_user_application_user_group uni_user_group; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.link_user_application_user_group + ADD CONSTRAINT uni_user_group UNIQUE (user_application_list_id, user_group_id); + + +-- +-- Name: link_user_group_user_role uni_group_role; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_group_user_role + ADD CONSTRAINT uni_group_role UNIQUE (user_group_id, user_role_id); + + +-- +-- Name: link_user_role_authority uni_role_authority; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_role_authority + ADD CONSTRAINT uni_role_authority UNIQUE (user_role_id, authority_id); + + +-- +-- Name: link_user_account_user_group uni_user_group; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_account_user_group + ADD CONSTRAINT uni_user_group UNIQUE (user_account_id, user_group_id); + + +-- +-- Name: job_position pk_job_position; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.job_position + ADD CONSTRAINT pk_job_position PRIMARY KEY (job_position_id); + + +-- +-- Name: link_user_application_user_group pk_link_user_application_user_group; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.link_user_application_user_group + ADD CONSTRAINT pk_link_user_application_user_group PRIMARY KEY (link_user_application_user_group_id); + + +-- +-- Name: user_application_document pk_user_application_document; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.user_application_document + ADD CONSTRAINT pk_user_application_document PRIMARY KEY (user_application_document_id); + + +-- +-- Name: user_application_list pk_user_application_list; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.user_application_list + ADD CONSTRAINT pk_user_application_list PRIMARY KEY (user_application_list_id); + + +-- +-- Name: recruitment recruitment_idm_id_key; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.recruitment + ADD CONSTRAINT recruitment_idm_id_key UNIQUE (idm_id); + + +-- +-- Name: recruitment recruitment_pkey; Type: CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.recruitment + ADD CONSTRAINT recruitment_pkey PRIMARY KEY (id); + + +-- +-- Name: databasechangeloglock databasechangeloglock_pkey; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.databasechangeloglock + ADD CONSTRAINT databasechangeloglock_pkey PRIMARY KEY (id); + + +-- +-- Name: org_unit org_unit_code_key; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.org_unit + ADD CONSTRAINT org_unit_code_key UNIQUE (code); + + +-- +-- Name: access_level pk_access_level; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.access_level + ADD CONSTRAINT pk_access_level PRIMARY KEY (access_level_id); + + +-- +-- Name: authority pk_authority; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.authority + ADD CONSTRAINT pk_authority PRIMARY KEY (authority_id); + + +-- +-- Name: simple_credentials pk_domestic_user; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.simple_credentials + ADD CONSTRAINT pk_domestic_user PRIMARY KEY (user_account_id); + + +-- +-- Name: esia_user pk_esia_user; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.esia_user + ADD CONSTRAINT pk_esia_user PRIMARY KEY (esia_user_id); + + +-- +-- Name: user_group pk_group; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_group + ADD CONSTRAINT pk_group PRIMARY KEY (user_group_id); + + +-- +-- Name: link_user_group_user_role pk_group_role; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_group_user_role + ADD CONSTRAINT pk_group_role PRIMARY KEY (link_user_group_user_role_id); + + +-- +-- Name: org_unit pk_org_unit; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.org_unit + ADD CONSTRAINT pk_org_unit PRIMARY KEY (id); + + +-- +-- Name: org_unit_additional_info pk_org_unit_additional_info; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.org_unit_additional_info + ADD CONSTRAINT pk_org_unit_additional_info PRIMARY KEY (id); + + +-- +-- Name: user_role pk_role; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_role + ADD CONSTRAINT pk_role PRIMARY KEY (user_role_id); + + +-- +-- Name: link_user_role_authority pk_role_authority; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_role_authority + ADD CONSTRAINT pk_role_authority PRIMARY KEY (user_role_authority_id); + + +-- +-- Name: user_account pk_user; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account + ADD CONSTRAINT pk_user PRIMARY KEY (user_account_id); + + +-- +-- Name: user_account_addition_info pk_user_account_addition_info; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_addition_info + ADD CONSTRAINT pk_user_account_addition_info PRIMARY KEY (user_account_addition_info_id); + + +-- +-- Name: user_account_refresh_token pk_user_account_refresh_token; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_refresh_token + ADD CONSTRAINT pk_user_account_refresh_token PRIMARY KEY (user_account_refresh_token_id); + + +-- +-- Name: user_account_verification pk_user_account_verification; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_verification + ADD CONSTRAINT pk_user_account_verification PRIMARY KEY (user_account_id); + + +-- +-- Name: link_user_account_user_group pk_user_group; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_account_user_group + ADD CONSTRAINT pk_user_group PRIMARY KEY (link_user_account_user_group_id); + + +-- +-- Name: access_level uni_access_level; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.access_level + ADD CONSTRAINT uni_access_level UNIQUE (level); + + +-- +-- Name: authority uni_authority_name; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.authority + ADD CONSTRAINT uni_authority_name UNIQUE (name); + + +-- +-- Name: esia_user uni_esia_user1; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.esia_user + ADD CONSTRAINT uni_esia_user1 UNIQUE (user_account_id); + + +-- +-- Name: esia_user uni_esia_user2; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.esia_user + ADD CONSTRAINT uni_esia_user2 UNIQUE (person_contact_id); + + +-- +-- Name: user_group uni_group_name; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_group + ADD CONSTRAINT uni_group_name UNIQUE (name); + + +-- +-- Name: user_role uni_role_name; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_role + ADD CONSTRAINT uni_role_name UNIQUE (name); + + +-- +-- Name: user_account user_account_username_unique; Type: CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account + ADD CONSTRAINT user_account_username_unique UNIQUE (username); + + +-- +-- Name: recruitment_idm_idx; Type: INDEX; Schema: public; Owner: ervu +-- + +CREATE INDEX recruitment_idm_idx ON public.recruitment USING btree (idm_id); + + +-- +-- Name: recruitment_military_code_idx; Type: INDEX; Schema: public; Owner: ervu +-- + +CREATE INDEX recruitment_military_code_idx ON public.recruitment USING btree (military_code); + + +-- +-- Name: recruitment_parent_idx; Type: INDEX; Schema: public; Owner: ervu +-- + +CREATE INDEX recruitment_parent_idx ON public.recruitment USING btree (parent_id); + + +-- +-- Name: recruitment_region_idx; Type: INDEX; Schema: public; Owner: ervu +-- + +CREATE INDEX recruitment_region_idx ON public.recruitment USING btree (region_id); + + +-- +-- Name: idx_refresh_token_user_account_id; Type: INDEX; Schema: security; Owner: ervu +-- + +CREATE INDEX idx_refresh_token_user_account_id ON security.user_account_refresh_token USING btree (user_account_id); + + +-- +-- Name: link_user_application_user_group fk_user_application_list; Type: FK CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.link_user_application_user_group + ADD CONSTRAINT fk_user_application_list FOREIGN KEY (user_application_list_id) REFERENCES public.user_application_list(user_application_list_id) ON DELETE CASCADE; + + +-- +-- Name: link_user_application_user_group fk_user_group; Type: FK CONSTRAINT; Schema: public; Owner: ervu +-- + +ALTER TABLE ONLY public.link_user_application_user_group + ADD CONSTRAINT fk_user_group FOREIGN KEY (user_group_id) REFERENCES security.user_group(user_group_id); + + +-- +-- Name: simple_credentials fk_domestic_user1; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.simple_credentials + ADD CONSTRAINT fk_domestic_user1 FOREIGN KEY (user_account_id) REFERENCES security.user_account(user_account_id) ON DELETE CASCADE; + + +-- +-- Name: esia_user fk_esia_user1; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.esia_user + ADD CONSTRAINT fk_esia_user1 FOREIGN KEY (user_account_id) REFERENCES security.user_account(user_account_id); + + +-- +-- Name: link_user_group_user_role fk_group_role_group; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_group_user_role + ADD CONSTRAINT fk_group_role_group FOREIGN KEY (user_group_id) REFERENCES security.user_group(user_group_id) ON DELETE CASCADE; + + +-- +-- Name: link_user_group_user_role fk_group_role_role; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_group_user_role + ADD CONSTRAINT fk_group_role_role FOREIGN KEY (user_role_id) REFERENCES security.user_role(user_role_id); + + +-- +-- Name: org_unit fk_org_unit_parent_id; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.org_unit + ADD CONSTRAINT fk_org_unit_parent_id FOREIGN KEY (parent_id) REFERENCES security.org_unit(id) ON DELETE SET NULL; + + +-- +-- Name: link_user_role_authority fk_role_authority_authority; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_role_authority + ADD CONSTRAINT fk_role_authority_authority FOREIGN KEY (authority_id) REFERENCES security.authority(authority_id); + + +-- +-- Name: link_user_role_authority fk_role_authority_role; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_role_authority + ADD CONSTRAINT fk_role_authority_role FOREIGN KEY (user_role_id) REFERENCES security.user_role(user_role_id) ON DELETE CASCADE; + + +-- +-- Name: user_account_addition_info fk_user_account_id; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_addition_info + ADD CONSTRAINT fk_user_account_id FOREIGN KEY (user_account_id) REFERENCES security.user_account(user_account_id); + + +-- +-- Name: user_account_refresh_token fk_user_account_refresh_token; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_refresh_token + ADD CONSTRAINT fk_user_account_refresh_token FOREIGN KEY (user_account_id) REFERENCES security.user_account(user_account_id) ON DELETE CASCADE; + + +-- +-- Name: user_account_verification fk_user_account_user_account_verification; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account_verification + ADD CONSTRAINT fk_user_account_user_account_verification FOREIGN KEY (user_account_id) REFERENCES security.user_account(user_account_id) ON DELETE CASCADE; + + +-- +-- Name: user_group fk_user_group_access_level; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_group + ADD CONSTRAINT fk_user_group_access_level FOREIGN KEY (access_level_id) REFERENCES security.access_level(access_level_id); + + +-- +-- Name: link_user_account_user_group fk_user_group_group; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_account_user_group + ADD CONSTRAINT fk_user_group_group FOREIGN KEY (user_group_id) REFERENCES security.user_group(user_group_id); + + +-- +-- Name: link_user_account_user_group fk_user_group_user; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.link_user_account_user_group + ADD CONSTRAINT fk_user_group_user FOREIGN KEY (user_account_id) REFERENCES security.user_account(user_account_id) ON DELETE CASCADE; + + +-- +-- Name: user_account fk_user_org_unit_id; Type: FK CONSTRAINT; Schema: security; Owner: ervu +-- + +ALTER TABLE ONLY security.user_account + ADD CONSTRAINT fk_user_org_unit_id FOREIGN KEY (org_unit_id) REFERENCES security.org_unit(id); + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/config/micord.env b/config/micord.env new file mode 100644 index 00000000..4ce9aceb --- /dev/null +++ b/config/micord.env @@ -0,0 +1,13 @@ +# App datasource +DB_APP_USERNAME=ervu +DB_APP_PASSWORD=ervu +DB_APP_HOST=10.10.31.118 +DB_APP_PORT=5432 +DB_APP_NAME=ervu_usr_autority + +# Security datasource +DB_SEC_USERNAME=ervu +DB_SEC_PASSWORD=ervu +DB_SEC_HOST=10.10.31.118 +DB_SEC_PORT=5432 +DB_SEC_NAME=ervu_usr_autority diff --git a/config/patches/add-logger-database.cli b/config/patches/add-logger-database.cli new file mode 100644 index 00000000..83ee8938 --- /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 00000000..eafe9153 --- /dev/null +++ b/config/patches/default.cli @@ -0,0 +1,67 @@ +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} + +xa-data-source add \ + --name=JBPMDS \ + --enabled=true \ + --driver-name=postgresql \ + --jndi-name=java:jboss/datasources/jbpmDS \ + --user-name=${env.DB_JBPM_USERNAME:jbpm} \ + --password=${env.DB_JBPM_PASSWORD:jbpmpassword} \ + --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_JBPM_HOST:db},PortNumber=${env.DB_JBPM_PORT:5432},DatabaseName=${env.DB_JBPM_NAME:jbpm} + +xa-data-source add \ + --name=SECURITYDS \ + --enabled=true \ + --driver-name=postgresql \ + --jndi-name=java:/webbpm/security-ds \ + --user-name=${env.DB_SEC_USERNAME:security_user} \ + --password=${env.DB_SEC_PASSWORD:secpassword} \ + --max-pool-size=70 \ + --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 \ + --query-timeout=300 \ + --xa-datasource-properties=ServerName=${env.DB_SEC_HOST:db},PortNumber=${env.DB_SEC_PORT:5432},DatabaseName=${env.DB_SEC_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) +/system-property=webbpm.security.cookie.httpOnly:add(value=${env.WEBBPM_SECURITY_COOKIE_HTTPONLY:true}) +/system-property=webbpm.security.cookie.path:add(value=${env.WEBBPM_SECURITY_COOKIE_PATH:}) diff --git a/config/patches/system/add-demo-user.sh b/config/patches/system/add-demo-user.sh new file mode 100644 index 00000000..32b2986a --- /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 00000000..66566bf1 --- /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 00000000..100c4d37 --- /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/distribution/pom.xml b/distribution/pom.xml new file mode 100644 index 00000000..a05df2b2 --- /dev/null +++ b/distribution/pom.xml @@ -0,0 +1,66 @@ + + + 4.0.0 + + ervu_usr_autority + ervu_usr_autority + 1.0.0-SNAPSHOT + + + ervu_usr_autority.ervu_usr_autority + distribution + ear + + + /${project.parent.artifactId} + + + + + ervu_usr_autority.ervu_usr_autority + backend + war + + + ervu_usr_autority.ervu_usr_autority + frontend + war + + + + + + + org.apache.maven.plugins + maven-ear-plugin + 3.2.0 + + + + ervu_usr_autority.ervu_usr_autority + frontend + / + frontend.war + + + ervu_usr_autority.ervu_usr_autority + backend + ${backendContext} + ${project.parent.artifactId}.war + + + + + + ${project.parent.artifactId} + + + + + enable-version-in-url + + /${project.parent.artifactId}-${project.version} + + + + diff --git a/frontend/.npmrc b/frontend/.npmrc new file mode 100644 index 00000000..8ed054b1 --- /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 00000000..965697d3 --- /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 00000000..448da143 --- /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 00000000..f84e4067 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,23 @@ + + + + ervu_usr_autority + + + + + + + + + + + + +
+ + diff --git a/frontend/index.webpack.html b/frontend/index.webpack.html new file mode 100644 index 00000000..23b9a406 --- /dev/null +++ b/frontend/index.webpack.html @@ -0,0 +1,11 @@ + + + + ervu_usr_autority + + + + +
+ + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 00000000..be331c9b --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,8929 @@ +{ + "name": "ervu_usr_autority", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@angular-devkit/architect": { + "version": "0.13.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@angular-devkit/architect/-/architect-0.13.9.tgz", + "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": { + "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" + } + }, + "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" + } + }, + "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.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/compat-data/-/compat-data-7.25.7.tgz", + "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "dev": true + }, + "@babel/core": { + "version": "7.18.10", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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.3", + "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dev": true, + "requires": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", + "dev": true, + "requires": { + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz", + "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", + "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-class-features-plugin": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz", + "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/traverse": "^7.25.7", + "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.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz", + "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "regexpu-core": "^6.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-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + }, + "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-member-expression-to-functions": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz", + "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz", + "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==", + "dev": true, + "requires": { + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz", + "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-wrap-function": "^7.25.7", + "@babel/traverse": "^7.25.7" + } + }, + "@babel/helper-replace-supers": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz", + "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/traverse": "^7.25.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz", + "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz", + "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==", + "dev": true, + "requires": { + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/helpers": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "dev": true, + "requires": { + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/highlight": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "dev": true, + "requires": { + "@babel/types": "^7.25.7" + } + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz", + "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz", + "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7" + } + }, + "@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-class-properties": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "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-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "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-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "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-private-methods": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "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-class-properties": { + "version": "7.12.13", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", + "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz", + "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz", + "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz", + "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz", + "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz", + "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/traverse": "^7.25.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz", + "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/template": "^7.25.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz", + "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz", + "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz", + "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz", + "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz", + "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz", + "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz", + "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz", + "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz", + "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", + "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz", + "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz", + "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz", + "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz", + "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.7.tgz", + "integrity": "sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz", + "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz", + "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz", + "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz", + "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz", + "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz", + "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz", + "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz", + "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz", + "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz", + "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz", + "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" + } + }, + "@babel/preset-env": { + "version": "7.18.10", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "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/runtime": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/traverse": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "@babel/types": { + "version": "7.25.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "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/source-map": { + "version": "0.3.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "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.2.2-micord.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-4.2.2-micord.1.tgz", + "integrity": "sha512-SIj+Qbz8TtXldrxEJgjwuGTpm9Guhu9lwyJKlUxYeAzcG6KUmncHNg/4sdle3hCJzNvoQLd+07p0Bu5VHrZRyQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://repo.micord.ru/repository/npm-all/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true + }, + "@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/eslint": { + "version": "7.2.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/eslint/-/eslint-7.2.5.tgz", + "integrity": "sha512-Dc6ar9x16BdaR3NSxSF7T4IjL9gxxViJq8RmFd+2UAyA+K6ck2W+gUwfgpG/y9TPyUuBL35109bbULpEynvltA==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "@types/jquery": { + "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 + }, + "@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "@webbpm/base-package": { + "version": "3.182.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@webbpm/base-package/-/base-package-3.182.0.tgz", + "integrity": "sha512-8pb1hMxjiHrOPCXhWoycSJqb7LT2ldSeWnHJmS8FD53ZRJqErcYj50Nj5Yz2lcoye0OVmhFtSv/YNyRVTQX6yw==", + "requires": { + "tslib": "^1.9.0" + }, + "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==" + } + } + }, + "@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true + }, + "@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true + }, + "@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "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": "8.12.1", + "resolved": "https://repo.micord.ru/repository/npm-all/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://repo.micord.ru/repository/npm-all/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true + }, + "acorn-walk": { + "version": "8.3.4", + "resolved": "https://repo.micord.ru/repository/npm-all/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "requires": { + "acorn": "^8.11.0" + } + }, + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + }, + "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": "8.8.2", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-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-formats": { + "version": "2.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + }, + "dependencies": { + "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 + } + } + }, + "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" + } + }, + "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-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 + }, + "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 + }, + "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==", + "dev": true, + "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 + }, + "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==" + }, + "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": "9.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/balanced-match/-/balanced-match-1.0.2.tgz", + "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" + } + } + } + }, + "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 + }, + "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 + }, + "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" + } + } + } + }, + "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.8", + "resolved": "https://repo.micord.ru/repository/npm-all/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "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" + } + } + } + }, + "browserslist": { + "version": "4.24.0", + "resolved": "https://repo.micord.ru/repository/npm-all/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + } + }, + "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-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 + }, + "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 + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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==" + }, + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "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.30001667", + "resolved": "https://repo.micord.ru/repository/npm-all/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "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 + }, + "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==" + }, + "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 + }, + "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": "5.3.3", + "resolved": "https://repo.micord.ru/repository/npm-all/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "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" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/code-point-at/-/code-point-at-1.1.0.tgz", + "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 + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://repo.micord.ru/repository/npm-all/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-2.20.3.tgz", + "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": "*" + } + }, + "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 + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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": { + "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" + } + }, + "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 + }, + "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 + }, + "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": "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" + } + }, + "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" + } + }, + "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-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 + }, + "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 + }, + "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" + } + }, + "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.38.1", + "resolved": "https://repo.micord.ru/repository/npm-all/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "requires": { + "browserslist": "^4.23.3" + } + }, + "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" + } + }, + "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 + } + } + }, + "css-loader": { + "version": "6.11.0", + "resolved": "https://repo.micord.ru/repository/npm-all/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://repo.micord.ru/repository/npm-all/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } + } + }, + "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 + }, + "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 + }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://repo.micord.ru/repository/npm-all/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-2.6.9.tgz", + "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-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 + }, + "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 + }, + "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 + }, + "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" + } + }, + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "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 + }, + "electron-to-chromium": { + "version": "1.5.32", + "resolved": "https://repo.micord.ru/repository/npm-all/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz", + "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==", + "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.6.1", + "resolved": "https://repo.micord.ru/repository/npm-all/engine.io/-/engine.io-6.6.1.tgz", + "integrity": "sha512-NEpDCw9hrvBW+hVEOK4T7v0jFJ++KgtPl4jKFwsZVfG1XhS0dCrSb3VMb9gPAd7VAdW52VT1EnaNiU2vM8C0og==", + "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": "22.7.4", + "resolved": "https://repo.micord.ru/repository/npm-all/@types/node/-/node-22.7.4.tgz", + "integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==", + "dev": true, + "requires": { + "undici-types": "~6.19.2" + } + }, + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "engine.io-client": { + "version": "6.6.1", + "resolved": "https://repo.micord.ru/repository/npm-all/engine.io-client/-/engine.io-client-6.6.1.tgz", + "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "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.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "engine.io-parser": { + "version": "5.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "envinfo": { + "version": "7.14.0", + "resolved": "https://repo.micord.ru/repository/npm-all/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "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 + }, + "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-module-lexer": { + "version": "1.5.4", + "resolved": "https://repo.micord.ru/repository/npm-all/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, + "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.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "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": "5.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.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": "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 + }, + "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 + }, + "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" + } + } + } + }, + "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 + }, + "fast-uri": { + "version": "3.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-uri/-/fast-uri-3.0.2.tgz", + "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://repo.micord.ru/repository/npm-all/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/fastparse/-/fastparse-1.1.2.tgz", + "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": "6.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + } + }, + "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 + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "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 + }, + "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": "3.3.2", + "resolved": "https://repo.micord.ru/repository/npm-all/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.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" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "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.9", + "resolved": "https://repo.micord.ru/repository/npm-all/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "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-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 + }, + "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 + }, + "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-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-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" + } + } + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://repo.micord.ru/repository/npm-all/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "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==" + }, + "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": "6.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "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-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-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" + } + } + } + }, + "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 + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://repo.micord.ru/repository/npm-all/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + } + } + }, + "html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://repo.micord.ru/repository/npm-all/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.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-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-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-utils": { + "version": "5.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "iferr": { + "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": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.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" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://repo.micord.ru/repository/npm-all/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "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 + }, + "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-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-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-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-core-module": { + "version": "2.15.1", + "resolved": "https://repo.micord.ru/repository/npm-all/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "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-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-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-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-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-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-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 + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://repo.micord.ru/repository/npm-all/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/jquery/-/jquery-3.3.1.tgz", + "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" + } + }, + "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": "3.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "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-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://repo.micord.ru/repository/npm-all/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "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" + } + }, + "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" + } + }, + "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": "4.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "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==", + "dev": true + }, + "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 + }, + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "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": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "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 + } + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "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" + } + }, + "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": "2.9.1", + "resolved": "https://repo.micord.ru/repository/npm-all/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz", + "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + } + }, + "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": "1.2.8", + "resolved": "https://repo.micord.ru/repository/npm-all/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "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": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "mrmime": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/ms/-/ms-2.0.0.tgz", + "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 + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://repo.micord.ru/repository/npm-all/nanomatch/-/nanomatch-1.2.13.tgz", + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "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-releases": { + "version": "2.0.18", + "resolved": "https://repo.micord.ru/repository/npm-all/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "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" + } + }, + "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-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.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" + } + }, + "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-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-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" + }, + "dependencies": { + "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" + } + } + } + }, + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "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" + } + }, + "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.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "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-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-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" + } + }, + "picocolors": { + "version": "1.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "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": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "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 + }, + "postcss": { + "version": "8.4.47", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "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" + } + }, + "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 + }, + "pump": { + "version": "3.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "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 + }, + "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" + } + }, + "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": "4.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + } + }, + "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 + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "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" + } + }, + "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.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "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" + } + }, + "regexpu-core": { + "version": "6.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "regjsparser": { + "version": "0.11.1", + "resolved": "https://repo.micord.ru/repository/npm-all/regjsparser/-/regjsparser-0.11.1.tgz", + "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", + "dev": true, + "requires": { + "jsesc": "~3.0.2" + } + }, + "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": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.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 + }, + "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" + } + } + } + }, + "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-from-string": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/require-main-filename/-/require-main-filename-1.0.1.tgz", + "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": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url": { + "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" + } + }, + "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-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" + } + }, + "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": "4.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "dependencies": { + "ajv": { + "version": "8.17.1", + "resolved": "https://repo.micord.ru/repository/npm-all/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "selectize": { + "version": "0.12.4-cg.11", + "resolved": "https://repo.micord.ru/repository/npm-all/selectize/-/selectize-0.12.4-cg.11.tgz", + "integrity": "sha512-Fm1W6Ur2UNwRmTseaxHQuHlh1RS9zocO6qWu+vrKxdLILc7zN+RL2paXQZBAsLORNne3aLBDfIyMZ2ykxcbhVw==", + "requires": { + "jquery": ">=1.7.0" + } + }, + "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-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" + } + } + } + }, + "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 + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "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" + } + }, + "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 + }, + "sirv": { + "version": "2.0.4", + "resolved": "https://repo.micord.ru/repository/npm-all/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/slash/-/slash-1.0.0.tgz", + "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.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/socket.io/-/socket.io-4.8.0.tgz", + "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "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.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "socket.io-client": { + "version": "4.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/socket.io-client/-/socket.io-client-4.8.0.tgz", + "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "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.7", + "resolved": "https://repo.micord.ru/repository/npm-all/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + } + } + }, + "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" + } + } + } + }, + "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-js": { + "version": "1.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "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.20", + "resolved": "https://repo.micord.ru/repository/npm-all/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "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-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-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" + } + }, + "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_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": "3.3.4", + "resolved": "https://repo.micord.ru/repository/npm-all/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "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": "2.2.1", + "resolved": "https://repo.micord.ru/repository/npm-all/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "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": { + "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": "5.34.1", + "resolved": "https://repo.micord.ru/repository/npm-all/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://repo.micord.ru/repository/npm-all/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "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" + } + }, + "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 + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + } + } + }, + "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" + } + }, + "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-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 + }, + "totalist": { + "version": "3.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true + }, + "tslib": { + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "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.2", + "resolved": "https://repo.micord.ru/repository/npm-all/typescript-parser/-/typescript-parser-2.6.1-cg.2.tgz", + "integrity": "sha512-z6EfolY6pcXEKLiwPQv+UXSpyinU4JhtsuokLY6j6iuU9564n4GPu7iqyzpJ2rKrqOIoDVTHCh0V+c344sxE1Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10", + "lodash-es": "^4.17.10", + "tslib": "^1.9.3", + "typescript": "3.2.4" + } + }, + "ua-parser-js": { + "version": "1.0.39", + "resolved": "https://repo.micord.ru/repository/npm-all/ua-parser-js/-/ua-parser-js-1.0.39.tgz", + "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", + "dev": true + }, + "undici-types": { + "version": "6.19.8", + "resolved": "https://repo.micord.ru/repository/npm-all/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "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.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "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.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + } + }, + "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 + }, + "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-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 + }, + "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 + }, + "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 + }, + "watchpack": { + "version": "2.4.2", + "resolved": "https://repo.micord.ru/repository/npm-all/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.90.1", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack/-/webpack-5.90.1.tgz", + "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "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" + } + }, + "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 + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.micord.ru/repository/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.10.1", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "is-plain-object": "^5.0.0", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "ws": { + "version": "7.5.10", + "resolved": "https://repo.micord.ru/repository/npm-all/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "5.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-cli/-/webpack-cli-5.0.2.tgz", + "integrity": "sha512-4y3W5Dawri5+8dXm3+diW6Mn1Ya+Dei6eEVAdIduAmYNLzv1koKVAqsfgrrc9P2mhrYHQphx5htnGkcNwtubyQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.2", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "10.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://repo.micord.ru/repository/npm-all/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "interpret": { + "version": "3.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://repo.micord.ru/repository/npm-all/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "requires": { + "resolve": "^1.20.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://repo.micord.ru/repository/npm-all/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://repo.micord.ru/repository/npm-all/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.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-merge": { + "version": "5.10.0", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://repo.micord.ru/repository/npm-all/webpack-sources/-/webpack-sources-1.3.0.tgz", + "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-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 + }, + "wildcard": { + "version": "2.0.1", + "resolved": "https://repo.micord.ru/repository/npm-all/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "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.1.1", + "resolved": "https://repo.micord.ru/repository/npm-all/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", + "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", + "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.11.8", + "resolved": "https://repo.micord.ru/repository/npm-all/zone.js/-/zone.js-0.11.8.tgz", + "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", + "requires": { + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.7.0", + "resolved": "https://repo.micord.ru/repository/npm-all/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + } + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 00000000..d0eb61df --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,103 @@ +{ + "name": "ervu_usr_autority", + "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.2.2-micord.1", + "@webbpm/base-package": "3.182.0", + "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.11", + "systemjs": "0.21.4", + "systemjs-plugin-babel": "0.0.25", + "tslib": "1.9.3", + "zone.js": "0.11.8" + }, + "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.18.10", + "@babel/preset-env": "7.18.10", + "@types/bootstrap": "3.3.39", + "@types/eslint": "7.2.5", + "@types/jquery": "2.0.49", + "@types/node": "7.0.5", + "@types/selectize": "0.12.33", + "ajv": "8.8.2", + "angular-router-loader": "0.8.5", + "angular2-template-loader": "0.6.2", + "babel-loader": "9.1.2", + "codelyzer": "5.2.1", + "copy-webpack-plugin": "5.0.3", + "cross-env": "5.2.1", + "css-loader": "6.11.0", + "del": "2.2.2", + "file-loader": "6.2.0", + "html-webpack-plugin": "5.6.0", + "lite-server": "2.3.0", + "mini-css-extract-plugin": "2.9.1", + "mkdirp": "3.0.1", + "raw-loader": "4.0.2", + "style-loader": "3.3.4", + "terser-webpack-plugin": "5.3.10", + "tslint": "5.13.1", + "typescript": "3.2.4", + "typescript-parser": "2.6.1-cg.2", + "webpack": "5.90.1", + "webpack-bundle-analyzer": "4.10.1", + "webpack-cli": "5.0.2" + } +} diff --git a/frontend/pom.xml b/frontend/pom.xml new file mode 100644 index 00000000..10a574fe --- /dev/null +++ b/frontend/pom.xml @@ -0,0 +1,113 @@ + + + 4.0.0 + + ervu_usr_autority + ervu_usr_autority + 1.0.0-SNAPSHOT + + + ervu_usr_autority.ervu_usr_autority + 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 00000000..eb364332 --- /dev/null +++ b/frontend/preview.html @@ -0,0 +1,23 @@ + + + + Web BPM + + + + + + + + + + + + +
+ + diff --git a/frontend/save.ts.metadata.js b/frontend/save.ts.metadata.js new file mode 100644 index 00000000..3e193d07 --- /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 00000000..88191b6d --- /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": "%enable.version.in.url%", + "backend.context": "ervu_usr_autority", + "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 00000000..8b9b8b3d --- /dev/null +++ b/frontend/src/resources/app.version @@ -0,0 +1 @@ +%project.version% \ 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 00000000..24477178 --- /dev/null +++ b/frontend/src/resources/css/components-app.css @@ -0,0 +1,1564 @@ +@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 .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-"] > 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-autority.css b/frontend/src/resources/css/components-autority.css new file mode 100644 index 00000000..396a9f8f --- /dev/null +++ b/frontend/src/resources/css/components-autority.css @@ -0,0 +1,182 @@ +.webbpm.ervu_usr_autority .container-inside > div > div > [page-object] { + display: flex; +} + +.webbpm.ervu_usr_autority [page-home] { + display: flex; + align-items: center; + background-color: var(--bg-light); +} +.webbpm.ervu_usr_autority #home { + flex: 1; +} + +.webbpm.ervu_usr_autority .title { + font-size: var(--size-text-title); + font-family: 'InterSB'; + padding-top: 0; + padding-bottom: var(--indent-small); +} +.webbpm.ervu_usr_autority .title .form-group { + display: block; + margin-bottom: 0; +} +.webbpm.ervu_usr_autority .font-bold { + font-family: 'InterSB'; +} + +.webbpm.ervu_usr_autority .btn { + font-size: var(--size-text-secondary); + font-family: 'Inter'; + color: var(--color-link); + padding: 13px 39px; + border: 1px solid var(--color-link); + border-radius: 4px; + background-color: transparent; + box-shadow: none; +} +.webbpm.ervu_usr_autority .btn:is(:not(:disabled):not(.disabled):hover, :not(:disabled):not(.disabled):active, :not(:disabled):not(.disabled):focus) { + color: var(--color-link-hover); + border-color: var(--color-link-hover); + background-color: transparent; +} + +.webbpm.ervu_usr_autority .btn-main:not(.info):not(.link) .btn, +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm, .confirmation) .btn-primary { + color: var(--white); + border: 1px solid var(--color-link); + background: var(--color-link); +} +.webbpm.ervu_usr_autority .btn-main .btn:is(:not(:disabled):not(.disabled):hover, :not(:disabled):not(.disabled):active, :not(:disabled):not(.disabled):focus), +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm, .confirmation) .btn-primary:is(:not(:disabled):not(.disabled):hover, :not(:disabled):not(.disabled):active, :not(:disabled):not(.disabled):focus) { + color: var(--white); + border-color: var(--color-link-hover); + background-color: var(--color-link-hover); +} + +.webbpm.ervu_usr_autority .btn:is(:disabled, .disabled) { + color: var(--color-text-secondary); + border-color: var(--border-light); +} + +.webbpm.ervu_usr_autority .btn-big-group > div { + justify-content: center; + align-items: center; +} +.webbpm.ervu_usr_autority .btn-big-group .btn { + font-family: 'Inter'; + color: var(--color-text-primary); + min-width: 300px; + padding: 40px; + border: 0; + border-radius: 12px; + background-color: var(--white) !important; + box-shadow: var(--bg-shadow); +} +.webbpm.ervu_usr_autority .btn-big-group .btn::before { + display: flex; + justify-content: center; + margin-bottom: 8px; +} +.webbpm.ervu_usr_autority .btn-big-group vbox:first-child .btn::before { + content: url(../img/svg/users-bl.svg); +} +.webbpm.ervu_usr_autority .btn-big-group vbox:first-child .btn:is(:hover, :active, :focus)::before { + content: url(../img/svg/users.svg); +} +.webbpm.ervu_usr_autority .btn-big-group vbox:last-child .btn::before { + content: url(../img/svg/notes-bl.svg); +} +.webbpm.ervu_usr_autority .btn-big-group vbox:last-child .btn:is(:hover, :active, :focus)::before { + content: url(../img/svg/notes.svg); +} +.webbpm.ervu_usr_autority .btn-big-group vbox { + padding-right: 0; +} +.webbpm.ervu_usr_autority .btn-big-group vbox + vbox { + margin-left: 40px; +} + +.webbpm.ervu_usr_autority collapsible-panel .card { + margin-bottom: var(--indent-small); + border: 1px solid var(--border-light) !important; +} +.webbpm.ervu_usr_autority collapsible-panel .card i { + width: 16px; +} +.webbpm.ervu_usr_autority collapsible-panel .card-header, +.webbpm.ervu_usr_autority collapsible-panel .card-block .font-bold { + font-family: 'InterSB' !important; + font-size: var(--size-text-primary) !important; +} +.webbpm.ervu_usr_autority collapsible-panel .card-block { + font-size: var(--size-text-secondary); + padding-top: var(--indent-mini) !important; + border-top: 1px solid var(--border-light); +} +.webbpm.ervu_usr_autority collapsible-panel .card-block .filter-group .horizontal-container > * { + padding-left: var(--indent-big); + padding-right: 0; +} +.webbpm.ervu_usr_autority collapsible-panel .card-block .filter-group .horizontal-container > *:first-child { + padding-left: 0; +} +.webbpm.ervu_usr_autority collapsible-panel .card-block .filter-group .width-full label { + width: 160px; +} +.webbpm.ervu_usr_autority collapsible-panel .card-block .filter-group .width-full.fixed-label-mini label { + width: 100px; +} +.webbpm.ervu_usr_autority collapsible-panel .card-block .filter-group .width-full.fixed-label-extra-mini label { + width: 60px; +} + +.webbpm.ervu_usr_autority grid-v2 { + flex: 1; +} +.webbpm.ervu_usr_autority * + grid-v2, +.webbpm.ervu_usr_autority grid-v2 ~ *:not([hidden]) { + margin-top: var(--indent-small); +} + +.webbpm.ervu_usr_autority ag-grid-angular { + font-family: 'Inter'; +} + +.webbpm.ervu_usr_autority ag-grid-angular .grid-setting-icon, +.webbpm.ervu_usr_autority ag-grid-angular .ag-header-cell.ag-header-active .ag-header-cell-menu-button, +.webbpm.ervu_usr_autority ag-grid-angular .ag-header-cell .ag-header-icon .ag-icon, +.webbpm.ervu_usr_autority ag-grid-angular .ag-header-row-column-filter :is(.ag-header-cell, .ag-header-group-cell)::after, +.webbpm.ervu_usr_autority ag-grid-angular .ag-filter .ag-filter-condition, +.webbpm.ervu_usr_autority ag-grid-angular .ag-filter .ag-filter-condition ~ * { + display: none !important; +} + +.webbpm.ervu_usr_autority ag-grid-angular .ag-header-row { + font-family: 'InterSB'; +} + +.webbpm.ervu_usr_autority ag-grid-angular .ag-header-row:not(:first-child) .ag-header-cell, +.webbpm.ervu_usr_autority ag-grid-angular .ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group { + border-top: 0; +} + +.webbpm.ervu_usr_autority ag-grid-angular .ag-row.ag-row-hover, +.webbpm.ervu_usr_autority ag-grid-angular .ag-row.ag-row-hover .ag-cell { + color: var(--color-link); + border-radius: 0; + background-color: transparent !important; +} + +.webbpm.ervu_usr_autority ag-grid-angular .ag-row.ag-row-hover, +.webbpm.ervu_usr_autority ag-grid-angular .ag-row.ag-row-hover + .ag-row { + border-color: var(--border-light); +} + +.webbpm.ervu_usr_autority ag-grid-angular .ag-row-last:not(.ag-row-first) { + border-width: 1px 0 0; +} + +.webbpm.ervu_usr_autority ag-grid-angular .ag-cell-focus:not(.ag-cell-range-selected):focus-within { + border-color: var(--color-link); +} \ 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 00000000..ea6a4190 --- /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-autority.css b/frontend/src/resources/css/inbox-autority.css new file mode 100644 index 00000000..3bc1ecae --- /dev/null +++ b/frontend/src/resources/css/inbox-autority.css @@ -0,0 +1,253 @@ +@font-face { + font-family: 'InterL'; + src: url('../fonts/Inter-Light.otf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'Inter'; + src: url('../fonts/Inter-Regular.otf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'InterM'; + src: url('../fonts/Inter-Medium.otf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'InterSB'; + src: url('../fonts/Inter-SemiBold.otf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'InterB'; + src: url('../fonts/Inter-Bold.otf'); + font-weight: 400; + font-style: normal; +} + +body.webbpm.ervu_usr_autority { + -ms-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +.webbpm.ervu_usr_autority { + --color-text-primary: #1d1e21; + --color-text-secondary: #acacac; + --color-link: #c64e1b; + --color-link-hover: #fa773f; + --color-form: #3f434b; + --color-bg-main: #223d36; + --color-light: #868b87; + --bg-light: #fafafa; + --bg-warn: #ffdcc6; + --bg-form: #eee; + --border-light: #d2d2d2; + --bg-shadow: 0 19px 19px 8px rgba(230, 230, 230, 0.19), 0 0px 4px 0px #f3f3f3; + + --h-header: 64px; + --h-footer: 48px; + --w-screen: 75px; + + --size-text-title: 36px; + --size-text-subtitle: 20px; + --size-text-primary: 18px; + --size-text-secondary: 16px; + + --indent-huge: 48px; + --indent-big: 40px; + --indent-medium: 32px; + --indent-small: 24px; + --indent-mini: 16px; + --indent-extra-mini: 10px; +} + +.webbpm.ervu_usr_autority a { + color: var(--color-link); + text-decoration: none; +} +.webbpm.ervu_usr_autority a:is(:hover, :focus, :active) { + color: var(--color-link-hover); +} + +.webbpm.ervu_usr_autority .header { + font-family: 'Inter'; + min-height: var(--h-header); + border: 0; + background-color: var(--color-text-primary); +} +.webbpm.ervu_usr_autority .header .header-logo { + margin-left: var(--w-screen); +} +.webbpm.ervu_usr_autority .header .header-logo a { + color: var(--white); + font-family: 'Inter'; +} +.webbpm.ervu_usr_autority .header .header-logo .logo { + position: relative; + display: flex; + align-items: center; +} +.webbpm.ervu_usr_autority .header .header-logo .logo a { + position: absolute; + width: 62px; + height: 40px; + background: url(../img/svg/mil-logo.svg) no-repeat 0 50%; +} +.webbpm.ervu_usr_autority .header .header-logo .main-page { + font-family: 'InterSB'; + margin-left: calc(62px + 16px); +} + +.webbpm.ervu_usr_autority footer { + height: var(--h-footer); + border: 0; + background-color: var(--color-text-primary); +} + +.webbpm.ervu_usr_autority .container { + padding-top: var(--h-header); + bottom: var(--h-footer); +} +.webbpm.ervu_usr_autority .container-inside { + display: flex; + flex-direction: column; + font-family: 'Inter'; + height: 100%; + padding: 0; + overflow: auto; +} +.webbpm.ervu_usr_autority .container-inside > div { + flex: 1; + padding: var(--indent-huge) var(--w-screen); +} + +/*----------------- Login ---------------- */ +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) { + color: var(--color-text-primary); + font-size: var(--size-text-secondary); + width: 500px; + padding: 32px; + margin: 30px auto; + border: 0; + border-radius: 8px; + background-color: var(--white); + box-shadow: var(--bg-shadow); +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) :is(h1, h2) { + color: var(--color-form); + font-family: 'InterB'; + font-size: var(--size-text-subtitle); + text-align: left; + margin-bottom: 0; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) .logo { + position: relative; + display: flex; + justify-content: center; + width: 100%; + height: 76px; + padding: 0 0 0 128px; + margin-bottom: 32px; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) .logo::after { + position: absolute; + content: ""; + left: 0; + width: 112px; + height: 72px; + background-image: url(../img/svg/form-logo.svg); +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) .row { + position: relative; + margin-bottom: 0; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) .row + .row { + margin-top: 20px; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) input { + height: 56px; + padding-top: 20px; + padding-left: 16px; + border: 0; + border-radius: 8px; + background-color: var(--bg-light); +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) input[type="password"] { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) input[type="password"] ~ .input-group-append > .input-group-text { + border: 0; + background-color: var(--bg-light); +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) input + label { + position: absolute; + top: 16px; + left: 16px; + pointer-events: none; + transition: all 200ms; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) input:focus + label, +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) input:not(:placeholder-shown) + label { + top: 4px; + font-size: var(--indent-extra-mini); + z-index: 20; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) .msg-text { + margin-top: 12px; +} +.webbpm.ervu_usr_autority :is(.form-signin, .form-signup, .confirm) .btn-box { + margin-top: 32px; +} + +.webbpm.ervu_usr_autority .form-signin .row.registration > * + *, +.webbpm.ervu_usr_autority .form-signin .login-btn-box .password, +.webbpm.ervu_usr_autority .form-signin .login-btn-box .btn + .btn { + margin-left: 32px; +} +/*--------------- end Login -------------- */ + +.webbpm.ervu_usr_autority .loader { + font-size: 15px; + left: calc(50% - 50px); + top: calc(50% - 50px); + width: 0.8em; + height: 0.8em; + border-radius: 50%; + position: relative; + text-indent: -9999em; + animation: loader-pin 1.1s infinite ease; + transform: translateZ(0); +} +@keyframes loader-pin { + 0%, + 100% { + box-shadow: 0em -2.6em 0em 0em #ffffff, 1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3), 2.5em 0em 0 0em rgba(198, 78, 27, 0.3), 1.75em 1.75em 0 0em rgba(198, 78, 27, 0.3), 0em 2.5em 0 0em rgba(198, 78, 27, 0.3), -1.8em 1.8em 0 0em rgba(198, 78, 27, 0.3), -2.6em 0em 0 0em rgba(198, 78, 27, 0.7), -1.8em -1.8em 0 0em rgba(198, 78, 27, 1); + } + 12.5% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 1), 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em rgba(198, 78, 27, 0.3), 1.75em 1.75em 0 0em rgba(198, 78, 27, 0.3), 0em 2.5em 0 0em rgba(198, 78, 27, 0.3), -1.8em 1.8em 0 0em rgba(198, 78, 27, 0.3), -2.6em 0em 0 0em rgba(198, 78, 27, 0.3), -1.8em -1.8em 0 0em rgba(198, 78, 27, 0.7); + } + 25% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 0.7), 1.8em -1.8em 0 0em rgba(198, 78, 27, 1), 2.5em 0em 0 0em #ffffff, 1.75em 1.75em 0 0em rgba(198, 78, 27, 0.3), 0em 2.5em 0 0em rgba(198, 78, 27, 0.3), -1.8em 1.8em 0 0em rgba(198, 78, 27, 0.3), -2.6em 0em 0 0em rgba(198, 78, 27, 0.3), -1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3); + } + 37.5% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 0.3), 1.8em -1.8em 0 0em rgba(198, 78, 27, 0.7), 2.5em 0em 0 0em rgba(198, 78, 27, 1), 1.75em 1.75em 0 0em #ffffff, 0em 2.5em 0 0em rgba(198, 78, 27, 0.3), -1.8em 1.8em 0 0em rgba(198, 78, 27, 0.3), -2.6em 0em 0 0em rgba(198, 78, 27, 0.3), -1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3); + } + 50% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 0.3), 1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3), 2.5em 0em 0 0em rgba(198, 78, 27, 0.7), 1.75em 1.75em 0 0em rgba(198, 78, 27, 1), 0em 2.5em 0 0em #ffffff, -1.8em 1.8em 0 0em rgba(198, 78, 27, 0.3), -2.6em 0em 0 0em rgba(198, 78, 27, 0.3), -1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3); + } + 62.5% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 0.3), 1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3), 2.5em 0em 0 0em rgba(198, 78, 27, 0.3), 1.75em 1.75em 0 0em rgba(198, 78, 27, 0.7), 0em 2.5em 0 0em rgba(198, 78, 27, 1), -1.8em 1.8em 0 0em #ffffff, -2.6em 0em 0 0em rgba(198, 78, 27, 0.3), -1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3); + } + 75% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 0.3), 1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3), 2.5em 0em 0 0em rgba(198, 78, 27, 0.3), 1.75em 1.75em 0 0em rgba(198, 78, 27, 0.3), 0em 2.5em 0 0em rgba(198, 78, 27, 0.7), -1.8em 1.8em 0 0em rgba(198, 78, 27, 1), -2.6em 0em 0 0em #ffffff, -1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3); + } + 87.5% { + box-shadow: 0em -2.6em 0em 0em rgba(198, 78, 27, 0.3), 1.8em -1.8em 0 0em rgba(198, 78, 27, 0.3), 2.5em 0em 0 0em rgba(198, 78, 27, 0.3), 1.75em 1.75em 0 0em rgba(198, 78, 27, 0.3), 0em 2.5em 0 0em rgba(198, 78, 27, 0.3), -1.8em 1.8em 0 0em rgba(198, 78, 27, 0.7), -2.6em 0em 0 0em rgba(198, 78, 27, 1), -1.8em -1.8em 0 0em #ffffff; + } +} \ 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 00000000..b39ff74b --- /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; +} + +.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, .webbpm { + width: 100%; + height: 100%; + display: block; +} + +.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 00000000..5b3a6c4b --- /dev/null +++ b/frontend/src/resources/css/style.css @@ -0,0 +1,12 @@ +@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-app.css"; +@import "components-app.css"; +@import "inbox-autority.css"; +@import "components-autority.css"; \ No newline at end of file diff --git a/frontend/src/resources/fonts/Inter-Bold.otf b/frontend/src/resources/fonts/Inter-Bold.otf new file mode 100644 index 00000000..c74cc0c6 Binary files /dev/null and b/frontend/src/resources/fonts/Inter-Bold.otf differ diff --git a/frontend/src/resources/fonts/Inter-Light.otf b/frontend/src/resources/fonts/Inter-Light.otf new file mode 100644 index 00000000..2a83ae16 Binary files /dev/null and b/frontend/src/resources/fonts/Inter-Light.otf differ diff --git a/frontend/src/resources/fonts/Inter-Medium.otf b/frontend/src/resources/fonts/Inter-Medium.otf new file mode 100644 index 00000000..ca7bfcd4 Binary files /dev/null and b/frontend/src/resources/fonts/Inter-Medium.otf differ diff --git a/frontend/src/resources/fonts/Inter-Regular.otf b/frontend/src/resources/fonts/Inter-Regular.otf new file mode 100644 index 00000000..84e6a61c Binary files /dev/null and b/frontend/src/resources/fonts/Inter-Regular.otf differ diff --git a/frontend/src/resources/fonts/Inter-SemiBold.otf b/frontend/src/resources/fonts/Inter-SemiBold.otf new file mode 100644 index 00000000..daf4c441 Binary files /dev/null and b/frontend/src/resources/fonts/Inter-SemiBold.otf differ diff --git a/frontend/src/resources/fonts/Inter-Thin.otf b/frontend/src/resources/fonts/Inter-Thin.otf new file mode 100644 index 00000000..22592e04 Binary files /dev/null and b/frontend/src/resources/fonts/Inter-Thin.otf differ diff --git a/frontend/src/resources/fonts/Segoe.ttf b/frontend/src/resources/fonts/Segoe.ttf new file mode 100644 index 00000000..0f52cbd9 Binary files /dev/null and b/frontend/src/resources/fonts/Segoe.ttf differ diff --git a/frontend/src/resources/fonts/SegoeB.ttf b/frontend/src/resources/fonts/SegoeB.ttf new file mode 100644 index 00000000..ff196d60 Binary files /dev/null and b/frontend/src/resources/fonts/SegoeB.ttf differ diff --git a/frontend/src/resources/fonts/SegoeBL.ttf b/frontend/src/resources/fonts/SegoeBL.ttf new file mode 100644 index 00000000..b2966570 Binary files /dev/null and b/frontend/src/resources/fonts/SegoeBL.ttf differ diff --git a/frontend/src/resources/fonts/SegoeSB.ttf b/frontend/src/resources/fonts/SegoeSB.ttf new file mode 100644 index 00000000..90b39f72 Binary files /dev/null and b/frontend/src/resources/fonts/SegoeSB.ttf differ diff --git a/frontend/src/resources/fonts/SegoeSL.ttf b/frontend/src/resources/fonts/SegoeSL.ttf new file mode 100644 index 00000000..a276476a Binary files /dev/null and b/frontend/src/resources/fonts/SegoeSL.ttf differ diff --git a/frontend/src/resources/img/access_denied.png b/frontend/src/resources/img/access_denied.png new file mode 100644 index 00000000..463c9ca0 Binary files /dev/null and b/frontend/src/resources/img/access_denied.png differ diff --git a/frontend/src/resources/img/admin.png b/frontend/src/resources/img/admin.png new file mode 100644 index 00000000..875b0957 Binary files /dev/null and b/frontend/src/resources/img/admin.png differ diff --git a/frontend/src/resources/img/country-flags.jpg b/frontend/src/resources/img/country-flags.jpg new file mode 100644 index 00000000..84041f1c Binary files /dev/null and b/frontend/src/resources/img/country-flags.jpg differ diff --git a/frontend/src/resources/img/create.png b/frontend/src/resources/img/create.png new file mode 100644 index 00000000..6acd9d09 Binary files /dev/null and b/frontend/src/resources/img/create.png differ diff --git a/frontend/src/resources/img/icons/dots-six-vertical.svg b/frontend/src/resources/img/icons/dots-six-vertical.svg new file mode 100644 index 00000000..988e44a5 --- /dev/null +++ b/frontend/src/resources/img/icons/dots-six-vertical.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/src/resources/img/icons/settings-sm.svg b/frontend/src/resources/img/icons/settings-sm.svg new file mode 100644 index 00000000..ea2cc070 --- /dev/null +++ b/frontend/src/resources/img/icons/settings-sm.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/img/logo-full.png b/frontend/src/resources/img/logo-full.png new file mode 100644 index 00000000..92852b16 Binary files /dev/null and b/frontend/src/resources/img/logo-full.png differ diff --git a/frontend/src/resources/img/logo.png b/frontend/src/resources/img/logo.png new file mode 100644 index 00000000..4ac1eea9 Binary files /dev/null and b/frontend/src/resources/img/logo.png differ diff --git a/frontend/src/resources/img/progress.gif b/frontend/src/resources/img/progress.gif new file mode 100644 index 00000000..1a3b525b Binary files /dev/null and b/frontend/src/resources/img/progress.gif differ diff --git a/frontend/src/resources/img/project.png b/frontend/src/resources/img/project.png new file mode 100644 index 00000000..1ff9bcf1 Binary files /dev/null and b/frontend/src/resources/img/project.png differ diff --git a/frontend/src/resources/img/svg/arrow-down-wt.svg b/frontend/src/resources/img/svg/arrow-down-wt.svg new file mode 100644 index 00000000..2f035195 --- /dev/null +++ b/frontend/src/resources/img/svg/arrow-down-wt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/resources/img/svg/data.svg b/frontend/src/resources/img/svg/data.svg new file mode 100644 index 00000000..a2b92c24 --- /dev/null +++ b/frontend/src/resources/img/svg/data.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/img/svg/exit.svg b/frontend/src/resources/img/svg/exit.svg new file mode 100644 index 00000000..e38c2f2d --- /dev/null +++ b/frontend/src/resources/img/svg/exit.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/img/svg/form-logo.svg b/frontend/src/resources/img/svg/form-logo.svg new file mode 100644 index 00000000..3defded5 --- /dev/null +++ b/frontend/src/resources/img/svg/form-logo.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/resources/img/svg/mil-logo.svg b/frontend/src/resources/img/svg/mil-logo.svg new file mode 100644 index 00000000..9964dc8d --- /dev/null +++ b/frontend/src/resources/img/svg/mil-logo.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/resources/img/svg/notes-bl.svg b/frontend/src/resources/img/svg/notes-bl.svg new file mode 100644 index 00000000..462d7008 --- /dev/null +++ b/frontend/src/resources/img/svg/notes-bl.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/img/svg/notes.svg b/frontend/src/resources/img/svg/notes.svg new file mode 100644 index 00000000..14acc5e4 --- /dev/null +++ b/frontend/src/resources/img/svg/notes.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/img/svg/user-wt.svg b/frontend/src/resources/img/svg/user-wt.svg new file mode 100644 index 00000000..df2ea6c1 --- /dev/null +++ b/frontend/src/resources/img/svg/user-wt.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/resources/img/svg/users-bl.svg b/frontend/src/resources/img/svg/users-bl.svg new file mode 100644 index 00000000..feb3e1ef --- /dev/null +++ b/frontend/src/resources/img/svg/users-bl.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/img/svg/users.svg b/frontend/src/resources/img/svg/users.svg new file mode 100644 index 00000000..273d225b --- /dev/null +++ b/frontend/src/resources/img/svg/users.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/resources/template/app/component/access_denied.html b/frontend/src/resources/template/app/component/access_denied.html new file mode 100644 index 00000000..c7db7c20 --- /dev/null +++ b/frontend/src/resources/template/app/component/access_denied.html @@ -0,0 +1,4 @@ +
+
403
+
Доступ запрещен
+
\ No newline at end of file diff --git a/frontend/src/resources/template/app/component/admin_menu.html b/frontend/src/resources/template/app/component/admin_menu.html new file mode 100644 index 00000000..21be41a2 --- /dev/null +++ b/frontend/src/resources/template/app/component/admin_menu.html @@ -0,0 +1,29 @@ + diff --git a/frontend/src/resources/template/app/component/app_footer.html b/frontend/src/resources/template/app/component/app_footer.html new file mode 100644 index 00000000..fe35b300 --- /dev/null +++ b/frontend/src/resources/template/app/component/app_footer.html @@ -0,0 +1,4 @@ +
+ +
\ No newline at end of file diff --git a/frontend/src/resources/template/app/component/app_header.html b/frontend/src/resources/template/app/component/app_header.html new file mode 100644 index 00000000..a8233b57 --- /dev/null +++ b/frontend/src/resources/template/app/component/app_header.html @@ -0,0 +1,11 @@ + + diff --git a/frontend/src/resources/template/app/component/application_version.html b/frontend/src/resources/template/app/component/application_version.html new file mode 100644 index 00000000..61be19b2 --- /dev/null +++ b/frontend/src/resources/template/app/component/application_version.html @@ -0,0 +1 @@ +Версия: {{applicationVersion}} \ No newline at end of file diff --git a/frontend/src/resources/template/app/component/confirm-user-email.html b/frontend/src/resources/template/app/component/confirm-user-email.html new file mode 100644 index 00000000..65a5d1d2 --- /dev/null +++ b/frontend/src/resources/template/app/component/confirm-user-email.html @@ -0,0 +1,27 @@ +
+ +
+
+

Подтверждение почты

+ +
+ Подтверждение... +
+
+
+ Адрес электронной почты успешно подтвержден +
+
+
+
{{ errorMessage }}
+
+ + +
+
+
diff --git a/frontend/src/resources/template/app/component/log_out.html b/frontend/src/resources/template/app/component/log_out.html new file mode 100644 index 00000000..9fc26834 --- /dev/null +++ b/frontend/src/resources/template/app/component/log_out.html @@ -0,0 +1,9 @@ + +
+ + +
\ No newline at end of file diff --git a/frontend/src/resources/template/app/component/login.html b/frontend/src/resources/template/app/component/login.html new file mode 100644 index 00000000..7988186b --- /dev/null +++ b/frontend/src/resources/template/app/component/login.html @@ -0,0 +1,49 @@ + diff --git a/frontend/src/resources/template/app/component/new_password.html b/frontend/src/resources/template/app/component/new_password.html new file mode 100644 index 00000000..4b315762 --- /dev/null +++ b/frontend/src/resources/template/app/component/new_password.html @@ -0,0 +1,103 @@ + diff --git a/frontend/src/resources/template/app/component/progress-indication.html b/frontend/src/resources/template/app/component/progress-indication.html new file mode 100644 index 00000000..95a901e6 --- /dev/null +++ b/frontend/src/resources/template/app/component/progress-indication.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/frontend/src/resources/template/app/component/register.html b/frontend/src/resources/template/app/component/register.html new file mode 100644 index 00000000..42cae8c0 --- /dev/null +++ b/frontend/src/resources/template/app/component/register.html @@ -0,0 +1,121 @@ + diff --git a/frontend/src/resources/template/app/component/reset_password.html b/frontend/src/resources/template/app/component/reset_password.html new file mode 100644 index 00000000..d1d4d832 --- /dev/null +++ b/frontend/src/resources/template/app/component/reset_password.html @@ -0,0 +1,45 @@ + diff --git a/frontend/src/resources/template/ervu-usr-autority/component/container/VBoxLoadValues.html b/frontend/src/resources/template/ervu-usr-autority/component/container/VBoxLoadValues.html new file mode 100644 index 00000000..12ca0375 --- /dev/null +++ b/frontend/src/resources/template/ervu-usr-autority/component/container/VBoxLoadValues.html @@ -0,0 +1,5 @@ +
+ +
\ No newline at end of file diff --git a/frontend/src/resources/template/preview/preview.html b/frontend/src/resources/template/preview/preview.html new file mode 100644 index 00000000..dd079b2d --- /dev/null +++ b/frontend/src/resources/template/preview/preview.html @@ -0,0 +1,3 @@ +
+ +
\ No newline at end of file diff --git a/frontend/src/resources/template/preview/preview_container.html b/frontend/src/resources/template/preview/preview_container.html new file mode 100644 index 00000000..90c6b646 --- /dev/null +++ b/frontend/src/resources/template/preview/preview_container.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/resources/template/webbpm/home.html b/frontend/src/resources/template/webbpm/home.html new file mode 100644 index 00000000..02556c78 --- /dev/null +++ b/frontend/src/resources/template/webbpm/home.html @@ -0,0 +1,4 @@ +
+
+
+
diff --git a/frontend/src/resources/template/webbpm/page.html b/frontend/src/resources/template/webbpm/page.html new file mode 100644 index 00000000..5d28658d --- /dev/null +++ b/frontend/src/resources/template/webbpm/page.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/frontend/src/resources/template/webbpm/webbpm.html b/frontend/src/resources/template/webbpm/webbpm.html new file mode 100644 index 00000000..a03250e8 --- /dev/null +++ b/frontend/src/resources/template/webbpm/webbpm.html @@ -0,0 +1,9 @@ +
+ +
+
+ +
+
+ +
diff --git a/frontend/src/ts/ervu-usr-autority/component/container/VBoxLoadValues.ts b/frontend/src/ts/ervu-usr-autority/component/container/VBoxLoadValues.ts new file mode 100644 index 00000000..bf9d1e6b --- /dev/null +++ b/frontend/src/ts/ervu-usr-autority/component/container/VBoxLoadValues.ts @@ -0,0 +1,26 @@ +import {ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef} from "@angular/core"; +import {VBox} from "@webbpm/base-package"; + +@Component({ + moduleId: module.id, + selector: 'vbox-load-values', + templateUrl: '../../../../../src/resources/template/ervu-usr-autority/component/container/VBoxLoadValues.html', + changeDetection: ChangeDetectionStrategy.OnPush + }) +export class VBoxLoadValues extends VBox { + + constructor(el: ElementRef, cd: ChangeDetectorRef) { + super(el, cd); + } + + public loadValues(selected: any, guids: any): Promise { + if (selected) { + return this.containerLoader.containerLoaderRpcService.loadData(selected, guids, false) + .then(fieldDataList => this.setData(fieldDataList)) + .then(() => this.fireOnLoadEvent()); + } + else { + return Promise.resolve(); + } + } +} diff --git a/frontend/src/ts/ervu-usr-autority/scripts/SetCurrentUserIdAsDefValue.ts b/frontend/src/ts/ervu-usr-autority/scripts/SetCurrentUserIdAsDefValue.ts new file mode 100644 index 00000000..688aa73c --- /dev/null +++ b/frontend/src/ts/ervu-usr-autority/scripts/SetCurrentUserIdAsDefValue.ts @@ -0,0 +1,24 @@ +import {AnalyticalScope, Behavior, SessionStore, TextField} from "@webbpm/base-package"; + +@AnalyticalScope("TextField") +export class SetCurrentUserIdAsDefValue extends Behavior { + private textField: TextField; + private sessionStore: SessionStore; + + + initialize() { + super.initialize(); + this.textField = this.getScript('component.ControlWithValue'); + this.sessionStore = this.injector.get(SessionStore); + } + + start(): void { + super.start(); + + if (this.textField && this.textField.isPristine() && this.sessionStore && + this.sessionStore.getSession()) { + this.textField.setValue(this.sessionStore.getSession().userAccountId); + this.getContext().getChangeDetector().detectChanges(); + } + } +} diff --git a/frontend/src/ts/main.aot.ts b/frontend/src/ts/main.aot.ts new file mode 100644 index 00000000..ddd43fdf --- /dev/null +++ b/frontend/src/ts/main.aot.ts @@ -0,0 +1,8 @@ +import "../../src/resources/css/style.css"; +import {platformBrowser} from '@angular/platform-browser'; +import {enableProdMode} from "@angular/core"; +import {WebbpmModuleNgFactory} from "./modules/webbpm/webbpm.module.ngfactory"; + +window['dev_mode'] = false; +enableProdMode(); +platformBrowser().bootstrapModuleFactory(WebbpmModuleNgFactory); \ No newline at end of file diff --git a/frontend/src/ts/main.ts b/frontend/src/ts/main.ts new file mode 100644 index 00000000..d53c69a3 --- /dev/null +++ b/frontend/src/ts/main.ts @@ -0,0 +1,7 @@ +import {platformBrowserDynamic} from "@angular/platform-browser-dynamic"; +import {enableProdMode} from "@angular/core"; +import {WebbpmModule} from "./modules/webbpm/webbpm.module"; + +window['dev_mode'] = true; +enableProdMode(); +platformBrowserDynamic().bootstrapModule(WebbpmModule); diff --git a/frontend/src/ts/modules/app/app-routing.module.ts b/frontend/src/ts/modules/app/app-routing.module.ts new file mode 100644 index 00000000..5497cf09 --- /dev/null +++ b/frontend/src/ts/modules/app/app-routing.module.ts @@ -0,0 +1,77 @@ +import {NgModule} from "@angular/core"; +import {RouterModule, Routes} from "@angular/router"; +import {AccessDeniedComponent} from "./component/access-denied.component"; +import {LoginComponent} from "./component/login.component"; +import {AuthenticationGuard, ConfirmExitGuard, SignedInGuard} from "@webbpm/base-package"; +import {RegisterComponent} from "./component/register.component"; +import {ConfirmUserEmailComponent} from "./component/confirm-user-email.component"; +import {ResetPasswordComponent} from "./component/reset-password.component"; +import {NewPasswordComponent} from "./component/new-password.component"; + +const appRoutes: Routes = [ + { + path: 'login', + component: LoginComponent, + canActivate: [SignedInGuard] + }, + { + path: 'home', + loadChildren: 'generated-sources/page-home.module#PagehomeModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'app_list', + loadChildren: 'generated-sources/page-app_list.module#Pageapp_listModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'add_user_application', + loadChildren: 'generated-sources/page-add_user_application.module#Pageadd_user_applicationModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'edit_user_application', + loadChildren: 'generated-sources/page-edit_user_application.module#Pageedit_user_applicationModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'block_user_application', + loadChildren: 'generated-sources/page-block_user_application.module#Pageblock_user_applicationModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'process_application/:id', + loadChildren: 'generated-sources/page-process_application.module#Pageprocess_applicationModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'access-denied', + component: AccessDeniedComponent, + canActivate: [AuthenticationGuard, ConfirmExitGuard] + }, + { + path: 'registration', + component: RegisterComponent, + canActivate: [SignedInGuard] + }, + { + path: 'confirm', + component: ConfirmUserEmailComponent + }, + { + path: 'reset-password', + component: ResetPasswordComponent + }, + { + path: 'new-password', + component: NewPasswordComponent + } +]; + +@NgModule({ + imports: [RouterModule.forChild(appRoutes)], + exports: [RouterModule] +}) +export class AppRoutingModule { + +} diff --git a/frontend/src/ts/modules/app/app.module.ts b/frontend/src/ts/modules/app/app.module.ts new file mode 100644 index 00000000..17d7af57 --- /dev/null +++ b/frontend/src/ts/modules/app/app.module.ts @@ -0,0 +1,74 @@ +import {forwardRef, NgModule} from "@angular/core"; +import {NgbModule} from "@ng-bootstrap/ng-bootstrap"; +import {CommonModule, registerLocaleData} from "@angular/common"; +import localeRu from '@angular/common/locales/ru'; +import {FormsModule} from "@angular/forms"; +import {AgGridModule} from "ag-grid-angular"; +import { + BpmnModule, + ComponentsModule, + CoreModule, + ProgressIndicationService, + SecurityModule +} from "@webbpm/base-package"; +import {AdminMenuComponent} from "./component/admin-menu.component"; +import {AppHeaderComponent} from "./component/app-header.component"; +import {AppFooterComponent} from "./component/app-footer.component"; +import {LogOutComponent} from "./component/logout.component"; +import {LoginComponent} from "./component/login.component"; +import {AccessDeniedComponent} from "./component/access-denied.component"; +import {ApplicationVersionComponent} from "./component/application-version.component"; +import {RouterModule} from "@angular/router"; +import {RegisterComponent} from "./component/register.component"; +import {ConfirmUserEmailComponent} from "./component/confirm-user-email.component"; +import {InternationalPhoneNumberModule} from "ngx-international-phone-number"; +import {ResetPasswordComponent} from "./component/reset-password.component"; +import {NewPasswordComponent} from "./component/new-password.component"; +import {AppProgressIndicationComponent} from "./component/app-progress-indication.component"; +import {AppProgressIndicationService} from "./service/app-progress-indication.service"; +import {VBoxLoadValues} from "../../ervu-usr-autority/component/container/VBoxLoadValues"; + +registerLocaleData(localeRu); +export const DIRECTIVES = [ + forwardRef(() => AppHeaderComponent), + forwardRef(() => AppFooterComponent), + forwardRef(() => AdminMenuComponent), + forwardRef(() => ApplicationVersionComponent), + forwardRef(() => LogOutComponent), + forwardRef(() => LoginComponent), + forwardRef(() => AccessDeniedComponent), + forwardRef(() => RegisterComponent), + forwardRef(() => ConfirmUserEmailComponent), + forwardRef(() => ResetPasswordComponent), + forwardRef(() => NewPasswordComponent), + forwardRef(() => AppProgressIndicationComponent), + forwardRef(() => VBoxLoadValues) +]; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + CoreModule, + NgbModule, + BpmnModule, + SecurityModule, + ComponentsModule, + AgGridModule, + RouterModule, + InternationalPhoneNumberModule + ], + declarations: [ + DIRECTIVES + ], + exports: [ + DIRECTIVES + ], + providers: [ + { provide: ProgressIndicationService, useClass: AppProgressIndicationService } + ], + bootstrap: [], + entryComponents: [AppProgressIndicationComponent] + }) +export class AppModule { +} diff --git a/frontend/src/ts/modules/app/component/access-denied.component.ts b/frontend/src/ts/modules/app/component/access-denied.component.ts new file mode 100644 index 00000000..269011bd --- /dev/null +++ b/frontend/src/ts/modules/app/component/access-denied.component.ts @@ -0,0 +1,11 @@ +import {ChangeDetectionStrategy, Component} from "@angular/core"; + +@Component({ + moduleId: module.id, + selector: "access-denied", + templateUrl: "../../../../../src/resources/template/app/component/access_denied.html", + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AccessDeniedComponent { + +} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/component/admin-menu.component.ts b/frontend/src/ts/modules/app/component/admin-menu.component.ts new file mode 100644 index 00000000..81130918 --- /dev/null +++ b/frontend/src/ts/modules/app/component/admin-menu.component.ts @@ -0,0 +1,23 @@ +import {ChangeDetectionStrategy, Component, Input} from "@angular/core"; +import {UserService, Session} from "@webbpm/base-package"; +import {NgbDropdownConfig, Placement} from "@ng-bootstrap/ng-bootstrap"; +import {Observable} from "rxjs"; + +@Component({ + moduleId: module.id, + selector: 'admin-menu', + templateUrl: '../../../../../src/resources/template/app/component/admin_menu.html', + providers: [NgbDropdownConfig], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AdminMenuComponent { + + @Input() + public placement: Placement = 'bottom'; + public currentSession: Observable; + + constructor(protected userService: UserService, public config: NgbDropdownConfig) { + this.config.placement = this.placement; + this.currentSession = this.userService.getCurrentSession(); + } +} diff --git a/frontend/src/ts/modules/app/component/app-footer.component.ts b/frontend/src/ts/modules/app/component/app-footer.component.ts new file mode 100644 index 00000000..63787987 --- /dev/null +++ b/frontend/src/ts/modules/app/component/app-footer.component.ts @@ -0,0 +1,9 @@ +import {Component} from "@angular/core"; + +@Component({ + moduleId: module.id, + selector: "app-footer", + templateUrl: "../../../../../src/resources/template/app/component/app_footer.html" +}) +export class AppFooterComponent { +} diff --git a/frontend/src/ts/modules/app/component/app-header.component.ts b/frontend/src/ts/modules/app/component/app-header.component.ts new file mode 100644 index 00000000..75c4f249 --- /dev/null +++ b/frontend/src/ts/modules/app/component/app-header.component.ts @@ -0,0 +1,20 @@ +import {ChangeDetectionStrategy, Component} from "@angular/core"; +import {Router} from "@angular/router"; +import {UserService, Session} from "@webbpm/base-package"; +import {Observable} from "rxjs"; + +@Component({ + moduleId: module.id, + selector: "app-header", + templateUrl: "../../../../../src/resources/template/app/component/app_header.html", + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AppHeaderComponent { + + public currentSession: Observable; + + constructor(protected userService: UserService, + protected router: Router) { + this.currentSession = this.userService.getCurrentSession(); + } +} diff --git a/frontend/src/ts/modules/app/component/app-progress-indication.component.ts b/frontend/src/ts/modules/app/component/app-progress-indication.component.ts new file mode 100644 index 00000000..006fdb76 --- /dev/null +++ b/frontend/src/ts/modules/app/component/app-progress-indication.component.ts @@ -0,0 +1,11 @@ +import {ChangeDetectionStrategy, Component} from "@angular/core"; + +@Component({ + moduleId: module.id, + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'progress-indication-dialog-content', + templateUrl: '../../../../../src/resources/template/app/component/progress-indication.html' +}) +export class AppProgressIndicationComponent { + +} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/component/application-version.component.ts b/frontend/src/ts/modules/app/component/application-version.component.ts new file mode 100644 index 00000000..a10da22c --- /dev/null +++ b/frontend/src/ts/modules/app/component/application-version.component.ts @@ -0,0 +1,24 @@ +import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from "@angular/core"; +import {HttpClient} from "@angular/common/http"; + +@Component({ + moduleId: module.id, + selector: "application-version", + templateUrl: "../../../../../src/resources/template/app/component/application_version.html", + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ApplicationVersionComponent { + @Input() + public applicationVersion: string; + + constructor(private httpClient: HttpClient, private cd: ChangeDetectorRef) { + this.loadAppVersion(); //TODO: check version url + } + + private loadAppVersion() { + this.httpClient.get("version").toPromise().then((version: any) => { + this.applicationVersion = version.number; + this.cd.markForCheck(); + }) + } +} diff --git a/frontend/src/ts/modules/app/component/confirm-user-email.component.ts b/frontend/src/ts/modules/app/component/confirm-user-email.component.ts new file mode 100644 index 00000000..92c34b1c --- /dev/null +++ b/frontend/src/ts/modules/app/component/confirm-user-email.component.ts @@ -0,0 +1,51 @@ +import {ActivatedRoute, Router} from "@angular/router"; +import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from "@angular/core"; +import {Session, UserService} from "@webbpm/base-package"; +import {Observable} from "rxjs"; + +enum VerificationStatus { + VERIFYING = "VERIFYING", + VERIFIED = "VERIFIED", + FAILED = "FAILED" +} + +@Component({ + moduleId: module.id, + selector: "confirm", + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: "../../../../../src/resources/template/app/component/confirm-user-email.html" +}) +export class ConfirmUserEmailComponent { + public verificationStatus = VerificationStatus.VERIFYING; + public currentSession: Observable; + + @Input() + public errorMessage: string; + + constructor(private router: Router, private userService: UserService, + private route: ActivatedRoute, private cd: ChangeDetectorRef) { + this.currentSession = this.userService.getCurrentSession(); + } + + ngOnInit() { + const link: string = this.route.snapshot.queryParamMap.get("link"); + // remove link from url to prevent http referer leakage + this.router.navigate([], { relativeTo: this.route, replaceUrl: true }); + this.userService.confirm( + link, + (reason) => { + this.verificationStatus = VerificationStatus.FAILED; + if (reason.status === 404) { + this.errorMessage = 'Ссылка недействительна. Требуется повторная регистрация.'; + } + else { + this.errorMessage = 'Произошла ошибка, обратитесь в службу технической поддержки!'; + } + this.cd.markForCheck(); + }) + .then(() => { + this.verificationStatus = VerificationStatus.VERIFIED; + this.cd.markForCheck(); + }); + } +} diff --git a/frontend/src/ts/modules/app/component/login.component.ts b/frontend/src/ts/modules/app/component/login.component.ts new file mode 100644 index 00000000..6e790b21 --- /dev/null +++ b/frontend/src/ts/modules/app/component/login.component.ts @@ -0,0 +1,68 @@ +import {Component, Input} from "@angular/core"; +import {ActivatedRoute, Router} from "@angular/router"; +import {UserService, Credentials} from "@webbpm/base-package"; + +@Component({ + moduleId: module.id, + selector: "login", + templateUrl: "../../../../../src/resources/template/app/component/login.html" +}) +export class LoginComponent { + + @Input() + public username: string; + + @Input() + public password: string; + public passwordType: boolean; + + @Input() + public errorMessage: string; + + @Input() + public confirmationSent: boolean; + + constructor(private router: Router, private userService: UserService, + private route: ActivatedRoute) { + } + + ngOnInit() { + this.confirmationSent = this.route.snapshot.queryParamMap.get('confirmationSent') === 'true'; + this.router.navigate([], { relativeTo: this.route, replaceUrl: true }); + } + + public login(): void { + let credentials: Credentials = new Credentials(); + credentials.username = this.username; + credentials.password = this.password; + + this.userService.login(credentials, "Password") + .then(() => this.router.navigateByUrl("/"), + (reason: any) => { + switch (reason.status) { + case 401: { + this.errorMessage = "Неправильный логин или пароль"; + break; + } + case 404: { + this.errorMessage = "Приложение стартует. Пожалуйста, подождите..."; + break; + } + default: { + this.errorMessage = + "Произошла неизвестная ошибка, обратитесь в службу технической поддержки!"; + break; + } + } + } + ); + } + + public goToRegister(): void { + this.router.navigateByUrl("/register"); + } + + togglePasswordType(): void { + this.passwordType = !this.passwordType; + } +} diff --git a/frontend/src/ts/modules/app/component/logout.component.ts b/frontend/src/ts/modules/app/component/logout.component.ts new file mode 100644 index 00000000..9cc3081a --- /dev/null +++ b/frontend/src/ts/modules/app/component/logout.component.ts @@ -0,0 +1,37 @@ +import {Component} from "@angular/core"; +import {UserService, Session, AuthenticationMethodService} from "@webbpm/base-package"; +import {Observable} from "rxjs"; + +@Component({ + moduleId: module.id, + selector: "[log-out]", + templateUrl: "../../../../../src/resources/template/app/component/log_out.html" +}) +export class LogOutComponent { + + public currentSession: Observable; + + constructor(private userService: UserService, private authenticationMethodService: AuthenticationMethodService) { + this.currentSession = userService.getCurrentSession(); + } + + public logout(): void { + this.userService.logout(); + } + + public getCurrentUserName(): string { + return this.userService.getCurrentUserName(); + } + + public getFullUserName(): string { + return this.userService.getFullUserName(); + } + + public isLogoutButtonVisible(): boolean { + return this.authenticationMethodService.isFormAuth(); + } + + public getOrgUnitName(): string { + return this.userService.getOrgUnitName(); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/component/new-password.component.ts b/frontend/src/ts/modules/app/component/new-password.component.ts new file mode 100644 index 00000000..ac7c4341 --- /dev/null +++ b/frontend/src/ts/modules/app/component/new-password.component.ts @@ -0,0 +1,79 @@ +import {ActivatedRoute, Router} from "@angular/router"; +import {Component, Input} from "@angular/core"; +import {Session, UserPasswordResetRequestDto, UserService} from "@webbpm/base-package"; +import {Observable} from "rxjs"; + +@Component({ + moduleId: module.id, + selector: "newPassword", + templateUrl: "../../../../../src/resources/template/app/component/new_password.html" + }) +export class NewPasswordComponent { + public currentSession: Observable; + + private token: string; + + @Input() + public password: string; + public passwordType: boolean; + + @Input() + public confirmPassword: string; + public confirmPasswordType: boolean; + + @Input() + public errorMessage: string; + + constructor(private router: Router, private userService: UserService, + private route: ActivatedRoute) { + this.currentSession = this.userService.getCurrentSession(); + } + + ngOnInit() { + this.token = this.route.snapshot.queryParamMap.get("token"); + + this.router.navigate([], {relativeTo: this.route, replaceUrl: true}); + + if (this.token == undefined || this.token === '') { + this.errorMessage = 'Ссылка недействительна. Требуется повторить восстановление пароля.'; + return; + } + } + + public changePassword(): void { + let dto: UserPasswordResetRequestDto = new UserPasswordResetRequestDto(); + dto.password = this.password; + dto.passwordConfirm = this.confirmPassword; + this.userService.changePassword(dto, this.token) + .then(() => this.router.navigateByUrl("/"), + () => { + this.errorMessage = + 'Произошла неизвестная ошибка, обратитесь в службу технической поддержки!'; + }); + } + + togglePasswordType(): void { + this.passwordType = !this.passwordType; + } + + toggleConfirmPasswordType(): void { + this.confirmPasswordType = !this.confirmPasswordType; + } + + validPasswords(): boolean { + if (this.password === undefined || this.confirmPassword === undefined) { + return false; + } + + let eq = this.password === this.confirmPassword; + if (!eq) { + this.errorMessage = 'Введенные пароли не совпадают. Убедитесь, что данные, ' + + 'введенные в поле "Подтверждение пароля", совпадают с теми, ' + + 'которые указаны в поле "Пароль".'; + } + else { + this.errorMessage = ''; + } + return eq; + } +} diff --git a/frontend/src/ts/modules/app/component/register.component.ts b/frontend/src/ts/modules/app/component/register.component.ts new file mode 100644 index 00000000..2501c03b --- /dev/null +++ b/frontend/src/ts/modules/app/component/register.component.ts @@ -0,0 +1,71 @@ +import {Component, Input, ViewChild} from "@angular/core"; +import {AppConfigService, UserDto, UserService} from "@webbpm/base-package"; +import {Router} from "@angular/router"; +import {PhoneNumberComponent} from "ngx-international-phone-number"; + +@Component({ + moduleId: module.id, + selector: "register", + templateUrl: "../../../../../src/resources/template/app/component/register.html" +}) +export class RegisterComponent { + + public passwordPattern: string; + public passwordPatternErrorMessage: string; + public errorMessage: string; + + @Input() + public username: string; + + @Input() + public email: string; + @ViewChild(PhoneNumberComponent) + public phone: PhoneNumberComponent; + public phoneNumber: string; + + public phoneIsTouched: boolean = false; + @Input() + public password: string; + + public fieldType: boolean; + + @Input() + public consent: string; + + constructor(private router: Router, private userService: UserService,private appConfigService: AppConfigService) { + this.passwordPattern = appConfigService.getParamValue("password_pattern"); + this.passwordPatternErrorMessage = appConfigService.getParamValue("password_pattern_error"); + } + + public register(): void { + let user: UserDto = new UserDto(); + user.username = this.username; + user.email = this.email; + user.name = this.username; + user.phone = this.phone.value; + user.password = this.password; + + this.userService.register(user) + .then(() => this.router.navigateByUrl("/login?confirmationSent=true"), + (reason: any) => { + if (reason.status === 409) { + this.errorMessage = 'Пользователь с данным почтовым адресом уже существует'; + } + else { + this.errorMessage = 'Произошла неизвестная ошибка, обратитесь в службу технической поддержки!'; + } + }); + } + + toggleFieldType(): void { + this.fieldType = !this.fieldType; + } + + phoneHasOnlyDialCode(): boolean { + return this.phone.phoneNumber.trim() === this.phone.getSelectedCountryDialCode().trim() + } + + phoneInputFocusOut(): void { + this.phoneIsTouched = true; + } +} diff --git a/frontend/src/ts/modules/app/component/reset-password.component.ts b/frontend/src/ts/modules/app/component/reset-password.component.ts new file mode 100644 index 00000000..e9b9ee23 --- /dev/null +++ b/frontend/src/ts/modules/app/component/reset-password.component.ts @@ -0,0 +1,30 @@ +import {Component, Input} from "@angular/core"; +import {UserService} from "@webbpm/base-package"; +import {Router} from "@angular/router"; + +@Component({ + moduleId: module.id, + selector: "resetPassword", + templateUrl: "../../../../../src/resources/template/app/component/reset_password.html" + }) +export class ResetPasswordComponent { + + @Input() + public email: string; + + @Input() + public errorMessage: string; + + constructor(private router: Router, private userService: UserService) { + } + + resetPassword(): void { + + this.userService.resetPassword(this.email) + .then(() => this.router.navigateByUrl("/"), + (reason: any) => { + this.errorMessage = + 'Произошла неизвестная ошибка, обратитесь в службу технической поддержки!'; + }); + } +} diff --git a/frontend/src/ts/modules/app/service/app-progress-indication.service.ts b/frontend/src/ts/modules/app/service/app-progress-indication.service.ts new file mode 100644 index 00000000..48100d5f --- /dev/null +++ b/frontend/src/ts/modules/app/service/app-progress-indication.service.ts @@ -0,0 +1,95 @@ +import {Injectable} from "@angular/core"; +import {AppProgressIndicationComponent} from "../component/app-progress-indication.component"; +import {NgbModal, NgbModalOptions, NgbModalRef} from "@ng-bootstrap/ng-bootstrap"; + +@Injectable() +export class AppProgressIndicationService { + + private static readonly EVENT_INTERCEPTOR = (event) => { + event.preventDefault(); + event.stopPropagation(); + }; + + private counter: number = 0; + private focused: any; + private ngbModalRef: NgbModalRef; + private options: NgbModalOptions = { + backdrop: 'static', + keyboard: false, + windowClass: 'modal-center loader' + }; + + constructor(private ngbModal: NgbModal) { + } + + public showProgressBar(): boolean { + if (this.counter == 0) { + this.disableEvents(); + this.saveFocus(); + this.showProgressIndicator(); + } + ++this.counter; + return this.counter == 1; + } + + public hideProgressBar(): boolean { + if (this.counter == 0) { + return false; + } + if (this.counter == 1) { + this.hideProgressIndicator(); + this.restoreFocus(); + this.enableEvents(); + } + --this.counter; + return this.counter == 0; + } + + public unconditionallyHideProgressBar(): void { + this.enableEvents(); + this.hideProgressIndicator(); + } + + public restoreProgressBar(): void { + + if (this.counter > 0 && this.ngbModalRef == null) { + this.disableEvents(); + this.showProgressIndicator(); + } + } + + private showProgressIndicator() { + this.ngbModalRef = this.ngbModal.open(AppProgressIndicationComponent, this.options); + } + + private hideProgressIndicator() { + this.ngbModalRef.dismiss('cancel'); + this.ngbModalRef = null; + } + + private saveFocus() { + this.focused = $(':focus'); + } + + private restoreFocus() { + if (this.focused) { + this.focused.focus(); + this.focused = null; + } + } + + private disableEvents() { + let body = $('body'); + body.keydown(AppProgressIndicationService.EVENT_INTERCEPTOR); + body.keyup(AppProgressIndicationService.EVENT_INTERCEPTOR); + body.contextmenu(AppProgressIndicationService.EVENT_INTERCEPTOR) + } + + private enableEvents() { + let body = $('body'); + body.off('keydown', AppProgressIndicationService.EVENT_INTERCEPTOR); + body.off('keyup', AppProgressIndicationService.EVENT_INTERCEPTOR); + body.off('contextmenu', AppProgressIndicationService.EVENT_INTERCEPTOR); + } + +} diff --git a/frontend/src/ts/modules/preview/component/preview-container.component.ts b/frontend/src/ts/modules/preview/component/preview-container.component.ts new file mode 100644 index 00000000..f8cdd27c --- /dev/null +++ b/frontend/src/ts/modules/preview/component/preview-container.component.ts @@ -0,0 +1,9 @@ +import {Component} from "@angular/core"; + +@Component({ + moduleId: module.id, + selector: "[preview-container]", + templateUrl: "../../../../../src/resources/template/preview/preview_container.html" +}) +export class PreviewContainerComponent { +} diff --git a/frontend/src/ts/modules/preview/component/preview.component.ts b/frontend/src/ts/modules/preview/component/preview.component.ts new file mode 100644 index 00000000..b1ecab62 --- /dev/null +++ b/frontend/src/ts/modules/preview/component/preview.component.ts @@ -0,0 +1,9 @@ +import {Component} from "@angular/core"; + +@Component({ + moduleId: module.id, + selector: "[preview]", + templateUrl: "../../../../../src/resources/template/preview/preview.html" +}) +export class PreviewComponent { +} diff --git a/frontend/src/ts/modules/preview/preview-routing.module.ts b/frontend/src/ts/modules/preview/preview-routing.module.ts new file mode 100644 index 00000000..0a5c665f --- /dev/null +++ b/frontend/src/ts/modules/preview/preview-routing.module.ts @@ -0,0 +1,20 @@ +import {NgModule} from "@angular/core"; +import {RouterModule, Routes} from "@angular/router"; +import {PreviewComponent} from "./component/preview.component"; +import {DYNAMIC_ROUTING} from "../../page.routing"; + +const previewRoutes: Routes = [ + { + path: 'preview', + component: PreviewComponent, + children: DYNAMIC_ROUTING, + } +]; + +@NgModule({ + imports: [RouterModule.forRoot(previewRoutes, {useHash: true})], + exports: [RouterModule] +}) +export class PreviewRoutingModule { + +} \ No newline at end of file diff --git a/frontend/src/ts/modules/preview/preview.main.ts b/frontend/src/ts/modules/preview/preview.main.ts new file mode 100644 index 00000000..2a5de47f --- /dev/null +++ b/frontend/src/ts/modules/preview/preview.main.ts @@ -0,0 +1,7 @@ +import {platformBrowserDynamic} from "@angular/platform-browser-dynamic"; +import {enableProdMode} from "@angular/core"; +import {PreviewModule} from "./preview.module"; + +window['dev_mode'] = true; +enableProdMode(); +platformBrowserDynamic().bootstrapModule(PreviewModule); diff --git a/frontend/src/ts/modules/preview/preview.module.ts b/frontend/src/ts/modules/preview/preview.module.ts new file mode 100644 index 00000000..47a0066b --- /dev/null +++ b/frontend/src/ts/modules/preview/preview.module.ts @@ -0,0 +1,51 @@ +import {NgModule, NgZone} from "@angular/core"; +import {FormsModule} from "@angular/forms"; +import {BrowserModule} from "@angular/platform-browser"; +import {AgGridModule} from "ag-grid-angular"; +import {PreviewComponent} from "./component/preview.component"; +import {PreviewRoutingModule} from "./preview-routing.module"; +import {PreviewContainerComponent} from "./component/preview-container.component"; +import {NgbModule} from "@ng-bootstrap/ng-bootstrap"; +import {ToastNoAnimationModule} from "ngx-toastr"; +import {AppModule} from "../app/app.module"; +import {ComponentsModule, CoreModule, SecurityModule} from "@webbpm/base-package"; +import {HTTP_INTERCEPTORS} from "@angular/common/http"; +import {HttpPreviewInterceptor} from "./service/http-preview-interceptor.service"; + +export const HTTP_INTERCEPTOR_PROVIDERS = [ + { provide: HTTP_INTERCEPTORS, useClass: HttpPreviewInterceptor, multi: true } +]; + +let IMPORTS = [ + BrowserModule, + FormsModule, + NgbModule, + ToastNoAnimationModule.forRoot(), + AgGridModule, + CoreModule, + ComponentsModule, + AppModule, + SecurityModule, + PreviewRoutingModule +]; + +@NgModule({ + imports: IMPORTS, + declarations: [ + PreviewContainerComponent, + PreviewComponent + ], + exports: [], + providers: [ + HTTP_INTERCEPTOR_PROVIDERS + ], + bootstrap: [ + PreviewContainerComponent + ] +}) +export class PreviewModule { + + constructor(zone: NgZone) { + window['zoneImpl'] = zone; + } +} diff --git a/frontend/src/ts/modules/preview/service/http-preview-interceptor.service.ts b/frontend/src/ts/modules/preview/service/http-preview-interceptor.service.ts new file mode 100644 index 00000000..ca7d7b5f --- /dev/null +++ b/frontend/src/ts/modules/preview/service/http-preview-interceptor.service.ts @@ -0,0 +1,16 @@ +import {Injectable} from "@angular/core"; +import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from "@angular/common/http"; +import {EMPTY, Observable} from "rxjs"; +import {catchError} from "rxjs/operators"; + +@Injectable() +export class HttpPreviewInterceptor implements HttpInterceptor { + + intercept(req: HttpRequest, next: HttpHandler): Observable> { + + return next.handle(req).pipe(catchError(() => { + return EMPTY; + } + )); + } +} \ No newline at end of file diff --git a/frontend/src/ts/modules/webbpm/component/home.component.ts b/frontend/src/ts/modules/webbpm/component/home.component.ts new file mode 100644 index 00000000..7361c8a4 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/component/home.component.ts @@ -0,0 +1,9 @@ +import {Component} from "@angular/core"; + +@Component({ + moduleId: module.id, + selector: "home", + templateUrl: './../../../../../src/resources/template/webbpm/home.html' +}) +export class HomeComponent { +} diff --git a/frontend/src/ts/modules/webbpm/component/webbpm.component.ts b/frontend/src/ts/modules/webbpm/component/webbpm.component.ts new file mode 100644 index 00000000..df6a67a0 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/component/webbpm.component.ts @@ -0,0 +1,34 @@ +import {Component} from "@angular/core"; +import { + Event, + NavigationCancel, + NavigationEnd, + NavigationError, + NavigationStart, + Router +} from "@angular/router"; +import {ProgressIndicationService} from "@webbpm/base-package"; + +@Component({ + moduleId: module.id, + selector: '[webbpm]', + templateUrl: './../../../../../src/resources/template/webbpm/webbpm.html' +}) +export class WebbpmComponent { + public headerVisible: boolean = true; + public footerVisible: boolean = true; + + constructor(private router: Router, + private progressIndicationService: ProgressIndicationService) { + router.events.subscribe((event: Event) => { + if (event instanceof NavigationStart) { + progressIndicationService.showProgressBar(); + } + else if (event instanceof NavigationEnd + || event instanceof NavigationError + || event instanceof NavigationCancel) { + progressIndicationService.hideProgressBar(); + } + }) + } +} diff --git a/frontend/src/ts/modules/webbpm/handler/global-error.handler.prod.ts b/frontend/src/ts/modules/webbpm/handler/global-error.handler.prod.ts new file mode 100644 index 00000000..5665de78 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/handler/global-error.handler.prod.ts @@ -0,0 +1,10 @@ +import {ErrorHandler, Injectable, Injector} from '@angular/core'; +import {BaseErrorHandler} from "@webbpm/base-package"; + +@Injectable({providedIn: 'root'}) +export class GlobalErrorHandler extends BaseErrorHandler implements ErrorHandler { + + constructor(injector: Injector) { + super(injector); + } +} diff --git a/frontend/src/ts/modules/webbpm/handler/global-error.handler.ts b/frontend/src/ts/modules/webbpm/handler/global-error.handler.ts new file mode 100644 index 00000000..4350c080 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/handler/global-error.handler.ts @@ -0,0 +1,35 @@ +import {ErrorHandler, Injectable, Injector} from '@angular/core'; +import {BaseErrorHandler} from "@webbpm/base-package"; + +//todo: will be used after angular update in dev mode +@Injectable({providedIn: 'root'}) +export class GlobalErrorHandler extends BaseErrorHandler implements ErrorHandler { + + constructor(injector: Injector) { + super(injector); + } + + handleError(error) { + const chunkFailedMessage = /Loading chunk [\d]+ failed/; + + if (chunkFailedMessage.test(error.message)) { + window.location.reload(); + } + else if (!this.isPreviewPage()) { + super.handleError(error); + } + } + + internalHandleError(error) { + if (this.isPreviewPage()) { + return; + } + else { + super.internalHandleError(error); + } + } + + private isPreviewPage() { + return window.location.hash.includes("webbpm-preview"); + } +} diff --git a/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts new file mode 100644 index 00000000..07735d52 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.prod.ts @@ -0,0 +1,12 @@ +import {HTTP_INTERCEPTORS} from "@angular/common/http"; +import { + FormDirtyInterceptor, + HttpSecurityErrorInterceptor, + HttpSecurityInterceptor +} from "@webbpm/base-package"; + +export const DEFAULT_HTTP_INTERCEPTOR_PROVIDERS = [ + {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityErrorInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true} +]; diff --git a/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts new file mode 100644 index 00000000..ee46e0c2 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/interceptor/default-interceptors.ts @@ -0,0 +1,9 @@ +import {HTTP_INTERCEPTORS} from "@angular/common/http"; +import {FormDirtyInterceptor, HttpSecurityInterceptor} from "@webbpm/base-package"; +import {DevHttpSecurityErrorInterceptor} from "./http-security-error-interceptor.dev"; + +export const DEFAULT_HTTP_INTERCEPTOR_PROVIDERS = [ + {provide: HTTP_INTERCEPTORS, useClass: HttpSecurityInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: DevHttpSecurityErrorInterceptor, multi: true}, + {provide: HTTP_INTERCEPTORS, useClass: FormDirtyInterceptor, multi: true} +]; diff --git a/frontend/src/ts/modules/webbpm/interceptor/http-security-error-interceptor.dev.ts b/frontend/src/ts/modules/webbpm/interceptor/http-security-error-interceptor.dev.ts new file mode 100644 index 00000000..11a0c2b2 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/interceptor/http-security-error-interceptor.dev.ts @@ -0,0 +1,31 @@ +import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from "@angular/common/http"; +import {HttpSecurityErrorInterceptor, MessagesService, UserService} from "@webbpm/base-package"; +import {Injectable} from "@angular/core"; +import {Router} from "@angular/router"; +import {EMPTY, Observable} from "rxjs"; +import {catchError} from "rxjs/operators"; + +@Injectable() +export class DevHttpSecurityErrorInterceptor extends HttpSecurityErrorInterceptor + implements HttpInterceptor { + private router: Router; + + + constructor(router: Router, messagesService: MessagesService, userService: UserService) { + super(router, messagesService, userService); + this.router = router; + } + + intercept(req: HttpRequest, next: HttpHandler): Observable> { + + if (window.location.hash.includes("webbpm-preview")) { + return next.handle(req).pipe(catchError(() => { + return EMPTY; + } + )); + } + else { + return super.intercept(req, next); + } + } +} diff --git a/frontend/src/ts/modules/webbpm/user-management-routing.module.ts b/frontend/src/ts/modules/webbpm/user-management-routing.module.ts new file mode 100644 index 00000000..140ba29c --- /dev/null +++ b/frontend/src/ts/modules/webbpm/user-management-routing.module.ts @@ -0,0 +1,88 @@ +import {RouterModule, Routes} from "@angular/router"; +import {NgModule} from "@angular/core"; +import { + AuthenticationGuard, + ConfirmExitGuard +} from "@webbpm/base-package"; + +const routes: Routes = [ + { + path: 'user-management', + canActivate: [AuthenticationGuard], + children: [ + { + path: 'users', + loadChildren: 'generated-sources/page-user-management-users.module#PageusermanagementusersModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'users/new', + loadChildren: 'generated-sources/page-user-management-user-create.module#PageusermanagementusercreateModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'users/:id', + loadChildren: 'generated-sources/page-user-management-user-edit.module#PageusermanagementusereditModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'org-units', + loadChildren: 'generated-sources/page-user-management-org-units.module#PageusermanagementorgunitsModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'org-units/new', + loadChildren: 'generated-sources/page-user-management-org-unit.module#PageusermanagementorgunitModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'org-units/:id', + loadChildren: 'generated-sources/page-user-management-org-unit.module#PageusermanagementorgunitModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'roles', + loadChildren: 'generated-sources/page-user-management-roles.module#PageusermanagementrolesModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'roles/new', + loadChildren: 'generated-sources/page-user-management-role.module#PageusermanagementroleModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'roles/:id', + loadChildren: 'generated-sources/page-user-management-role.module#PageusermanagementroleModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'groups', + loadChildren: 'generated-sources/page-user-management-groups.module#PageusermanagementgroupsModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'groups/new', + loadChildren: 'generated-sources/page-user-management-group-create.module#PageusermanagementgroupcreateModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'groups/:id', + loadChildren: 'generated-sources/page-user-management-group-edit.module#PageusermanagementgroupeditModule', + canActivate: [ConfirmExitGuard] + }, + { + path: 'authorities', + loadChildren: 'generated-sources/page-user-management-authorities.module#PageusermanagementauthoritiesModule', + canActivate: [ConfirmExitGuard] + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class UserManagementRoutingModule { + +} diff --git a/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts b/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts new file mode 100644 index 00000000..b1195740 --- /dev/null +++ b/frontend/src/ts/modules/webbpm/webbpm-routing.module.ts @@ -0,0 +1,30 @@ +import {NgModule} from "@angular/core"; +import {RouterModule, Routes} from "@angular/router"; +import { + AuthenticationGuard, + ConfirmExitGuard +} from "@webbpm/base-package"; + +const webbpmRoutes: Routes = [ + { + path: '', + loadChildren: 'generated-sources/page-home.module#PagehomeModule', + canActivate: [AuthenticationGuard, ConfirmExitGuard], + pathMatch: 'full', + }, + { + path: '**', + redirectTo: '', + } +]; + +@NgModule({ + imports: [RouterModule.forRoot(webbpmRoutes, { + useHash: true, + onSameUrlNavigation: "reload" + })], + exports: [RouterModule] +}) +export class WebbpmRoutingModule { + +} diff --git a/frontend/src/ts/modules/webbpm/webbpm.module.ts b/frontend/src/ts/modules/webbpm/webbpm.module.ts new file mode 100644 index 00000000..76038b5b --- /dev/null +++ b/frontend/src/ts/modules/webbpm/webbpm.module.ts @@ -0,0 +1,56 @@ +import {ErrorHandler, NgModule} from "@angular/core"; +import {BrowserModule} from "@angular/platform-browser"; +import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; +import {FormsModule} from "@angular/forms"; +import {AgGridModule} from "ag-grid-angular"; +import {WebbpmComponent} from "./component/webbpm.component"; +import {WebbpmRoutingModule} from "./webbpm-routing.module"; +import {NgbModule} from "@ng-bootstrap/ng-bootstrap"; +import {ToastNoAnimationModule} from "ngx-toastr"; +import {AppModule} from "../app/app.module"; +import {HomeComponent} from "./component/home.component"; +import { + BpmnModule, + ComponentsModule, + CoreModule, + SecurityModule, +} from "@webbpm/base-package"; +import {AppRoutingModule} from "../app/app-routing.module"; +import {UserManagementRoutingModule} from "./user-management-routing.module"; +import {GlobalErrorHandler} from "./handler/global-error.handler.prod"; +import {DEFAULT_HTTP_INTERCEPTOR_PROVIDERS} from "./interceptor/default-interceptors.prod"; + +let IMPORTS = [ + BrowserAnimationsModule, + BrowserModule, + FormsModule, + NgbModule, + ToastNoAnimationModule.forRoot(), + AgGridModule, + AppRoutingModule, + UserManagementRoutingModule, + BpmnModule, + CoreModule, + ComponentsModule, + SecurityModule, + AppModule, + WebbpmRoutingModule +]; + +@NgModule({ + imports: IMPORTS, + declarations: [ + WebbpmComponent, + HomeComponent + ], + exports: [], + providers: [ + {provide: ErrorHandler, useClass: GlobalErrorHandler}, + DEFAULT_HTTP_INTERCEPTOR_PROVIDERS + ], + bootstrap: [ + WebbpmComponent + ] + }) +export class WebbpmModule { +} diff --git a/frontend/src/ts/page.routing.d.ts b/frontend/src/ts/page.routing.d.ts new file mode 100644 index 00000000..ff077ee3 --- /dev/null +++ b/frontend/src/ts/page.routing.d.ts @@ -0,0 +1,3 @@ +import {Routes} from "@angular/router"; + +declare const DYNAMIC_ROUTING: Routes; \ No newline at end of file diff --git a/frontend/src/ts/polyfills.ts b/frontend/src/ts/polyfills.ts new file mode 100644 index 00000000..4eb6fea2 --- /dev/null +++ b/frontend/src/ts/polyfills.ts @@ -0,0 +1,59 @@ +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +import 'core-js/es6/symbol'; +import 'core-js/es6/object'; +import 'core-js/es6/function'; +import 'core-js/es6/parse-int'; +import 'core-js/es6/parse-float'; +import 'core-js/es6/number'; +import 'core-js/es6/math'; +import 'core-js/es6/string'; +import 'core-js/es6/date'; +import 'core-js/es6/array'; +import 'core-js/es6/regexp'; +import 'core-js/es6/map'; +import 'core-js/es6/weak-map'; +import 'core-js/es6/set'; +import 'core-js/es6/promise'; +import 'core-js/es7'; +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + +​ +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. + + + +/** + * Required to support Web Animations `@angular/platform-browser/animations`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + + // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + + /* + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + */ +// (window as any).__Zone_enable_cross_context_check = true; +​ +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone';// Included with Angular CLI.​ + +​ +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/frontend/src/ts/vendor.ts b/frontend/src/ts/vendor.ts new file mode 100644 index 00000000..797b170c --- /dev/null +++ b/frontend/src/ts/vendor.ts @@ -0,0 +1,38 @@ +// Angular +import '@angular/core'; +import '@angular/common'; +import '@angular/common/http'; +import '@angular/forms'; +import '@angular/platform-browser'; +import '@angular/router'; +import '@angular/animations'; +import '@webbpm/base-package'; +// RxJS +import 'rxjs'; +import 'rxjs-compat'; +import 'rxjs/operators'; +import 'rxjs/internal-compatibility'; +import 'rxjs/ajax'; +import 'rxjs/testing'; +import 'rxjs/webSocket'; +//jquery +import 'jquery'; +//popper +import 'popper.js'; +//bootstrap +import '@ng-bootstrap/ng-bootstrap'; +import 'bootstrap'; +//mask +import 'inputmask'; +//grid +import 'ag-grid-community'; +import 'ag-grid-angular'; +//selectize +import 'selectize'; +//datepicker +import 'eonasdan-bootstrap-datetimepicker'; +import 'moment-timezone'; +//ngx-toastr +import 'ngx-toastr'; +//ngx-cookie +import 'ngx-cookie'; diff --git a/frontend/systemjs.config.js b/frontend/systemjs.config.js new file mode 100644 index 00000000..12b92188 --- /dev/null +++ b/frontend/systemjs.config.js @@ -0,0 +1,91 @@ +(function(global) { + System.config({ + transpiler: 'plugin-babel', + paths: { + 'npm:': 'node_modules/', + 'generated-sources': 'build_dev/js/generated-sources' + }, + map: { + 'webbpm': 'build_dev/js', + '@angular/core': 'npm:@angular/core/bundles/core.umd.js', + '@angular/common': 'npm:@angular/common/bundles/common.umd.js', + '@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js', + '@angular/common/locales': 'npm:@angular/common/locales', + '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', + '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', + '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', + '@angular/router': 'npm:@angular/router/bundles/router.umd.js', + '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', + '@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js', + '@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js', + '@angular/platform-browser/animations':'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js', + '@ng-bootstrap/ng-bootstrap': 'npm:@ng-bootstrap/ng-bootstrap/bundles/ng-bootstrap.umd.js', + 'bootstrap': 'npm:bootstrap', + '@webbpm/base-package': 'npm:@webbpm/base-package/bundles/webbpm-base-package.umd.js', + 'angular-calendar': 'npm:angular-calendar/bundles/angular-calendar.umd.js', + 'angular-calendar/date-adapters/date-fns': 'npm:angular-calendar/date-adapters/date-fns/index.js', + 'angular-draggable-droppable': 'npm:angular-draggable-droppable/bundles/angular-draggable-droppable.umd.js', + 'angular-resizable-element': 'npm:angular-resizable-element/bundles/angular-resizable-element.umd.js', + 'calendar-utils': 'npm:calendar-utils/bundles/calendar-utils.umd.js', + 'calendar-utils/date-adapters/date-fns': 'npm:calendar-utils/date-adapters/date-fns/index.js', + 'date-fns': 'npm:date-fns', + 'ngx-cookie': 'npm:ngx-cookie/bundles/ngx-cookie.umd.js', + 'moment': 'npm:moment', + 'moment-timezone': 'npm:moment-timezone', + 'positioning': 'npm:positioning/dist/positioning.js', + 'rxjs': 'npm:rxjs', + 'rxjs-compat': 'npm:rxjs-compat', + 'rxjs/operators': 'npm:rxjs/operators', + 'rxjs/internal-compatibility': 'npm:rxjs/internal-compatibility', + 'rxjs/ajax': 'npm:rxjs/ajax', + 'rxjs/testing': 'npm:rxjs/testing', + 'rxjs/webSocket': 'npm:rxjs/webSocket', + 'jquery': 'npm:jquery/dist/jquery.js', + 'popper.js': 'npm:popper.js/dist/umd/popper.js', + 'selectize': 'npm:selectize/dist/js/selectize.min.js', + 'ngx-toastr': 'npm:ngx-toastr/bundles/ngx-toastr.umd.min.js', + 'eonasdan-bootstrap-datetimepicker': 'npm:eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js', + 'autonumeric': 'npm:autonumeric', + 'jsgantt-improved': 'npm:jsgantt-improved/dist/jsgantt.js', + 'js-year-calendar': 'npm:js-year-calendar/dist/js-year-calendar.js', + 'ag-grid-angular': 'npm:ag-grid-angular/bundles/ag-grid-angular.umd.js', + 'ag-grid-community': 'npm:ag-grid-community/dist/ag-grid-community.cjs.js', + 'inputmask': 'npm:inputmask', + 'downloadjs': 'npm:downloadjs/download.js', + 'esmarttokenjs': 'npm:esmarttokenjs/esmarttoken.js', + 'cadesplugin_api': 'npm:cadesplugin_api/index.js', + 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', + 'systemjs-babel-build': 'npm:systemjs-plugin-babel/systemjs-babel-browser.js', + 'chart.js': 'npm:chart.js/dist', + 'chartjs-adapter-moment': 'npm:chartjs-adapter-moment/dist/chartjs-adapter-moment.js', + 'tslib': 'npm:tslib/tslib.js', + 'ngx-international-phone-number': 'npm:ngx-international-phone-number/ngx-international-phone-number.umd.js', + 'google-libphonenumber': 'npm:google-libphonenumber/dist/libphonenumber.js' + }, + packages: { + 'webbpm': { main: 'main', defaultExtension: 'js'}, + '@angular/common/locales': { defaultExtension: 'js'}, + 'date-fns': { main: 'index.js', defaultExtension: 'js'}, + 'rxjs': { main: 'index.js', defaultExtension: 'js' }, + 'rxjs-compat': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/operators': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/internal-compatibility':{ main: "index.js", defaultExtension: 'js'}, + 'rxjs/ajax': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/testing': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/webSocket': { main: "index.js", defaultExtension: 'js'}, + 'moment': { main: 'min/locales.min', defaultExtension: 'js' }, + 'moment-es6': { main: 'index.js', defaultExtension: 'js' }, + 'moment-timezone': { main: 'builds/moment-timezone-with-data.min', defaultExtension: 'js' }, + 'bootstrap': { main: 'dist/js/bootstrap', defaultExtension: 'js'}, + 'lib': { format: 'register', defaultExtension: 'js' }, + 'autonumeric': { + main: 'dist/autoNumeric.js' + }, + 'chart.js': { main: 'chart.js', defaultExtension: 'js' }, + 'inputmask': { + main: 'dist/inputmask.js', + defaultExtension: 'js' + } + } + }); +})(this); diff --git a/frontend/systemjs.preview.config.js b/frontend/systemjs.preview.config.js new file mode 100644 index 00000000..dd737481 --- /dev/null +++ b/frontend/systemjs.preview.config.js @@ -0,0 +1,90 @@ +(function(global) { + System.config({ + transpiler: 'plugin-babel', + paths: { + 'npm:': 'node_modules/', + 'generated-sources': 'build_dev/js/generated-sources' + }, + map: { + 'preview': 'build_dev/js', + '@angular/core': 'npm:@angular/core/bundles/core.umd.js', + '@angular/common': 'npm:@angular/common/bundles/common.umd.js', + '@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js', + '@angular/common/locales': 'npm:@angular/common/locales', + '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', + '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', + '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', + '@angular/router': 'npm:@angular/router/bundles/router.umd.js', + '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', + '@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js', + '@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js', + '@angular/platform-browser/animations':'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js', + '@ng-bootstrap/ng-bootstrap': 'npm:@ng-bootstrap/ng-bootstrap/bundles/ng-bootstrap.umd.js', + 'bootstrap': 'npm:bootstrap', + '@webbpm/base-package': 'npm:@webbpm/base-package/bundles/webbpm-base-package.umd.js', + 'angular-calendar': 'npm:angular-calendar/bundles/angular-calendar.umd.js', + 'angular-calendar/date-adapters/date-fns': 'npm:angular-calendar/date-adapters/date-fns/index.js', + 'angular-draggable-droppable': 'npm:angular-draggable-droppable/bundles/angular-draggable-droppable.umd.js', + 'angular-resizable-element': 'npm:angular-resizable-element/bundles/angular-resizable-element.umd.js', + 'calendar-utils': 'npm:calendar-utils/bundles/calendar-utils.umd.js', + 'calendar-utils/date-adapters/date-fns': 'npm:calendar-utils/date-adapters/date-fns/index.js', + 'date-fns': 'npm:date-fns', + 'ngx-cookie': 'npm:ngx-cookie/bundles/ngx-cookie.umd.js', + 'moment': 'npm:moment', + 'moment-timezone': 'npm:moment-timezone', + 'positioning': 'npm:positioning/dist/positioning.js', + 'rxjs': 'npm:rxjs', + 'rxjs-compat': 'npm:rxjs-compat', + 'rxjs/operators': 'npm:rxjs/operators', + 'rxjs/internal-compatibility': 'npm:rxjs/internal-compatibility', + 'rxjs/ajax': 'npm:rxjs/ajax', + 'rxjs/testing': 'npm:rxjs/testing', + 'rxjs/webSocket': 'npm:rxjs/webSocket', + 'jquery': 'npm:jquery/dist/jquery.js', + 'popper.js': 'npm:popper.js/dist/umd/popper.js', + 'selectize': 'npm:selectize/dist/js/selectize.min.js', + 'ngx-toastr': 'npm:ngx-toastr/bundles/ngx-toastr.umd.min.js', + 'eonasdan-bootstrap-datetimepicker': 'npm:eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js', + 'autonumeric': 'npm:autonumeric', + 'jsgantt-improved': 'npm:jsgantt-improved/dist/jsgantt.js', + 'js-year-calendar': 'npm:js-year-calendar/dist/js-year-calendar.js', + 'ag-grid-angular': 'npm:ag-grid-angular/bundles/ag-grid-angular.umd.js', + 'ag-grid-community': 'npm:ag-grid-community/dist/ag-grid-community.cjs.js', + 'inputmask': 'npm:inputmask', + 'downloadjs': 'npm:downloadjs/download.js', + 'esmarttokenjs': 'npm:esmarttokenjs/esmarttoken.js', + 'cadesplugin_api': 'npm:cadesplugin_api/index.js', + 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', + 'systemjs-babel-build': 'npm:systemjs-plugin-babel/systemjs-babel-browser.js', + 'chart.js': 'npm:chart.js/dist', + 'chartjs-adapter-moment': 'npm:chartjs-adapter-moment/dist/chartjs-adapter-moment.js', + 'tslib': 'npm:tslib/tslib.js', + 'ngx-international-phone-number': 'npm:ngx-international-phone-number/ngx-international-phone-number.umd.js', + 'google-libphonenumber': 'npm:google-libphonenumber/dist/libphonenumber.js' + }, + packages: { + 'preview': { main: './modules/preview/preview.main', defaultExtension: 'js'}, + '@angular/common/locales': { defaultExtension: 'js'}, + 'date-fns': { main: 'index.js', defaultExtension: 'js'}, + 'rxjs': { main: 'index.js', defaultExtension: 'js' }, + 'rxjs-compat': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/operators': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/internal-compatibility':{ main: "index.js", defaultExtension: 'js'}, + 'rxjs/ajax': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/testing': { main: "index.js", defaultExtension: 'js'}, + 'rxjs/webSocket': { main: "index.js", defaultExtension: 'js'}, + 'moment': { main: 'min/locales.min', defaultExtension: 'js' }, + 'moment-timezone': { main: 'builds/moment-timezone-with-data.min', defaultExtension: 'js' }, + 'bootstrap': { main: 'dist/js/bootstrap', defaultExtension: 'js'}, + 'lib': { format: 'register', defaultExtension: 'js' }, + 'autonumeric': { + main: 'dist/autoNumeric.js' + }, + 'chart.js': { main: 'chart.js', defaultExtension: 'js' }, + 'inputmask': { + main: 'dist/inputmask.js', + defaultExtension: 'js' + } + } + }); +})(this); diff --git a/frontend/tsconfig.aot.json b/frontend/tsconfig.aot.json new file mode 100644 index 00000000..8e2aad30 --- /dev/null +++ b/frontend/tsconfig.aot.json @@ -0,0 +1,42 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "commonjs", + "moduleResolution": "node", + "declaration": false, + "sourceMap": false, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "removeComments": false, + "skipLibCheck": true, + "noImplicitAny": false, + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2016", + "dom", + "es2017.object", + "es2018.promise" + ] + }, + "compileOnSave": false, + "buildOnSave": false, + "include": [ + "src/ts/**/*" + ], + "exclude": [ + "node_modules", + "./node_modules/@types", + "src/ts/main.ts", + "**/*.spec.ts", + "src/test.ts" + ], + "angularCompilerOptions": { + "skipMetadataEmit": true, + "alwaysCompileGeneratedCode":true, + "preserveWhitespaces": false, + "annotationsAs": "decorators", + "mainPath": "./src/ts" + } +} \ No newline at end of file diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 00000000..d977dd54 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "target": "es5", + "module": "commonjs", + "moduleResolution": "node", + "declaration": false, + "inlineSourceMap": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "removeComments": false, + "skipLibCheck": true, + "noImplicitAny": false, + "outDir": "build_dev/js", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2016", + "dom", + "es2017.object", + "es2018.promise" + ] + }, + "compileOnSave": false, + "buildOnSave": false, + "include": [ + "src/ts/**/*" + ], + "exclude": [ + "node_modules", + "./node_modules/@types", + "**/*.ngfactory.ts", + "**/*.shim.ts", + "src/ts/main.aot.ts", + "src/ts/generated-sources/**/*", + "src/ts/page.routing.ts", + "src/ts/aot" + ] +} diff --git a/frontend/webpack.aot.config.js b/frontend/webpack.aot.config.js new file mode 100644 index 00000000..fb392180 --- /dev/null +++ b/frontend/webpack.aot.config.js @@ -0,0 +1,144 @@ +'use strict'; +const path = require('path'); +const webpack = require('webpack'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const TerserPlugin = require('terser-webpack-plugin'); + +function _path(p) { + return path.join(__dirname, p); +} + +module.exports = { + mode: 'production', + entry: { + polyfills: './build/scripts/polyfills.js', + vendor: './build/scripts/vendor.js', + main: './build/scripts/main.aot.js', + }, + + context: process.cwd(), + + output: { + path: path.join(process.cwd(), './dist'), + filename: '[name].[chunkhash].bundle.js', + chunkFilename: '[id].[chunkhash].chunk.js', + assetModuleFilename: 'src/resources/[base]', + publicPath: 'auto' + }, + + module: { + rules: [ + { + test: /\.js$/, + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env'] + } + } + }, + { + test: /\.js$/, + use: { + loader: 'angular-router-loader?aot=true' + } + }, + { + test: /\.html$/, + use: { + loader: 'raw-loader' + } + }, + { + test: /\.css$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + options: { + // you can specify a publicPath here + // by default it use publicPath in webpackOptions.output + // publicPath: '../' + } + }, + { + loader: 'css-loader' + } + ] + }, + { + test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico|otf)$/, + type: 'asset/resource' + } + ] + }, + + optimization: { + minimizer: [ + new TerserPlugin({ + parallel: true, + terserOptions: { + // https://github.com/webpack-contrib/terser-webpack-plugin#terseroptions + } + }) + ], + splitChunks: { + // include all types of chunks + chunks: 'all' + } + }, + + plugins: [ + // new BundleAnalyzerPlugin(), + new HtmlWebpackPlugin({ + template: 'index.webpack.html', + filename: 'index.html', + chunksSortMode : 'none' + }), + new CopyWebpackPlugin([ + {from: 'index.webpack.html', to: 'index.html'}, + {from: 'src/resources/img/progress.gif', to: 'src/resources/img/progress.gif'}, + {from: 'src/resources/img/logo.png', to: 'src/resources/img/logo.png'}, + {from: 'src/resources/app-config.json', to: 'src/resources/app-config.json'}, + {from: 'src/resources/app.version', to: 'src/resources/app.version'} + ]), + new MiniCssExtractPlugin({ + filename: '[name].[fullhash].css', + chunkFilename: '[id].[fullhash].css' + }), + new webpack.ProvidePlugin({ + $: "jquery", + jQuery: "jquery", + "window.jQuery": "jquery", + Popper: ['popper.js', 'default'] + }) + ], + + resolve: { + alias: { + 'jquery': _path('node_modules/jquery/dist/jquery.min'), + 'inputmask': _path('node_modules/inputmask/dist/inputmask'), + 'downloadjs': _path('node_modules/downloadjs/download.min.js'), + 'esmarttokenjs': _path('node_modules/esmarttokenjs/esmarttoken.js'), + 'cadesplugin_api': _path('node_modules/cadesplugin_api/index.js'), + 'eonasdan-bootstrap-datetimepicker': _path('node_modules/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker'), + 'autonumeric': _path('node_modules/autonumeric/dist/autoNumeric.js'), + 'jsgantt-improved': _path('node_modules/jsgantt-improved/dist/jsgantt.js'), + 'js-year-calendar': _path('node_modules/js-year-calendar/dist/js-year-calendar.js'), + 'chart.js': _path('node_modules/chart.js/dist/chart.js') + }, + modules: [ + 'node_modules', + path.resolve(process.cwd(), './build'), + path.resolve(process.cwd(), './build/scripts'), + ], + extensions: ['.js'] + }, + + stats: { + children: false + }, + devtool: false +}; diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml b/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml new file mode 100644 index 00000000..852a8303 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/.flattened-pom.xml @@ -0,0 +1,78 @@ + + + 4.0.0 + ru.cg.webbpm.packages.base + resources + 3.182.0 + + Micord + + + scm:git:git://gitserver/webbpm/webbpm-components.git/resources + + + + micord + Micord Release repository + https://repo.micord.ru/repository/packages-releases-local/ + + + snapshots + Micord Snapshots repository + https://repo.micord.ru/repository/packages-snapshots-local/ + + + + ${project.parent.basedir}/frontend/target + 3.19.3 + 5.10.2 + true + 3.182.0 + 1.4.200 + 1004163046 + UTF-8 + 1.10.0 + true + 3.182.0 + typescript.metadata.json + https://repo.micord.ru + MMddHHmmss + UTF-8 + ${project.parent.basedir}/backend/target + https://repo.micord.ru + java.metadata + + + + ru.cg.webbpm.packages.base + converters + 3.182.0 + compile + + + ru.cg.webbpm.packages.base + backend + 3.182.0 + compile + + + ru.cg.webbpm.packages.base + frontend + 3.182.0 + compile + + + + + micord-public + micord-public + https://repo.micord.ru/repository/maven-public + + + micord + micord + https://repo.micord.ru/repository/maven-micord + + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/MANIFEST.MF b/packages/ru.cg.webbpm.packages.base.resources/META-INF/MANIFEST.MF new file mode 100644 index 00000000..3121d98d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Created-By: Maven Jar Plugin 3.2.0 +Build-Jdk-Spec: 17 + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components-package.xml b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components-package.xml new file mode 100644 index 00000000..65311b2c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components-package.xml @@ -0,0 +1,30 @@ + + + + + containers + 11000 + + + grids + 10000 + + + editable-grids + 9000 + + + buttons + 8000 + + + fields + 6000 + + + filters + 5000 + + + META-INF/components/localization/default-components + \ No newline at end of file diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/BpmnStartProcessVariable.ts.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/BpmnStartProcessVariable.ts.html new file mode 100644 index 00000000..5534c8c8 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/BpmnStartProcessVariable.ts.html @@ -0,0 +1,71 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Описание: скрипт предназначен для записи значения объекта в переменную и передачи заполненной переменной в другой процесс во время его запуска.
+Скрипт накидывается на объект, значение которого мы хотим сохранить в переменную.

+ + + + + + + + + + + + + + + +
Наименование Назначение
Variable Name Строкой указываем имя переменной, в которую будет сохранено значение объекта. Переменная с таким именем (наименование должно быть идентичным) должна существовать в процессе, который будет запущен после текущего процесса.
Type Указывается тип переменной.
+

Механизм работы:

+

- в текущем процессе Test накинули скрипт BpmnStartProcessVariable на TextField, указали переменную var1. Переменная была создана в процессе Test2.
+- запускаем процесс Test2, в это время происходит поиск всех скриптов BpmnStartProcessVariable, записываются значения объектов в указанные переменные. Запускается процесс Test2, переменная var1 заполнена значением с TextField

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/index.html new file mode 100644 index 00000000..8a129bfb --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/index.html @@ -0,0 +1,70 @@ + + + + + + + + Web-BPM Docs – Кнопки + + + + + + + +
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Как_добавить_кнопку_печати_из_графа_сущности_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Как_добавить_кнопку_печати_из_графа_сущности_на_страницу_.html new file mode 100644 index 00000000..3dac3240 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Как_добавить_кнопку_печати_из_графа_сущности_на_страницу_.html @@ -0,0 +1,86 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку печати из графа сущности на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку печати из графа сущности на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка печати из графа сущности, при нажатии на которую будет сформирован отчет в формате XLSX. Кнопка печати отчета из формы будет иметь следующие настройки:

+
    + +
  • надпись поля -Печать
  • +
  • граф сущности - monthly_data
  • +
  • список передаваемых параметров с формы в шаблон*-2*
  • +
  • в параметр шаблона отчета первого элемента - Year
  • +
  • из поля таблицы первого элемента - year
  • +
  • в параметр шаблона отчета второго элемента - Month
  • +
  • из поля таблицы второгоэлемента -month**
  • +
  • шаблон файла отчета -приложение.jrxml
  • +
  • формат выходного файла -XLSX
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница уже создана бизнес-аналитиком, где имеется основная компонента Форма и шаблон файла отчета приложение.jrxml, в котором имеются входные параметры Year и Month. Для добавления на страницу и настройки кнопки печати из графа сущности необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка печати из графа сущности (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки печати из графа сущности на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Как_добавить_кнопку_печати_отчета_из_формы_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Как_добавить_кнопку_печати_отчета_из_формы_на_страницу_.html new file mode 100644 index 00000000..2aef9d55 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Как_добавить_кнопку_печати_отчета_из_формы_на_страницу_.html @@ -0,0 +1,87 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку печати отчета из формы на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку печати отчета из формы на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка печати отчета из формы, при нажатии на которую будет сформирован отчет в формате XLSX. Кнопка печати отчета из формы будет иметь следующие настройки:

+
    + +
  • надпись поля -Печать
  • +
  • компонент “Форма” - Форма
  • +
  • список передаваемых параметров с формы в шаблон - 2
  • +
  • в параметр шаблона отчета первого элемента - Date_Begin
  • +
  • из поля формыпервого элемента - DateTimePicker_date_form
  • +
  • в параметр шаблона отчета второго элемента - Date_End
  • +
  • из поля формывторогоэлемента -DateTimePicker_to_date**
  • +
  • шаблон файла отчета - приложение.jrxml
  • +
  • формат выходного файла -XLSX
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница уже создана бизнес-аналитиком, где имеется основная компонента Форма и шаблон файла отчета приложение.jrxml, в котором имеются входные параметры Date_Begin и Date_End. Для добавления на страницу и настройки кнопки печати отчета из формы необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка печати отчета из формы (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки печати отчета из формы на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Кнопка_печати_из_графа_сущности.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Кнопка_печати_из_графа_сущности.html new file mode 100644 index 00000000..6ba81b0e --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Кнопка_печати_из_графа_сущности.html @@ -0,0 +1,118 @@ + + + + + + + + Web-BPM Docs – Кнопка печати из графа сущности + + + + + + +
+
+ + + +
+
+

Кнопка печати из графа сущности

+

Назначение

+

Кнопка печати из графа сущности - это компонента, которая используется для печати данных, источником который служат значения из графа сущности. В результате нажатия на кнопку формируется документ в одном из заданных форматов: ODT, PDF, DOCX, XLSX.

+

Компонента Кнопка печати из графа сущности находится в разделе Компоненты - Кнопки - Кнопка печати из графа сущности

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Печать
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите напечатать отчет?
Основные параметры (Формировать отчет по собственному графу) Позволяет задать настройки формирования отчета. Сохранить используя - позволяет задать объект,в котором будет происходить сохранение сформированного документа в базу. Скачать сразу после формирования - позволяет задать автоматическое скачивание сформированного отчета
Файл шаблона и передача параметров (Формировать отчет по собственному графу) Позволяет задать файл шаблона отчета и формат выходного файла Список передаваемых параметров с формы в шаблон - позволяет добавить элементы, которые будут печататься. Граф сущностей - выбор графа сущностей, откуда будут печататься данные. Шаблон файла отчета - позволяет задать jasper шаблон, на основе которого будет формироваться документ. Формат выходного файла - позволяет задать расширение формируемого документа (ODT, PDF, DOCX, XLSX, XLS, CSV)
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации скриптов (

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка печати из графа сущности от компоненты Кнопка печати отчета из формы Компонента Кнопка печати отчета из формы предназначена для формирования отчета, в который подставляются значения с формы, Кнопка печати из графа сущности предназначена для формирования отчета, в который подставляются значения из графа сущностей.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
Как в Jaspersoft Studio связать локальные параметры датасета c глобальными параметрами отчета Table -> Properties -> вкладка Dataset -> Parameters. Тут добавляйте параметр датасета и в Expression вставляйте необходимый глобальный параметр отчета (Подробнее тут)
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Кнопка_печати_отчета_из_формы.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Кнопка_печати_отчета_из_формы.html new file mode 100644 index 00000000..5cb023b0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/reporting/Кнопка_печати_отчета_из_формы.html @@ -0,0 +1,117 @@ + + + + + + + + Web-BPM Docs – Кнопка печати отчета из формы + + + + + + +
+
+ + + +
+
+

Кнопка печати отчета из формы

+

Назначение

+

Кнопка печати отчета из формы - это компонента, которая используется для печати данных, источником который служат значения из формы страницы. В результате нажатия на кнопку формируется документ в одном из заданных форматов: ODT, PDF, DOCX, XLSX.

+

Компонента Кнопка печати отчета из формы находится в разделе Компоненты - Кнопки - Кнопка печати отчета из формы

+

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Печать
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите напечатать отчет?
Основные параметры (Формировать отчет из значений полей компонента “Форма”) позволяет задать настройки формирования отчета Сохранить используя - позволяет задать объект,в которомбудет происходить сохранение сформированного документа в базу. Скачать сразу после формирования - позволяет задать автоматическое скачивание сформированного отчета. Компонент Форма - позволяет задать объект типа Форма, поля которого печатаются по нажатию на кнопку
Файл шаблона и передача параметров (Формировать отчет из значений полей компонента “Форма”) позволяет задать файл шаблона отчета и формат выходного файла Список передаваемых параметров с формы в шаблон - позволяет добавить элементы, которые будут печататься. Шаблон файла отчета - позволяет задать jasper шаблон, на основе которого будет формироваться документ. Формат выходного файла - позволяет задать расширение формируемого документа (ODT, PDF, DOCX, XLSX, XLS, CSV).
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации скриптов (

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка печати отчета из формы от компоненты Кнопка печати из графа сущности Компонента Кнопка печати отчета из формы предназначена для формирования отчета, в который подставляются значения с формы, Кнопка печати из графа сущности предназначена для формирования отчета,в который подставляются значения из графа сущностей.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи. При использовании подотчетов (subreports) при разработке основного отчета в Jaspersoft Studio следует указывать полный путь до подотчетаотносительно папки resourcesстудии (в файловой системе resources/src/main/resources)
Как в Jaspersoft Studio связать локальные параметры датасета c глобальными параметрами отчета Table -> Properties -> вкладка Dataset -> Parameters. Тут добавляйте параметр датасета и в Expression вставляйте необходимый глобальный параметр отчета (Подробнее тут)
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_выбора_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_выбора_на_страницу_.html new file mode 100644 index 00000000..780706a1 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_выбора_на_страницу_.html @@ -0,0 +1,90 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку выбора на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку выбора на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка выбора, при нажатии на которую открывается страница с информацией по выбранной записи из таблицы реестра Рабочий журнал ЛВИ. Кнопка выбора будет иметь следующие настройки:

+
    + +
  • надпись поля -Открыть
  • +
  • возможность выбора более 1 записи - Не отмечено
  • +
  • компонент для выбора записей -Таблица
  • +
  • значение переменной навигации - open
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница уже создана бизнес-аналитиком, где имеется ***основные компоненты Форма и Таблица***. Для добавления на страницу и настройки кнопки выбора необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка выбора (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки выбора на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи, кнопка выбора не активна

+

рис.3. Визуальное отображение выполнения условий задачи, кнопка выбора активна

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_вызова_ошибки_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_вызова_ошибки_на_страницу_.html new file mode 100644 index 00000000..9901cd60 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_вызова_ошибки_на_страницу_.html @@ -0,0 +1,80 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку вызова ошибки на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку вызова ошибки на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка вызова ошибки, при нажатии на которую будет появляться сообщение об ошибки. Кнопка загрузки будет иметь следующие настройки:

+
    + +
  • надпись поля -Ошибка
  • +
  • задается наименование ошибки -Отсутствует соединение**
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***. Для добавления на страницу и настройки кнопки вызова ошибки необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка вызова ошибки (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки вызова ошибки на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_выполнения_SQL_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_выполнения_SQL_на_страницу_.html new file mode 100644 index 00000000..4f90de14 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_выполнения_SQL_на_страницу_.html @@ -0,0 +1,103 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку выполнения SQL на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку выполнения SQL на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка выполнения SQL, при нажатии на которую будет выполняться SQL-скрипт. Кнопка выполнения SQL будет иметь следующие настройки:

+
    + +
  • + +

    надпись поля -В архив

    +
  • +
  • + +

    текст подтверждения при нажатии -Вы действительно хотите переместить выбранные задачи в архив?

    +
  • +
  • + +

    текст SQL запроса -

    +

    update tasks
    +set status_id =
    +(
    +select task_statuses_id
    +from task_statuses
    +where status_code =‘ARCHIVED’
    +)

    +

    where task_id=ANY(?)

    +
  • +
  • + +

    параметры запроса, элемент - Таблица “Задачи”, Таблица.Get Select Values

    +
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основная компонента Таблица “Задачи”***. Для добавления на страницу и настройки кнопки выполнения SQL необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка выполнения SQL (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки выполнения SQL на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2 Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_для_фильтрации_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_для_фильтрации_на_страницу_.html new file mode 100644 index 00000000..b88285cd --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_для_фильтрации_на_страницу_.html @@ -0,0 +1,81 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку для фильтрации на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку для фильтрации на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка для фильтрации, при нажатии на которую будет отфильтрован список организаций. Кнопка для фильтрации будет иметь следующие настройки:

+
    + +
  • надпись поля -Применить
  • +
  • компонет “Набор фильтров” - набор фильтров
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основные компоненты Форма и Набор фильтров***. Для добавления на страницу и настройки кнопки для фильтрации необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка для фильтрации (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки для фильтрации на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_загрузки_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_загрузки_на_страницу_.html new file mode 100644 index 00000000..10124e24 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_загрузки_на_страницу_.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку загрузки на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку загрузки на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка загрузки, при нажатии на которую будет скачиваться файл из базы данных. Кнопка загрузки будет иметь следующие настройки:

+
    + +
  • поле должно иметь всплывающую подсказку -Для загрузки файла нажмите на кнопку
  • +
  • надпись поля - Скачать
  • +
  • текст подтверждения при нажатии -Вы действительно хотите скачать файл?
  • +
  • компонет для выбора записи - Таблица
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основные компоненты Форма и Таблица***. Для добавления на страницу и настройки кнопки загрузки необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка загрузки (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки загрузки на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_на_страницу_.html new file mode 100644 index 00000000..98ce06fc --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_на_страницу_.html @@ -0,0 +1,86 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка, которая будет иметь следующие настройки:

+
    + +
  • надпись поля -Перейти к заполнению реквизитов
  • +
  • скрипт -Вкладки. Управление “Вкладкой”. Переход из текущей на последующую
  • +
  • компонента “Вкладки” - Контейнер вкладок
  • +
  • шаг перехода к следующей вкладке (число) - 1
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница и бизнес процесс уже созданы бизнес-аналитиком. Настранице имеется основная компонента Форма, а в ней Контейнер вкладок и ***Вкладка***. Для добавления на страницу и настройки кнопки необходимо сделать следующее:

+
    + +
  • добавить внутрь Вкладки компоненту Кнопка (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки навигации на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+

При нажатии на кнопку происходит переход на вкладку “Реквизиты” (рис.3)

+

+

рис.3. Вкладка “Реквизиты”

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_навигации_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_навигации_на_страницу_.html new file mode 100644 index 00000000..5c6a22b2 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_навигации_на_страницу_.html @@ -0,0 +1,84 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку навигации на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку навигации на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка навигации, которая будет иметь следующие настройки:

+
    + +
  • надпись поля - Открыть
  • +
  • поле должно иметь всплывающую подсказку -Для редактирования нажмите на кнопку
  • +
  • значение переменной навигации -open
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница и бизнес процесс уже созданы бизнес-аналитиком. В процессе создана переменная open, а на странице имеется ***основная компонента Форма***. Для добавления на страницу и настройки кнопки навигации необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка навигации (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки навигации на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_отмены_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_отмены_на_страницу_.html new file mode 100644 index 00000000..c4d568c5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_отмены_на_страницу_.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку отмены на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку отмены на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка отмены, которая будет иметь следующие настройки:

+
    + +
  • надпись поля -Отменить
  • +
  • поле должно иметь всплывающую подсказку -Для отмены нажмите на кнопку
  • +
  • поле должно иметь текст подтверждения при нажатии -Вы действительно хотите отменить изменения?
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основная компонента Форма***. Для добавления на страницу и настройки кнопки отмены необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка отмены (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки отмены на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_очистки_фильтра_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_очистки_фильтра_на_страницу_.html new file mode 100644 index 00000000..a27125a1 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_очистки_фильтра_на_страницу_.html @@ -0,0 +1,83 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку очистки фильтра на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку очистки фильтра на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка очистки фильтра, которая будет иметь следующие настройки:

+
    + +
  • надпись поля -Сбросить
  • +
  • компонет “Набор фильтров” -набор фильтров
  • +
  • сбросить значения фильтров на значения по умолчанию - отмечено
  • +
  • применить фильтры после сброса - отмечено
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основные компоненты Форма и Набор фильтров***. Для добавления на страницу и настройки кнопки для фильтрации необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка для фильтрации (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки очистки фильтра на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_сохранения_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_сохранения_на_страницу_.html new file mode 100644 index 00000000..82882862 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_сохранения_на_страницу_.html @@ -0,0 +1,86 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку сохранения на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку сохранения на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка сохранения, которая будет иметь следующие настройки:

+
    + +
  • надпись поля -Сохранить
  • +
  • поле должно иметь всплывающую подсказку -Для сохранения нажмите на кнопку
  • +
  • поле должно иметь текст подтверждения при нажатии -Вы действительно хотите сохранить изменения?
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основная компонента Форма***. Для добавления на страницу и настройки кнопки сохранения необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки сохранения на страницу

+

Для заполнения параметра Компонент “Форма” необходимо перетащить с помощью мыши объект “Основная форма страницы” из дерева структуры страницы в окно настройки параметров Кнопки сохранения.

+

Также существует удобная функциональность обратного быстрого перехода по дереву структуры страницы к задействованной компоненте посредством клика на параметре Компонент “Форма” Кнопки сохранения, когда есть необходимость уточнить, на какую именно компоненту в дереве ссылается интересующий параметр.

+

рис.2. Заполнение параметра Компонент “Форма”

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.3)

+

+

рис.3. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_удаления_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_удаления_на_страницу_.html new file mode 100644 index 00000000..e18c330a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Как_добавить_кнопку_удаления_на_страницу_.html @@ -0,0 +1,84 @@ + + + + + + + + Web-BPM Docs – Как добавить кнопку удаления на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить кнопку удаления на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Кнопка удаления, которая будет иметь следующие настройки:

+
    + +
  • надпись поля -Удалить
  • +
  • поле должно иметь всплывающую подсказку -Для удаления нажмите на кнопку
  • +
  • поле должно иметь текст подтверждения при нажатии -Вы действительно хотите удалить запись?
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страницауже создана бизнес-аналитиком, где имеется ***основная компонента Форма***. Для добавления на страницу и настройки кнопки сохранения необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Кнопка удаления (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление кнопки удаления на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка.html new file mode 100644 index 00000000..23e8347c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка.html @@ -0,0 +1,105 @@ + + + + + + + + Web-BPM Docs – Кнопка + + + + + + +
+
+ + + +
+
+

Кнопка

+

Кнопка - это компонента, которая не выполняет никаких действий, но на нее могут быть добавлены скрипты,которые позволят выполнять действий с формой (активация компонент, изменение свойств, т.д.), действий с переменными и действий над данными.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Перейти в реестр услуг
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите перейти в реестр услуг?
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации скриптов (

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка от компоненты Кнопка навигации Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка навигации используется для перехода по задачам процесса посредством заданной переменной.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выбора.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выбора.html new file mode 100644 index 00000000..7e8c43f7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выбора.html @@ -0,0 +1,117 @@ + + + + + + + + Web-BPM Docs – Кнопка выбора + + + + + + +
+
+ + + +
+
+

Кнопка выбора

+

Назначение

+

Кнопка выбора - этокомпонента, которая используется для выбора одного или нескольких значений в компоненте Таблица. Кнопка выбора становится активной после выбора хотя бы одной записи.

+

Компонента Кнопка выбора находится в разделе Компоненты - Кнопки - Кнопка выбора

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Сохранить
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите сохранить изменения?
Возможность выбора более одной записи позволяет задать возможность выбора нескольких элементов в таблице активно - более 1, не активно - только 1
Компонент для выбора записи позволяет задать компоненту Таблица в которой будут выбраны элементы
Получить идентификатор выбранной записи позволяет записать идентификатор выбранной записи в переменную процесса
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка выбора от компоненты Кнопка Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены дополнительные функции, кнопка выборка используется для выбора данных на текущей форме.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_вызова_ошибки.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_вызова_ошибки.html new file mode 100644 index 00000000..601b8526 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_вызова_ошибки.html @@ -0,0 +1,172 @@ + + + + + + + + Web-BPM Docs – Кнопка вызова ошибки + + + + + + +
+
+ + + +
+
+

Кнопка вызова ошибки

+

Назначение

+

Кнопка вызова ошибки - это компонента, которая используется для вызова события ошибки. При этом текущая страница будет закрыта и осуществлен переход по bpmn процессу.

+

Компонента Кнопка вызова ошибки находится в разделе Компоненты - Кнопки - Кнопка вызова ошибки

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Выполнить запрос
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите выполнить действие?
Наименование ошибки позволяет задать наименование ошибки пример возможного значения: Отсутсвует соединение
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Пример настройки

+

Настройка производится в дизайнере процессов и студии.

+

Настройка в дизайнере процессов

+

Промежуточное событие ошибки отражает факт возникновения и/или обработки ошибки в процессе.

+

На Task устанавливается Catching Intermediate Events → Error:

+

+

Таких событий на таск может быть установлено множество. Для того, чтобы осуществлять переход на нужное событие, мы должны прописать уникальную ссылку ErrorRef:

+

+

Это значит, что если по _ErrorButton придет значение “error-connect-client”, то будет выбрано наше событие ошибки.

+

Настройка в студии

+

Кидаем на страницу компонент ErrorButton.

+

Настраиваем его.

+

В свойство “Error Name” прописываем тот же ErrorRef (см. Настройка в дизайнере процессов), для того чтобы перейти на нужное событие ошибки.

+

+
    + +
  1. Добавляем ErrorButton на страницу
  2. +
  3. В поле errorName задаем имя ошибки.
  4. +
+


+

Обработка события в BPMN процессе

+

Обработать событие ошибки можно двумя способами:

+
    + +
  1. Повесить граничный слушатель события (boundary event) на текущий элемент (можно повесить на задачу, вызов подпросцесса, ad-hoc подпроцесс, embedded подпроцесс). В данном случае будет отлавливаться только событие произошедшее в рамках данного элемента.
  2. +
  3. Создать event подпроцесс, в котором стартовое событие будет типа Ошибка. Данный процесс будет обрабатывать событие произошедшее в любом месте диаграммы, в которой он находится.
  4. +
+

При этом в свойствах bpmn элемента события нужно поставить свойство _CancelActivity _в_true _и в _ErrorRef прописать имя ошибки (должно совпадать с указанным в кнопке).

+

+

Примеры:

+ + + + + + + + + + + + + + + + + + + + + +
Тип обработки Процесс
Прокидывание ошибки на уровень выше. Имя ошибки у начального и конечного события должно быть разным, иначе jbpm зациклится.
Обработка ошибки event подпроцессом
Граничный обработчик (boundary event)
Граничный обработчик на встроенном подпроцессе
+

вопрос: почему error event не прерывает остальные задачи?

+

По концепции bpmn события не должны сами по себе вызывать никаких действий в процессе. Если нужно прекратить исходную задачу, то нужно использовать прерывающий boundary event или event subprocess. В случае ошибки event subprocess обязан быть прерывающим.

+

В случае jbpm, у него есть особенность, что event subprocess прерывает действие родительского процесса не при старте, а при финише, соответственно получается что и задачи открыто две.

+

Частный случай предыдущего: в Embedded-подпроцессе error event и переход в подпроцесс:

+


+В этом случае процесс переходит в список задач с ошибкой. Нужно обходить указанную ситуацию с помощью первого примера типа обработки.

+

Доп. информация

+
    + +
  1. Описание BPMN событий от Camunda
  2. +
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
В каких случаях целесообразно использование кнопки вызова ошибки? Компонента Кнопка вызова ошибки предназначена для вызова события ошибки, она используется когда в bpmn процессе пользователю позволяется вызвать ошибку с последующим переходом на новую задачу.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выполнения_SQL.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выполнения_SQL.html new file mode 100644 index 00000000..aa5d763b --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выполнения_SQL.html @@ -0,0 +1,117 @@ + + + + + + + + Web-BPM Docs – Кнопка выполнения SQL + + + + + + +
+
+ + + +
+
+

Кнопка выполнения SQL

+

Назначение

+

Кнопка выполнения SQL - это компонента, которая используется для асинхронного выполнения SQL-запроса без покидания/перезагрузки страницы.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Выполнить запрос
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите выполнить SQL запрос?
Набор параметров для выполнения запроса настройка связи источника значений для подстановки в переменные (параметры) запроса, указывается последовательный номер параметра в запросе (начиная с 1) и объект-источник значения
Тело SQL запроса к базе данных ввод текста SQL
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации скриптов(

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка выполнения SQL от компоненты Кнопка Компонента Кнопкане выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка выполнения SQLиспользуется для асинхронного выполнения SQL-запроса.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
Как получить для использования на странице результат выполнения запроса после того, как кнопка была нажата Следует воспользоваться методом компоненты getResult в компоненте Обработка событий. Однако, этот метод возвращает значение только строкового типа (String), поэтому полученное в результате значение может быть передано только в компонент, оперирующий текстовыми значениями.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выполнения_бизнес-процесса.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выполнения_бизнес-процесса.html new file mode 100644 index 00000000..174e9a73 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_выполнения_бизнес-процесса.html @@ -0,0 +1,86 @@ + + + + + + + + Web-BPM Docs – Кнопка выполнения бизнес-процесса + + + + + + +
+
+ + + +
+
+

Кнопка выполнения бизнес-процесса

+

ExecProcessButton - компонента для запуска определённого бизнес-процесса с возможностью первоначальной установки значений переменных процесса. При нажатии на кнопку выполняется процесс, указанный в параметре BusinessProcessToStart (Запускаемый процесс). Имеет событие завершения выполнения процесса и метод для получения переменных.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки строка
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку. Если не задать, то диалоговое окно не отобразиться строка
Бизнес-процесс для запуска (Модель процесса с переменными) наименование бизнес-процесса, который будет запущен при нажатии на кнопку относительный путь до файла, *.bpmn2, содержащий описание бизнес-процесса
Переменные (Модель процесса с переменными) наименование переменной bpmn-процесса, значение которой необходимо задать значение, соответствующее типу выбранной переменной процесса
Событие завершения бизнес-процесса (processCompleted) событие, которое можно использовать в AC, чтобы узнать, когда бизнес-процесс завершил свою работу
Метод получения результирующих переменных (getResult) метод, который можно использовать в AC, для получения результирующих переменных имя переменной
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_для_фильтрации.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_для_фильтрации.html new file mode 100644 index 00000000..84cf3083 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_для_фильтрации.html @@ -0,0 +1,110 @@ + + + + + + + + Web-BPM Docs – Кнопка для фильтрации + + + + + + +
+
+ + + +
+
+

Кнопка для фильтрации

+

Назначение

+

Кнопка для фильтрации - это компонента, которая используется для срабатывания фильтра.

+

Компонента Кнопка для фильтрации находится в разделе Компоненты - Кнопки - Кнопка для фильтрации

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Применить
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите применить фильтрацию?
Набор фильтров позволяет задать компоненту Набор фильтров
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации скриптов (

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка для фильтрации от компоненты Кнопка Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка для фильтрации используется для срабатывания фильтра.
Все ли свойства компоненты обязательны для заполнения? Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_загрузки.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_загрузки.html new file mode 100644 index 00000000..f2030f47 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_загрузки.html @@ -0,0 +1,115 @@ + + + + + + + + Web-BPM Docs – Кнопка загрузки + + + + + + +
+
+ + + +
+
+

Кнопка загрузки

+

Назначение

+

Кнопка загрузки - это компонента, которая используется для скачивания файла.

+

Компонента Кнопка загрузки находится в разделе Компоненты - Кнопки - Кнопка загрузки

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Скачать
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите скачать файл?
Компонент для выбора записи позволяет задать компоненту Таблица из которой будет скачен файл
Скачать файл из базы данных позволяет задать таблицу базы данных из которой будет скачан файл
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации скриптов(

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка загрузки от компоненты Кнопка Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка навигациииспользуется для перехода по задачам процесса посредством заданной переменной.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_запуска_бизнес-процесса.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_запуска_бизнес-процесса.html new file mode 100644 index 00000000..c5f327d0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_запуска_бизнес-процесса.html @@ -0,0 +1,81 @@ + + + + + + + + Web-BPM Docs – Кнопка запуска бизнес-процесса + + + + + + +
+
+ + + +
+
+

Кнопка запуска бизнес-процесса

+

Кнопка запуска BPMN-процесса - компонента для запуска определённого бизнес-процесса с возможностью первоначальной установки значений переменных процесса. При нажатии на кнопку запускается процесс, указанный в параметре BusinessProcessToStart (Запускаемый процесс) и происходит переход на первую страницу процесса. Текущие процесс и задача, при этом, не завершаются. Таким, образом, кнопка может бить использована на статических страницах, которые не привязаны к задачам бизнес-процессов.

+

Компонента Кнопка запуска BPMN-процесса находится в разделе Компоненты - Кнопки - Кнопка запуска BPMN-процесса.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Открыть карточку
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите открыть карточку услуги?
Бизнес процесс для запуска (Модель процесса с переменными) Наименование бизнес-процесса, который будет запущен при нажатии на кнопк Относительный путь до файла, *.bpmn2, содержащий описание бизнес-процесса
Переменные (Модель процесса с переменными) Наименование переменной bpmn-процесса, значение которой необходимо задать Значение, соответствующее типу выбранной переменной процесса
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_навигации.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_навигации.html new file mode 100644 index 00000000..1f9ca2ff --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_навигации.html @@ -0,0 +1,107 @@ + + + + + + + + Web-BPM Docs – Кнопка навигации + + + + + + +
+
+ + + +
+
+

Кнопка навигации

+

Кнопка навигации - это компонента, которая используется для навигации по задачам процесса. При нажатии на кнопку текущая задача закрывается. Компонента Кнопка навигации находится в разделе Компоненты - Кнопки - Кнопка навигации

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Открыть карточку
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите открыть карточку услуги?
Значение переменной навигации позволяет задать значение, которое принимает переменная процесса. пример возможного значения: open
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка навигации от компоненты Кнопка Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка навигации используется для перехода по задачам процесса посредством заданной переменной.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_отмены.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_отмены.html new file mode 100644 index 00000000..02659fee --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_отмены.html @@ -0,0 +1,107 @@ + + + + + + + + Web-BPM Docs – Кнопка отмены + + + + + + +
+
+ + + +
+
+

Кнопка отмены

+

Назначение

+

Кнопка отмены - это компонента, которая используется для завершения таска без сохранения внесенных изменений на форме страницы.

+

Компонента Кнопка отмены находится в разделе Компоненты - Кнопки - Кнопка отмены

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Отмена
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите отменить изменения?
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации скриптов(

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка отмены от компоненты Кнопка? Компонента Кнопкане выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка отмены используется для сброса внесенных изменений на текущей форме.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_очистки_фильтра.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_очистки_фильтра.html new file mode 100644 index 00000000..919445d2 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_очистки_фильтра.html @@ -0,0 +1,118 @@ + + + + + + + + Web-BPM Docs – Кнопка очистки фильтра + + + + + + +
+
+ + + +
+
+

Кнопка очистки фильтра

+

Назначение

+

Кнопка очистки фильтра - это компонента, которая используется для очищения полей фильтра.

+

Компонента Кнопка очистки фильтра находится в разделе Компоненты - Кнопки - Кнопка очистки фильтра

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Сбросить
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите сбросить фильтрацию?
Набор фильтров позволяет задать компоненту Набор фильтров
Сбросить значение фильтров на значение по умолчанию при нажатии на кнопку возвращает значения заданных фильтров к значениям по умолчанию не сбрасывать - значение по умолчанию
Применить фильтры после сброса позволяет задать возможность возврата фильтруемой Таблицы в первоначальное состояние при нажатии на кнопку не применять значения фильтров - значение по умолчанию
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации скриптов (

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка очистки фильтра от компоненты Кнопка? Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка очистки фильтра используется для очищения полей фильтра.
Все ли свойства компоненты обязательны для заполнения? Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_подписи.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_подписи.html new file mode 100644 index 00000000..34b30fdb --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_подписи.html @@ -0,0 +1,152 @@ + + + + + + + + Web-BPM Docs – Назначение компонента + + + + + + +
+
+ + + +
+
+

Назначение компонента

+

Составной компонент SignButton служит для создания электронной подписи и отображения подписываемых данных

+

Настройка компонента

+

Настройка скрипта SignButton: в HBox → SignButton

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию Параметр обязателен
Sign Type Выбор типа электронной подписи. Возможные варианты: CMS, CADES_BES, CADES_T, CADES_X_LONG_TYPE_1 - да
Selectable Component Объект для выбора подписываемого документа из списка. Необходим для получения id подписываемого документа, если не указана переменная процесса documentId в SignButtonRpcService. В случае, если указан и Document Id, и Selectable Component, то по приоритету будет взят id, выбранный пользователем из Selectable Component. - Обязательно заполнение либо Document Id, либо Selectable Component
Complete Task After Signing В случае значения true, после подписания текущий таск будет завершен - да
Navigate To Параметр для перенаправления пользователя после завершения текущего таска. Параметр не используется, если completeTaskAfterSigning = false - нет
Реализация провайдера электронной подписи Для использования конкретной реализации электронной подписи. Необходимо добавить соответствующий ts-файл в объект SignButton. На данный момент есть две реализации: EsmartPlugin.ts и CadesPluginApi.ts. При использовании EsmartPlugin.ts и типа подписи CADES_T необходимо указать системную переменную webbpm_components.electronic_sign.esmart_extension_url со ссылкой для расширения подписи “_dsig/ibs_dSig.asmxhttp://dsig.ibsdemo.ru/ibs - да
Other Остальные параметры настраивать только в случае, если не устраивает стандартное устройство компонента
+

Настройка скрипта SignButtonRpcService: HBox → SignButton

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию Параметр обязателен
Document Id Параметр необходим для получения Id подписываемого документа, если не указан параметр Selectable Component со списком записей. В случае, если указан и Document Id, и Selectable Component, то по приоритету будет взят id, выбранный пользователем из Selectable Component. - Обязательно заполнение либо Document Id, либо Selectable Component
Document Provider Провайдер подписываемых данных. Реализация класса ru.cg.webbpm.electronic_sign.DocumentProvider. - да
Document Dao Класс для сохранения и получения подписанных данных. Реализация класса ru.cg.webbpm.electronic_sign.DocumentDao - да
+

Сценарий использования кнопки подписи:

+
    + +
  1. + +

    Пользователь в процессе работы над документом или после его выбора в списке уже созданных нажимает на кнопку “Подписать”

    +
  2. +
  3. + +

    Если подходящий сертификат для подписания единственен, то окно выбора отображено не будет; в противном случае пользователь должен выбрать подходящий сертификат в окне “Выбор сертификата”.

    +
  4. +
  5. + +

    Пользователю выводится окно ввода пароля с возможностью отмены операции

    +
  6. +
  7. + +

    Происходит подписание документа, сохранение подписи в байтах в базе данных

    +
  8. +
+

КриптоПро

+

Для работы компоненты требуется установить КриптоПро CSP и КриптоПро ЭЦП Browser plug-in. Тестовый сертификат можно получить тут, при этом нужно установаить сертификат тестового центра как довереный корневой сертификат. Страница проверки работы плагина.

+

Esmart

+

Для работы компоненты требуется установить:

+
    + +
  • 32-битную firefox версии 38 - 52 (рекомендуется 52.5.2esr).
  • +
  • PKI Client и ESMART Token Web Плагин последних версий с официального сайта ESMART - demo.esmart.ru.
  • +
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_проверки_подписи.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_проверки_подписи.html new file mode 100644 index 00000000..ba21c461 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_проверки_подписи.html @@ -0,0 +1,100 @@ + + + + + + + + Web-BPM Docs – Назначение компонента + + + + + + +
+
+ + + +
+
+

Назначение компонента

+

Составной компонент SignVerification служит для проверки электронной подписи и отображения подписанных данных.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию Параметр обязателен
Sign Type Выбор типа электронной подписи. Возможные варианты: CMS, CADES_BES, CADES_T, CADES_X_LONG_TYPE_1 - да
Use Verify Chain Значение true указывает, что необходимо проверить цепочку сертификатов, false - не проверять цепочку, в этом случае проверяется только подпись. - по умолчанию, цепочка сертификатов не используется нет
Реализация провайдера электронной подписи Для использования конкретной реализации электронной подписи. Необходимо добавить соответствующий ts-файл в объект SignVerificationButton. На данный момент есть две реализации: EsmartPlugin.ts и CadesPluginApi.ts. При использовании EsmartPlugin.ts и типа подписи CADES_T необходимо указать системную переменную webbpm_components.electronic_sign.esmart_extension_url со ссылкой для расширения подписи “_dsig/ibs_dSig.asmxhttp://dsig.ibsdemo.ru/ibs - да
Document Id Параметр необходим для получения Id подписываемого документа. - да
Document Provider Провайдер подписываемых данных. Реализация класса ru.cg.webbpm.electronic_sign.DocumentProvider. - да
Document Dao Класс для сохранения и получения подписанных данных. Реализация класса ru.cg.webbpm.electronic_sign.DocumentDao - да
+

Компонента проверки отображает корректность электронной подписи с помощью иконки:

+
    + +
  • Красного цвета в том случае, если электронная подпись не валидна
  • +
  • Зеленого цвета в том случае, если электронная подпись валидна
  • +
  • Серого цвета в том случае, если актовая запись не подписана
  • +
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_сохранения.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_сохранения.html new file mode 100644 index 00000000..1813cc1d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_сохранения.html @@ -0,0 +1,112 @@ + + + + + + + + Web-BPM Docs – Кнопка сохранения + + + + + + +
+
+ + + +
+
+

Кнопка сохранения

+

Назначение

+

Кнопка сохранения - это компонента, которая используется для завершения задачи с сохранением данных на форме страницы. Компонента Кнопка сохранения находится в разделе Компоненты - Кнопки - Кнопка сохранения

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Сохранить
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите сохранить изменения?
Компонент “Форма” позволяет задать основную компоненту Форма поля которой сохранятся при нажатии на кнопку
Complete Task позволяет задать будет ли завершена текущая задача
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка сохранения от компоненты Кнопка? Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены дополнительные функции, кнопка сохранения используется для сохранения данных на текущей форме.
Все ли свойства компоненты обязательны для заполнения Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_удаления.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_удаления.html new file mode 100644 index 00000000..1e5158e9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопка_удаления.html @@ -0,0 +1,110 @@ + + + + + + + + Web-BPM Docs – Кнопка удаления + + + + + + +
+
+ + + +
+
+

Кнопка удаления

+

Назначение

+

Кнопка удаления - это компонента, которая используется для удаления элементов из Таблица.

+

Компонента Кнопка удаления находится в разделе Компоненты - Кнопки - Кнопка удаления

+

Свойства

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Удалить
Текст подтверждения при нажатии позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку пример возможного значения: Вы действительно хотите удалить запись?
Удалить из таблицы позволяет задать основную компоненту Таблица из которой будет удалена запись
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки

+

Вследствие технических особенностей реализации скриптов(

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Кнопка удаления от компоненты Кнопка? Компонента Кнопка не выполняет никаких действий, но на нее могут быть добавлены скрипты, кнопка удаления используется для удаления записи из таблицы.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопки.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопки.html new file mode 100644 index 00000000..e4d7a8bb --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/buttons/Кнопки.html @@ -0,0 +1,69 @@ + + + + + + + + Web-BPM Docs – Кнопки + + + + + + + +
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ContainerValueByEventLoader_и_ContainerValueByEventLoaderRpcService.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ContainerValueByEventLoader_и_ContainerValueByEventLoaderRpcService.html new file mode 100644 index 00000000..1ea94723 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/ContainerValueByEventLoader_и_ContainerValueByEventLoaderRpcService.html @@ -0,0 +1,53 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Описание: Скрипты предназначены для подгрузки значений в контейнеры по массиву параметров, которая происходит после заданных событий.

+

Использование:

+

Настройка внутри контейнера - На контейнере в скрипте ContainerValueByEventLoader.ts в массив “Params” добавить объекты и выбрать их параметры, по которым будет происходить подгрузка. В массив “Events Refs” добавить объекты и выбрать события, после которых будет отрабатывать подгрузка. - В скрипте ContainerValueByEventLoaderRpcService.java, в комбобоксе “Script” выбрать необходимую реализацию сервиса(к примеру ContainerByPkValueLoaderServiceImpl). Настроить Load Dao выбрав необходимую реализацию скрипта и настроить граф сущностей.

+

Настройка внутри объекта - На объектах в которые будет происходить подгрузка (к примеру в TextField это TextFieldValueByEvent) задать параметр, аналогично DefaultValue.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/index.html new file mode 100644 index 00000000..49882b8c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/index.html @@ -0,0 +1,130 @@ + + + + + + + + Web-BPM Docs – Контейнеры + + + + + + +
+
+ + + +
+
+

Контейнеры

+
+

Правила наследования значений свойств Подлежит сохранению, Обязательность дочерними компонентами, входящими в состав родительской компоненты контейнера

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
значение свойства у компоненты-контейнера значение свойства дочерней компоненты итоговое значение свойства
True True True
True False False
False True False
False False False
Undefined True True
Undefined False False
+

Правила наследования значений свойства Видимость дочерними компонентами, входящими в состав родительской компоненты контейнера

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
значение свойства у компоненты-контейнера значение свойства дочерней компоненты итоговое значение свойства
True True True
True False False
False True False
False False False
+

Скрипты - Дополнительная подгрузка

+

Функции - Стили контейнеров

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вертикальный_контейнер.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вертикальный_контейнер.html new file mode 100644 index 00000000..8c1ab997 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вертикальный_контейнер.html @@ -0,0 +1,162 @@ + + + + + + + + Web-BPM Docs – Вертикальный контейнер + + + + + + +
+
+ + + +
+
+

Вертикальный контейнер

+

Назначение

+

Вертикальный контейнер - это невидимая компонента-контейнер, которая позволяет расположить внутри себя набор видимых компонент в вертикальной последовательности, когда каждая следующая видимая компонента находится на новой строке под предыдущей.

+

Используется для оптимизации расположения компонентов в интерфейсе системы, обеспечивая возможность группировки и логического объединения компонентов в определенных секторах web-страницы и общее эстетическое и интуитивное восприятие экранного интерфейса пользователем системы.

+

Как правило, в состав Вертикального контейнера включаются визуальные компоненты, но также Вертикальные контейнеры могут быть размещены обособлено в дереве редактора интерфейса для облегчения чтения аналитиком структуры страницы ивключать в себя невизуальные компоненты для служебного использования (предзагрузка значений переменных процесса в компоненты, компоненты с подгруженными значениями по умолчанию, компоненты Обработка событий и т.п.)

+

Компонента Вертикальный контейнер находится в разделе Компоненты - Контейнеры - Вертикальный контейнер

+

Свойства

+

Компонента имеет набор общих свойств и подгрузка данных по умолчанию

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (

+

- функции, которые выполняются удаленно на сервере приложений,

+

- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO: описать

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
В чем заключаются лучшие практики использования контейнеров? Чаще всего контейнерами зонируют экранный интерфейс, чтобы добиться эргономичного расположения компонентов на web-странице. Например, в горизонтальный контейнер вкладывают несколько вертикальных, добиваясь, колончатой структуры страницы. Пример такой реализации можно посмотреть в методических рекомендациях по применению.
Что происходит в горизонтальном контейнере, если ширины экрана не хватает для размещения в горизонтальном направлении всех компонент? После заполнения всей доступной ширины web-страницы, система автоматически начинает переносить оставшиеся компоненты на строчку ниже и продолжать заполнять ими ширину экрана, располагая оставшиеся компоненты друг за другом в горизонтальной последовательности.
Насколько глубокую иерархию вложенности можно создать, комбинируя контейнеры между собой? Теоретически, глубина вложенности контейнеров разного типа друг в друга не ограничена. Но на практике комбинирование вложенностью контейнеров применяется для решения конкретной проблемы эргономичного расположения визуальных компонентов на странице.
Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты? Функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнерана все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если увложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты Ложь, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+

Правила наследования значений свойств Подлежит сохранению, Обязательность дочерними компонентами, входящими в состав родительской компоненты контейнера

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
значение свойства у компоненты-контейнера значение свойства дочерней компоненты итоговое значение свойства
True True True
True False False
False True False
False False False
Undefined True True
Undefined False False
+

Правила наследования значений свойства Видимость дочерними компонентами, входящими в состав родительской компоненты контейнера

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
значение свойства у компоненты-контейнера значение свойства дочерней компоненты итоговое значение свойства
True True True
True False False
False True False
False False False
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладка.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладка.html new file mode 100644 index 00000000..a7036c82 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладка.html @@ -0,0 +1,92 @@ + + + + + + + + Web-BPM Docs – Вкладка + + + + + + +
+
+ + + +
+
+

Вкладка

+

Назначение

+

Вкладка - невидимая компонента, используемая только совместно и внутри компоненты Контейнер вкладок, в свою очередь, сама является вышестоящим контейнером для дочерних визуальных компонент, которые аналитик планирует разместить в ограниченном пространстве экранного интерфейса. В запущенном приложении выбранная пользователем вкладка отображается поверх других вкладок, не занимая дополнительного места на web странице и закрывая своим содержимым содержимое других вкладок.

+

Используется для оптимизации расположения визуальных компонент в интерфейсе системы, обеспечивая возможность группировки и логического объединения компонент в определенных зонах web-страницы и общее эстетическое и интуитивное восприятие экранного интерфейса пользователем системы.

+

Компонента Вкладка схожа с компонентой Вертикальный контейнер и без дополнительных манипуляций располагает включенные в нее визуальные компоненты в вертикальной последовательности.

+

Компонента Вкладка находится в разделе Компоненты - Контейнеры - Вкладка

+

Свойства

+

Компонента имеет набор общих свойств и подгрузка данных по умолчанию.

+

Дополнительные функции

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO: описать

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли в компоненту Вкладка вложить другие контейнеры (Вертикальный, Горизонтальный)? Не только можно, но и должны быть вложены для горизонтального и вертикального выравнивания пользовательского интерфейса
Можно ли расположить визуальные компоненты сразу в Контейнер вкладок, а не в компоненте Вкладка ? Можно, но тогда Контейнер вкладок ничем не будет отличаться от Вертикальный контейнер
Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты? Функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнера на все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты Ложь, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_из_текущей_на_последующую.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_из_текущей_на_последующую.html new file mode 100644 index 00000000..a4804fab --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_из_текущей_на_последующую.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Вкладки. Управление Вкладкой. Переход из текущей на последующую + + + + + + +
+
+ + + +
+
+

Вкладки. Управление “Вкладкой”. Переход из текущей на последующую

+

Функция, которая используется при работе с компонентой Контейнер вкладок со вложенными компонентами Вкладка и позволяет перейти из текущей вкладки на последующую в пользовательском приложении. Может быть активирована только на компоненте Кнопка.

+

Особенности функции:

+
    + +
  • в запущенном приложении исполняется явно (не требует использования компоненты “Обработка событий” и формирования алгоритма работы с задействованием вновь предоставляемых методов)
  • +
  • имеет параметры для настройки аналитиком
  • +
+

+

Рис. 1 Внешний вид активированной функции

+

Параметры функции

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Пример заполнения
Компонента Вкладки позволяет указать компоненту Контейнер вкладок, на котором размещены вкладки
Шаг перехода к следующей вкладке позволяет указать количество шагов, на которые нужно перейти пример возможного значения: 1
+

Пример настройки и применения

+

+

Рис.1 Активация функции на компоненте Кнопки

+
+
+
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_из_текущей_на_предыдущую.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_из_текущей_на_предыдущую.html new file mode 100644 index 00000000..4999b571 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_из_текущей_на_предыдущую.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Вкладки. Управление Вкладкой. Переход из текущей на предыдущую + + + + + + +
+
+ + + +
+
+

Вкладки. Управление “Вкладкой”. Переход из текущей на предыдущую

+

Функция, которая используется при работе с компонентой Контейнер вкладок со вложенными компонентами Вкладка и позволяет перейти из текущей вкладки на предыдущую в пользовательском приложении. Может быть активирована только на компоненте Кнопка.

+

Особенности функции:

+
    + +
  • в запущенном приложении исполняется явно (не требует использования компоненты “Обработка событий” и формирования алгоритма работы с задействованием вновь предоставляемых методов)
  • +
  • имеет параметры для настройки аналитиком
  • +
+

+

Рис. 1 Внешний вид активированной функции

+

Параметры функции

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Пример заполнения
Компонента Вкладки позволяет указать компоненту Контейнер вкладок, на котором размещены вкладки
Шаг перехода к следующей вкладке позволяет указать количество шагов, на которые нужно перейти пример возможного значения: 1
+

Пример настройки и применения

+

+

Рис.1 Активация функции на компоненте Кнопки

+
+
+
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_на_вкладку_по_номеру.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_на_вкладку_по_номеру.html new file mode 100644 index 00000000..5c41c065 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Вкладки_Управление_Вкладкой_Переход_на_вкладку_по_номеру.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Вкладки. Управление Вкладкой. Переход на вкладку по номеру + + + + + + +
+
+ + + +
+
+

Вкладки. Управление “Вкладкой”. Переход на вкладку по номеру

+

Функция, которая используется при работе с компонентой Контейнер вкладок со вложенными компонентами Вкладка и позволяет перейти из текущей вкладки на указанную в функции вкладку в пользовательском приложении. Может быть активирована только на компоненте Кнопка.

+

Особенности функции:

+
    + +
  • в запущенном приложении исполняется явно (не требует использования компоненты “Обработка событий” и формирования алгоритма работы с задействованием вновь предоставляемых методов)
  • +
  • имеет параметры для настройки аналитиком
  • +
+

+

Рис. 1 Внешний вид активированной функции

+

Параметры функции

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Пример заполнения
Компонента Вкладки позволяет указать компоненту Контейнер вкладок, на котором размещены вкладки
Шаг перехода к следующей вкладке позволяет указать номер вкладки (начиная с 0), на которую нужно перейти пример возможного значения: 1
+

Пример настройки и применения

+

+

Рис.1 Активация функции на компоненте Кнопки

+
+
+
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Горизонтальный_контейнер.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Горизонтальный_контейнер.html new file mode 100644 index 00000000..024dbcd2 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Горизонтальный_контейнер.html @@ -0,0 +1,98 @@ + + + + + + + + Web-BPM Docs – Горизонтальный контейнер + + + + + + +
+
+ + + +
+
+

Горизонтальный контейнер

+

Назначение

+

Горизонтальный контейнер - это невидимая компонента-контейнер, которая позволяет расположить внутри себя набор видимых компонент в горизонтальной последовательности, когда каждая последующая видимая компонента находится справа от предыдущей.

+

Используется для оптимизации расположения компонентов в интерфейсе системы, обеспечивая возможность группировки и логического объединения компонентов в определенных секторах web-страницы и общее эстетическое и интуитивное восприятие экранного интерфейса пользователем системы.

+

Как правило, в состав Горизонтального контейнера включаются визуальные компоненты, но также Горизонтальные контейнеры могут быть размещены обособлено в дереве редактора интерфейса для облегчения чтения аналитиком структуры страницы и включать в себя невизуальные компоненты для служебного использования (предзагрузка значений переменных процесса в компоненты, компоненты с подгруженными значениями по умолчанию, компоненты Обработка событий и т.п.)

+

Компонента Горизонтальный контейнер находится в разделе Компоненты - Контейнеры - Горизонтальный контейнер

+

Свойства

+

Компонента имеет набор общих свойств и подгрузка данных по умолчанию

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (

+

- функции, которые выполняются удаленно на сервере приложений,

+

- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO: описать

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
В чем заключаются лучшие практики использования контейнеров? Чаще всего контейнерами зонируют экранный интерфейс, чтобы добиться эргономичного расположения компонентов на web-странице. Например, в горизонтальный контейнер вкладывают несколько вертикальных, добиваясь, колончатой структуры страницы. Пример такой реализации можно посмотреть в методических рекомендациях по применению.
Что происходит в горизонтальном контейнере, если ширины экрана не хватает для размещения в горизонтальном направлении всех компонент? После заполнения всей доступной ширины web-страницы, система автоматически начинает переносить оставшиеся компоненты на строчку ниже и продолжать заполнять ими ширину экрана, располагая оставшиеся компоненты друг за другом в горизонтальной последовательности.
Насколько глубокую иерархию вложенности можно создать, комбинируя контейнеры между собой? Теоретически, глубина вложенности контейнеров разного типа друг в друга не ограничена. Но на практике комбинирование вложенностью контейнеров применяется для решения конкретной проблемы эргономичного расположения визуальных компонентов на странице
Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойствобычной компоненты? Функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнера на все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты Ложь, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Группа_полей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Группа_полей.html new file mode 100644 index 00000000..196e3a9a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Группа_полей.html @@ -0,0 +1,123 @@ + + + + + + + + Web-BPM Docs – Группа полей + + + + + + +
+
+ + + +
+
+

Группа полей

+

Назначение

+

Группа полей - это визуальная компонента-контейнер, которая позволяет расположить внутри себя набор других видимых компонент в вертикальной последовательности, когда каждая следующая видимая компонента находится на новой строке под предыдущей. По функциональности компонента Группа полей очень близка к компоненте Вертикальный контейнер и отличается от него только визуальным обозначением границ контейнера и возможностью дать заголовок.

+

Используется для оптимизации расположения компонентов в интерфейсе системы, обеспечивая возможность группировки и логического объединения компонентов в определенных секторах web-страницы и общее эстетическое и интуитивное восприятие экранного интерфейса пользователем системы.

+

Компонента Группа полей находится в разделе Компоненты - Контейнеры - Группа полей

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет указать тест заголовка для контейнера Группа полей пример возможного значения: Общие сведения
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации функций(

+

- функции, которые выполняются удаленно на сервере приложений,

+

- функции, которые выполняются в браузере пользователя),

+

они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO: описать

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
В чем заключаются лучшие практики использования контейнеров? Чаще всего контейнерами зонируют экранный интерфейс, чтобы добиться эргономичного расположения компонентов на web-странице. Контейнер Группа полей используется для объединения логически родственных полей ввода и отображения информации в видимую область на экране и явного наименования этой области объединяющим заголовком. По функциональности компонента Группа полей очень близка к компоненте Вертикальный контейнер и отличается от него только визуальным обозначением границ контейнера и возможностью дать заголовок. Все возможности взаимного комбинирования разных видов компонент - контейнеров внутри компоненты-контейнера Группа полей остаются такими же, как и у других компонент-контейнеров.
Насколько глубокую иерархию вложенности можно создать, комбинируя контейнеры между собой Теоретически, глубина вложенности контейнеров разного типа друг в друга не ограничена. Но на практике комбинирование вложенностью контейнеров применяется для решения конкретной проблемы эргономичного расположения визуальных компонентов на странице.
Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты Функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнера на все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты Ложь, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+

Пример настройки

+

Задача: сгруппировать поля в панель с рамочкой “Паспортные данные”:

+

+

1.Добавить компонент FieldSet на страницу:

+

+
    + +
  1. Добавить компоненты, которые хотите сгруппировать на панели с рамочкой:
  2. +
+

+

. Настройте свойство Label для добавленных компонентов.

+

. Задайте текст заголовка панели в свойстве heading компонента FieldSet:

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог.html new file mode 100644 index 00000000..a019508f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог.html @@ -0,0 +1,118 @@ + + + + + + + + Web-BPM Docs – Диалог + + + + + + +
+
+ + + +
+
+

Диалог

+

Назначение

+

Диалог - это компонента, которая используется для отображения всплывающего диалогового окна на форме страницы. В зависимости от решаемой задачи, по усмотрению бизнес-аналитика, элемент может включать в себя другие компоненты из библиотеки.

+

Свойства

+

Каждая компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет задать заголовок диалога на странице
TODO: переименовать Допускается скрытие через системную позволяет задать возможность закрытия диалога по нажатию на системный - возможно закрыть диалог через . Значение по умолчанию - невозможно закрыть диалог (системный скрыт)
TODO: адаптироватьresetValidationStatus позволяет сбросить значения и валидацию полей диалога после его скрытия true - сбрасывать валидацию, false - нет
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации функций (

+

- функции, которые выполняются удаленно на сервере приложений,

+

- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO: описать

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
В каких случаях чаще всего используется элемент Диалог? В большинстве случаев, Диалог используется для вывода уведомлений, предупреждений и дополнительной информации пользователю.
Как управлять видимостью компоненты Диалог? Регулировать видимость Диалога можно с помощью Обработчика событий, где для Диалога необходимо задействовать методы “Показать”, “Скрыть”, но не метод “Задать видимость”
Как задать возможность закрытия всплывающего Диалога на странице по нажатию на Кнопку? Для того, чтобы реализовать возможность закрытия Диалога по нажатию на конкретную Кнопку, необходимо добавить на страницу Обработчик событий с соответствующим условием: Если произошло нажатие на Кнопку, тогда скрывать Диалог.
Может ли Диалог выступать в качестве самостоятельного элемента на странице приложения? Нет, Диалог всегда должен содержать в себе вложенные элементы (статичный Текст или Кнопки), иначе его применение не целесообразно.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог_Вызвать.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог_Вызвать.html new file mode 100644 index 00000000..4daacc74 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог_Вызвать.html @@ -0,0 +1,78 @@ + + + + + + + + Web-BPM Docs – Диалог. Вызвать + + + + + + +
+
+ + + +
+
+

Диалог. Вызвать

+

Функция, которая в режиме исполнения приложения (runtime mode) позволяет вызвать заданное в настройках функции модальное диалоговое окно поверх основной web-страницы экранного интерфейса.

+

Без взаимодействия с этим модальным диалоговым окном, которое впоследствии должно завершиться его закрытием в соответствии с каким-либо алгоритмом, пользователь не сможет продолжить работу с основной web-страницы экранного интерфейса.

+

Функция может быть активирована на любом из видов компоненты Кнопка, но обычной практикой является использование функции Диалог. Вызватьс компонентой Кнопка.

+

+

Рис. 1 Внешний вид активированной функции

+

Параметры функции (табл.1)

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Вызвать диалог Ссылка на компоненту Диалог, обязательный. позволяет указать компоненту Диалог для вызова модального окна поверх основной web-страницы экранного интерфейса
+

Пример настройки и применения

+

+

Рис.2 Активация функции на компоненте Кнопка

+

+

Рис. 3 Компонента Диалог, которая будет вызываться функцией

+

+

Рис. 4 Внешний вид вызванного функцией модального окна диалога

+
+
+
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог_Скрыть.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог_Скрыть.html new file mode 100644 index 00000000..1be9086e --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Диалог_Скрыть.html @@ -0,0 +1,79 @@ + + + + + + + + Web-BPM Docs – Диалог. Скрыть + + + + + + +
+
+ + + +
+
+

Диалог. Скрыть

+

Функция, которая в режиме исполнения приложения (runtime mode) позволяет скрыть заданное в настройках функции модальное диалоговое окно и продолжить работу с основной web-страницы экранного интерфейса.

+

Функция может быть активирована на любом из видов компоненты Кнопка, но обычной практикой является использование функции Диалог. Скрыть с компонентой Кнопка.

+

+

Рис. 1 Внешний вид активированной функции

+

Параметры функции (табл.1)

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Скрыть диалог Ссылка на компоненту Диалог, обязательный. позволяет указать компоненту Диалог для сокрытия модального окна поверх основной web-страницы экранного интерфейса
+

Пример настройки и применения

+

+

Рис.2 Активация функции на компоненте Кнопка

+

+

Рис. 3 Компонента Диалог, которая будет скрываться функцией

+

+

Рис. 4 Внешний вид модального окна диалога, который будет скрыт

+

+

Рис. 5 Внешний вид web-страницы, когда модальное окно Диалога скрыто функцией

+
+
+
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Вертикальный_контейнер_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Вертикальный_контейнер_на_страницу_.html new file mode 100644 index 00000000..1079a236 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Вертикальный_контейнер_на_страницу_.html @@ -0,0 +1,166 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Вертикальный контейнер на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Вертикальный контейнер” на страницу?

+

Постановка задачи: необходимо расположить на пользовательской странице Карточка задачи набор параметров задачи таким образом, чтобы визуально страница воспринималась, как состоящая из двух одинаковых по ширине колонок, параметры задачи в каждой из которых идут друг под другом.

+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком и визуальные компоненты и источник данных компоненты Форма настроен.

+

Для оптимизации расположения параметров в соответствии с условиями задачи необходимо сделать следующее:

+
    + +
  • внутрь компоненты Форма добавить компоненту Горизонтальный контейнер (рис.1)
  • +
+

+

Рис.1 Добавление компоненты Горизонтальный контейнер

+
    + +
  • внутрь компоненты Горизонтальный контейнер добавить две компоненты Вертикальный контейнер (рис. 2)
  • +
+

+

Рис.2 Добавление двух компонент Вертикальный контейнер

+
    + +
  • в настройках компоненты Вертикальный контейнер перейти в Расширенные настройки и задать ширину каждой из компонент Вертикальный контейнер в размере 50% (рис. 3)
  • +
+ +
+ +

+
+ +

+

Рис.3 Выставление параметра Ширина в 50% у компонент Вертикальный контейнер

+
    + +
  • внутрь каждой из компонент Вертикальный контейнер расположить визуальные компоненты (рис.4)
  • +
+

+

Рис.4 Добавление визуальных компонентов в скомбинированные Горизонтальный и вертикальные контейнеры

+

На этом настройка предложенного порядка расположения визуальных компонентов на странице, предусмотренная заданием, завершена.

+

При проверке результата в работающем приложении визуальные компоненты должны выглядеть так:

+ +
+ + + + + + + + + + + + + + +
+
+ +

+
+

Рис. 5 Представление визуальных компонентов после использования Горизонтального и Вертикального контейнеров.

+ +

Страница воспринимается как состоящая из 2 столбцов одинаковой ширины, в которых визуальные компоненты расположены в вертикальном направлении друг за другом

+
+ +

Тот же самый набор визуальных компонентов, расположенный в составе компоненты Форма, без использования контейнеров выглядел бы так:

+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+

Рис. 6 Все визуальные компоненты расположены внутри компоненты Форма.

+ +

Компонента Форма сама по себе является Вертикальным контейнером !

+

Рис. 7 Расположение визуальных компонентов в запущенное приложении без использования комбинации Горизонтальных и Вертикальных контейнеров.

+ +

Поскольку Компонента Форма сама по себе является Вертикальным контейнером, то все визуальные компоненты расположены в один столбик в вертикальной последовательности

+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Вкладка_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Вкладка_на_страницу_.html new file mode 100644 index 00000000..328dabbd --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Вкладка_на_страницу_.html @@ -0,0 +1,115 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Вкладка на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Вкладка” на страницу?

+

Постановка задачи: необходимо расположить на пользовательской странице Карточка задачи набор параметров задачи таким образом, чтобы визуально страница воспринималась, как состоящая из двух вкладок, каждая со своим набором параметров задачи (вкладка “общие параметры” и вкладка “сотрудники”).

+

Решение задачи:

+

Предполагается, что страницаКарточка задачиуже создана бизнес-аналитиком и визуальные компоненты и источник данных компоненты Форма настроен.

+

Для оптимизации расположения параметров в соответствии с условиями задачи необходимо сделать следующее:

+
    + +
  • внутрь компоненты Форма добавить компоненту Контейнер вкладок (рис.1)
  • +
+

+

Рис.1 Добавление компоненты Контейнер вкладок

+
    + +
  • внутрь компоненты Контейнер вкладок добавить две компоненты Вкладка (рис. 2)
  • +
+

+

Рис.2 Добавление двух компонент Вкладка

+
    + +
  • + +

    оставляем значения параметров компоненты “Контейнер вкладок” в состоянии ‘по умолчанию’

    +
  • +
  • + +

    внутрь каждой из компонент Вкладка располагаем визуальные компоненты (рис.4)

    +
  • +
+

+

Рис.4 Добавление визуальных компонентов в скомбинированные компоненты-контейнеры “Контейнер вкладок” и “Вкладка”

+

На этом настройка предложенного порядка расположения визуальных компонентов на странице, предусмотренная заданием, завершена.

+

При проверке результата в работающем приложении визуальные компоненты должны выглядеть так:

+ +
+ +

+
+ +

+

Рис. 5 Представление визуальных компонентов после использования компоненты-контейнеры “Контейнер вкладок” и “Вкладка”

+

Страница воспринимается как состоящая из 2 вкладок, в которых визуальные компоненты расположены в вертикальном направлении друг за другом

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Горизонтальный_контейнер_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Горизонтальный_контейнер_на_страницу_.html new file mode 100644 index 00000000..4189554f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Горизонтальный_контейнер_на_страницу_.html @@ -0,0 +1,173 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Горизонтальный контейнер на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Горизонтальный контейнер” на страницу?

+

Постановка задачи: необходимо расположить на пользовательской странице Карточка задачи набор параметров задачи таким образом, чтобы визуально страница воспринималась, как состоящая из двух одинаковых по ширине колонок, параметры задачи в каждой из которых идут друг под другом.

+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком и визуальные компоненты и источник данных компоненты Форма настроен.

+

Для оптимизации расположения параметров в соответствии с условиями задачи необходимо сделать следующее:

+
    + +
  • внутрь компоненты Форма добавить компоненту Горизонтальный контейнер (рис.1)
  • +
+

+

Рис.1 Добавление компоненты Горизонтальный контейнер

+
    + +
  • внутрь компоненты Горизонтальный контейнер добавить две компоненты Вертикальный контейнер (рис. 2)
  • +
+

+

Рис.2 Добавление двух компонент Вертикальный контейнер

+
    + +
  • в настройках компоненты Вертикальный контейнер перейти в Расширенные настройки и задать ширину каждой из компонент Вертикальный контейнер в размере 50% (рис. 3)
  • +
+ +
+ +

+
+ +

+

Рис.3 Выставление параметра Ширина в 50% у компонент Вертикальный контейнер

+
    + +
  • внутрь каждой из компонент Вертикальный контейнер расположить визуальные компоненты (рис.4)
  • +
+

+

Рис.4 Добавление визуальных компонентов в скомбинированные Горизонтальный и вертикальные контейнеры

+

На этом настройка предложенного порядка расположения визуальных компонентов на странице, предусмотренная заданием, завершена.

+

При проверке результата в работающем приложении визуальные компоненты должны выглядеть так:

+ +
+ + + + + + + + + + + + + + +
+
+ +

+
+

Рис. 5 Представление визуальных компонентов после использования Горизонтального и Вертикального контейнеров.

+ +

Страница воспринимается как состоящая из 2 столбцов одинаковой ширины, в которых визуальные компоненты расположены в вертикальном направлении друг за другом

+
+ +

Тот же самый набор визуальных компонентов, расположенный в составе компоненты Форма, без использования контейнеров выглядел бы так:

+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+

Рис. 6 Все визуальные компоненты расположены внутри компоненты Форма.

+ +

Компонента Форма сама по себе является Вертикальным контейнером !

+

Рис. 7 Расположение визуальных компонентов в запущенное приложении без использования комбинации Горизонтальных и Вертикальных контейнеров.

+ +

Поскольку Компонента Форма сама по себе является Вертикальным контейнером, то все визуальные компоненты расположены в один столбик в вертикальной последовательности

+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Группа_полей_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Группа_полей_на_страницу_.html new file mode 100644 index 00000000..848ae61f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Группа_полей_на_страницу_.html @@ -0,0 +1,157 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Группа полей на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Группа полей” на страницу?

+

Постановка задачи: необходимо на пользовательской странице Карточка задачи сгруппировать и расположить набор параметров задачи по подразделам “Общие сведения”, “Сроки”, “Действующие лица”.

+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком, визуальные компоненты и источник данных компоненты Форма настроен.

+

Для расположения параметров в соответствии с условиями задачи необходимо сделать следующее:

+
    + +
  • внутрь компоненты Форма добавить несколько компонент Группа полей (рис.1)
  • +
+

+

Рис.1 Добавление компоненты Группа полей

+
    + +
  • переименовать компоненты Группа полей и дать им одноименные заголовки (рис. 2)
  • +
+

+

Рис.2 Переименование и озаглавливание компонент Группа полей

+
    + +
  • внутри каждой из компонент Группа полей расположить визуальные компоненты для ввода и отображения информации (рис. 3)
  • +
+ +
+ + + + + + + + + + + + + + +
+
+ +

+
Рис.3 Распределение полей ввода и отображения информации по компонентам Группа полей
+
+ +

На этом настройка предложенного порядка расположения визуальных компонентов на странице, предусмотренная заданием, завершена.

+

При проверке результата в работающем приложении визуальные компоненты должны выглядеть так:

+

Рис. 4 Представление визуальных компонентов после использования компонент - контейнеров Группа полей Страница воспринимается как совокупность 3 логических блоков, следующих в вертикальном направлении друг за другом

+

Тот же самый набор визуальных компонентов, расположенный в составе компоненты Форма, без использования контейнеров выглядел бы так:

+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+

Рис. 5 Все визуальные компоненты расположены внутри компоненты Форма.

+ +

Компонента Форма сама по себе является Вертикальным контейнером !

+

Рис. 6 Расположение визуальных компонентов в запущенном приложении без использования компонент- контейнеров Группа полей.

+ +

Поскольку Компонента Форма сама по себе является Вертикальным контейнером, то все визуальные компоненты расположены в один столбик в вертикальной последовательности

+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Контейнер_вкладок_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Контейнер_вкладок_на_страницу_.html new file mode 100644 index 00000000..c780f69f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Контейнер_вкладок_на_страницу_.html @@ -0,0 +1,90 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Контейнер вкладок на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Контейнер вкладок” на страницу?

+

Постановка задачи: необходимо расположить на пользовательской странице Карточка задачи набор параметров задачи таким образом, чтобы визуально страница воспринималась, как состоящая из двух вкладок, каждая со своим набором параметров задачи (вкладка “общие параметры” и вкладка “сотрудники”).

+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком и визуальные компоненты и источник данных компоненты Форма настроен.

+

Для оптимизации расположения параметров в соответствии с условиями задачи необходимо сделать следующее:

+
    + +
  • внутрь компоненты Форма добавить компоненту Контейнер вкладок (рис.1)
  • +
+

+

Рис.1 Добавление компоненты Контейнер вкладок

+
    + +
  • внутрь компоненты Контейнер вкладок добавить две компоненты Вкладка (рис. 2)
  • +
+

+

Рис.2 Добавление двух компонент Вкладка

+
    + +
  • + +

    оставляем значения параметров компоненты “Контейнер вкладок” в состоянии ‘по умолчанию’

    +
  • +
  • + +

    внутрь каждой из компонент Вкладка располагаем визуальные компоненты (рис.4)

    +
  • +
+

+

Рис.4 Добавление визуальных компонентов в скомбинированные компоненты-контейнеры “Контейнер вкладок” и “Вкладка”

+

На этом настройка предложенного порядка расположения визуальных компонентов на странице, предусмотренная заданием, завершена.

+

При проверке результата в работающем приложении визуальные компоненты должны выглядеть так:

+ +
+ +

+
+ +

+

Рис. 5 Представление визуальных компонентов после использования компоненты-контейнеры “Контейнер вкладок” и “Вкладка”

+

Страница воспринимается как состоящая из 2 вкладок, в которых визуальные компоненты расположены в вертикальном направлении друг за другом

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Контейнер_кнопок_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Контейнер_кнопок_на_страницу_.html new file mode 100644 index 00000000..ecc033a7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Контейнер_кнопок_на_страницу_.html @@ -0,0 +1,191 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Контейнер кнопок на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Контейнер кнопок” на страницу?

+

Постановка задачи: на пользовательской странице Карточка задачи требуется эргономично реализовать кнопки печати карточки задачи, карточки проекта, списка всех изменений по задаче. списка всех задействованных по задаче специалистов.

+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком, визуальные компоненты с основными параметрами задачи и источник данных компоненты Форма настроен.

+

Для выполнения поставленных в задаче требований:

+
    + +
  • в состав page добавить Горизонтальный контейнер и назвать его Кнопки (рис.1)
  • +
+

+

Рис.1 Добавление Горизонтального контейнера

+
    + +
  • внутри горизонтального контейнера расположить компоненту “Контейнер с кнопками”, а также несколько простых компонент “Кнопка” (рис. 2)
  • +
+

+

Рис.2 Добавление компоненты Контейнер с кнопками и несколькообычных кнопок

+
    + +
  • внутри компоненты “Контейнер с кнопками” расположить визуальные компоненты “Кнопка печати” для печати форм отчетов, определенных условиями задачи (рис. 3)
  • +
+ +
+ + + + + + + + + + + + + + +
+
+ +

+
Рис.3 Наполнение компоненты "Контейнер с кнопками" простыми визуальными компонентами "Кнопка печати"
+
+ +

На этом настройка предложенного порядка расположения визуальных компонентов на странице, предусмотренная заданием, завершена.

+

При проверке результата в работающем приложении визуальные компоненты должны выглядеть так:

+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+

Рис. 4 Представление визуальных компонентов после использования компоненты "Контейнер с кнопками".

+ +

Все возможности печати скрыты за объединяющей кнопкой.

+

Рис. 5 Представление визуальных компонентов после использования компоненты "Контейнер с кнопками" с раскрытыми кнопками, предоставляющими заданные возможности распечатки отчетов.

+ +


+

+
+ +

Тот же самый набор возможностей печати без использования компоненты “Контейнер с кнопками” выглядел бы так:

+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+

Рис. 6 Все компоненты "Кнопка" последовательно расположены внутри "Горизонтального контейнера".

+ +


+

+

Рис. 7 Расположение визуальных компонентов в приложении без использования компоненты "Контейнер с кнопками".

+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Набор_фильтров_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Набор_фильтров_на_страницу_.html new file mode 100644 index 00000000..10f28b34 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Набор_фильтров_на_страницу_.html @@ -0,0 +1,135 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Набор фильтров на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Набор фильтров” на страницу?

+

Постановка задачи:

+

На пользовательской странице необходимо расположить “Набор фильтров” который будет включать в себя текстовый фильтр.

+

Элементы на странице должны иметь следующие настройки:

+
    + +
  • Блок фильтрации на странице должен иметь подзаголовок-Фильтр по сотрудникам, реализованный с помощью компоненты Текст
  • +
  • Набор фильтров должен содержать внутри себя Текстовое поле (фильтр) и ссылаться на Таблицу поиска. Поиск по таблице должен осуществляться после ввода данных в поле фильтрации.
  • +
+

Решение задачи:

+

Предполагается, что страница, где необходимо разместить Таблицу и Набор фильтров, уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:

+ +

+

рис.1 Добавление элемента Набор фильтров

+
    + +
  • Добавить компоненту Текст внутрь Набора фильтров, которая будет являться заголовком блока фильтрации (рис.2)
  • +
+

+

рис.2 Добавление элемента Текст

+
    + +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по текстовому полю (рис.3)
  • +
+

+

рис.3 Добавление компонент Фильтр по текстовому полю

+
    + +
  • Добавить на страницу Таблицу,в которой будет отображаться информация о сотрудниках и по значениям которой будет осуществляться поиск записей с помощью фильтров (рис.4)
  • +
+

+

рис.4 Добавление элемента Таблица

+

2. Настройка элементов:

+
    + +
  • Настройка Набора фильтров: переносим объект Таблица, удерживая левую кнопку мыши, в свойство “Применить к…” Набор фильтров как показано на рисунке (рис.5) и настроить остальные свойства (рис.6)
  • +
+

+

рис.5 Настройка Набор фильтров

+

+

рис.6 Настройка Набор фильтров

+
    + +
  • Заполняем свойство Надпись у компоненты Текст значением Фильтр по сотрудникам (рис.7)
  • +
+

+

рис.7 Настройка элемента Текст

+
    + +
  • Заполняем у элемента Таблица следующие свойства: Таблица. Подгрузка данных - Источник данных - Граф сущностей (как описано в разделе Настройка Графа сущностей) и настраиваем колонки Таблицы (как описано в разделе Настройка колонок Таблицы) в блоке Таблица. Настроить колонки таблицы согласно условиям задачи (рис.8)
  • +
+

+

рис.8 Настройка элемента Таблица

+
    + +
  • Заполняем свойства компонент фильтрации по текстовому полю согласно условиям задачи (рис.9)
  • +
+

+

рис.9 Настройка Фильтра по текстовому полю

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается блок фильтрации, включающий в себя фильтры по тестовому полю (рис.10).

+

+

рис.10 Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Сворачиваемая_панель_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Сворачиваемая_панель_на_страницу_.html new file mode 100644 index 00000000..eefbb4fe --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Сворачиваемая_панель_на_страницу_.html @@ -0,0 +1,161 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Сворачиваемая панель на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Сворачиваемая панель” на страницу?

+

Постановка задачи:

+

На пользовательской странице необходимо расположить “Сворачиваемую панель” которая будет включать в себя Поле многострочного ввода, поле Дата и денежное поле.

+

Элементы на странице должны иметь следующие настройки:

+
    + +
  • Сворачиваемая панель: +
      + +
    • заголовок: Дополнительная информация об услуге
    • +
    +
  • +
  • Дата: +
      + +
    • Надпись: Дата предоставления услуги
    • +
    • Формат: Дата со временем
    • +
    +
  • +
  • Поле многострочного ввода: +
      + +
    • Надпись: Описание проведенных работ
    • +
    +
  • +
  • Денежное поле: +
      + +
    • Надпись: Стоимость услуг
    • +
    • Количество знаков после запятой
    • +
    +
  • +
+

Решение задачи:

+

Предполагается, что страница, где необходимо разместить Таблицуи Набор фильтров, уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:

+
    + +
  • Добавить на страницу контейнер Сворачиваемая панель (рис.1)
  • +
+

+

рис.1 Добавление элемента Сворачиваемая панель

+
    + +
  • Добавить компоненту Дата внутрь Сворачиваемой панели (рис.2)
  • +
+

+

рис.2 Добавление элемента Дата.

+ +

+

рис.2 Добавление элемента Поле многострочного ввода.

+
    + +
  • Добавить внутрь Сворачиваемой панели компоненту Денежное поле (рис.3)
  • +
+

+

рис.3 Добавление элемента Денежное поле.

+

2. Настройка элементов:

+
    + +
  • НастройкаСворачиваемой панели, заполняем Заголовок. Как показано на рисунке (рис.4).
  • +
+

+

рис.4 НастройкаСворачиваемая панель

+
    + +
  • Настройка поля Дата, заполняем Надпись. Как показано на рисунке (рис.5).
  • +
+

+

рис.5 Настройка Дата

+
    + +
  • Настройка Поле многострочного ввода, заполняем Надпись. Как показано на рисунке (рис.6).
  • +
+

+

рис.6 НастройкаПоле многострочного ввода.

+
    + +
  • Настройка Денежное поле, заполняем Надпись. Указываем количество знаков после запятой. Как показано на рисунке (рис.7).
  • +
+

+

рис.7 Настройка Денежного поля.

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается Сворачиваемая панель, включающий в себя необходимые поля. Сворачиваемая панель в свернутом состоянии рис.8. Сворачиваемая панель в развернутом виде рис. 9.**
+**

+

+

рис.8 Визуальное отображение выполнения условий задачи

+

+

рис.9 Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Форма_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Форма_на_страницу_.html new file mode 100644 index 00000000..6a9b870b --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_добавить_компоненту_Форма_на_страницу_.html @@ -0,0 +1,184 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Форма на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту “Форма” на страницу?

+

Постановка задачи: необходимо расположить на пользовательской странице Карточка задачи набор параметров задачи, представленных визуальными компонентами, с возможностью подгрузить информацию из таблиц базы данных в режиме редактирования карточки, либо сохранить введенные значения (в режиме добавления новой записи или обновления ранее созданной записи).

+

Карточка задачидолжна иметь следующие настройки:

+
    + +
  • в Граф сущностей в качестве Главной сущности должна быть определена таблица задач(tasks), которая может быть связана с другими таблицами базы данных, где содержитсядополнительная информация для вывода на страницу - наименование и описание задачи, дата постановки задачи
  • +
  • при настройке функции Подгрузка данных основная компонентыФормав параметре Переменная процесса с идентификатором следует выбрать из списка наименование переменной процесса task_id, содержащей идентификатор задачи. Эта переменная может быть заполнена каким-либо значением или быть пустым. Как правило, если при открытии страницы с карточкой задачи эта переменная уже заполнена некоторым числом, то карточка задачи открывается на редактирование (выполняется SQL запрос SELECT при открытии и UPDATE при попытке сохранения), поскольку этот идентификатор задачи был указан пользователем на одном из предыдущих этапов. Если при открытии страницы с карточкой задачи эта переменная пуста, то функция Подгрузка данных основная автоматически определяет, что данные для подгрузки на страницу отсутствуют, а при попытке сохранения карточки следует выполнить SQL запрос INSERT.
  • +
  • внутри компоненты-контейнера Форма следует расположить 3 компоненты: Текстовое поле для параметра Наименование задачи, Текстовое поле для параметра Описание задачи и Дата для параметра Дата постановки задачи.
  • +
+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком и в логике бизнес-процесса определена необходимая переменная процесса task_id, значение которой заполняется перед открытием страницы пользователем. Для добавления на страницу и настройки компоненты Форма необходимо сделать следующее:

+
    + +
  • добавить внутрь страницы компоненту Форма (рис.1)
  • +
  • в настройках добавленной Формы перейти к разделу Подгрузка данных основная - Источник данных - Граф сущностей и настроить его в соответствии с условием задачи (рис.2).
  • +
+

+ +
+
     рис.1 Добавление компоненты Форма на страницу    
+                 рис.2 Настройка Графа
+
+ +

сущностей компоненты Форма

+ +

+ +
+
        рис.3 Настройка переменной процесса
+
+ +
    + +
  • расположить компоненты для отображения параметров Наименование задачи, Описание задачи, Дата постановки задачи и настроить их на отображение информации из источника данных (рис.4, рис.5, рис.6)
  • +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+
+ +

+
рис.4 Добавление элемента Наименованиерис.5 Добавление элемента Описаниерис.6 Добавление элемента Дата постановки задачи
+
+ +

На этом настройка компоненты Форма для отображения информации из базы данных завершена. В указанной конфигурации при попытке открыть веб-страницу поля будет заполнены имеющимися в базе данных значениями.

+

Для возможности создания новой записи (INSERT) или изменения имеющихся значений (UPDATE), необходимо добавить на страницу компоненту Кнопка сохранения и указать этой кнопке на Форму, согласно Графу сущностей которой следуют провести операцию добавления новой записи или обновления существующей информации после нажатия на кнопку (рис.7)

+ +
+ + + + + + + + + + + + + + +
+
+ +


+

+
+

рис.7 Настройка элемента Кнопка сохранения

+ +

Заполнение параметра Компонент "Форма" Кнопки сохранения происходит путем перетаскивания манипулятором мышь объекта "Основная Форма страницы " из дерева структуры страницы в окно параметра Компонент "Форма" Кнопки сохранения (как показано стрелкой на скриншоте).

+ +

Также существует удобная функциональность обратного быстрого перехода по дереву структуры страницы к задействованной компоненте посредством клика на параметре Компонент "Форма" Кнопки сохранения, когда есть необходимость уточнить, на какую именно компоненту в дереве ссылается интересующий параметр.

+
+ +

Кнопку сохранения необязательно располагать внутри компоненты Форма, что является обычной практикой при разработке приложений, поскольку кнопки располагаютcя в определенных областях экрана с использованием компонент Горизонтальный или Вертикальный контейнер. Кроме того, компонента Кнопка сохранения не имеет своего источника данных, как те компоненты, которые отображают информацию из базы данных, и которые по этой причине должны быть расположены внутри компоненты Форма.

+

После применения изменений и настройки всех необходимых элементов, веб-страница может не только заполнять поля значениями из базы данных при открытии, но и сохранять измененные значения или добавлять новую запись, в зависимости от состояния значения переменной task_id. Если она пуста, то данные после нажатия Кнопки сохранения добавятся в таблицу, а если не пуста - то обновятся, и система перейдет к следующей задаче согласно логике бизнес-процесса.

+ +
+
+

Attachments:

+
+ +
+ +

image2019-3-7_15-26-43.png (image/png)
+ Screenshot_9.png (image/png)
+ Screenshot_6.png (image/png)
+ Screenshot_7.png (image/png)
+ Screenshot_8.png (image/png)
+ Screenshot_3.png (image/png)
+ Screenshot_4.png (image/png)
+ image2019-3-7_17-38-11.png (image/png)
+ image2019-3-7_17-39-51.png (image/png)
+ image2019-3-7_18-12-24.png (image/png)
+ image2019-3-7_18-15-45.png (image/png)
+ image2019-3-11_10-15-47.png (image/png)
+ image2019-3-11_10-16-20.png (image/png)
+ image2019-3-11_10-34-55.png (image/png)
+ image2019-3-11_18-6-34.png (image/png)
+ image2019-3-11_18-8-46.png (image/png)

+
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_задействовать_компоненту_Окно_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_задействовать_компоненту_Окно_.html new file mode 100644 index 00000000..89512bd0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_задействовать_компоненту_Окно_.html @@ -0,0 +1,137 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Окно? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту “Окно”?

+

Постановка задачи: на одном из этапов прохождения бизнес - процесса следует проинформировать пользователя о готовности Системы отправить сообщение электронной почтой на основе тех данных, что пользователь последовательно на нескольких формах и в несколько этапов вводил в Систему до этого момента. Предоставить пользователю возможность 1) обойти отправку и пойти дальше по процессу, 2) вернуться на первый этап и повторить (откорректировать ввод данных), 3) отправить e-mail на основе всех введенных им данных.

+

Решение задачи:

+
    + +
  1. В редакторе бизнес-процессов предусмотреть отдельную пользовательскую задачу (UserTaks).
  2. +
+

+
    + +
  1. Создать новую экранную форму (page) и соотнести ее с этой пользовательской задачей в редакторе бизнес- процессов.
  2. +
+

+
    + +
  1. Открыть экранную форму в редакторе экранных форм и перенести из библиотеки компонентов компоненту Окно в дерево страницы page.
  2. +
+

+
    + +
  1. Настроить каждую входящую состав компоненты “Окно” простую визуальную компоненту следующим образом:
  2. +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+
+ +

+
Дать заголовок компоненте Окно, задействовав компоненту ТекстСформулировать тело сообщения пользователю, которое будет отображаться Системой и заполнить предназначенный для этого параметр компоненты TextAreaНастроить параметры компонент Кнопка, с помощью которых пользователь будет принимать решение о дальнейшем движении маркера процесса
+
+ +

На этом выполнение поставленной задачи можно считать завершенным.

+

При проверке результата в работающем приложении компонента выглядит так:

+

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_использовать_Диалог_для_вывода_предупреждения_пользователю_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_использовать_Диалог_для_вывода_предупреждения_пользователю_на_странице_.html new file mode 100644 index 00000000..8dd4b39a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Как_использовать_Диалог_для_вывода_предупреждения_пользователю_на_странице_.html @@ -0,0 +1,146 @@ + + + + + + + + Web-BPM Docs – Как использовать Диалог для вывода предупреждения пользователю на странице? + + + + + + +
+
+ + + +
+
+

Как использовать Диалог для вывода предупреждения пользователю на странице?

+

Постановка задачи: необходимо реализовать на пользовательской странице Карточки проверки всплывающее Диалоговое окно с предупреждением о некорректном заполнении пользователем Дат проведения проверки (дата начала проверки и дата окончания проверки). Вывод Диалога предупреждения и проверка корректности введенных пользователем значений в поле дат должны осуществляться согласно условию, что Дата окончания проверки не должна быть раньше Даты начала проверки, и Дата начала проверки не должна быть позднее Даты окончания проверки, соответственно. В случае некорректного заполнения одной из Дат, помимо вывода всплывающего Диалогового окна, введенная пользователем Дата должна очищаться.

+

Элементы на странице должны иметь следующие настройки:

+
    + +
  • Дата (с возможностью сохранения) №1:
    +надпись -Дата начала проверки
    +формат - Дата
    +введенноепользователем значение должно сохраняться в базу данных
  • +
  • Дата (с возможностью сохранения) №2:
    +надпись -Дата окончания проверки
    +формат-Датавведенноепользователем значение должно сохраняться в базу данных
  • +
  • Диалог вывода предупреждения №1:
    +элемент Текст -Дата начала проверки не должна быть позднее Даты окончания проверки
    +кнопка закрытия Диалога - Ок
    +диалог должен быть скрыт по умолчанию, его видимость будет регулироваться с помощью Обработчика событий
  • +
  • Диалог вывода предупреждения №2:
    +элемент Текст-Дата окончания проверки не должна быть раньше Даты начала проверкикнопка закрытия Диалога- Окдиалог должен быть скрыт по умолчанию, его видимость будет регулироваться с помощью Обработчика событий
  • +
+

**Решение задачи:**предполагается, чтостраница Карточка проверки уже создана бизнес-аналитиком, где имеется основная компонента Форма, в структуру сущностей которой включена необходимая таблица, куда будут сохраняться введенные пользователем значения. Для добавления на страницу полей с Датами и Диалоговых окон необходимосделать следующее:

+ +

рис.1 Добавление Дат на Форму

+

рис.2 Настройка элемента Дата начала проверки

+

рис.3 Настройка элемента Дата окончания проверки

+
    + +
  • добавить внутрь Формы первое Диалоговое окно со вложенными элементами Текст и Кнопка, которое будет отображаться при условии: Дата окончания проверки не должна быть раньше Даты начала проверки (рис.4, рис.5, рис.6)
    +
    +рис.4 Диалог с проверкой корректности Даты окончания проверки
    +рис.5 Текст с предупреждением для пользователя
    +рис.6 Кнопка закрытия Диалога
  • +
  • добавить Обработчик событий, где регулируется видимость Диалога, всплывающего в случае, еслиДата окончания проверкираньшеДаты начала проверки и очищается значение поля Дата окончания проверки при выполнении этого условия(рис.7)
  • +
  • добавить Обработчик событий, с помощью которого выполняется закрытие Диалога с проверкой Даты окончания при нажатии на Кнопку внутри Диалога (рис.8)
  • +
+

рис.7 Настройка Обработчика событий для отображения Диалога
+рис.8 Настройка Обработчика событий для закрытия Диалога

+
    + +
  • добавить внутрь Формы второе Диалоговое окно со вложенными элементами Текст и Кнопка, которое будет отображаться при условии: Дата начала проверкине должна быть позднее Даты окончания проверки (рис.9, рис.10, рис.11)
    +
    +рис.9 Диалог с проверкой корректности Даты начала проверки
    +рис.10 Текст с предупреждением для пользователя
    +рис.11 Кнопка закрытия Диалога
  • +
  • добавить О бработчик событий, где регулируется видимость Диалога, всплывающего в случае, если Дата начала проверки позднее Даты окончания проверкии очищается значение поля Дата начала проверки при выполнении этого условия (рис.12)
  • +
  • добавить Обработчик событий, с помощью которого выполняется закрытие Диалога с проверкой Даты начала при нажатии на Кнопку внутри Диалога (рис.13) +


    +рис.12 Настройка Обработчика событий для отображения Диалога
    +рис.13 Настройка Обработчика событий для закрытия Диалога

  • +
+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи выполнены: на странице отображается два элемента Дата начала проверки и Дата окончания проверки (рис.14). В случае некорректного заполнения пользователем одного из этих полей (в любом порядке), автоматически срабатывает проверка по условиям, заданным в Обработчиках событий, и всплывает Диалоговое окно с предупреждением о допущенной ошибке (рис.15, рис.16).

+

+

+

рис.15 Вывод Диалогового окна при некорректном заполнении Даты начала проверки

+

+

рис.14.Визуальное отображение элементов с Датами на странице
+рис.16 Вывод Диалогового окнапри некорректном заполнении Даты окончания проверки

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнер_вкладок.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнер_вкладок.html new file mode 100644 index 00000000..6f424f58 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнер_вкладок.html @@ -0,0 +1,121 @@ + + + + + + + + Web-BPM Docs – Контейнер вкладок + + + + + + +
+
+ + + +
+
+

Контейнер вкладок

+

Назначение

+

Контейнер вкладок - невидимая компонента-контейнер позволяет экономно и эффективно организовать отображение на одном и том же месте экранного интерфейса разного набора визуальных компонентов, используя режим переключения вкладок, при котором выбранная пользователем вкладка отображается поверх других вкладок, не занимая дополнительного места на web странице и закрывая своим содержимым содержимое других вкладок.

+

Используется для оптимизации расположения визуальных компонент в интерфейсе системы, обеспечивая возможность группировки и логического объединения компонент в определенных зонах web-страницы и общее эстетическое и интуитивное восприятие экранного интерфейса пользователем системы.

+

Компонента Контейнер вкладок обязательно должна содержать в своем составе несколько компонент Вкладка, на которых располагаются прочие визуальные компоненты, позволяющие пользователю взаимодействовать с системой.

+

Компонента Контейнер вкладок находится в разделе Компоненты - Контейнеры - Контейнер вкладок

+

Свойства

+

Компонента имеет набор общих свойств и подгрузка данных по умолчанию. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Цикличность вкладок (isLoopTabs) Значения True или False
+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли вложить Контейнер вкладок в другие контейнеры? Да, может быть вложен в Вертикальный или Горизонтальный контейнеры
Как сделать Контейнер вкладок из горизонтального вертикальным? Для этого необходимо задать css класс “tab-menu” для TabContainer
Как выбрать вкладку в Контейнере вкладок по названию/номеру? Нужно использовать методы Контейнера вкладок “Сделать вкладку активной по заголовку”, “Сделать вкладку активной по индексу” в компоненте Обработка событий. Для выбора вкладки по индексу следует учитывать, что индекс вкладок начинается с 0 (первая по счету вкладка имеет индекс 0)
Можно ли расположить визуальные компоненты сразу в Контейнере вкладок, а не в компоненте Вкладка? Можно, но тогда Контейнер вкладок ничем не будет отличаться от Вертикального контейнера
Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты? Функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнера на все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты Ложь, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+

CSS классы

+ + + + + + + + + + + + + + + +
Название класса css Описание
tab-menu класс присваивается компоненте TabContainer, делает его вертикальным
menu-header класс присваивается компоненте TabItem (подзаголовок меню) при необходимости визуально выделить элемент меню
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнер_с_кнопками.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнер_с_кнопками.html new file mode 100644 index 00000000..ec738ad3 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнер_с_кнопками.html @@ -0,0 +1,98 @@ + + + + + + + + Web-BPM Docs – Контейнер с кнопками + + + + + + +
+
+ + + +
+
+

Контейнер с кнопками

+

Назначение

+

Контейнер с кнопками - это визуальная компонента-контейнер, которая позволяет скрыть несколько визуальных компонентов Кнопка под единственной видимой кнопкой, при нажатии на которую все скрытые ранее кнопки выпадают списком, предоставляя возможность пользователю нажать нужную. Используется для группировки схожих по функциональности кнопок и оптимизации расположения компонентов в интерфейсе системы, обеспечивая общее эстетическое и интуитивное восприятие.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать наименование кнопки пример возможного значения: Печать
Текст подтверждения при печати позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопку
+

Функции

+

Дополнительных функций у этой компоненты нет.

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем предпочтительнее использование контейнера кнопок вместо совокупности самостоятельных кнопок? Допустим, на web-странице требуется реализовать кнопки печати заявления, распорядительного акта на основе заявления, журнала распорядительных актов. расписку о получении распорядительного акта. Если расположить эти кнопки друг за другом, то такая web-страница будет смотреться перегруженной. Для облегчения восприятия страницы можно разместить только одну кнопку “Печать”, а при нажатии на нее уже будет раскрываться список вариантов (в виде самостоятельных кнопок) тех документов, которые можно распечатать. Подробнее этот пример будет рассмотрен в разделе методических рекомендаций.
Сколько вложенных компонентов Кнопка может быть у компоненты Контейнер кнопок? Теоретически, количество вложенных Кнопок не ограничено и определяется целесообразностью использования в каждом конкретном случае.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнеры.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнеры.html new file mode 100644 index 00000000..27a25287 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Контейнеры.html @@ -0,0 +1,53 @@ + + + + + + + + Web-BPM Docs – Контейнеры + + + + + + + +
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Набор_фильтров.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Набор_фильтров.html new file mode 100644 index 00000000..206ca583 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Набор_фильтров.html @@ -0,0 +1,181 @@ + + + + + + + + Web-BPM Docs – Набор фильтров + + + + + + +
+
+ + + +
+
+

Набор фильтров

+

Назначение

+

Набор фильтров - это невидимая компонента-контейнер, которая позволяет расположить внутри себя поля (Фильтры), с помощью которых будет происходить фильтрация и указать таблицу по которой будет происходить поиск.

+

Компонента Набор фильтров находится в разделе **Компоненты - Контейнеры -Набор фильтров

+

Свойства

+

Компонента имеет набор общих свойств и подгрузка данных по умолчанию. Ниже отображены свойства, специфичные только для данной компоненты.

+

Общие

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Фильтровать сразу позволяет установить условие по которому будет происходить применение фильтрации. Иными словами, можно задать условие по которому применение фильтра будет происходить после нажатия на кнопку фильтрации, либо динамически, после ввода данных в поле фильтрации. +
    +
  • Null - значение не определено
  • +
  • False - фильтр будет срабатывать только после нажатия на Кнопку для фильтрации - значение по умолчанию
  • +
  • True - фильтр будет срабатывать сразу после внесения изменения в поля фильтра.
Запоминать значения фильтра позволяет восстанавливать значения фильтров при возврате на страницу, т.е.запоминать значения фильтров (сохранять в кэше). При этом значение фильтра, заданное пользователем имеет приоритет над значением фильтра по умолчанию +
    +
  • значение не определено - по умолчанию
  • +
  • true - запоминать значения фильтров
  • +
  • false - не запоминать значения фильтров
Пропустить подгрузку данных (Skip initial loading) позволяет исключать подгрузку данных в таблицу без указания значений фильтров (пустыми фильтрами) +
    +
  • значение не определено - по умолчанию
  • +
  • true - исключает возможность подгрузки данных в таблицу без указания значений фильтров, т.е. при пустых значениях фильтров при первоначальном открытии страницы или по кнопке “Найти” запрос в базу данных (по Графу сущностей таблицы) выполняться не будет
  • +
  • false - позволяет подгружать данные в таблицу без указания значений фильтров, т.е. при первоначальном открытии страницы или по кнопке “Найти” будет осуществляться запрос в базу данных по пустым значениям фильтров
Шаблон текста при валидации позволяет задать шаблон вывода сообщения (текст сообщения), отображаемого в окне ошибки при валидации значений фильтров По умолчанию шаблон сообщения выставлен как:“#{label}: #{message}”, где параметры интерпретируются следующим образом: #{label} - наименование компоненты, в которой произошла ошибка #{message} -текст сообщения об ошибке Примеры возможной настройки: При пустом значений в поле* Message Validation Template* текст в окне об ошибке, отображаемом, например, при не заполнении значения в обязательном поле, будет отображаться по шаблону "#{label}: #{message}", где #{label} - наименование компоненты, в которой произошла ошибка (например, поле ФИО) #{message} - текст сообщения об ошибке (значение по умолчанию Поле обязательно).
+

Сохранение и загрузка значений в локальном хранилище

+

Система позволяет с помощью свойства filterValuesSaveStrategy сохранять значения полей фильтрации в локальном хранилище браузера. А с помощью свойства filterValuesLoadStrategy подставлять значения из локального хранилища браузера в поля фильтрации.

+

Время жизни определяется параметром filter_cleanup_interval_hours.

+

Если страница в контексте BPMN процесса, то сохранение/восстановление работает в рамках одного экземпляра процесса.

+

Сценарий 1. Необходимо подставлять предыдущее значение полей фильтрации при возврате на страницу.

+

Вариант решения: на странице в наборе фильтров (FilterGroup) задать filterValuesSaveStrategy = BY_PAGE_OBJECT_ID, filterValuesLoadStrategy = BY_PAGE_OBJECT_ID.

+

Сценарий 2. Необходимо подставить значений полей фильтрации из страницы 1 на страницу 2, при условии, что имена полей фильтрации и имя набора фильтров (FilterGroup) совпадают.

+

Вариант решения:

+
    + +
  1. + +

    На странице 1

    +
  2. +
  3. + +

    Значения полей фильтрации сохраняем в хранилище по имени объекта. Для этого задаём filterValuesSaveStrategy = BY_OBJECT_NAME.

    +
  4. +
  5. + +

    На странице 2

    +
  6. +
  7. + +

    Значения полей фильтрации берём из хранилища по имени объекта. Для этого задаём filterValuesLoadStrategy = BY_OBJECT_NAME.

    +
  8. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
filterValuesLoadStrategy Стратегия загрузки значений вложенных компонент-фильтров - BY_PAGE_OBJECT_ID - Подгрузка значений фильтров по ключу = идентификатор страницы + идентификатор объекта + id процесса если это bpmn процесс
- BY_OBJECT_NAME - Подгрузка значений фильтров по ключу = имя объекта + id процесса если это bpmn процесс
- BY_CUSTOM_NAME - Подгрузка значений фильтров по ключу = ключ указанный в поле filterValuesLoadStorageName + id процесса если это bpmn процесс
filterValuesLoadStorageName ключ по которому необходимо загружать значения фильтров из локального хранилища
filterValuesSaveStrategy Стратегия сохранения значений вложенных компонент-фильтров - BY_PAGE_OBJECT_ID - сохранение значений фильтров по ключу = идентификатор страницы + идентификатор объекта + id процесса если это bpmn процесс
- BY_OBJECT_NAME - сохранение значений фильтров по ключу = имя объекта + id процесса если это bpmn процесс
- BY_CUSTOM_NAME - сохранение значений фильтров по ключу = ключ указанный в поле filterValuesSaveStorageName + id процесса если это bpmn процесс
filterValuesSaveStorageName ключ по которому необходимо сохранять значения фильтров в локальное хранилище
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен**перечень функций, расширяющих её базовую функциональность,**которые можно добавить нажатием кнопки.

+

Вследствие технических особенностей реализации функций (-функции, которые выполняются удаленно на сервере приложений,- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO: описать

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
В чем заключаться главная необходимость использования Набора фильтров? Главная необходимость заключается в задании таблицы к которой будет применяться фильтр. Таким образом мы можем наложить несколько фильтров на необходимую нам таблицу и выводить записи которые ищет пользователь.
Можно ли задавать несколько наборов фильтров на странице? Да, при условии что они будут обращаться к разным таблицам.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Окно.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Окно.html new file mode 100644 index 00000000..0f136089 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Окно.html @@ -0,0 +1,179 @@ + + + + + + + + Web-BPM Docs – Окно + + + + + + +
+
+ + + +
+
+

Окно

+

Назначение

+

Окно - это составная компонента, которая используется для вывода на экран сообщений (уведомлений, предупреждений, дополнительной информации) Системы, стилизованных под окно системных сообщений операционной системы Windows, в ответ на какую-то активность пользователя, с опциональным выбором одного из возможных последующих действий. Представляет из себя родительский Вертикальный контейнер с вложенными в него дочерними визуальными компонентами, заранее взаимо-увязанными и назначенными стилями.

+

Несмотря на то, что основным предназначением является вывод статической информации для пользователя, компонента может быть модифицирована добавлением источника данных Форма и, вследствие этого, отображать уже динамически получаемую запросом к базе данных информацию, либо сохранять информацию в базу данных при выборе пользователем того или иного варианта действий из заложенных аналитиком при настройке компоненты.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет указать текст заголовка для контейнера Окно пример возможного значения: Общие сведения
Тело сообщения позволяет указать текст сообщения в теле контейнера Окно пример возможного значения: Общие данные
Кнопки позволяет указать Кнопки навигации
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки .

+

Вследствие технических особенностей реализации функций (

+

- функции, которые выполняются удаленно на сервере приложений,

+

- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO - описать возможности

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
В каких случаях чаще всего используется элемент Окно Для информирования пользователя о последствиях его возможных действий или событиях, происходящих в Системе (вывод уведомлений, предупреждений и дополнительной информации). С точки зрения реализации бизнес-процесса, для использования компоненты Окно необходимо выделение отдельной Пользовательской задачи (UserTask), эту компоненту нецелесообразно интегрировать в обычную страницу (для такой взаимной интеграции служит компонента Диалог), компоненту Окно целесообразнее использовать когда нужно уведомить пользователя о событиях или вариантах действий в ходе исполнения бизнес - процесса.
Можно ли как-то дополнительно модифицировать компоненту Окно для расширения функциональности? Да Поскольку компонента Окно является составной компонентой, родительской компонентой которой является Вертикальный контейнер, то допустимы совмещение любых известных аналитику приемов и компонент, используемых при проектировании обычной страницы. При большом объеме внесенных модификаций, оригинальными от компоненты останутся только предустановленные стилистические настройки.
Чем отличается функциональностьнабора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты? Функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнер аотличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнерана все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значениесоответствующего свойства у вложенной компоненты Ложь, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+

Правила наследования значений свойств Подлежит сохранению, Обязательность дочерними компонентами, входящими в состав родительской компоненты контейнера

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
значение свойства у компоненты-контейнера значение свойства дочерней компоненты итоговое значение свойства
True True True
True False False
False True False
False False False
Undefined True True
Undefined False False
+

Правила наследования значений свойства Видимость дочерними компонентами, входящими в состав родительской компоненты контейнера

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
значение свойства у компоненты-контейнера значение свойства дочерней компоненты итоговое значение свойства
True True True
True False False
False True False
False False False
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Сворачиваемая_панель.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Сворачиваемая_панель.html new file mode 100644 index 00000000..ab3ec68d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Сворачиваемая_панель.html @@ -0,0 +1,107 @@ + + + + + + + + Web-BPM Docs – Сворачиваемая панель + + + + + + +
+
+ + + +
+
+

Сворачиваемая панель

+

Назначение

+

Сворачиваемая панель - это видимая компонента, которая используется для хранения содержимого в небольшом пространстве. Пользователь скрывает или открывает содержимое в сворачиваемой панели, щелкая вкладку графического элемента.

+

Как правило используется для группировки полей объеденных единым смыслом (например, относящихся к организации, либо разделу сотрудников).

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет задать заголовок сворачиваемой панели на странице пример возможного значения: Выбор
Открывать развернутым Задает условие по которому “Сворачиваемая панель” может быть по умолчанию развернута, либо свернута. +
    +
  • свернута- значение по умолчанию
  • +
  • развернута
+

Функции

+

Подгрузка данных по умолчанию

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO - описать возможности

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
В чем заключаться главная полезность использования Сворачиваемой панели? Главная полезность заключается в возможности пользователю самому определять, хочет ли он чтобы данные внутри сворачиваемой панели отображались на странице или нет.
Какое отображение принимает Сворачиваемая панель на странице пользователя? Настроить отображение по умолчанию можно с помощью свойства компоненты. Таким образом,при переходе на страницу,существует выбор отображать свернутую или раскрытую панель.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Стили-контейнеров.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Стили-контейнеров.html new file mode 100644 index 00000000..1672e3cc --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Стили-контейнеров.html @@ -0,0 +1,129 @@ + + + + + + + + Web-BPM Docs – Блок с фиксированными кнопками + + + + + + +
+
+ + + +
+
+

Блок с фиксированными кнопками

+ + + + + + + + + + + + + + + + + + +
Название класса css Описание
block-fixed класс для контейнера - оболочки
block-fixed-content класс для контейнера с содержимым
block-fixed-buttons класс для контейнера с прижатыми к низу кнопками
+

Если вам необходимо отобразить фиксированную (не перекрывается другими и не может быть скролом смещена со своей позиции) область с кнопками внизу страницы, то необходимо сделать:

+
    + +
  1. Добавить block-fixed на корневой контейнер (VBox) страницы. В него добавить два других контейнера: +
      + +
    1. для отображения основной области страницы (VBox). На него необходимо добавить класс block-fixed-content
    2. +
    3. для отображения кнопок (VBox). На него необходимо добавить класс block-fixed-buttons
    4. +
    +
  2. +
+

Внимание! Для корректной работы скрипта, объектов с классом «block-content» или «block-menu» должно быть не более одного.

+

Блок для работы со многими столбцами

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Название класса css Описание
block-border рамка для контейнера
block-border-top-line отчертить контейнер линией сверху
block-space-empty класс убирает внутренние отступы до вложенных элементов для контейнеров типа tab или block-content
block-horiz-cols класс выстраивает внутренние контейнеры в виде равновысотных столбцов
block-independent класс для создания автономного скроллируемого блока.
block-top класс для шапки. Цветовой блок, чаще всего используемый для размещения нередактируемых базовых элементов. Все поля формы внутри блока отображаются как подчеркнутый текст
+

При этом, если контейнеры не растянуты по высоте экрана, то автономный блок примет высоту, равною большему из имеющихся блоков.
+Либо будет равен высоте, заданной вручную через соответствующий параметр в студии.

+
    + +
  • HBox - block-horiz-cols +
      + +
    • VBox +
        + +
      • block-independent (Внутри VBox!)
      • +
      • +
      +
    • +
    • VBox
    • +
    +
  • +
+

Внимание! Для корректной работы скрипта, объектов с классом «block-horiz-col» должно быть не более одного.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма.html new file mode 100644 index 00000000..7d7d5910 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма.html @@ -0,0 +1,162 @@ + + + + + + + + Web-BPM Docs – Форма + + + + + + +
+
+ + + +
+
+

Форма

+

Назначение

+

Форма - это невидимая компонента-контейнер, которая является источником подгрузки данных на странице пользовательского интерфейса. С помощью элемента Форма осуществляется запрос информации из базы данных во вложенные в Форму дочерние компоненты и сохранение введенной пользователем информации из дочерних компонент в базу данных по единственному идентификатору основной единицы создаваемого интерфейса (например, одной задаче в проекте, одному артикулу товара, одному сотруднику в коллективе и прочее).

+

Все другие визуальные компоненты, которые будут отображать или сохранять информацию в/из базы данных на странице приложения, должны обязательно находится внутри компоненты-контейнераФорма, поскольку именно из неё, как из источника данных, они берут ссылки на таблицы и колонки базы данных, с которыми будут оперировать.

+

Форма может работать в двух режимах:

+
    + +
  • После события сохранения (обновления) данных в визуальных компонентах, входящих в компоненту Форма, веб-страница запущенного приложения завершает текущую задачу (BPMNUSER TASK) и переходит к следующей задаче по бизнес-процессу;
  • +
  • После события сохранения (обновления) данных в визуальных компонентах, входящих в компоненту Форма, веб-страница запущенного приложения не завершает текущую задачу (BPMNUSER TASK), не переходит к следующей задаче по бизнес-процессу, а остается в том же экранном интерфейсе. Для принудительного завершения текущей задачи (BPMNUSER TASK) и перехода к следующей задаче по бизнес-процессу, необходимо воспользоваться компонентой Кнопка навигации.
  • +
+

Компонента Форма находится в разделе Компоненты - Контейнеры - Форма

+

Свойства

+

Компонента имеет набор общих свойств, подгрузка данных, подгрузка данных по умолчанию.

+

Подгрузка данных основная

+

+

описывает запрос к базе данных, результаты которого позволяют наполнить вложенные видимые компоненты значениями из базы данных при открытии веб-страницы приложения. Является обязательным к заполнению и настройке.

+
    + +
  • с помощью визуального конструктора запросов позволяет задать Граф сущностей, т.е. указать объекты базы данных, условия и взаимосвязи между ними для получения и отображения информации на веб-странице и/или ее сохранения.
  • +
  • с помощью параметра Переменная процесса с идентификатором позволяет ограничить результаты полученного запроса единственным идентификатором смысловой единицы создаваемого интерфейса. - Datasource Jndi Name - позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.
  • +
+

Значение данного свойства может быть задано следующим образом: java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файле standalone.xml (аналогично тому, как указывается, например, подключение к базе данных безопасности) (рис.1)

+

+

рис.1 Настройка файла standalone.xml

+

В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).

+

Подгрузка данных по умолчанию

+

+

описывает запрос к базе данных, результаты которого позволяют наполнить вложенные видимые компоненты значениями по умолчанию из базы данных при открытии веб-страницы приложения, для тех случаев, когда результат запроса из основной подгрузки данных пуст. Не является обязательным к заполнению и настройке.

+
    + +
  • с помощью визуального конструктора запросов позволяет задать Граф сущностей, т.е. указать объекты базы данных и взаимосвязи между ними для получения и отображения на веб-странице информации по умолчанию, но не ее сохранения
  • +
  • с помощью параметра Переменная процесса с идентификатором позволяет ограничить результаты полученного запроса единственным идентификатором смысловой единицы создаваемого интерфейса.
  • +
+

Datasource Jndi Name - позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.

+

Значение данного свойства может быть задано следующим образом:java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файлеstandalone.xml(аналогично тому, как указывается, например, подключение к базе данных безопасности) (рис.1)

+

+

рис.1 Настройка файла standalone.xml

+

В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Шаблон сообщения валидации (Message validation template) позволяет задать шаблон вывода сообщения (текст сообщения), отображаемого в окне ошибки при валидации значений фильтров. По умолчанию шаблон сообщения выставлен как: "\#{label}: \#{message}", где параметры интерпретируются следующим образом: \#{label} - наименование компоненты, в которой произошла ошибка \#{message} - текст сообщения об ошибке Примеры возможной настройки: При пустом значений в поле* Message Validation Template* текст в окне об ошибке, отображаемом, например, при не заполнении значения в обязательном поле, будет отображаться по шаблону "\#{label}: \#{message}", где \#{label} - наименование компоненты, в которой произошла ошибка (например, поле ФИО) \#{message} - текст сообщения об ошибке (значение по умолчанию Поле обязательно).
+

Базовые функции

+

Функция основных свойств компоненты “Форма в режиме перехода”

+

По умолчанию компонента Форма работает в режиме перехода к следующей задаче послесохранения (обновления) данных.

+

Указанную функциональность обеспечивает функция “Форма с переходом.Основные параметры”, и она автоматически назначается на компоненту Форма при переносе ее из библиотеки компонентов в структуру страницы в конструкторе экранного интерфейса.

+

Является альтернативой функции Форма_без_перехода_Основные_параметры. Для компоненты “Форма” может быть назначена только одна из этих функций, иначе система будет генерировать ошибку при сборке приложения.

+

Описание параметров функции находится в таблице Свойства → Основные параметры.

+

+

+

Дополнительные функции

+

После настройки базовых свойств и функций компоненты может возникнуть необходимость в расширении базовой функциональности компоненты для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Для удаления из компоненты ошибочно добавленной функции или функции в которой нет необходимости используется элемент Ключ с шестеренкой, расположенный справа от наименования функции. По нажатию на элемент есть возможность Удалить функцию.

+

Вследствие технических особенностей реализации функций (

+

- функции, которые выполняются удаленно на сервере приложений,

+

- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Функция основных свойств компоненты “Форма без перехода”

+

По умолчанию компонента Форма работает в режиме перехода к следующей задаче послесохранения (обновления) данных.

+

Для перевода компоненты Форма в режим “без перехода” следует удалить скрипт Форма с переходом. Основные параметрыиз компоненты (рис.1) и назначить функцию Форма без перехода. Основные параметры (рис. 2).

+

Является альтернативой функции Форма с переходом. Основные параметры. Для компоненты “Форма” может быть назначена только одна из этих функций, иначе система будет генерировать ошибку при сборке приложения.

+

Описание параметров функции находится в таблице Свойства → Основные параметры.

+

+

Рис.1

+

+

Рис.2

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Если компонента Форма является источником данных для входящих в нее элементов, обязательно ли ее присутствие на любой создаваемой странице ? Нет, не обязательно.Использование компоненты Форма чаще всего обуславливается необходимостью отображения так называемой “карточки сущности”, когда на одной странице нужно вывести в отдельных полях разных типов несколько характеристик одной единицы учета. Но для страниц, содержащих, например, табличное представление данных, так называемый “реестр единиц учета”, компонента Форма не нужна (поскольку компонент Таблица имеет собственный настраиваемый источник данных).
Что такое имплементация и функций и для чего они нужны? Имплементация - это один из вариантов реализации. Функция выполняет некоторое полезное с точки зрения аналитика действие, задуманное им для реализации поставленной задачи. Но внутри функции это полезное действие может быть исполнено разными способами, предложенными разработчиками платформы. Ярким примером служит функция подгрузки данных. Она выполняет полезное действие - подгружает данные, но может подгружать их способом формирования и исполнения SQL запроса, а может подгружать способом считывания из переменной. В данном случае функция одна, а вариантов реализации полезного действия - два. Значит, существует две имплементации одной функции.
Можно ли сохранить/подгрузить данные в визуальные компоненты не только в/из базы данных, но и в/из переменной процесса? Да, можно. Для подгрузки значения в визуальную компоненту из переменной процесса следует воспользоваться функцией Заполнить значением из переменной процесса, а для сохранения значения из визуального компонента в переменную процесса - функцией Сохранить значение в переменную процесса.
Можно ли заполнить визуальный компонент внутри компоненты Форма значением по умолчанию, когда страница с “карточкой сущности” открывается пустой для создания новой записи? Да, можно. Поскольку источником данных для визуального компонента является компонента Форма, то следует воспользоваться функцией Подгрузка данных по умолчанию и настроить подгрузку данных по умолчанию. В самой визуальной компоненте указать таблицу и колонку из ‘графа сущностей для получения значений по умолчанию’. Тогда при открытии веб-страницы приложения компонент Форма сформирует 2 запроса - по основному графу сущности данных не будет (поскольку это веб-страница создания карточки), а по ‘графу сущностей данных по умолчанию’ (с иной логикой формирования запроса, чем в основной ) будут выбраны и смогут быть предустановлены в визуальные компоненты в качестве предлагаемых по умолчанию
Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты? Функциональность набора свойств (Подлежит сохранению,Обязательность, Видимость,Недоступно для управления) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнера на все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты отличается от значения Истина, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма_без_перехода_Основные_параметры.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма_без_перехода_Основные_параметры.html new file mode 100644 index 00000000..2e8d513e --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма_без_перехода_Основные_параметры.html @@ -0,0 +1,56 @@ + + + + + + + + Web-BPM Docs – Форма без перехода. Основные параметры + + + + + + +
+
+ + + +
+
+

Форма без перехода. Основные параметры

+

По умолчанию компонента Форма работает в режиме перехода к следующей задаче после сохранения (обновления) данных.

+

Для перевода компоненты Форма в режим “без перехода” следует удалить () скрипт Форма с переходом. Основные параметры из компоненты (рис.1) и назначить функцию Форма без перехода. Основные параметры (рис. 2).

+

Является альтернативой функции Форма с переходом. Основные параметры. Для компоненты “Форма” может быть назначена только одна из этих функций, иначе система будет генерировать ошибку при сборке приложения.

+

Описание параметров функции находится в таблице Свойства → Основные параметры.

+

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма_с_переходом_Основные_параметры.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма_с_переходом_Основные_параметры.html new file mode 100644 index 00000000..7df4cad3 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/containers/Форма_с_переходом_Основные_параметры.html @@ -0,0 +1,56 @@ + + + + + + + + Web-BPM Docs – Форма с переходом. Основные параметры + + + + + + +
+
+ + + +
+
+

Форма с переходом. Основные параметры

+

По умолчанию компонента Форма работает в режиме перехода к следующей задаче послесохранения (обновления) данных.

+

Указанную функциональность обеспечивает функция “Форма с переходом.Основные параметры”, и она автоматически назначается на компоненту Форма при переносе ее из библиотеки компонентов в структуру страницы в конструкторе экранного интерфейса.

+

Является альтернативой функции Форма_без_перехода_Основные_параметры. Для компоненты Форма может быть назначена только одна из этих функций, иначе система будет генерировать ошибку при сборке приложения.

+

Описание параметров функции находится в таблице Свойства → Основные параметры.

+

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/control-properties.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/control-properties.html new file mode 100644 index 00000000..f1898a98 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/control-properties.html @@ -0,0 +1,140 @@ + + + + + + + + Web-BPM Docs – Основные свойств компонент + + + + + + +
+
+ + + +
+
+

Основные свойств компонент

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Всплывающая подсказка позволяет указать текст всплывающей подсказки, которая появляется при наведении курсора на элемент пример возможного значения: Здесь отображается информация о сотрудниках
Видимость позволяет регулировать видимость элемента на странице - видимый. Значение по умолчанию
- невидимый
Недоступно для управления позволяет регулировать возможность редактирования (управления) элементом на странице - невозможно регулировать
- возможно регулировать. Значение по умолчанию
Подлежит сохранению позволяет указать будет ли значение компоненты передаваться на сервер; если значение установлено в , то
- при сохранении, значение данного поля не будет сохранено
- при использовании в фильтре, значение данного поля не будет участвовать в фильтрации
- значение не определено. Значение по умолчанию
- подлежит сохранению
- не подлежит сохранению
Обязательность позволяет задать обязательность заполнения поля на странице; обязательные поля проверяются на заполненность перед сохранением - значение не определено - значение по умолчанию
- обязательно для заполнения
- необязательно для заполнения
+

Расширенные настройки

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Inherit Parent
Стили +
    +
  • внутренний отступ - (необходимо указывать единицы измерения)
  • +
  • внешний отступ - (необходимо указывать единицы измерения)
  • +
  • граница - (необходимо указывать единицы измерения)
  • +
  • высота - позволяет указать высоту элемента (необходимо указывать единицы измерения, например, 20px)
  • +
  • ширина - позволяет указать ширину элемента(необходимо указывать единицы измерения, например, 40px)
  • +
  • минимальная высота - позволяет указать минимальную высоту
  • +
  • элемента (необходимо указывать единицы измерения, например, 20px)
  • +
  • минимальная ширина - позволяет указать минимальную ширину
  • +
  • элемента (необходимо указывать единицы измерения,
  • +
  • например, 40px)
  • +
  • максимальная высота - позволяет указать максимальную высоту
  • +
  • элемента (необходимо указывать единицы измерения,
  • +
  • например, 20px)
  • +
  • максимальная ширина - позволяет указать максимальную ширину
  • +
  • элемента (необходимо указывать единицы измерения,
  • +
  • например, 40px)
CSS классы позволяет указать список CSS-классов, которые необходимо применить к элементу
+

Свойства полей для ввода

+ + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
requiredErrorMsg позволяет задать пользовательское сообщение об ошибке обязательности поля текст
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/editable-grids/EditableGrid.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/editable-grids/EditableGrid.html new file mode 100644 index 00000000..ff429061 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/editable-grids/EditableGrid.html @@ -0,0 +1,244 @@ + + + + + + + + Web-BPM Docs – EditableGrid + + + + + + +
+
+ + + +
+
+

EditableGrid

+

Назначение компонента

+

Редактируемая таблица - это компонента, которая используется для отображения информации из базы данных в табличном виде с возможностью изменения значений.

+

Свойства

+

Компонента имеет набор общих свойств.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов +
  • Не активно - не отображать колонку флагов
Ref To Main Table PK указывает колонку, в которой записан Main Table PK Column
Main Table PK Column указывает id строки на основе, которой будет производиться выборка в таблицу
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Row edition type позволяет указать тип открытия редакторов ячеек +
    +
  • DOUBLE_CLICK–дефолтное поведение для открытия редакторов ячеек. При двойном клике открывается редактор ячейки.
  • +
  • SINGLE_CLICK– при одинарном клике открывается редактор ячейки. Эта настройка позволяет редактировать значения в ячейках по аналогии с Excel-ем.
  • +
  • NO_CLICK– ни одинарный, ни двойной клик не открывает редактор ячейки. Эта настройка полезна, если вы хотите редактировать значения в ячейках по другому, например при нажатии на кнопку в ячейке.
Row Height позволяет задать высоту строки в таблице в пикселях (px) пример возможного значения: 20
Auto Stretch Columns позволяет задать возможность автоматического выравнивания ширины столбцов по ширине +
    +
  • выравнивать ширину столбцов- значение по умолчанию
  • +
  • не выравнивать ширину столбцов
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
+

Для добавления колонки в таблицу необходимо добавить один из компонент:

+
    + +
  • AutoCompleteGridColumn
  • +
  • CheckBoxGridColumn
  • +
  • ComboboxGridColumn
  • +
  • DateTimePickerGridColumn
  • +
  • NumberFieldGridColumn
  • +
  • OneToManyGridColumn
  • +
  • TextAreaGridColumn
  • +
  • TextFieldGridColumn
  • +
  • TimePickerGridColumn
  • +
+

Настройка колонок компоненты

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение
Pinned Указывает с какой стороны закрепить колонку
Hidden Указывает видимость колонки
Editable Задает возможность изменять значения в колонке
Header Type Задает тип заголовка колонки(статичный или из переменной процесса)
Sortable Задает возможно сортировать таблицу по значениям колонки
Id Column Задает колонку из базы, откуда будут заполнятся значения в таблице
+

Скрипты

+
    + +
  • MaxAggregationRowValidator -
  • +
  • MinAggregationRowValidator -
  • +
  • RequiredAggregationRowValidator -
  • +
  • EditableGridColumnAggregator - скрипт для подсчёта данных с помощью математических функций или функций агрегации +
      + +
    • aggregationType - тип функции +
        + +
      • BY_COLUMNS - функция агрегации
      • +
      • MATH_EXPRESSION - математическое выражение
      • +
      +
    • +
    • aggregationFunction - Задает дополнительную ячейку со значением, полученным в результате выполнения выбранной функции агрегации. Одно из списка: MAX, MIN, AVG, COUNT, SUM, MULTIPLY. Если задан aggregationType==BY_COLUMNS
    • +
    • columns - колонки для агрегации. Если задан aggregationType==BY_COLUMNS
    • +
    • mathExpression - Математическое выражение. Например ${a_column_id}*${b_column_id}. Можно задать если MATH_EXPRESSION=MATH_EXPRESSION. Допустимые операции: сложение +, вычитание -, умножение *, деление /, остаток от деления %, возведение в степень **. См. https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Math#arithmetic_operators. Если задан aggregationType==MATH_EXPRESSION
    • +
    +
  • +
+

Форматеры

+ + + + + + + + + + + + + + + + + + +
Наименование форматера Назначение форматера Настраиваемые значения
NumberAggregationFormatter Форматирует агрегированное значение в ‘итого’. Script, Decimal Delimiter, Decimal Length, Sections Delimiter, Sections Length.
RoundingAggregationFormatter Округляет агрегированное числовое значение в ‘итого’. Decimals.
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Какие таблицы БД необходимо включать в Граф сущностей редактируемого грида? Только те, в которые необходимо сохранять данные при сохранении или включать и те таблицы, которые используются и для отображения данных в элементах, входящих в таблицу (комбобокс например)? Включать необходимо все таблицы отображаемые в гриде.
При редактировании записей и последующем сохранении в БД производился INSERT новой записи, а не UPDATE уже существующей.? Неправильная настройка компоненты.
Каким образом настраивать свойство “Подлежит сохранению” у самого грида и элементов внутри него? В той ячейке, где мне не нужно сохранять данные в БД ставит значение FALSE ? Свойство"Подлежит сохранению"необходимо указывать только у EditableGrid.
Как будет работать компонента ОТМ внутри грида. При быстром просмотре и добавлении увидели, что нет возможности вызвать диалоговое окно для выбора записи Будет исправлено в последующих версиях
При использовании комбинации ctrl A, ctrl C и ctrl V в строке данные вставляются, но при переключении на другую строку сбрасываются. При копировании значения из одного эдитора в другой, значение вставляется, в случае вставки значения в Combobox необходимо дополнительно выбрать значение из списка.
Каким образом будет настроено удаление записи в гриде? Выделение строк и нажатие кнопки удаления.
Как подвести итоги по колонке, а не по строчке Чтобы подвести итог по колонке, необходимо в нужной колонке указать свойства Aggregation Function
Как обратиться к ячейке, чтобы задать значение с помощью ActionController, например, при нажатии на кнопку на форме Если нажата кнопка “Отклонить” на форме, то для всех ранее отмеченных строк (с помощью флага) в EG выставить значение ячеек статус (ComboBox) в этих строках в значение “Отклонить”. С помощью ActionController нельзя обратиться к ячейке.
Как реализовать проверку заполненности ячейки EG в зависимости от значения другой ячейки с выдачей диалога и последующим возвращением фокуса в ячейку, которая не должна остаться пустой. Как это сделать в рамках одной строчки, а также в рамках разных строчек, а также всего EG (например, в зависимости от каких то агрегатов - итогов по строчкам или колонкам). Если пользователь выбирает в ячейке EG статус “Отклонено” (ComboBox) , то соседняя ячейка в строке “Причина отклонения” не должна остаться пустой - выдать диалог и вернуться в пустую ячейку, не давая из нее выйти без заполнения .• Если за день списано больше 24 часов - то вызвать диалог “Много работаете”• Если в понедельник по первой задаче списано 8 часов, то в среду по связанной задаче не может быть меньше 4 часов.• Перед самым моментом сохранения формы, проверить ВСЕ ячейки EG в колонке “комментарий пользователя” на их заполненность , если в соседних ячейках “Статус” найдены значения “Отклонить”. С помощью ActionController нельзя обратиться к ячейке.
Как задать фиксированную ширину колонки EG в пикселях? Можно задать Width в ячейке. Чтобы зафиксировать ширину нужно задать Width Fixed, временно эта функция не работает, исправляем.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/EditableOneToMany.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/EditableOneToMany.html new file mode 100644 index 00000000..d5af35b0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/EditableOneToMany.html @@ -0,0 +1,118 @@ + + + + + + + + Web-BPM Docs – EditableOneToMany + + + + + + +
+
+ + + +
+
+

EditableOneToMany

+

Назначение компонента

+

Составной компонент EditableOneToMany служит для создания и редактирование записей. Работает по аналогии с EditableGrid, но работа происходит в отдельном окне.

+

+

При нажатии на кнопку “Создать”:

+

+

Настройка компонента

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+
    + +
  1. + +

    Настройка кнопок
    +Buttons содержит в себе кнопки: создать, редактировать, удалить. Описание настройки кнопок можно посмотреть в разделе Компоненты > Кнопки.

    +
  2. +
  3. + +

    Настройка EditableGrid
    +Настроить EditableGrid

    +
  4. +
  5. Настройка диалогового окна: +
      + +
    1. Настроить Form
    2. +
    3. Настроить Buttons
      +Buttons содержит в себе кнопки диалогового окна. Описание настройки кнопок можно посмотреть в разделе Компоненты > Кнопки.
    4. +
    +
  6. +
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToMany.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToMany.html new file mode 100644 index 00000000..8d015dc8 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToMany.html @@ -0,0 +1,464 @@ + + + + + + + + Web-BPM Docs – ManyToMany + + + + + + +
+
+ + + +
+
+

ManyToMany

+

Назначение компонента

+

Компонент ManyToMany предназначен для выбора одного или нескольких значений. Выбранные значения будут отображены в поле таблицы.

+

Общий вид типового справочника для множественного выбора представлен на рисунке:

+

+

Логика работы

+

Для осуществления выбора требуемых значений из справочника нужно последовательно выполнить следующие операции:

+

+

Пошаговая работа пользователя с ManyToMany …

+

Поиск значений

+

Пустой добавленный компонент ManyToMany выглядит следующим образом:

+

рис. 1

+

По кнопке «Изменить» (текст кнопки может быть изменен), открывается диалоговое окно заполнения компонента:

+

+

Поиск требуемых значений в справочнике может осуществляться вручную (визуально).

+

Указание требуемых значений

+

После нахождения требуемого значения в справочнике нужно указать на него при помощи мыши. Поле указанного значения окрасится в серый цвет. Общий вид указанного требуемого значения приведен на рисунке:

+

Выбираем значения из справочника

+

Формирование списка требуемых значений

+

После указания требуемого значения в справочнике нужно переместить их в область выбранных значений в правой части диалогового окна при помощи кнопок:

+

Кнопки выбора

+

Добавим значения в список требуемых значений:

+

Добавляем значения, тем самым формируя список значений

+

Сохранение требуемых значений

+

После формирования списка требуемые значения нужно сохранить. Для этого нужно нажать на кнопку «Ок». После выполнения указанного действия диалоговое окно будет закрыто, а выбранное значение отобразится в поле формы, из которой было вызвано диалоговое окно.

+

Компонент заполнен выбранными значениями

+

Настройка компонента

+
    + +
  1. Необходимо добавить компонент ManyToMany на страницу. +

    Для того чтобы данные, отобранные с помощью этого компонента, сохранялись в базу данных, его необходимо вложить в компонент Form.

  2. +
+

+

ManyToMany – это составной компонент, состоящий из след. элементов:

+

+

Здесь:

+

+

Настроим каждый элемент отдельно.

+

шаг 0. Продумать состав данных…

+

Для этого определимся какие таблицы будем использовать:

+

+
    + +
  • Таблица А — таблица, к которой привязывается справочник (таблица B)
  • +
  • Таблица А_В — линковая (Link) таблица, она будет заполняться из А и В
  • +
  • Таблица В — таблица-справочник, из которой будут браться значения
  • +
+

шаг 1. Настройка Form…

+

Если компонент ManyToMany вложен в компонент Form, то предварительно необходимо настроить компонент Form.

+

Для этого в структуру сущностей Form добавьте таблицу А (см. шаг 0).

+

шаг 2. Настройка основной области — LinkField

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
rowsAddedEvent событие, которое триггерится при добавлении строк
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
LinkFieldRpcService → LinkFieldService linkFieldDao graph Выбор графа сущностей для подгрузки и сохранения данных. Главной сущностью должна быть таблица – справочник (таблица B), который линкуется (refToSecondTablePK)
LinkFieldRpcService LinkFieldService linkFieldDao distinct Исключить дублирующиеся записи
GridColumns Добавление колонок. С помощью кнопки « + » добавляем элементы. Каждый элемент является колонкой(столбцом). Имеет следующие свойства: +
    +
  • field – задает пару таблица:колонка в БД
  • +
  • displayName – отображаемое наименование колонки
  • +
  • sortOrder (ASC | DESC) – указывает порядок сортировки значений в указанном столбце — по возрастанию или по убыванию
  • +
  • width – задает ширину
  • +
  • formatter – задает скрипт для манипуляции с отображением данных при загрузке
LinkFieldSelectionScript multiselectable – возможность выбирать сразу несколько элементов
LinkFieldCustomSaveLoadScript Задание связи между таблицами: +
    +
  • refToSecondTablePKFromLinkTable – ссылка на справочник (таблица В) из линковой таблицы А_В
  • +
  • refToMainTablePKFromLinkTable – ссылка на таблицу А из линковой таблицы А_В
  • +
  • mainTablePKColumn – первичный ключ таблицы-сущности из структуры сущ. Form к которой привязывается справочник (не обязательно главная!)
+

шаг 3. Настройка ChangeButton…

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
caption наименование кнопки, видимое пользователю Изменить
confirmation text если задать здесь текст, то пользователю будет отображёно диалоговое окно с этим текстом и кнопками Да/Нет. Используется для подтверждения действия
+

шаг 4. Настройка диалогового окна выбора значений SelectDialog…

+

Диалог выбора (SelectDialog) состоит из двух частей:

+

+
    + +
  • GridsPanel который включается в себя:
    +
  • +
  • ButtonsContainer который содержит в себе кнопки диалогового окна
  • +
+

Настроим каждый блок по отдельности:

+

Настройка GridsPanel


+
    + +
  1. +

    Настройка таблицы списка значений AvailableRecordsGrid

  2. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
GridRpcService → gridService → LoadDao → graph Выбор графа сущностей для подгрузки и сохранения данных. Главной сущностью должна быть та же таблица, что и в графе LinkField. Этот граф может быть чуть более расширенный – например для сортировки.
GridColumns Добавление колонок. С помощью кнопки « + » добавляем элементы. Каждый элемент является колонкой(столбцом). Имеет следующие свойства: +
    +
  • field – задает пару таблица:колонка в БД
  • +
  • displayName – отображаемое наименование колонки
  • +
  • sortOrder (ASC | DESC) – указывает порядок сортировки значений в указанном столбце — по возрастанию или по убыванию
  • +
  • width – задает ширину
  • +
  • formatter – задает скрипт для манипуляции с отображением данных при загрузке
+

2. Настройка кнопок действий Buttons

+

В этом контейнере находятся кнопки управления перемещением в/из таблицы списка значений. Они настраиваются аналогично любым другим кнопкам.

+

3. Настройка таблицы выбранных значений LinkFieldDialog

+

Настраивать необязательно. Настраивается для более детального вывода.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
GridColumns Добавление колонок. С помощью кнопки « + » добавляем элементы. Каждый элемент является колонкой(столбцом). Имеет следующие свойства: +
    +
  • field – задает пару таблица:колонка в БД
  • +
  • displayName – отображаемое наименование колонки
  • +
  • sortOrder (ASC | DESC) – указывает порядок сортировки значений в указанном столбце — по возрастанию или по убыванию
  • +
  • width – задает ширину
  • +
  • formatter – задает скрипт для манипуляции с отображением данных при загрузке
LinkFieldSelectionScript multiselectable – возможность выбирать сразу несколько элементов
+

Настройка ButtonsContainer

+

В этом контейнере находятся кнопки управления перемещением в/из таблицы списка значений. Они настраиваются аналогично любым другим кнопкам.

+

Пример минимальной настройки компонента ManyToMany…

+

Задача: Необходимо организовать заполнение поля таблицы «Тема услуги, предоставленной гражданину» (Таблица А_В) путем выбора из справочника «Услуги» (Таблица В).

+

+

Дано:

+
    + +
  • Таблица А - таблица «Тема услуги, предоставленной гражданину»
  • +
  • Таблица А_В - линковая (Link) таблица
  • +
  • Таблица В - таблица-справочник «Услуги»
  • +
+
    + +
  1. В структуру сущностей Form добавляем таблицу А.
  2. +
  3. В Form добавляем компонент ManyToMany.
  4. +
  5. Настраиваем основную область LinkField в ManyToMany: +
      + +
    1. LinkFieldRpcService → LinkFieldService linkFieldDao__→ graph:
      +Главной сущностью является справочник (Таблица В). Добавьте линковую таблицу А_В и установите связь с главной сущностью (стрелка от справочника к линковой таблице).
      +Добавьте все остальные таблицы и связи, если хотите отобразить дополнительную информацию в основной области LinkField и настройте в GridColumns.
    2. +
    3. Зададим связи между таблицами в LinkFieldCustomSaveLoadScript:
    4. +
    +
      + +
    • refToSecondTablePKFromLinkTable – ссылка на справочник (Таблица В) из линковой таблицы А_В.
    • +
    • refToMainTablePKFromLinkTable – ссылка на таблицу А из линковой таблицы А_В.
    • +
    • mainTablePKColumn – выбираем первичный ключ таблицы, добавленной в структуру сущностей Form в п. 1.
    • +
    +
  6. +
  7. Настройка таблицы списка значений AvailableRecordsGrid в SelectDialog: +

    GridRpcService → gridService → LoadDao → graph:

    +

    Главной сущностью является та же таблица, что и в графе LinkField (см. п. 3а). Добавьте все остальные таблицы и связи, если хотите отобразить дополнительную информацию в таблице списка значений и настройте в GridColumns.

    +

    Не добавляйте линковую таблицу в структуру сущностей AvailableRecordsGrid! Это замножит записи.

  8. +
+

Формирование склейки на основе колонки из LinkField

+

SpliceColumnValues - скрипт для формирования склейки на основе колонки из LinkField

+ + + + + + + + + + + + + + + + + + + + + + + + +
Параметр Назначение
prefix префиксный символ склейки
glue разделитель элементов склейки
postfix постфиксный символ склейки
lineBreak флаг для использования переноса строк (если true, то используется перенос строк)
columnOrderNum номер колонки, по которому формируется склейка
+

Пример:

+

При параметрах prefix = ‘[’, glue = ’; ’, postfix = ’]’ и элементах el1, el2, el3, склейка будет выглядеть так: [el1; el2; el3]

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToManyField.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToManyField.html new file mode 100644 index 00000000..c3753879 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/ManyToManyField.html @@ -0,0 +1,115 @@ + + + + + + + + Web-BPM Docs – ManyToManyField + + + + + + +
+
+ + + +
+
+

ManyToManyField

+

Назначение компонента

+

Поле, для выбора нескольких значений из справочника.

+

Заполняется по аналогии с ManyToMany. Вместо LinkField заполняется MultiValueField.

+

Настройка компонента

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+

MultiValueField:

+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
graph Граф, по которому будет загружено отображаемое значение. Нет. Обязательно для заполнения.
displayColumn Колонка для отображения. Нет. Обязательно для заполнения.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/OneToMany.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/OneToMany.html new file mode 100644 index 00000000..d126653a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/OneToMany.html @@ -0,0 +1,170 @@ + + + + + + + + Web-BPM Docs – OneToMany + + + + + + +
+
+ + + +
+
+

OneToMany

+

Назначение

+

Компонент OneToMany предназначен для выбора значений из справочника.

+

Незаполненный компонент выглядит следующим образом:

+

+

При нажатии на кнопку “…” открывается диалоговое окно:

+

+

Пример заполнения данными компонента:

+

+

Свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+

Пример заполнения:

+

Необходимо добавить компонент OneToMany на страницу.

+

Для того чтобы данные, отобранные с помощью этого компонента, сохранялись в базу данных, его необходимо вложить в компонент Form.

+

+

OneToMany – это составной компонент, состоящий из след. элементов:

+

+

Здесь:

+

+

Настроим каждый элемент отдельно.

+

1. Настройка OneToManyField:

+

Настроить аналогично Autocomplete.

+

2. Настройка кнопки диалогового окна “…”:

+

Настроить SelectButton.

+

3. Настройка диалогового окна:

+

3.1 Настроить Grid.

+

3.2 Настройка FilterPanel:

+

Заполнить FilterFieldSet:

+

В FilterFieldSet вкладываются компоненты из раздела Компоненты > Фильтры, в зависимости от того по полям какого типа собираетесь фильтровать: по дате - FilterDateTimePicker, по тексту - FilterTextField, по списку значений - FilterComboBox, и т. д.

+

Заполнить ButtonsContainer:

+

Контейнер ButtonsContainer содержит в себе кнопки диалогового окна. Описание настройки кнопок можно посмотреть в разделе Компоненты > Кнопки.

+

3.3 Заполнить ButtonsContainer:

+

Контейнер ButtonsContainer содержит в себе кнопки диалогового окна. Описание настройки кнопок можно посмотреть в разделе Компоненты > Кнопки.

+

Пример минимальной настройки компонента OneToMany…

+

Задача: Необходимо организовать выбор организации из списка организаций.

+

Добавляем OneToMany (если предполагается сохранение в БД – то в компонент Form)

+

1. Настройка OneToManyField:

+ + + + + + + + + + + + + + + +
Наименование Действие
graph задайте граф сущностей: в примере используются 2 таблицы: organization – организация и organization_version – версия организации (хранит нужную нам информацию по организации)
Column For Save колонка в БД для загрузки и сохранения значения (в списке – таблицы из структуры сущностей Form, в который вложен настраиваемый компонент) – здесь задаем таблицу:колонку куда будем класть выбранную организацию.
+

2. Настройка диалогового окна:

+

Настраиваем Grid:

+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Результат
graph Граф сущностей аналогичен графу OneToManyField (см. п.1.):
columns[size] Отображаемые колонки в Grid. Для примера настроены две колонки: В результате настроенная таблица в диалоге выбора SelectDialog:
+

Настройка FilterPanel:

+

Необходимо настроить фильтрацию в настроенном Grid. Для примера настроим фильтрацию по колонке Full name.

+

В Full name хранится текст, следовательно необходимо в FilterFieldSet добавить фильтр FilterTextField.

+

FilterTextField настраивается аналогично TextField (имеет те же общие свойства), а также свойство, характерное свойство для фильтров – FilterControl:

+

+

Здесь мы выбрали операцию фильтрации CONTAINS – будут отобраны значения содержание введенные пользователем символы и Column For Filter – таблица:колонка, по которой происходит сортировка – в нашей задаче это поле full_name таблицы organization_version.

+

Скрипты

+

component/grid/renderers/Base64ImageCellRenderer.ts - скрипт для отображения изображения. Необходимо выбрать его в свойстве renderer необходимой колонки.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/TreeField.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/TreeField.html new file mode 100644 index 00000000..18a89691 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/TreeField.html @@ -0,0 +1,146 @@ + + + + + + + + Web-BPM Docs – TreeField и TreeMultiField + + + + + + +
+
+ + + +
+
+

TreeField и TreeMultiField

+

Назначение компонента

+

Сложные компоненты для выбора из древовидной структуры одной (TreeField) или нескольких записей (TreeMultiField).

+

TreeField:

+

+

+

TreeMultiField выглядит аналогично.

+

Настройка компонента

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
visible задаёт видимость компоненты true
disabled задаёт редактируемость компоненты false
tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
cssClasses список CSS классов (см. раздел Дизайн)
style список основных свойств: +
    +
  • padding (необходимо указывать единицы измерения)
  • +
  • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
  • +
  • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
  • +
  • height - задает высоту компонента
  • +
  • width - задает ширину компонента
  • +
  • minHeight - задает минимальную высоту компонента
  • +
  • minWidth - задает минимальную ширину компонента
  • +
  • maxHeight - задает максимальную высоту компонента
  • +
  • maxWidth - задает максимальную ширину компонента.
+
    + +
  1. +

    Необходимо настроить TreeGrid:

  2. +
+

Настройка происходит согласно инструкции к TreeGrid.

+

2. Необходимо настроить TreeList:

+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
graph Граф, по которому будет загружено отображаемое значение. Нет. Обязательно для заполнения.
displayColumn Колонка для отображения. Нет. Обязательно для заполнения.
+

3. Необходимо настроить:

+

у TreeField необходимо заполнить Autocomplete.
TreeMultiField необходимо заполнить MultiValueField:

+ + + + + + + + + + + + + + + + + + +
Наименование Назначение Значение по умолчанию
graph Граф, по которому будет загружено отображаемое значение. Нет. Обязательно для заполнения.
displayColumn Колонка для отображения. Нет. Обязательно для заполнения.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/index.html new file mode 100644 index 00000000..97da65f4 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/index.html @@ -0,0 +1,63 @@ + + + + + + + + Web-BPM Docs – Фильтры + + + + + + + +
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_Фильтр_по_числовому_полю_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_Фильтр_по_числовому_полю_на_страницу_.html new file mode 100644 index 00000000..aabb7557 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_Фильтр_по_числовому_полю_на_страницу_.html @@ -0,0 +1,193 @@ + + + + + + + + Web-BPM Docs – Как добавить Фильтр по числовому полю на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить Фильтр по числовому полю на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Реестра сотрудников элемент Таблица, где будет содержаться информация о сотрудниках отдела, и два фильтра: Фильтр по числовому полю и Фильтр по текстовому полю, с помощью которых будет осуществляться поиск записей в Таблице по фамилии сотрудника и по стажу работы сотрудника. Элементы на странице должны иметь следующие настройки:

+
    + +
  • Блок фильтрации на странице должен иметь подзаголовок-Фильтр по сотрудникам, реализованный с помощью компоненты Текст
  • +
  • Фильтр по числовому полю (по стажу работы сотрудника):
    +надпись поля -Стаж работы
    +фильтровать по… -таблице Список сотрудников иколонке Стаж
    +операция фильтрации -Равно
    +максимально возможное значение для ввода - 10
  • +
  • Фильтр по текстовому полю (по фамилии сотрудника):
    +надпись поля -Фамилия
    +фильтровать по… -таблице Список сотрудников иколонке Фамилия(name_last)
    +операция фильтрации -Содержит всю подстроку
  • +
  • Таблица с информацией о сотрудниках:
    Граф сущностей в качестве Главной сущности должна быть определена таблица Список сотрудников, где есть вся необходимая информация для вывода на страницу
    +в структуру Таблицы должны быть включены две колонки: Фамилия сотрудникаи Стаж работы сотрудника
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр сотрудников, где необходимо разместить Таблицу и Фильтры,уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:

+ +

+

рис.1 Добавление элементаНабор фильтров

+

+

рис.2Добавление элементаТекст

+
    + +
  • Добавить внутрь контейнера Набор фильтров компоненту Текстовое поле (фильтр) (рис.3)
  • +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по числовому полю (рис.4)
  • +
  • Добавить Таблицу,в которой будет отображаться информация о сотрудниках и по значениям которой будет осуществляться поиск записей с помощью фильтров (рис.5)
  • +
+

+

рис.3 Добавление компоненты Фильтр по текстовому полю

+

+

рис.4 ДобавлениекомпонентыФильтр по числовому полю


+

рис.5 Добавление элементаТаблица

+
    + +
  • Для того чтобы условия фильтрации применялись к таблице, необходимо добавить кнопки:Кнопка для фильтрации,Кнопка очистки фильтра. Для этого необходимо добавить Горизонтальный контейнер, который будет содержать данные кнопки. (рис.6 и рис.7)
  • +
+

+

рис.6 Добавление элемента Горизонтальный контейнер

+

+

рис.7 Добавление кнопок: Для фильтрации и Очистки фильтрации

+

2. Настройка элементов:

+
    + +
  • Настройка Набора фильтров: переносим объект Таблица, удерживая левую кнопку мыши, в свойство “Применить к…” Набора фильтров как показано на рисунке(рис.8)
  • +
  • Заполняем свойство Надпись у компоненты Текст значением Фильтр по сотрудникам (рис.9)
  • +
+

+

рис.8 Настройка Набор фильтров

+

+

рис.9 Настройка элемента Текст

+
    + +
  • Заполняем у элемента Таблица следующие свойства: Таблица. Подгрузка данных - Источник данных - Граф сущностей (как описано в разделе - Настройка Графа сущностей) и настраиваем колонки Таблицы (как описано в разделе -Настройка колонок Таблицы) в блоке Таблица. Настроить колонки таблицы согласно условиям задачи(рис.10)
  • +
  • Заполняем свойства компоненты Фильтр по текстовому полю согласно условиям задачи (рис.11)
  • +
  • Заполняем свойства компоненты Фильтр по числовому полю согласно условиям задачи (рис.12)
  • +
+

+

рис.10 Настройка элементаТаблица

+

+

рис.11 Настройка компонентыФильтр по текстовому полю

+

+

рис.12 Настройка компоненты Фильтр по числовому полю

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается блок фильтрации, включающий в себя фильтры по имени и фамилии сотрудника (рис.13 и рис.14)

+

+

рис.13 Визуальное отображение выполнения условий задачи

+

+

рис.14 Пример выполнения поиска с примененным условием фильтрации

+

рис.13 Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ +
+ +

image2019-2-27_10-12-42.png (image/png)
+ image2019-2-27_10-31-44.png (image/png)
+ image2019-2-27_11-14-10.png (image/png)
+ image2019-2-27_11-19-57.png (image/png)
+ image2019-2-27_11-22-12.png (image/png)
+ image2019-2-27_11-27-36.png (image/png)
+ image2019-2-28_10-20-51.png (image/png)
+ image2019-2-28_10-25-32.png (image/png)
+ image2019-2-28_10-25-46.png (image/png)
+ image2019-2-28_10-37-29.png (image/png)
+ image2019-2-28_17-8-54.png (image/png)
+ image2019-2-28_17-9-29.png (image/png)
+ image2019-2-28_17-9-59.png (image/png)
+ image2019-3-1_10-28-32.png (image/png)
+ image2019-3-1_10-30-56.png (image/png)
+ image2019-3-1_10-31-39.png (image/png)
+ image2019-3-1_10-32-15.png (image/png)
+ image2019-3-1_10-32-46.png (image/png)
+ image2019-3-1_17-6-26.png (image/png)
+ image2019-3-1_17-7-18.png (image/png)
+ image2019-3-1_17-8-8.png (image/png)
+ image2019-3-1_17-41-39.png (image/png)
+ image2019-3-1_17-42-35.png (image/png)
+ image2019-3-1_17-44-14.png (image/png)
+ image2019-3-11_14-19-40.png (image/png)
+ image2019-3-11_14-20-16.png (image/png)
+ image2019-3-11_16-10-7.png (image/png)
+ image2019-3-11_16-15-42.png (image/png)
+ image2019-3-11_16-16-12.png (image/png)
+ image2019-3-11_16-17-9.png (image/png)
+ image2019-3-11_16-17-41.png (image/png)
+ image2019-3-11_16-19-47.png (image/png)
+ image2019-3-11_16-20-24.png (image/png)
+ image2019-3-11_16-21-11.png (image/png)
+ image2019-3-11_16-21-23.png (image/png)
+ image2019-3-11_16-25-22.png (image/png)
+ image2019-3-15_16-54-5.png (image/png)
+ image2019-3-15_16-59-41.png (image/png)
+ image2019-3-22_10-36-15.png (image/png)
+ image2019-3-22_10-37-45.png (image/png)
+ image2019-3-22_10-41-8.png (image/png)
+ image2019-3-22_10-42-11.png (image/png)
+ image2019-3-22_10-48-28.png (image/png)
+ image2019-3-22_10-49-25.png (image/png)
+ image2019-3-22_10-49-53.png (image/png)
+ image2019-3-22_10-51-12.png (image/png)
+ image2019-3-22_10-53-4.png (image/png)
+ image2019-3-22_10-54-15.png (image/png)
+ image2019-3-22_10-55-26.png (image/png)
+ image2019-3-22_10-56-6.png (image/png)
+ image2019-3-22_10-58-0.png (image/png)
+ image2019-3-22_10-58-26.png (image/png)
+ image2019-3-22_11-1-15.png (image/png)
+ image2019-3-22_11-2-36.png (image/png)
+ image2019-3-22_11-3-1.png (image/png)
+ image2019-3-22_11-15-36.png (image/png)
+ image2019-3-22_11-17-41.png (image/png)

+
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_выпадающему_списку_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_выпадающему_списку_на_страницу_.html new file mode 100644 index 00000000..15e3a3d0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_выпадающему_списку_на_страницу_.html @@ -0,0 +1,159 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Фильтр по выпадающему списку на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Фильтр по выпадающему списку на страницу?

+

Постановказадачи: необходимо реализовать на пользовательской странице Реестра сотрудников компонент Таблица, где будет содержаться информация о сотрудниках отдела. Поиск по Таблице должен осуществляться по фамилии сотрудника в виде фильтра по текстовому полю и организации к которой относится сотрудник, в виде фильтра по выпадающему списку. Элементы на странице должны иметь следующие настройки:

+
    + +
  • Блок фильтрации на странице должен иметь подзаголовок -Фильтр по сотрудникам, реализованный с помощью компоненты Текст
  • +
  • Фильтр по текстовому полю (по фамилии сотрудника): +

    надпись поля -Фамилия
    +фильтровать по… -таблице Список сотрудников иколонке(name_last)
    +операция фильтрации -Содержит всю подстроку

  • +
  • + +

    Фильтр по статичному выпадающему списку:
    +надпись поля -Организация: фильтровать по… -таблице Организация иколонке Наименование (name)
    +операцию фильтрации -Содержится всю подстроку сортировать по - таблице Организация иколонке Наименование (name)
    +Показывать пользователю -таблица Организация иколонке Наименование (name) Граф сущностей - в качестве Главной сущности должна быть определена таблица Организаций (legal_entities)

    +
  • +
  • Таблица с информацией о сотрудниках:
    Граф сущностей в качестве Главной сущности должна быть определена таблица Список сотрудников, где есть вся необходимая информация для вывода на страницу.
  • +
+

Решение задачи:

+

Предполагается, что страницаРеестр сотрудников,где необходимо разместить Таблицу и Фильтры по текстовому полю,уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:

+ +

рис.1 Добавление элементаНабор фильтров

+

рис.2 Добавление элементаТекст

+
    + +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по текстовому полю (рис.3)
  • +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по выпадающему списку (рис.4)
  • +
  • Добавить Таблицу, в которой будет отображаться информация о сотрудниках и по значениям которой будет осуществляться поиск записей с помощью фильтров (рис.5)
  • +
+

+

рис.3 Добавление компонентФильтр по текстовому полю

+

+

рис.4 Добавление компонентФильтр по выпадающему списку

+

+

рис.5 Добавление элемента Таблица

+
    + +
  • Для того чтобы условия фильтрации применялись к таблице, необходимо добавить кнопки:Кнопка для фильтрации,Кнопка очистки фильтра. Для этого необходимо добавить Горизонтальный контейнер, который будет содержать данные кнопки. (рис.6 и рис.7)
  • +
+

+

рис.6 Добавление элементаГоризонтальный контейнер

+

+

рис.7 Добавление кнопок: Для фильтрации и Очистки фильтрации

+

2. Настройка элементов:

+
    + +
  • Настройка Набора фильтров: переносим объект Таблица, удерживая левую кнопку мыши, в свойство “Применить к…” Набора фильтров как показано на рисунке (рис.8)
  • +
  • Заполняем свойство Надпись у компоненты Текст значением Фильтр по сотрудникам (рис.9)
  • +
+

+

рис.8 Настройка Набор фильтров

+

+

рис.9 Настройка элементаТекст

+
    + +
  • Заполняем у элемента Таблица следующие свойства: Таблица. Подгрузка данных - Источник данных - Граф сущностей (как описано в разделе -Настройка Графа сущностей) и настраиваем колонки Таблицы (как описано в разделе -Настройка колонок Таблицы) в блоке Таблица. Настроить колонки таблицы согласно условиям задачи (рис.10)
  • +
+

**
+**

+

+

рис.10 Настройка элемента Таблица

+

+

рис.11Настройка Фильтра по фамилии сотрудника

+
    + +
  • Заполняем свойства компонент Фильтрация по статичному выпадающему списку согласно условиям задачи (рис.12)
  • +
+

+

рис.12 Настройка Фильтра по организации сотрудника

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается блок фильтрации, включающий в себя фильтры по фамилии сотрудника и организации (рис.13, рис.14 и рис.15)

+


+

+

рис.13 Визуальное отображение выполнения условий задачи

+

рис. 14 Визуальное отображение выбора значения фильтра из выпадающего списка

+

+

рис.15 Пример выполнения поиска с примененным условием фильтрации

+

**
+**

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_дате_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_дате_на_страницу_.html new file mode 100644 index 00000000..b997c83c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_дате_на_страницу_.html @@ -0,0 +1,136 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Фильтр по дате на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Фильтр по дате на страницу?

+

Постановка задачи: необходимо добавить на пользовательскую страницу Реестр сотрудников элемент Фильтр по дате, с помощью которого будет осуществляться фильтрация (поиск) записей в Таблице сотрудников по Дате рождения сотрудника. Пользовательская страница с Фильтром по дате должна иметь следующие условия:

+
    + +
  • Блок фильтрации на странице должен иметь подзаголовок:“Фильтр по сотрудникам”.
  • +
  • Фильтр по дате должен иметь надпись: “Дата рождения”.
  • +
  • Минимальное возможное значение должно быть - 01.01.1900.
  • +
  • Формат поля должен быть в виде даты, не должно отображаться время
  • +
  • Операция фильтрации -Содержит всю подстроку
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр сотрудниковуже создана бизнес-аналитиком и включаетв себя необходимую Таблицу с информацией о сотрудниках, по записям которой будет осуществляться дальнейший поиск с помощью фильтра по Дате рождения сотрудника. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:
+
+

+
    + +
  • Добавить элемент Текст в Набор фильтров и заполнить в его свойствах “надпись”, которая будет являться заголовком к нашему фильтру. (рис.1)
  • +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по дате. (рис.2)
  • +
+

+

Рис.1 Добавление элементаТекст

+

Рис.2 ДобавлениекомпонентыФильтр по дате.

+
    + +
  1. Настройка элементов:
  2. +
+
    + +
  • Заполняем свойства компоненты текст как показано на рис.3
  • +
+

+

Рис. 3 Настройка компоненты Текст.

+
    + +
  • Заполняем свойства компоненты фильтр по дате как показано на рис.4
  • +
+

+

Рис. 4 Настройка компоненты Фильтр по дате.

+
    + +
  • Результат выполнения задачи:
  • +
+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.5).

+

+

рис.5 Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_полю_многострочного_ввода_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_полю_многострочного_ввода_на_страницу_.html new file mode 100644 index 00000000..53563e1a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_полю_многострочного_ввода_на_страницу_.html @@ -0,0 +1,172 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Фильтр по полю многострочного ввода на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Фильтр по полю многострочного ввода на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Карточка реестра сотрудников элементТаблица, где будет содержаться информация о сотрудниках отдела. На странице должны присутствовать фильтр по текстовому полю и фильтр по полю многострочного ввода, с помощью которых будет осуществляться поиск записей в Таблице. Элементы на странице должны иметь следующие настройки:

+
    + +
  • Блок фильтрации на странице должен иметь подзаголовок -Фильтр по сотрудникам, реализованный с помощью компоненты Текст
  • +
  • Фильтр по текстовому полю (по фамилии сотрудника): +

    надпись поля -Фамилия:
    +фильтровать по… -таблице Список сотрудников иколонке Фамилия (name_last)
    +операция фильтрации -Содержит всю подстроку

  • +
  • + +

    Фильтр по полю многострочного ввода:

    +

    надпись поля -Электронный адрес:
    +фильтровать по… -таблице Список сотрудников иколонке Электронный адрес (user_email)
    +операция фильтрации -Содержит всю подстроку

    +
  • +
  • + +

    Таблица с информацией о сотрудниках: в Граф сущностей в качестве Главной сущности должна быть определена таблица Список сотрудников, где есть вся необходимая информация для вывода на страницу в структуру Таблицы должны быть включены две колонки:Фамилия сотрудникаиЭлектронный адрессотрудника

    +
  • +
+

Решение задачи:

+

Предполагается, что страница Карточки реестра сотрудников уже создана бизнес-аналитиком. Для добавления на страницу и настройки компонентов по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:

+ +

+

Рис.1 Добавление элемента Набор фильтров

+

+

Рис.2 Добавление элемента Текст

+

+

Рис.3 Добавление компонентФильтр по текстовому полю

+

+

Рис.4 Добавление элемента Таблица

+

+

Рис.5 Добавление элемента Фильтр по полю многострочного ввода

+
    + +
  • Для того чтобы условия фильтрации применялись к таблице, необходимо добавить кнопки:Кнопка для фильтрации,Кнопка очистки фильтра. Для этого необходимо добавить Горизонтальный контейнер, который будет содержать данные кнопки. (рис.6 и рис.7)
  • +
+

рис.6 Добавление элемента Горизонтальный контейнер****

+

рис.7 Добавление кнопок: Для фильтрации и Очистки фильтрации

+

2. Настройка элементов:

+ +

Переносим объект Таблица в свойства “Применить к…” Набора фильтров как показано на рисунке (рис.8)

+

+

Рис.8 Настройка Набор фильтров

+
    + +
  • Заполняем свойство “Надпись” у компоненты Текст (рис.9)
  • +
+

+

Рис.9 Настройка элементаТекст

+
    + +
  • Заполняем у элемента Таблица следующие свойства: Таблица. Подгрузка данных - Источник данных - Граф сущностей (как описано в разделе -Настройка Графа сущностей) и настраиваем колонки Таблицы (как описано в разделе -Настройка колонок Таблицы) в блоке Таблица. Настроить колонки таблицы согласно условиям задачи (рис.10)
  • +
+

+

Рис.10 Настройка элемента Таблица

+
    + +
  • Заполняем свойства компоненты фильтрации по текстовому полю как показано на рис.11
  • +
+

+

Рис.11 Настройка элемента Фильтрация по текстовому полю

+
    + +
  • Заполняем свойства компоненты Фильтрации по полю многострочного ввода как показано на рис.12
  • +
+

+

Рис.12 Настройка элементаФильтрация по полю многострочного ввода

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается блок фильтрации, включающий в себя фильтры по имени и фамилии сотрудника (рис.13 и рис.14)

+

+

рис.13 Визуальное отображение выполнения условий задачи

+

рис.14 Пример выполнения поиска с примененным условием фильтрации

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_статичному_выпадающему_списку_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_статичному_выпадающему_списку_на_страницу_.html new file mode 100644 index 00000000..c95f8bee --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_статичному_выпадающему_списку_на_страницу_.html @@ -0,0 +1,140 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Фильтр по статичному выпадающему списку на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Фильтр по статичному выпадающему списку на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Реестра сотрудников компонент Таблица, где будет содержаться информация о сотрудниках отдела. Поиск по Таблице должен осуществляться по фамилии сотрудника в виде фильтра по текстовому полю и организации к которой относится сотрудник, в виде фильтра по статичному выпадающему списку. Элементы на странице должны иметь следующие настройки:

+
    + +
  • Блок фильтрации на странице должен иметь +
      + +
    • подзаголовок -Фильтр по сотрудникам, реализованный с помощью компоненты Текст
    • +
    +
  • +
  • Фильтр по текстовому полю (по фамилии сотрудника): +
      + +
    • надпись поля -Фамилия
    • +
    • фильтровать по… -таблице Список сотрудников и колонке (name_last)
    • +
    • операция фильтрации -Содержит всю подстроку
    • +
    +
  • +
  • + +

    Фильтр по статичному выпадающему списку:

    +
      + +
    • надпись поля - Организация:
    • +
    • фильтровать по… -таблице Организация иколонке Наименование (name)
    • +
    • операцию фильтрации -Содержится в “Список значений” - Три элемента. 1) Элемент: Надпись -УФНС РФ Значение - УФНС РФ 2) Элемент: Надпись -ООО Березка Значение -ООО Березка 3) Элемент: Надпись -ИП Чемоданова Значение -ИП Чемоданова
    • +
    +
  • +
  • Таблица с информацией о сотрудниках: в Граф сущностей в качестве Главной сущности должна быть определена таблица Список сотрудников, где есть вся необходимая информация для вывода на страницу.
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр сотрудников, где необходимо разместить Таблицу и Фильтры по текстовому полю, уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:

+ +

+

рис.1 Добавление элемента Набор фильтров

+
    + +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по текстовому полю (рис.3)
  • +
  • Добавить внутрь контейнера Набор фильтров компоненту Фильтр по статичному выпадающему списку (рис.4)
  • +
  • Добавить Таблицу, в которой будет отображаться информация о сотрудниках и по значениям которой будет осуществляться поиск записей с помощью фильтров (рис.5)
  • +
+

+

рис.3 Добавление компонент Фильтр по текстовому полю

+

+

рис.5 Добавление элемента Таблица

+
    + +
  • Для того чтобы условия фильтрации применялись к таблице, необходимо добавить кнопки: Кнопка для фильтрации, Кнопка очистки фильтра. Для этого необходимо добавить Горизонтальный контейнер, который будет содержать данные кнопки. (рис.6 и рис.7)
  • +
+

+

рис.6 Добавление элемента Горизонтальный контейнер

+

+

рис.7 Добавление кнопок: Для фильтрации и Очистки фильтрации

+

2. Настройка элементов:

+
    + +
  • Настройка Набора фильтров: переносим объект Таблица, удерживая левую кнопку мыши, в свойство “Применить к…” Набора фильтров как показано на рисунке (рис.8)
  • +
  • Заполняем свойство Надпись у компоненты Текст значением Фильтр по сотрудникам (рис.9)
  • +
+

+

рис.8 Настройка Набор фильтров

+

+

рис.9 Настройка элемента Текст

+
    + +
  • Заполняем у элемента Таблица следующие свойства: Таблица. Подгрузка данных - Источник данных - Граф сущностей (как описано в разделе -Настройка Графа сущностей) и настраиваем колонки Таблицы (как описано в разделе -Настройка колонок Таблицы) в блоке Таблица. Настроить колонки таблицы согласно условиям задачи (рис.10)
  • +
+

+

рис.10 Настройка элементаТаблица

+
    + +
  • Заполняем свойства компонент фильтрации по текстовому полю согласно условиям задачи (рис.11)
  • +
+

+

рис.11 Настройка Фильтра по фамилии сотрудника

+
    + +
  • Заполняем свойства компонент Фильтрация по статичному выпадающему списку согласно условиям задачи (рис.12)
  • +
+

+

рис.12 Настройка Фильтра по организации сотрудника

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается блок фильтрации, включающий в себя фильтры по фамилии сотрудника и организации (рис.13 и рис.14)

+

+

рис.13 Визуальное отображение выполнения условий задачи

+

рис.14 Пример выполнения поиска с примененным условием фильтрации

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_текстовому_полю_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_текстовому_полю_на_страницу_.html new file mode 100644 index 00000000..e7de9674 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_добавить_элемент_Фильтр_по_текстовому_полю_на_страницу_.html @@ -0,0 +1,178 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Фильтр по текстовому полю на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Фильтр по текстовому полю на страницу?

+

**Постановка задачи: **необходимо реализовать на пользовательской странице Реестра сотрудников компонент Таблица, где будет содержаться информация о сотрудниках отдела, и два Фильтра по текстовому полю, с помощью которых будет осуществляться поиск записей в Таблицепо фамилии сотрудника и по имени сотрудника. Элементы на странице должны иметь следующие настройки:

+
    + +
  • Блок фильтрации на странице должен иметь +
      + +
    • подзаголовок - Фильтр по сотрудникам, реализованный с помощью компоненты Текст
    • +
    +
  • +
  • Фильтр по текстовому полю (по фамилии сотрудника): +
      + +
    • надпись поля -Фамилия
    • +
    • фильтровать по… -таблице Список сотрудников иколонке Фамилия(name_last)
    • +
    • операция фильтрации -Содержит всю подстроку
    • +
    +
  • +
  • Фильтр по текстовому полю (по имени сотрудника): +
      + +
    • надпись поля -Имя
    • +
    • фильтровать по… -таблице Список сотрудников иколонке Имя (name_first)
    • +
    • операция фильтрации -Содержит всю подстроку
    • +
    +
  • +
  • Таблица с информацией о сотрудниках:
    Граф сущностей в качестве Главной сущности должна быть определена таблица Список сотрудников, где есть вся необходимая информация для вывода на страницу
    +в структуру компоненты Таблица должны быть включены две колонки: Фамилия сотрудника и Имя сотрудника
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр сотрудников, где необходимо разместить Таблицу и Фильтры по текстовому полю, уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки компонент по условиям задачинеобходимо сделать следующее:

+

1. Добавление элементов:
+

+ +

+

рис.1 Добавление элемента Набор фильтров

+

+

рис.2Добавление элемента Текст

+
    + +
  • Добавить внутрь контейнера Набор фильтров две компоненты Фильтр по текстовому полю (рис.3)
  • +
  • Добавить Таблицу, в которой будет отображаться информация о сотрудниках и по значениям которой будет осуществляться поиск записей с помощью фильтров (рис.4)
  • +
+

+

рис.3 Добавление компонентФильтр по текстовому полю

+

+

рис.4 Добавление элемента Таблица

+
    + +
  • Для того чтобы условия фильтрации применялись к таблице, необходимо добавить кнопки: Кнопка для фильтрации, Кнопка очистки фильтра. Для этого необходимо добавить Горизонтальный контейнер, который будет содержать данные кнопки. (рис.5 и рис.6)
  • +
+

+

рис.5 Добавление элемента Горизонтальный контейнер

+

рис.6 Добавление кнопок: Для фильтрации и Очистки фильтрации

+

2. Настройка элементов:

+
    + +
  • Настройка Набора фильтров: переносим объект Таблица, удерживая левую кнопку мыши, в свойство “Применить к…” Набора фильтров как показано на рисунке (рис.6)
  • +
  • Заполняем свойство Надпись у компоненты Текст значением Фильтр по сотрудникам (рис.7)
  • +
+

+

рис.6 Настройка Набор фильтров

+

+

рис.7 Настройка элементаТекст

+
    + +
  • Заполняем у элемента Таблица следующие свойства: Таблица. Подгрузка данных - Источник данных - Граф сущностей (как описано в разделе -Настройка Графа сущностей) и настраиваем колонки Таблицы (как описано в разделе -Настройка колонок Таблицы) в блоке Таблица. Настроить колонки таблицы согласно условиям задачи (рис.8)
  • +
  • Заполняем свойства компонент фильтрации по текстовому полю согласно условиям задачи (рис.9, рис.10)
  • +
+

+

рис.8 Настройка элемента Таблица

+

+

рис.9 Настройка Фильтра по фамилии сотрудника

+

+

рис.10 Настройка Фильтра по имени сотрудника

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и на странице отображается блок фильтрации, включающий в себя фильтры по имени и фамилии сотрудника (рис.11 и рис.12)

+

+

рис.11 Визуальное отображение выполнения условий задачи

+

+

рис.12 Пример выполнения поиска с примененным условием фильтрации

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_Флагу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_Флагу_.html new file mode 100644 index 00000000..0ba3adb7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_Флагу_.html @@ -0,0 +1,181 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Фильтр по Флагу? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту Фильтр по Флагу?

+

Постановказадачи: на пользовательской странице Реестр задач необходимо обеспечить возможность поиска задач в компоненте Таблица, которые удовлетворяют условию, что их готовность подтверждена руководителем. Это условие задается пользователем с использованием компоненты Флаг, проставлением или снятием отметки в поле компоненты.

+

Страница “Реестр задач” должна иметь следующие настройки:

+
    + +
  • на web-странице должна быть размещена компонента Таблица, в графе сущности которой основной таблицей должна быть назначена “Список задач” (tasks). В нейимеется колонка, в которой хранится отметка о факте подтверждения руководителем готовности той или иной задачи.
  • +
  • на web-странице должна быть размещена компонента Набор фильтров, и настроена на компоненту Таблица
  • +
  • внутри компоненты Набор фильтров следует расположить компоненту Фильтр по Флагу для поиска по параметру “Готовность задачи подтверждена руководителем”
  • +
  • колонка базы данных для поиска по значениям из компоненты Фильтр по флагу -tasks.approved_chief_temp
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр задач уже создана аналитиком и включена в логику бизнес-процесса. Для задействования компоненты Фильтр по флагу необходимо сделать следующее:

+
    + +
  • Добавить на страницу компоненту Таблица, настроить ее граф сущностей и колонки (рис.1)
  • +
+

+

рис.1 Расположение компоненты Таблица и настройка ее основных параметров

+
    + +
  • На одном уровне с компонентом Таблица добавить в состав страницы компоненту Набор фильтров. Связать Компоненту Набор фильтров с компонентой Таблица для указания источника данных фильтрации (рис.2)
  • +
+

+

рис.2 Расположение компоненты Набор фильтров и взаимосвязь с компонентой Таблица

+
    + +
  • Добавить компоненты “Кнопка для фильтрации” и “Кнопка очистки фильтра” внутрь компоненты “Набор фильтров” для возможности запуска процесса фильтрации по значению из компоненты “Постановщик задачи” (кнопки нужны потому, что в свойстве компоненты “Набор фильтров” отключен режим “Фильтровать сразу”)
  • +
+

+

рис.3 Настройка кнопок фильтрации

+
    + +
  • Внутри компоненты Набор фильтров расположить компоненту Фильтр по Флагу (рис.4)
  • +
+

+

рис.4 Настройка основных параметров компоненты Фильтр по Флагу

+
    + +
  • Настроить операцию фильтрации (рис.5)
  • +
+

+

рис.5 Настройка операции фильтрации

+
    + +
  • Настроить колонку фильтрации (рис.6)
  • +
+

+

рис. 6 Настройка колонки фильтрации

+

Значение параметра “Правило обработки MultiValue значений” для данной компоненты не принципиально (“И”/“ИЛИ”), поскольку компонента не предоставляет возможность выбирать несколько значений. В параметре “Конвертер” соответствующий модуль подбирается и выставляется системой автоматически, без участия пользователя

+

На этом настройка страницы закончена, можно собрать приложение и проверить работу компоненты.

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что на странице отображаются таблица и блок фильтрации с компонентой “Фильтр по Флагу” (рис.7 - рис.9)

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+
+ +

+
+

рис.7 Открытие страницы.

+ +

В таблице указаны все задачи .

+ +


+

+

рис. 8 Активизация компоненты - проставляем отметку в поле компоненты.

+ +

Пока ничего не меняется, поскольку фильтрация произойдет после нажатия на кнопку (так настроена компонента Набор фильтров).

+ +

В случае настройки компоненты Набор фильтров на режим "Фильтровать сразу", выборка строк произошла бы в тот же момент, как была поставлена отметка в компоненте Флаг.

рис.9 Нажимаем кнопку "Применить", чтобы система отфильтровала список задач и показала только те, в которых есть отметка руководителя о готовности задачи.
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_полю_адреса_ФИАС_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_полю_адреса_ФИАС_на_странице_.html new file mode 100644 index 00000000..8b65f8d8 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_полю_адреса_ФИАС_на_странице_.html @@ -0,0 +1,144 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Фильтр по полю адреса ФИАС на странице? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту “Фильтр по полю адреса ФИАС” на странице?

+

Постановказадачи: на пользовательской странице Реестр задач необходимо обеспечить возможность поиска задач в компоненте Таблица по указанному в поле Адрес исполнения задачи с использованием компоненты “Фильтр по полю адреса ФИАС”. Источником данных для компоненты “Фильтр по полю адреса ФИАС” должна служить федеральная информационная адресная система, а выбор адреса из справочника будет осуществляться путем постепенного набора первых букв строки адреса с последующим подбором и отображением сужающегося списка адресов, в которых содержится вводимый пользователем набор букв.

+

Страница “Реестр задач” должна иметь следующие настройки:

+
    + +
  • на web-странице должна быть размещена компонента Таблица, в графе сущности которой основной таблицей должна быть назначена “Список задач” (tasks). В ней имеется колонка с идентификатором адреса GUID, (fiasid).
  • +
  • на web-странице должна быть размещена компонента Набор фильтров, и настроена на компоненту Таблица
  • +
  • внутри компоненты Набор фильтров следует расположить компоненту Фильтр по полю адреса ФИАС для поиска по параметруАдрес
  • +
  • колонка базы данных для поиска по значениям из компоненты Фильтр по полю адреса ФИАС - tasks.fiasid
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр задач уже создана аналитиком и включена в логику бизнес-процесса. Для задействования компоненты Фильтр по полю ввода с подбором значениянеобходимо сделать следующее:

+
    + +
  • Добавить на страницу компоненту Таблица, настроить ее граф сущностей и колонки (рис.1)
  • +
+

+

рис.1 Расположение компоненты Таблица и настройка ее основных параметров

+
    + +
  • На одном уровне с компонентом Таблица добавить в состав страницы компоненту Набор фильтров. Связать Компоненту Набор фильтров с компонентой Таблица для указания источника данных фильтрации (рис.2)
  • +
+

+

рис.2 Расположение компоненты Набор фильтров и взаимосвязь с компонентой Таблица

+
    + +
  • Добавить компоненты “Кнопка для фильтрации” и “Кнопка очистки фильтра” внутрь компоненты “Набор фильтров” для возможности запуска процесса фильтрации по значению из компоненты “Постановщик задачи” (кнопки нужны потому,что в свойстве компоненты “Набор фильтров” отключен режим “Фильтровать сразу”)
    +
  • +
+

рис.3 Настройка кнопок фильтрации

+
    + +
  • Внутри компоненты Набор фильтров расположить компоненту Фильтр по полю адреса ФИАС (рис.4)
  • +
+

+

рис.4 Настройка графа сущности и основных параметров компоненты Фильтр по полю адреса ФИАС

+

“Настроить колонки фильтрации” означает, что после выбора пользователем значения в компоненте “Фильтр по полю адреса ФИАС” система должна найти это значениесреди строк в таблице tasks.fiasid (параметр “Фильтровать по …”)

+

На этом настройка страницы закончена, можно собрать приложение и проверить работу компоненты.

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что на странице отображаются таблица и блок фильтрации с компонентой “Фильтр по полю ввода с подбором значения” (рис.5)

+ +
+ +

+
+ +

+

+

Форма открывается с пустыми полями

+

При вводе первых двух букв система не реагирует, ждет третью

+

После появления очередной буквы, позволяющей индивидуализировать подбираемое значение, показывается список адресов, удовлетворяющих заданному в настройках фильтру (Ленина) и набранной пользователем подстроке (Казань).

+

Из всего списка остались доступными 2 варианта адресов.

+

+

+

Нажимаем кнопку применить и список отфильтровывается только по тем задачам, которые назначены на выбранную улицу.

+

Пример работы компоненты для случая, когда в настройках компоненты “фильтр по умолчанию” не заполнен.

+

рис.5 Работа компоненты в запущенном приложении

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_полю_ввода_с_подбором_значения_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_полю_ввода_с_подбором_значения_на_странице_.html new file mode 100644 index 00000000..5dfe43c0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Как_задействовать_компоненту_Фильтр_по_полю_ввода_с_подбором_значения_на_странице_.html @@ -0,0 +1,240 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Фильтр по полю ввода с подбором значения на странице? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту “Фильтр по полю ввода с подбором значения” на странице?

+

Постановказадачи: на пользовательской странице Реестр задач необходимо обеспечить возможность поиска задач в компоненте Таблица по указанным в поле Постановщик задачи несколькимзначениям c использованием компоненты “Фильтр по полю ввода с подбором значения”. Источником данных для компоненты “Фильтр по полю ввода с подбором значения” должен служить справочник сотрудников, а выбор сотрудников (одного или нескольких) из справочника будет осуществляться путем постепенного набора первых букв фамилии с последующим подбором и отображением сужающегося списка сотрудников, в чьих фамилиях содержится вводимый пользователем набор букв.

+

Страница “Реестр задач” должна иметь следующие настройки:

+
    + +
  • на web-странице должна быть размещенакомпонента Таблица, в графе сущности которой основной таблицейдолжна быть назначена “Список задач”(tasks).В нейимеется колонка с идентификатором сотрудника, являющегося постановщиком задачи (reporter_employee_id).
  • +
  • на web-странице должна быть размещенакомпонента Набор фильтров, и настроена на компоненту Таблица
  • +
  • внутри компонентыНабор фильтровследует расположить компоненту Фильтр по полю ввода с подбором значения для поиска по параметруПостановщик задачи
  • +
  • колонка базы данных для поиска по значениям из компоненты* Фильтр по полю ввода с подбором значения- tasks.reporter_employee_id*
  • +
+

Решение задачи:

+

Предполагается, что страница Реестр задач уже создана аналитиком и включена в логику бизнес-процесса. Для задействования компоненты Фильтр по полю ввода с подбором значения необходимо сделать следующее:

+
    + +
  • Добавить на страницу компоненту Таблица, настроить ее граф сущностей и колонки (рис.1)
  • +
+

+

рис.1 Расположение компоненты Таблица и настройка ее основных параметров

+
    + +
  • На одном уровне с компонентом Таблица добавить в состав страницы компоненту Набор фильтров. Связать Компоненту Набор фильтров с компонентой Таблица для указания источника данных фильтрации (рис.2)
  • +
+

+

рис.2 Расположение компоненты Набор фильтров и взаимосвязь с компонентой Таблица

+
    + +
  • Добавить компоненты “Кнопка для фильтрации” и “Кнопка очистки фильтра” внутрь компоненты “Набор фильтров” для возможности запуска процесса фильтрации по значению из компоненты “Постановщик задачи” (кнопки нужны потому,что в свойстве компоненты “Набор фильтров” отключен режим “Фильтровать сразу”)
    +
  • +
+

рис.3 Настройка кнопок фильтрации

+
    + +
  • Внутри компоненты Набор фильтров расположитькомпонентуФильтр по полю ввода с подбором значения (рис.4)
  • +
+

+

рис.4 Настройка графа сущности и основных параметров компонентыФильтр по полю ввода с подбором значения

+
    + +
  • Настроить колонки компоненты Фильтр по полю ввода с подбором значения (рис.5)
  • +
+

рис.5 Настройка колонок компоненты Фильтр по полю ввода с подбором значения

+
    + +
  • Настроить операцию фильтрации (рис.6)
  • +
+

+

рис.6 Настройка операции фильтрации

+
    + +
  • Настроить колонку фильтрации (рис.7)
  • +
+

+

рис.7 Настройка колонки фильтрации

+

Данная настройка означает, что после выбора пользователем одного или несколькихзначений в компоненте “Фильтр по полю ввода с подбором значения” система должна найти хотя бы одно (параметр "Правило обработки MultiValue значений выставлен в значение ‘ИЛИ’) из этих значений по идентификатору employee.employee_id среди строк в таблице tasks.reporter_employee_id (параметр “Фильтровать по …”)

+

На этом настройка страницы закончена, можно собрать приложение и проверить работу компоненты.

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что на странице отображаются таблица и блок фильтрации с компонентой “Фильтр по полю ввода с подбором значения” (рис.8 - рис.13)

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+
+ +

+
+

рис.8 Открытие страницы.

+ +

В таблице указаны все задачи всех постановщиков.

+ +

После ввода первой буквы будущей строки с фамилией пока ничего не происходит.

+

рис. 9 Активизация компоненты после ввода второй буквы будущей строки с фамилией.

+ +

Компонента согласно своим настройкам начинает предлагать варианты, в которых содержится сочетание букв "ро" (как в начале, так и любом месте строки).

рис.10 После ввода дополнительных букв будущей строки фамилии компонента сужает список предлагаемых вариантов.
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
+
+ +

+
+

рис.11 Выбор одного из вариантов и поиск следующего.

+ +

Клавишей ввод на клавиатуре подтверждаем первую фамилию из списка, предложенного компонентой.

+ +

Продолжаем набирать буквы для поиска фамилии следующего постановщика задачи.

+

рис.12 Выбор одновременно двух сотрудников осуществлен.

+ +

Нажимаем кнопку "Применить", чтобы система отфильтровала список задач, в которых постановщиками являются эти сотрудники

рис.13 Система отфильтровала список задач только по тем сотрудникам, которые были указаны в компоненте как постановщики задач
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_выпадающему_списку.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_выпадающему_списку.html new file mode 100644 index 00000000..6ee6027e --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_выпадающему_списку.html @@ -0,0 +1,116 @@ + + + + + + + + Web-BPM Docs – Фильтр по выпадающему списку + + + + + + +
+
+ + + +
+
+

Фильтр по выпадающему списку

+

Назначение

+

Фильтр по выпадающему списку - это видоизмененная компонента выпадающий список, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по выпадающему списку находится в разделе Фильтры - Фильтр по выпадающему списку.

+

Свойства

+

Компонента имеет набор общих свойств, заполнить значением по умолчанию. Выпадающий список, Подгрузка данных, Фильтр по дате, Заполнить значением из переменной процесса. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения:Отчетный год
Зависит от позволяет указать объект (родителя), напримерВыпадающий список, по идентификатору которого будут отображаться сведения в текущем зависимом элементе
Initial value позволяет задать значение поля по умолчанию, которое будет отображаться на странице пример возможного значения: 2019
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Cохранить значение в переменную процесса любого типа

+

сохранить значение в переменную процесса любого типа

+

Заполнить значением из переменной любого типа

+

Заполнить значением из переменной любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли в Фильтре по выпадающему списку ввести значение в ручную? Нет.Фильтр по выпадающему списку не подразумевает под собой ввод значений вручную.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_дате.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_дате.html new file mode 100644 index 00000000..b30df8ef --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_дате.html @@ -0,0 +1,140 @@ + + + + + + + + Web-BPM Docs – Фильтр по дате + + + + + + +
+
+ + + +
+
+

Фильтр по дате

+

Назначение

+

Фильтр по дате - это видоизмененная компонента Дата, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтровв запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по дате находится в разделе Фильтры - Фильтр по дате.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения:Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Год
Initial value позволяет задать значение поля по умолчанию, которое будет отображаться на странице пример возможного значения: 01.01.2017
Минимальная дата позволяет задать минимально возможное значение числа, меньше которого пользователь ввести не сможет пример возможного значения:01.01.2017
Максимальная дата позволяет задать максимально возможное значение числа, больше которого пользователь ввести не сможет пример возможного значения: 31.12.2017
формат позволяет задать формат для вывода даты со временем или только дату
В виде календаря позволяет задать возможность отображения в виде развернутого календаря
+

Свойство Фильтра по дате: Задать операцию фильтрации

+

Операция - позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению

+

пример возможного значения: Равно

+

+

Свойство Фильтра по дате: Настроить колонки фильтрации

+

+

Фильтровать по - позволяет указать таблицу и колонку базы данных, к которой будет применяться фильтрация.

+

Выбор таблицы и колонки базы данных в данном свойстве будет доступен только после заполнения свойства “Применить к…” у Набора фильтрации

+

пример возможного значения:

+

Свойство Фильтра по дате: Заполнить значением из переменной

+

позволяет указать переменную процесса, значение которой будет передаваться в поле и отображаться по умолчанию

+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функции (функции выполняются удаленно на сервере приложений, функции выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Cохранить значение в переменную процесса

+

сохранить значение в переменную процесса любого типа

+

Заполнить значением из переменной

+

Заполнить значением из переменной любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли вносить данные в поле вручную? Да, можно. При условии, что введенные значения соответствуют маске ввода.
Что будет если ввести буквенные значения в фильтр по дате? В поле Фильтр по дате можно ввести буквенные значения, но при переходе в другое поле, введенный текст очистится.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_компоненте_Флаг.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_компоненте_Флаг.html new file mode 100644 index 00000000..26b56789 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_компоненте_Флаг.html @@ -0,0 +1,115 @@ + + + + + + + + Web-BPM Docs – Фильтр по компоненте Флаг + + + + + + +
+
+ + + +
+
+

Фильтр по компоненте Флаг

+

Назначение

+

Фильтр по компоненте Флаг - это видоизмененная компонента Флаг, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по компоненте Флаг находится в разделе Фильтры - Фильтр по компоненте Флаг

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения:Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Год
Initial value позволяет задать значение, которое примет компонента при открытии web-страницы, значение типа Boolean (TRUE, FALSE, UNDEFINED) TRUE, FALSE, UNDEFINED(по умолчанию)
+

Свойство Фильтра: Задать операцию фильтрации

+

позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению

+

Свойство Фильтра: Настроить колонки фильтрации

+

позволяет указать таблицу и колонку базы данных, к которой будет применяться фильтрация

+

Выбор таблицы и колонки базы данных в данном свойстве будет доступен только после заполнения свойства “Применить к…” у Набора фильтрации

+

позволяет указать правило работы фильтрации в режиме MultiValue, когда пользователем выбраны несколько значений в компоненту.

+

Данная настройка определяет оператор соединения для выбранных пользователем значений

+

Свойство компоненты: Поле ввода с подбором значения.

+

Заполнить значением из переменной любого типа

+

позволяет указать переменную процесса, значение которой будет передаваться в поле и отображаться по умолчанию

+

Свойство компоненты: Поле ввода с подбором значения. Заполнить значением по умолчанию

+

сохранить значение в переменную процесса любого типа

+

заполнить значением из переменной любого типа

+

склеить несколько значений

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
C какими типами данных применяется компонента Фильтр по комопненте Флаг? Поскольку возможными значениями компоненты Фильтр по компоненте Флаг (как и самой компоненты Флаг) являются логические значения, то обе компоненты работают с типом данных Boolean.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_адреса_ФИАС.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_адреса_ФИАС.html new file mode 100644 index 00000000..69e2c47c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_адреса_ФИАС.html @@ -0,0 +1,173 @@ + + + + + + + + Web-BPM Docs – Фильтр по полю адреса ФИАС + + + + + + +
+
+ + + +
+
+

Фильтр по полю адреса ФИАС

+

Назначение

+

Фильтр по полю адреса ФИАС - это видоизмененная компонента поле адреса ФИАС, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по полю адреса ФИАС находится в разделе Фильтры - Фильтр по полю адреса ФИАС.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Выберите район
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Район
Минимальное количество символов позволяет задать количество символов, после ввода которых пользователем, компонента начинает подбор и вывод вариантов, соответствующих уже введенной пользователем подстроке
Исторический адрес Если отметка поставлена, то компоненте предписывается осуществлять поиск не только по актуальным вариантам адресов, но и по историческим версиям этих адресов. Если отметка снята, то компоненте предписывается осуществлять поиск только по актуальным вариантам адресов, игнорируя исторические версии этих адресов. Информация о том, какой версией является то или иное наименование адреса (актуальной или исторической) компонента берет из федеральной информационной адресной системы в режиме чтения как исходное данное, и не осуществляет присвоение или снятие этого признака своей активностью. +
    +
  • подбор только среди актуальных версий адресов - значение по умолчанию
  • +
  • подбор среди актуальных и исторических версий адресов
Фильтр по умолчанию Предписывает компоненте при отображении вариантов отфильтровать адреса по указанной в этом параметре подстроке. Используется как дополнительный предустановленный фильтр к подстроке, вводимой пользователем.
Количество строк Указывает компоненте максимально допустимое количество вариантов для отображения в выпадающем списке при подборе пользователем интересующего значения.
Минимальный уровень адреса Ограничивает область поиска адреса по вводимой пользователем подстроке “сверху” - то есть указанным элементом адреса и его нижележащими в иерархии дочерними элементами. При указании “Минимального уровня поиска адреса” в значение “Субъект РФ” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Субъектам РФ и по всем Районам субъекта, и по всем Городам, и по всем Районам города, и по всем Населенным пунктам, и по всем Улицам. Данную настройку могут ограничивать параметры: +
    +
  • “Фильтр по умолчанию” - тогда поиск уже не по всем регионам (и прочим элементам), а только по тем, которые содержат подстроку из фильтра
  • +
  • “Максимальный уровень адреса” - тогда поиск будет опускаться по иерархии только до того уровня детализации, который указан в параметре “Максимальный уровень адреса”
Максимального уровня поиска адреса Ограничивает область поиска адреса по вводимой пользователем подстроке “снизу” - то есть указанным элементом адреса и его вышележащими в иерархии родительскими элементами. При указании “Максимального уровня поиска адреса” в значение “Улица” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Улицам во всех Населенных пунктах, всех Районов города, всехГородов, всех Районов субъекта и всех Субъектов РФ. Данную настройку могут ограничивать параметры: +
    +
  • “Фильтр по умолчанию”* - тогда поиск уже не по всем улицам (и прочим родительским элементам), а только по тем, которые содержат подстроку из фильтра
  • +
  • “Минимальный уровень адреса” - тогда поиск будет подниматься по иерархии только до того уровня детализации, который указан в параметре*“Минимальный уровень адреса”
Показывать краткий вид типа указывает компоненте на стиль отображения строки адреса - наименование адресных элементов (таких как город, улица, район и т.п.) отображать в принятых сокращениях (г., ул.,р-н) или полностью. +
    +
  • отображать полные наименования адресных элементов - значение по умолчанию
  • +
  • отображать сокращения адресных элементов
Операция позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению
Фильтровать по … позволяет указать таблицу и колонку базы данных, к которой будет применяться фильтрация Выбор таблицы и колонки базы данных в данном свойстве будет доступен только после заполнения свойства “Применить к…” у Набора фильтров
Правило обработки MultiValue позволяет указать правило работы фильтрации в режиме MultiValue, когда пользователем выбраны несколько значений в компоненту. Данная настройка определяет оператор соединения для выбранных пользователем значений Значение по умолчанию - “или”. Данная настройка имеет значение только для компонентов, поддерживающих множественный ввод (возможность указания нескольких значений в строке поиска). Компонента Фильтр по полю адреса не поддерживает множественный ввод, поэтому выбор текущего параметра не повлияет на результаты.
+

Свойство компоненты: Поле адреса ФИАС. Настройка

+

Подгрузка данных

+

Источник подгрузки значений адресов конфигурируется в файле standalone.xml проекта в секции datasource jndi-name=“java:jboss/datasources/fias-ds” pool-name=“FIASDS” enabled=“true” use-java-context=“true”.

+

Настройка секции на источник данных происходит при инициации проекта техническим специалистом и используется аналитиком “как есть”. В составе компоненты настройка параметров подключения и подгрузки данных не осуществляется.

+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений,- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса любого типа

+

сохранить значение в переменную процесса любого типа

+

Заполнить значением из переменной любого типа

+

заполнить значением из переменной любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Сконвертировать значение в целочисленный тип

+

Сконвертировать значение в целочисленный тип

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + +
Вопрос Ответ
Значение какого типа возвращает компонента? В общем случае компонента возвращает значение тестового типа в виде длинного идентификатора (для поиска записи в базе данных). Для использования значения выбранного адреса на экранной форме посредством компоненты Обработка событий, аналитику доступны несколько методов, которые возвращают разные значения.
+

В условиях сравнения компоненты Обработка событий могут использоваться методы:

+

Метод “Получить значение” возвращает идентификатор (так называемый GUID) выбранного адреса в строковом виде, например: {“version”:“1.0”,“aoid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”,“aoid_p1”:“c6d874d0-a7e8-46a1-b345-e2e1e9758c59”,“aoid_p2”:“625866a1-1278-4883-8dc5-ba34e0c463c4”,“aoid_p3”:“fc50add0-c3c7-4f07-99cd-8831166e6619”,“aoid_p4”:null,“aoid_p5”:null,“guid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”}

+

Метод “Получить значение как текст” возвращает строку адреса в человекочитаемом виде в строковом виде, например “Респ Дагестан, р-н Буйнакский, с Верхнее Казанище, ул Ленина”

+

В секции Тогдакомпоненты Обработка событий могут использоваться методы:

+

Метод"ФИАС.Задать значение" выставляет в компоненте адрес по идентификатору GUID ({“version”:“1.0”,“aoid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”,“aoid_p1”:“c6d874d0-a7e8-46a1-b345-e2e1e9758c59”,“aoid_p2”:“625866a1-1278-4883-8dc5-ba34e0c463c4”,“aoid_p3”:“fc50add0-c3c7-4f07-99cd-8831166e6619”,“aoid_p4”:null,“aoid_p5”:null,“guid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”}). Используется для полей - приемника информации об адресе (как показано на скриншоте).

+

Метод “ФИАС.Получить значение” возвращает значение - идентификатор GUID, как из источника данных об адресе для последующей вставки в другое поле ФИАС.

+

Метод "ФИАС.Получить значение"возвращает строку адреса в человекочитаемом виде в строковом виде,как из источника данных об адресе для последующей вставки в другое читаемое тестовое поле (например, Компонент Текстовое поле).

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_ввода_с_подбором_значения.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_ввода_с_подбором_значения.html new file mode 100644 index 00000000..0f76d075 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_ввода_с_подбором_значения.html @@ -0,0 +1,241 @@ + + + + + + + + Web-BPM Docs – Фильтр по полю ввода с подбором значения + + + + + + +
+
+ + + +
+
+

Фильтр по полю ввода с подбором значения

+

Назначение

+

Фильтр по полю ввода с подбором значения - это видоизмененная компонента Поле ввода с подбором значения, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по полю ввода с подбором значения находится в разделе Фильтры - Фильтр по полю ввода с подбором значения.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Выберите район
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Район
Зависит от позволяет указать объект (родителя), например Выпадающий список, по идентификатору которого будут отображаться сведения в текущем зависимом элементе
Начать подбор вариантов позволяет задать количество символов, после ввода которых пользователем, компонента начинает подбор и вывод вариантов, соответствующих уже введенной пользователем подстроке пример возможного значения: 3
Допустимое количество для MultiValue позволяет указать количество значений, которое может выбрать пользователь при работе с компонентой (включение режима MultiValue) пример возможного значения: 4
+

Свойство компоненты: Поле ввода с подбором значения. Подгрузка данных

+

Подгрузка данных - позволяет задать источник подгрузки/сохранения данных в компоненту из/в объекта базы данных (таблицы или представления) с указанием следующих дополнительных настроек:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Возвращать значение доп.колонки по умолчанию компонента возвращает идентификатор записи выбранной из справочника значений (primary_key) Настройка данного параметра позволяет указать компоненте, значение из какой дополнительной колонки необходимо дополнительно считать и вернуть при использовании метода “Получить значение BusinessId”
Связаны по… позволяет указать колонку текущей компоненты, по которой осуществляется связь с компонентой, указанной в свойстве “Зависит от”, обеспечивающую связь между родительской и текущей компонентами
Тип поиска позволяет задать один из вариантов поиска по вводимой пользователем подстроке С начала строки (значение отображается в списке, если с введенной пользователем подстроки начинается значение колонки из базы данных). Во всей строке (значение отображается в списке, если введенная пользователем подстрока содержится в значении колонки из базы данных с любого места вхождения)
Сортировать по позволяет задать элемент базы данных, по значению которого будет производиться сортировка
Тип колонки позволяет указать , каким образом будет отображаться выбранное пользователем значение в компоненте +
    +
  • Из одной колонки
  • +
  • Из нескольких колонок
  • +
  • Колонка с оформлением
Показывать пользователю позволяет задать колонку базы данных, значение которой будет отображено пользователю в режиме ""
Активировать фильтрацию по колонке позволяет указать колонку текущей компоненты, по которой можно с использованием метода “Задать фильтр” компоненты “Обработка события” дополнительно ограничить список доступных для выбора пользователем значений Выставленное в методе значение фильтра будет применено к указанной колонке
Граф сущностей Настройка Графа сущностей Является обязательным к заполнению и настройке
Показывать варианты по позволяет ограничить список отображаемых вариантов в процессе подбора по подстроке
+

Тип колонки - позволяет указать , каким образом будет отображаться выбранное пользователем значение в компоненте

+
    + +
  • Из одной колонки
  • +
  • Из нескольких колонок
  • +
  • Колонка с оформлением
  • +
+

Из нескольких колонок - позволяет указать, что видимое пользователю значение должно быть сформировано путем объединения значений из нескольких колонок источника данных компоненты. Для тонкой настройки параметров объединения значений разных колонок, аналитик может задать свойства:

+
    + +
  • префикс - символ или текст, который будет отображаться перед подгружаемым значением из колонки базы данных,например символ открывающейся скобки (;
  • +
  • постфикс- символ или текст, который будет отображаться после подгружаемого значения из колонки базы данных,например символ закрывающейся скобки );
  • +
  • разделитель- символ или пробел, который будет разделять между собой значения из разных колонок таблиц (ы), объединяемых в одно значение
  • +
+

Тип колонки - позволяет указать , каким образом будет отображаться выбранное пользователем значение в компоненте

+
    + +
  • Из одной колонки
  • +
  • Из нескольких колонок
  • +
  • Колонка с оформлением
  • +
+

Колонка с оформлением - позволяет задать шаблон отображения одной или нескольких колонок в html формате. Колонки в шаблоне задаются в виде @{сущность из графа.колонка} или @{сущность из графа.колонка | форматер}. Форматер принимает одно из двух значений “date” и “datetime”.

+

Свойство Фильтра : Задать операцию фильтрации

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Операция позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению
+

Свойство Фильтра: Настроить колонки фильтрации

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Фильтровать по позволяет указать таблицу и колонку базы данных, к которой будет применяться фильтрация Выбор таблицы и колонки базы данных в данном свойстве будет доступен только после заполнения свойства “Применить к…” у Набора фильтрации
Правило обработки MultiValue значений позволяет указать правило работы фильтрации в режиме MultiValue, когда пользователем выбраны несколько значений в компоненту. Данная настройка определяет оператор соединения для выбранных пользователем значений
+

Свойство компоненты: Поле ввода с подбором значения.

+

Заполнить значением из переменной любого типа

+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений. Функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса

+

Сохранить значение в переменную процесса

+

Заполнить значением из переменной

+

Заполнить значением из переменной

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Сконвертировать значение в целочисленный тип

+

Сконвертировать значение в целочисленный тип

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Фильтр по полю ввода с подбором значения от компоненты Фильтр по выпадающему списку? Фильтр по полю ввода с подбором значения отличается от компоненты Фильтр по выпадающему списку тем, что не показывает и не подгружает сразу все строки из справочника, но по мере ввода пользователем подстроки предлагает всё более усеченный список вариантов, выводя только релевантные уже введенной подстроке значения.
Значение какого типа возвращает компонента? В общем случае может быть любым (чаще всего целочисленным или строковым).Тип возвращаемого компонентойзначения определяется выбором аналитиком метода, который возвращает значение, а также типом колонки в базе данных.
+

Метод “Получить значение” возвращает первичный ключ и тип такого значения зависит от типа колонки первичного ключа в базе данных (обычно целочисленный bigint).

+

Метод “Получить значение по BussinessId” возвращает значение колонки, заданной в параметре компоненты "Дополнительно возвращать значение из " и определяется типом этой колонки в базе данных.

+

Дополнительная функция “Сконвертировать значение в целочисленный тип” как раз используется для явной конвертации возвращаемого компонентой неопределенного типа (ANY) в явно желаемый Integer (например, при присвоении идентификатора строки выбранного в компоненте значения какой-либо переменной целого типа на странице) .

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_многострочного_ввода.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_многострочного_ввода.html new file mode 100644 index 00000000..a01c3104 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_полю_многострочного_ввода.html @@ -0,0 +1,193 @@ + + + + + + + + Web-BPM Docs – Фильтр по полю многострочного ввода + + + + + + +
+
+ + + +
+
+

Фильтр по полю многострочного ввода

+

Назначение

+

Фильтр по полю многострочного ввода - это видоизмененная компонента Многострочное поле, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по полю многострочного ввода находится в разделе Фильтры - Фильтр по полю многострочного ввода.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите название организации
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Наименование организации
Значение позволяет задать значение поля по умолчанию пример возможного значения: ООО “Форт”
Максимальная длина задаёт максимальное количество вводимых символов в поле пример возможного значения: 10
Маска ограничивающая ввод позволяет задать маску, в соответствии с которой пользователь будет осуществлять ввод текста выставление маски не может обеспечить выполнение требования обязательности ввода, маска только внешне отфильтровывает и форматирует последовательность вводимых пользователем символов заранее заданным образом (например, ввод тел. номера “+ 7 (917) - 101 - 02 - 03” вместо “8917010203” или не допустит такого ввода “89170102АЯ”). См. ниже
Оперировать немаскированными данными указывает системе порядок обработки символов маски при сохранении значения поля в базу данных +
    +
  • значение не определено - по умолчанию
  • +
  • сохранять без форматирования маской
  • +
  • сохранять с форматированием маской
Значение, отформатированное маской в поле ввода как “+7~(917)-922-33-44”, может быть сохранено в поле таблицы базы данных как “+7~(917)-922-33-44” (если флажок снят) или как “9179223344” (если флажок выставлен)
Регистр позволяет задать вид регистра вводимого текста +
    +
  • в верхнем регистре - заглавные (прописные) буквы
  • +
  • в нижнем регистре - строчные (маленькие) буквы
  • +
  • первая буква - заглавная
Тип позволяет задать тип вводимого текста +
    +
  • обычный текст
  • +
  • пароль (заполнитель - звездочки)
  • +
  • электронная почта
регулярное выражение позволяет задать проверку вводимого текста с помощью регулярных выражений См. ниже
Операция позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению
Фильтровать по … В данном свойстве выбирается таблица и колонка к которой будет применяться фильтрация. Выбор таблице в данном свойстве будет доступен после заполнения свойства “Применить к…” у Набор фильтрации
+

Примеры масок:

+
    + +
  • A (буква, латинская, регистр не имеет значения) в маске - позволит ввести в поле одну любую букву любого алфавита
  • +
  • Б (буква, русская, в верхнем регистре) в маске - позволит ввести в поле одну любую букву русского алфавита
  • +
  • 9 (цифра) в маске - позволит ввести в поле одну любую цифру
  • +
  • * (символ) в маске - позволит ввести в поле одну любую цифру или букву
  • +
  • R (буква, латинская, в верхнем регистре) в маске - позволит ввести в поле одну римскую цифру
  • +
  • ? (символ) в маске - позволит ввести или опустить при вводе в поле один необязательный символ (букву, цифру) ,например 999?9; под эту маску подходит как 123, так и 1234
  • +
+

Например, необходимо задать форматирование ввода маской для значения Й456QЬ. В данном случае маска будет выглядеть следующим образом: А999АА, где А - латинская буква.

+

Некоторые типовые регулярные выражения:

+
    + +
  • \d [0-9]- одна цифра от 0 до 9
  • +
  • \D [^0-9]- любой символ кроме цифры
  • +
  • \s- пробел
  • +
  • [A-Z]- только заглавная латинская буква
  • +
  • [A-Za-z]- только латинская буква в любом регистре
  • +
  • [А-Яа-яЁё]- только русская буква в любом регистре
  • +
  • [A-Za-zА-Яа-яЁё]- любая буква русского и латинского алфавита
  • +
  • [0-9]{3}- три цифры
  • +
  • [A-Za-z]{6,}- не менее шести латинских букв
  • +
  • [0-9]{,3}- не более трёх цифр
  • +
  • [0-9]{5,10}- от пяти до десяти цифр
  • +
  • ^[a-zA-Z]+$- любое слово на латинице
  • +
  • ^[А-Яа-яЁё\s]+$- любое слово на русском включая пробелы
  • +
  • ^[ 0-9]+$- любое число
  • +
+

Например, чтобы ограничить возможность ввода и сохранения текста латиницей, можно использовать регулярное выражение^[А-Яа-яЁё\s]+$

+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса

+

Сохранить значение в переменную процесса

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Склеить несколько значений

+

Склеить несколько значений

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли ввести число в Фильтр по полю многострочного ввода Да, можно.
Как можно ограничить количество ввода символов в поле? Для этого необходимо заполнить свойство "Максимальная длина
Как можно расширить поиск вфильтрациипо полю многострочного ввода из приложения Поиск можно расширить с помощью проставлениязнака "%"рядом с вводимым значением в поле фильтрации. Пример приведен в статье по фильтрации по текстовому полю
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_статичному_выпадающему_списку.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_статичному_выпадающему_списку.html new file mode 100644 index 00000000..21679114 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_статичному_выпадающему_списку.html @@ -0,0 +1,118 @@ + + + + + + + + Web-BPM Docs – Фильтр по статичному выпадающему списку + + + + + + +
+
+ + + +
+
+

Фильтр по статичному выпадающему списку

+

Назначение

+

Фильтр по статичному выпадающему списку - это видоизмененная компонента Статичный выпадающий список, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по статичному выпадающему списку находится в разделе Фильтры - Фильтр по статичному выпадающему списку.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Отчетный год
Значение по умолчанию (initial value) позволяет задать значение поля по умолчанию, которое будет отображаться на странице пример возможного значения: 2019
Список значений позволяет задать список значений, которые будут отображаться в выпадающем списке +
    +
  • надпись - позволяет задать наименование элемента в списке значений
  • +
  • значение - позволяет задать значение элемента, которое можно записать в базу данных
  • +
  • скрыть - позволяет регулировать видимость элемента в списке значений
надпись - “Отчетный год” значение-“2018”
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Склеить несколько значений

+

Склеить несколько значений

+

Сохранить значение в переменную процесса

+

Сохранить значение в переменную процесса

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной

+

Методические рекомендации по применению

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли в Фильтре по статичному выпадающему списку ввести значение в ручную? Нет. Фильтр по статичному выпадающему списку не подразумевает под собой ввод значений вручную.
Сколько значений для Фильтра по статичному выпадающему списку является оптимальным? К заданию значений в фильтре по статичному выпадающему списку, необходимо подходить внимательно, так как задание 2 вариантов, так и 20 вариантов для выбора будет не совсем корректным. Если значений менее 5, то советую использовать Фильтр по флагу, если же необходимо выбрать более 15 значений, то предлагаюлибо сократить их количество, либо предоставить пользователю текстовое поле для ввода своих данных.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_текстовому_полю.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_текстовому_полю.html new file mode 100644 index 00000000..9fd9d9ab --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_текстовому_полю.html @@ -0,0 +1,181 @@ + + + + + + + + Web-BPM Docs – Текстовое поле (фильтр) + + + + + + +
+
+ + + +
+
+

Текстовое поле (фильтр)

+

Назначение

+

Текстовое поле (фильтр) - это видоизмененная компонента Текст, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров, в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компонентыНабор фильтровв запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонентаКнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Текстовое поле (фильтр) находится в разделе Фильтры - Текстовое поле (фильтр).

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите название организации
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Наименование организации
Значение позволяет задать значение поля по умолчанию пример возможного значения: ООО “Форт”
Максимальная длина задаёт максимальное количество вводимых символов в поле пример возможного значения: 10
Оперировать немаскированными указывает системе порядок обработки символов маски при сохранении значения поля в базу данных +
    +
  • значение не определено- по умолчанию
  • +
  • сохранять без форматирования маской
  • +
  • сохранять с форматированием маской
Значение, отформатированное маской в поле ввода как “+7~(917)-922-33-44”, может быть сохранено в поле таблицы базы данных как “+7~(917)-922-33-44” (если флажок снят) или как “9179223344” (если флажок выставлен)
Маска, ограничивающая ввод позволяет задать маску, в соответствии с которой пользователь будет осуществлять ввод текста выставление маски не может обеспечить выполнение требования обязательности ввода, маска только внешне отфильтровывает и форматирует последовательность вводимых пользователем символов заранее заданным образом (например, ввод тел. номера “+ 7 (917) - 101 - 02 - 03” вместо “8917010203” или не допустит такого ввода “89170102АЯ”). Примеры масок: +
    +
  • A (буква, латинская, регистр не имеет значения) в маске - позволит ввести в поле одну любую букву любого алфавита
  • +
  • Б (буква, русская, в верхнем регистре) в маске - позволит ввести в поле одну любую букву русского алфавита
  • +
  • 9 (цифра) в маске - позволит ввести в поле одну любую цифру
  • +
  • * (символ) в маске - позволит ввести в поле одну любую цифру или букву
  • +
  • R (буква, латинская, в верхнем регистре) в маске - позволит ввести в поле одну римскую цифру
  • +
  • [ ] (внутри квадратных скобок) в маске - позволит ввести или опустить при вводе в поле один или несколько необязательных символов (букву, цифру), например 999[9]; под эту маску подходит как 123, так и 1234 Например, необходимо задать форматирование ввода маской для значения Й456QЬ. В данном случае маска может выглядеть следующим образом: Б999АА, где А - латинская буква.
Регистр позволяет задать вид регистра вводимого текста: В верхнем регистре - заглавные (прописные) буквы. В нижнем регистре - строчные (маленькие) буквы. Первая буква - заглавная
тип позволяет задать тип вводимого текста обычный текст. Пароль (заполнитель - звездочки). Электронная почта
Регулярное выражение или Pattern позволяет задать проверку вводимого текста с помощью регулярных выражений поля, для которых не выполняются условия заданных регулярных выражений, при сохранении записи подсвечиваются красным оттенком и операция отменяется. Некоторые типовые регулярные выражения: +
    +
  • \d [0-9] - одна цифра от 0 до 9
  • +
  • \D [^0-9] - любой символ кроме цифры
  • +
  • \s - пробел
  • +
  • [A-Z] - только заглавная латинская буква
  • +
  • [A-Za-z] - только латинская буква в любом регистре
  • +
  • [А-Яа-яЁё] - только русская буква в любом регистре
  • +
  • [A-Za-zА-Яа-яЁё] - любая буква русского и латинского алфавита
  • +
  • [0-9]{3} - три цифры
+
    +
  • [A-Za-z]{6,}- не менее шести латинских букв
  • +
  • [0-9]{,3} - не более трёх цифр
  • +
  • [0-9]{5,10} - от пяти до десяти цифр
  • +
  • ^[a-zA-Z]+$ - любое слово на латинице
  • +
  • ^[А-Яа-яЁё\s]+$ - любое слово на русском включая пробелы
  • +
  • ^[ 0-9]+$ - любое число
чтобы ограничить возможность ввода и сохранения текста латиницей, можно использовать регулярное выражение ^[А-Яа-яЁё\s]+$
Операция позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению
Фильтровать по… позволяет указать таблицу и колонку базы данных, к которой будет применяться фильтрация выбор таблицы и колонки базы данных в данном свойстве будет доступен только после заполнения свойства “Применить к…” у Набора фильтрации
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Cохранить значение в переменную процесса

+

сохранить значение в переменную процесса

+

Добавить строку к значению в текущем поле

+

Добавить строку к значению в текущем поле

+

Заполнить значением из переменной любого типа

+

Заполнить значением из переменной любого типа

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Склеить несколько значений

+

Склеить несколько значений

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+
+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
В каких случаях необходимо использовать Фильтр по текстовому полю, а в каких случаях Фильтр по числовому полю? В зависимости от типа значений, по которым происходит фильтрация определяется соответствующий тип Фильтра: если значения в колонке таблицы имеют строковый тип данных, то используется Фильтр по текстовому полю, если числовой - Фильтр по числовому полю.
Можно ли ввести число в Текстовое поле (фильтр)? Да, можно.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_числовому_полю.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_числовому_полю.html new file mode 100644 index 00000000..a39ed67f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтр_по_числовому_полю.html @@ -0,0 +1,132 @@ + + + + + + + + Web-BPM Docs – Фильтр по числовому полю + + + + + + +
+
+ + + +
+
+

Фильтр по числовому полю

+

Назначение

+

Фильтр по числовому полю - это видоизмененная компонента Числовое поле, дополненная функцией поиска в связанной с ней компоненте Таблица по введенному пользователем значению. Иерархически обязательно должна быть расположена внутри компоненты Набор фильтров,в качестве параметра содержит указание на колонку таблицы, по которой осуществляется поиск. В зависимости от настроек родительской компоненты Набор фильтров в запущенном приложении выполняет поиск либо только после нажатия соответствующей кнопки (компонента Кнопка для фильтрации), либо по мере ввода пользователем искомого значения (так называемый, “живой поиск”).

+

Компонента Фильтр по числовому полю находится в разделе Фильтры - Фильтр по числовому полю.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Год
Значение по умолчанию позволяет задать значение поля по умолчанию, которое будет отображаться на странице пример возможного значения: 100
Минимальное возможное значение позволяет задать минимально возможное значение числа, меньше которого пользователь ввести не сможет пример возможного значения: 0
Максимальное возможное значение позволяет задать максимально возможное значение числа, больше которого пользователь ввести не сможет пример возможного значения: 2999
Шаг увеличения значения позволяет задать шаг увеличения значения числа пример возможного значения: 1
Задать операцию фильтрации позволяет задать условие, по которому будет осуществляться фильтрация данных по введенному пользователем значению
Настроить колонки фильтрации позволяет указать таблицу и колонку базы данных, к которой будет применяться фильтрация Выбор таблицы и колонки базы данных в данном свойстве будет доступен только после заполнения свойства “Применить к…” у Набора фильтрации
+

Сохранить значение в переменную процесса

+

Сохранить значение в переменную процесса

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Включить вычисление математических операций

+

Включить вычисление математических операций

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли ввести текст в поле “Фильтр по числовому полю” Нет, нельзя.
В каких случаях необходимо использовать “Фильтр по числовому полю”? Фильтр по числовому полю используется в тех случаях, когда фильтруемые данные имеют числовой тип. При использовании данного фильтра у пользователя появится удобный ввод значения в поле Фильтр по числовому полю с помощью кнопок ,а не клавиатуры.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтры.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтры.html new file mode 100644 index 00000000..8c579448 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/filters/Фильтры.html @@ -0,0 +1,63 @@ + + + + + + + + Web-BPM Docs – Фильтры + + + + + + + +
+
+
+
+

© 2022 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/index.html new file mode 100644 index 00000000..7e177a5a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/index.html @@ -0,0 +1,79 @@ + + + + + + + + Web-BPM Docs – Поля ввода/вывода + + + + + + + +
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Адрес.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Адрес.html new file mode 100644 index 00000000..8473db3d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Адрес.html @@ -0,0 +1,290 @@ + + + + + + + + Web-BPM Docs – Адрес + + + + + + +
+
+ + + +
+
+

Адрес

+

Назначение

+

Адрес - это компонента, которая визуально выглядит как Поле ввода с подбором значения (Поиск), но по мере набора пользователем символов с клавиатуры подбирает, отображая возможные варианты значений адресов из федеральной адресной информационной системы, при этом функционируя уже как компонента Выпадающий список.

+

Варианты адресов и выбранный адрес отображаются как строка переменной длины, включающаяв себя наименование адресного параметра и его значение. Подбор вариантов адресов осуществляется по принципу вхождения набранного пользователем значения в результирующую строку полного адреса. Удобнее всего осуществлять подбор наименования с самого детального из доступных элементов адреса - улицы. Широта охвата компонентой адресных параметров представлена набором элементов, начиная от адресного элемента Субъект Российской Федерации и заканчивая адресным элементом Улица(для ФИАС)/Квартира(для ГАР). Для ФИАС адресные элементы, детализирующие местоположение точнее улицы (например, дом, корпус, помещение и т.п.) должны вводиться отдельными компонентами (например, Текстовое поле) со ссылками на предназначенные только для них колонки пользовательской базы данных.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Адрес может использоваться для:

+
    + +
  1. Для отображения/сохранения выбранного в компоненте значения из/в базу данных(в данном случае, функция компоненты Адрес. Сохранение значения должна быть включена)
  2. +
  3. Для использования без функциональности отображения/сохранения выбранного в компоненте значения из/в базу данных(в данном случае, функция компоненты Выпадающий список. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Адрес находится в разделе Компоненты - Поля - Адрес.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Вводите адрес в следующем порядке: населенный пункт -> город
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Адрес
Минимальное кол-во символов позволяет задать количество символов, после ввода которых пользователем, компонента начинает подбор и вывод вариантов, соответствующих уже введенной пользователем подстроке пример возможного значения: 3
Если отметка поставлена, то компоненте предписывается осуществлять поиск не только по актуальным вариантам адресов, но и по историческим версиям этих адресов. Если отметка снята, то компоненте предписывается осуществлять поиск только по актуальным вариантам адресов, игнорируя исторические версии этих адресов. Информация о том, какой версией является то или иное наименование адреса (актуальной или исторической) компонента берет из федеральной информационной адресной системы в режиме чтения как исходное данное, и не осуществляет присвоение или снятие этого признака своей активностью. +
    +
  • НЕ активно - подбор только среди актуальных версий адресов- значение по умолчанию
  • +
  • подбор среди актуальных и исторических версий адресов
Текст сообщения для строки результата поиска позволяет задать текст для сообщения (предупреждения), которое будет отображаться в случае, если по результатам поиска было найдено число совпадений, превышающее значение лимита по количеству возвращаемых строк в компоненте (настраивается в функции “ФИАС. Настройка - Количество строк”) пример возможного значения:Найдено более {limit} значений, уточните поиск - значение по умолчанию, где {limit} это указание значения параметра “Количество строк”
Прикрепить значение (Scroll Gravity) позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений +
    +
  • По умолчанию (DEFAULT) - выбранное значение отображается в порядке своего следования в списке доступных значений для выбора
  • +
  • По центру (CENTER) - выбранное значение отображается по центру в выпадающем списке доступных значений для выбора
  • +
  • В верхней части (TOP)- выбранное значение отображается в верхней части выпадающего списка доступных значений для выбора
  • +
  • В нижней части (BOTTOM) - выбранное значение отображается в нижней части выпадающего списка доступных значений для выбора
Не действительно при не активном адресе (Invalid if address is not active) позволяет визуально помечать поле как невалидное на странице, в случае если в него было подгружено неактуальное значение адреса
Css class if not satisfy данное свойство доступно для управления при активном значении свойства Invalid If Address Is Not Actual и позволяет задать CSS-класс, который будет применяться к полю ФИАС, в случае если в него было подгружено неактуальное значение адреса
Тип иерархии адреса (Hierarchy Type) позволяет задавать иерархию адреса. Для данного свойства есть два метода getHierarchyType возвращает текущую иерархию и метод setHierarchyType позволяет менять текущую иерархию. ADMINISTRATIVE - административная, MUNICIPAL - муниципальная
+

Свойство ФИАС. Настройка

+

Подгрузка данных

+

Источник подгрузки значений адресов конфигурируется в файле standalone.xml проекта в секции datasource jndi-name=“java:jboss/datasources/fias-ds” pool-name=“FIASDS” enabled=“true” use-java-context=“true”.

+

Настройка секции на источник данных происходит при инициации проекта техническим специалистом и используется аналитиком “как есть”. В составе компоненты настройка параметров подключения и подгрузки данных не осуществляется.

+

+

+

Предписывает компоненте при отображении вариантов отфильтровать адреса по указанной в этом параметре подстроке.

+

Используется как дополнительный предустановленный фильтр к подстроке, вводимой пользователем.

+

Пример возможной настройки:

+

В свойстве “Фильтр по умолчанию” зададим значение, например, Ленина (рис.1)

+

+

рис.1 Настройка свойства Фильтр по умолчанию

+

При отображении результатов поиска по значению, например, Казань, среди вариантов удовлетворяющих этому значению, для выбора будут доступны только те значения, которые содержат в себе слово “Ленина” (рис.2)

+

+

рис.2 Результаты поиска с установленным фильтром

+

Без установленного фильтра результаты аналогичного поиска выглядели бы следующим образом (рис.3):

+

+

рис.3 Результаты поиска без установленного фильтра

+

+

позволяет указать компоненте максимально допустимое количество вариантов для отображения в выпадающем списке при подборе пользователем интересующего значения

+

В случае, если по результатам поиска было найдено число совпадений, превышающее значение данного ограничения, пользователю будет отображаться сообщение (предупреждение) заданной в свойствеMessage Text For Result Set

+

+

+

позволяет задать минимальный уровень адреса, который ограничит область поиска адреса по вводимой пользователем подстроке “сверху” - то есть указанным элементом адреса и его нижележащими в иерархии дочерними элементами.

+

Доступные следующие варианты уровней:

+
    + +
  • Субъект РФ
  • +
  • Район субъекта
  • +
  • Город
  • +
  • Район
  • +
  • Населенный пункт
  • +
  • Улица
  • +
  • Дом
  • +
+

При указании “Минимального уровня поиска адреса” в значение “Субъект РФ” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Субъектам РФ и по всем Районам субъекта, и по всем Городам, и по всем Районам города, и по всем Населенным пунктам, и по всем Улицам.

+

Данную настройку могут ограничивать параметры:

+

“Фильтр по умолчанию” - тогда поиск уже не по всем регионам (и прочим элементам), а только по тем, которые содержат подстроку из фильтра

+

“Максимальный уровень адреса” - тогда поиск будет опускаться по иерархии только до того уровня детализации, который указан в параметре*“Максимальный уровень адреса”

+

+

+

позволяет задать максимальный уровень адреса, который ограничивает область поиска адреса по вводимой пользователем подстроке “снизу” - то есть указанным элементом адреса и его вышележащими в иерархии родительскими элементами.

+

Максимальный уровень должен быть больше минимального.

+

Доступные следующие варианты уровней:

+
    + +
  • Субъект РФ
  • +
  • Район субъекта
  • +
  • Город
  • +
  • Район
  • +
  • Населенный пункт
  • +
  • Улица
  • +
  • Дом - в данном случае значения результата поиска будут отображаться с домами
  • +
+

При указании “Максимального уровня поиска адреса” в значение “Улица” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Улицам во всех Населенных пунктах, всех Районов города, всехГородов, всех Районов субъекта и всех Субъектов РФ.

+

Данную настройку могут ограничивать параметры:

+

“Фильтр по умолчанию” - тогда поиск уже не по всем улицам (и прочим родительским элементам), а только по тем, которые содержат подстроку из фильтра

+

“Минимальный уровень адреса” - тогда поиск будет подниматься по иерархии только до того уровня детализации, который указан в параметре*“Минимальный уровень адреса”

+

+

+

указывает компоненте на стиль отображения строки адреса - наименование адресных элементов (таких как город, улица, район и т.п.) отображать в принятых сокращениях (г., ул.,р-н) или полностью.

+
    + +
  • + +

    отображать полные наименования адресных элементов (рис.2)- значение по умолчанию

    +
  • +
  • + +

    отображать сокращения адресных элементов (рис.1)

    +
  • +
+

+

рис.1 Отображение с сокращениями адресных элементов

+

+

рис.2 Отображение без сокращения адресных элементов

+

Свойство ФИАС. Сохранение значения

+

+

В случае, если значение в поле ФИАС необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющий строковый тип в базе данных. В случае, если значение поля ФИАС не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое является константой, определённой в логике приложения.

+

+

Свойство ГАР. Настройка

+

Параметры: * gar.enable - параметр отвечающий за необходимость подключения gar-client. По дефолту true, для отключения задать false. * gar.elastic.url.host - хост на котором развернут elasticsearch. * gar.elastic.password - пароль для аутентификации elasticsearch.

+

Дополнительные парметры: * gar.elastic.url.port - порт на котором развернут elasticsearch. По дефолту 9200 * gar.elastic.username - логин для аутентификации elasticsearch. По дефолту elastic

+

позволяет указать компоненте максимально допустимое количество вариантов для отображения в выпадающем списке при подборе пользователем интересующего значения

+

В случае, если по результатам поиска было найдено число совпадений, превышающее значение данного ограничения, пользователю будет отображаться сообщение (предупреждение) заданной в свойствеMessage Text For Result Set img.png

+

img.png

+

позволяет задать минимальный уровень адреса, который ограничит область поиска адреса по вводимой пользователем подстроке “сверху” - то есть указанным элементом адреса и его нижележащими в иерархии дочерними элементами.

+

Доступные следующие варианты уровней:

+
    + +
  • REGION(Субъект РФ)
  • +
  • DISTRICT(Административный/Муниципальный Район)
  • +
  • SETTLEMENT(Сельское/городское поселение)
  • +
  • CITY(Город)
  • +
  • TOWN(Населенный пункт)
  • +
  • PLANNING_STRUCTURE(Элемент планировочной структуры)
  • +
  • STREET(Элемент улично-дорожной сети)
  • +
  • HOUSE(Дом)
  • +
  • APARTMENT(Квартира)
  • +
+

При указании “Минимального уровня поиска адреса” в значение “Субъект РФ” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Субъектам РФ и по всем Районам субъекта, и по всем Городам, и по всем Районам города, и по всем Населенным пунктам, и по всем Улицам.

+

Данную настройку могут ограничивать параметры:

+

“Фильтр по умолчанию” - тогда поиск уже не по всем регионам (и прочим элементам), а только по тем, которые содержат подстроку из фильтра

+

“Максимальный уровень адреса” - тогда поиск будет опускаться по иерархии только до того уровня детализации, который указан в параметре*“Максимальный уровень адреса”

+

img_1.png

+

позволяет задать максимальный уровень адреса, который ограничивает область поиска адреса по вводимой пользователем подстроке “снизу” - то есть указанным элементом адреса и его вышележащими в иерархии родительскими элементами.

+

Максимальный уровень должен быть больше минимального.

+

Доступные следующие варианты уровней: - REGION(Субъект РФ) - DISTRICT(Административный/Муниципальный Район) - SETTLEMENT(Сельское/городское поселение) - CITY(Город) - TOWN(Населенный пункт) - PLANNING_STRUCTURE(Элемент планировочной структуры) - STREET(Элемент улично-дорожной сети) - HOUSE(Дом) - APARTMENT(Квартира)

+

При указании “Максимального уровня поиска адреса” в значение “STREET” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Улицам во всех Населенных пунктах, всех Районов города, всехГородов, всех Районов субъекта и всех Субъектов РФ. При указании “Максимального уровня поиска адреса” в значение “HOUSE” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Домам и Улицам во всех Населенных пунктах, всех Районов города, всехГородов, всех Районов субъекта и всех Субъектов РФ. При указании “Максимального уровня поиска адреса” в значение “APARTMENT” поиск по введенной пользователем в компоненту подстроке будет осуществляться по всем Квартирам, Домам и Улицам во всех Населенных пунктах, всех Районов города, всехГородов, всех Районов субъекта и всех Субъектов РФ.

+

Данную настройку могут ограничивать параметры:

+

“Фильтр по умолчанию” - тогда поиск уже не по всем улицам (и прочим родительским элементам), а только по тем, которые содержат подстроку из фильтра

+

“Минимальный уровень адреса” - тогда поиск будет подниматься по иерархии только до того уровня детализации, который указан в параметре*“Минимальный уровень адреса”

+

img_2.png

+

указывает компоненте на стиль отображения строки адреса - наименование адресных элементов (таких как город, улица, район и т.п.) отображать в принятых сокращениях (г., ул.,р-н) или полностью.

+
    + +
  • + +

    false -> отображать полные наименования адресных элементов - значение по умолчанию

    +
  • +
  • + +

    true -> отображать сокращения адресных элементов

    +
  • +
+

Свойство ГАР. Сохранение значения

+

+

В случае, если значение в поле ГАР необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющий строковый тип в базе данных. В случае, если значение поля ФИАС не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

заполнить значением из переменной любого типа

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса любого типа

+

сохранить значение в переменную процесса любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Значение какого типа возвращает компонента? Для ФИАС: В общем случае компонента возвращает значение тестового типа в виде длинного идентификатора (для записи в базу данных). Для использования значения выбранного адреса на экранной форме посредством компоненты Обработка событий, аналитику доступны несколько методов, которые возвращают разные значения. В условиях сравнения компоненты Обработка событий могут использоваться методы: Метод “Получить значение” возвращает идентификатор (так называемый GUID) выбранного адреса в строковом виде, например: {“version”:“1.0”,“aoid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”,“aoid_p1”:“c6d874d0-a7e8-46a1-b345-e2e1e9758c59”,“aoid_p2”:“625866a1-1278-4883-8dc5-ba34e0c463c4”,“aoid_p3”:“fc50add0-c3c7-4f07-99cd-8831166e6619”,“aoid_p4”:null,“aoid_p5”:null,“guid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”} Метод “Получить значение как текст” возвращает строку адреса в человекочитаемом виде в строковом виде, например “Респ Дагестан, р-н Буйнакский, с Верхнее Казанище, ул Ленина”. В секции Тогда компоненты Обработка событий могут использоваться методы: Метод"ФИАС.Задать значение" выставляет в компоненте адрес по идентификатору GUID ({“version”:“1.0”,“aoid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”,“aoid_p1”:“c6d874d0-a7e8-46a1-b345-e2e1e9758c59”,“aoid_p2”:“625866a1-1278-4883-8dc5-ba34e0c463c4”,“aoid_p3”:“fc50add0-c3c7-4f07-99cd-8831166e6619”,“aoid_p4”:null,“aoid_p5”:null,“guid”:“b026a0f9-9478-4c61-a55f-95b38cb099c1”}). Используется для полей - приемника информации об адресе (как показано на скриншоте). Метод “ФИАС. Получить значение” возвращает значение - идентификатор GUID, как из источника данных об адресе для последующей вставки в другое поле ФИАС. Метод “ФИАС. Получить значение"возвращает строку адреса в человекочитаемом виде в строковом виде,как из источника данных об адресе для последующей вставки в другое читаемое тестовое поле (например, Компонент Текстовое поле). Для ГАР: {“hierarchyId”:”{"indexId":"1415865","hierarchy":"MUNICIPAL","indexStructureType":"ADDRESS_OBJECT","withHouse":false}",“address”:“Автодорога Ад Москва-Уфа-Челябинск 1016 км 435 м”,“level”:6,“date”:“20000808”,“actual”:false,“okato”:“36228824000”,“oktmo”:“36628424”,“aoGUID=‘97e5e5dc-f63a-4c5f-bdbf-61d608e27895’”,“addressLevels”:{“regionName”:null,“regionCode”:null,“areaName”:null,“areaCode”:null,“cityName”:null,“cityCode”:null,“placeName”:“Ад Москва-Уфа-Челябинск 1016 км 435 м”,“placeCode”:null,“planName”:null,“planCode”:null,“streetName”:null,“streetCode”:null,“houseNumber”:null,“apartmentNumber”:null}}
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство ФИАС. Сохранение значения? Да. В случае, если функция “ФИАС. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Время.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Время.html new file mode 100644 index 00000000..10dfdb55 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Время.html @@ -0,0 +1,142 @@ + + + + + + + + Web-BPM Docs – Время + + + + + + +
+
+ + + +
+
+

Время

+

Назначение

+

Время - это компонента, которая используется для ввода или отображения времени.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Время может использоваться для:

+
    + +
  1. Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Дата. Сохранение значения должна быть включена)
  2. +
  3. Для отображения значения, которое было введен пользователем приложения или является константой, определённой в логике приложения (в данном случае, функция компоненты Дата. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Ввести значение
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Время
Значение позволяет задать значение поля по умолчанию пример возможного значения: 22:00:00
Минимальное время позволяет задать минимально возможное значение времени (часы, минуты и секунды), меньше которого пользователь ввести не сможет пример возможного значения: 08:00:01
Максимальное время позволяет задать максимально возможное значение времени(часы, минуты и секунды), больше которого пользователь ввести не сможет 18:00:01
+

Свойство Время. Сохранение значения

+

+

В случае, если значение в поле Время необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющий тип в базе данных - Даты и времени (DATETIME, DATE и TIMESTAMP). В случае, если значение поля Время не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое было введено пользователем приложения или является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли вносить данные в поле Время вручную? Да, ввод значения предусмотрен как с клавиатуры, так и выбор значения по значку в виде времени.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Время. Сохранение значения? Да. В случае, если функция “Время. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
Обязательно при ручном вводе значения в поле Время указывать значение с разделителем в виде двоеточия, т.е. 11:11:11? Нет, необязательно указывать разделитель между числами. Введя значение 111111 и убрав фокус с поля оно автоматически отформатируется к виду 11:11:11.
Обязательно при ручном вводе значения в поле Время указывать полное значение времени, т.е. часы, минуты и секунды? Нет, необязательно. Но в таком случае те части значения, которые не были указаны, будут автоматически проставлены как 00, т.е. если ввести только 11, то убрав фокус с поля значение преобразуется в 11:00:00.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Выпадающий_список.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Выпадающий_список.html new file mode 100644 index 00000000..6900046b --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Выпадающий_список.html @@ -0,0 +1,223 @@ + + + + + + + + Web-BPM Docs – Выпадающий список + + + + + + +
+
+ + + +
+
+

Выпадающий список

+

Назначение

+

Выпадающий список - это компонента, которая используется для выбора пользователем одного значения из выпадающего списка значений, источником подгрузки данных для которого служит таблица (или представление) базы данных.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Выпадающий список может использоваться для:

+
    + +
  1. Для сохранения выбранного значения из списка доступных в базу данных и отображения значения из базы данных(в данном случае, функция компоненты Выпадающий список. Сохранение значения должна быть включена)
  2. +
  3. Для отображения значения из базы данных являющегося константой, определённой в логике приложения без сохранения выбранного значения пользователем (в данном случае, функция компоненты Выпадающий список. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке).
  4. +
+

Компонента Выпадающий список находится в разделе Компоненты - Поля - Выпадающий список.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента. пример возможного значения: Выберите район
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Район
Зависит от (parentControl) позволяет указать объект (родителя), например Выпадающий список, по идентификатору которого будут отображаться сведения в текущем зависимом элементе
Значение позволяет задать значение поля по умолчанию. При указании значения, компонентом будет осуществляться поиск соответствия между этим значением и содержимым колонки, указанной в параметре “Возвращать дополнительно из”. После успешного сопоставления пользователю будет отображаться значение из колонки, указанной в параметре “Показывать пользователю”. пример возможного значения: В свойстве компоненты “Возвращать дополнительно из” функции “Подгрузка данных” указана колонка базы данных, содержащее в себе значение кода записи. При открытии страницы с Выпадающим списком по умолчанию, при отсутствии иного значения подгруженного из базы данных (через функцию Выпадающийсписок. Сохранение значения), в него автоматически будет выставлено значение из таблицы базы данных с кодом НУ и отображаться значение из колонки “Показывать пользователю”, в данном случае это Наименование статуса (name)
Прикрепить значение (Scroll Gravity) позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений +
    +
  • По умолчанию (DEFAULT) - выбранное значение отображается в порядке своего следования в списке доступных значений для выбора
  • +
  • По центру (CENTER) - выбранное значение отображается по центру в выпадающем списке доступных значений для выбора
  • +
  • В верхней части (TOP)- выбранное значение отображается в верхней части выпадающего списка доступных значений для выбора
  • +
  • В нижней части (BOTTOM) - выбранное значение отображается в нижней части выпадающего списка доступных значений для выбора
Исключить условия графа данное свойство позволяет подгружать для отображения значения в поле минуя условия (ограничения), заданные в Графе сущностей компоненты +
    +
  • Не активно - в данном состоянии, при подгрузке значений отсекаются значения не соответствующие условиям, заданным в Графе сущностей компоненты
  • +
  • Активно - в данном состоянии, при подгрузке значений допускается отображение значений, не соответствующих условиям, заданным в Графе сущностей компоненты, но без возможности их повторного выбора в выпадающем списке
Помечать невалидным (Mark invalid if not Satisfy) данное свойство доступно для управления при активации значении свойства Exclude Graph Conditions и позволяет визуально помечать поле как невалидное на странице, в случае если в него было подгружено значение, не соответствующие условиям Графа сущностей элемента +
    +
  • Не активно - в данном значении, поле не помечается на странице как невалидное и отображается стандартным образом
  • +
  • Активно - в данном значении, убрав фокус с поля, оно помечается на странице как невалидное
Css class if not Satisfy данное свойство доступно для управления при активном значении свойства Exclude Graph Conditions и позволяет задать CSS-класс, который будет применяться, в случае если в поле было подгружено значение, не соответствующие условиям Графа сущностей элемента
Tooltip if not Satisfy позволяет отображать всплывающую подсказку,в случае если в поле было подгружено значение, не соответствующие условиям Графа сущностей элемента. Данное свойство доступно для управления при: активном значении свойства Exclude Graph Conditions и заданному значению в поле Css Class If Not Satisfy пример возможного значения: not_valid
+

Свойство компоненты: Выпадающий список. Подгрузка данных

+

+

позволяет задать источник подгрузки/сохранения данных в компоненту из/в объекта базы данных (таблицы или представления) с указанием следующих дополнительных настроек:

+
    + +
  • Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей. Является обязательным к заполнению и настройке.
  • +
  • Возвращать значение дополнительно из - по умолчанию компонента возвращает идентификатор записи выбранной из справочника значений. Настройка данного параметра позволяет указать компоненте, какое значение необходимо дополнительно считать и вернуть, кроме значения идентификатора выбранной пользователем записи.
  • +
  • Тип отображения (Display Type) - это свойство,позволяющее выбрать тип для отображения значения в поле: +
      + +
    • Из одной колонки - значение по умолчанию
    • +
    • Из нескольких колонок - позволяет указать перечень колонок, значения которых будут склеиваться в одну строку при отображении на странице с определяемым разделителем значений (точка, запятая, пробел и другие)
    • +
    +
  • +
  • + +

    Разделитель - символ или пробел, который будет разделять между собой значения из разных колонок таблиц(ы) приводимых в одну строку (доступно для настройки при Тип колонки - Из нескольких колонок)

    +
  • +
  • Порядок сортировки (Sort Order) - позволяет задать порядок сортировки отображаемых значений в списке для выбора, принимает значения: +
      + +
    • + +

      по возрастанию - значения будут сортироваться от меньшего к большему

      +
    • +
    • + +

      по убыванию - значения будут сортироваться от большего к меньшему

      +
    • +
    +
  • +
  • + +

    Показывать пользователю - позволяет задать элемент базы данных, значение которого будет отображено пользователю в Выпадающем списке(доступно для настройки при Тип колонки - Из одной колонки)

    +
  • +
  • + +

    Связаны по - позволяет указать колонку компоненты указанной в свойстве “Зависит от”, обеспечивающую связь между родительской и текущей компонентами

    +
  • +
  • + +

    Активировать фильтрацию по - позволяет задать колонку, по которой можно будет динамически активировать фильтр при использовании метода “Задать фильтр” (Set_Filter) в компоненте Обработка Событий в отношении настраиваемой компоненты

    +
  • +
  • + +

    Datasource Jndi Name - позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента. Значение данного свойства может быть задано следующим образом:java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файлеstandalone.xml(аналогично тому, как указывается, например, подключение к базе данных безопасности) (рис.1)

    +
  • +
+

+

рис.1 Настройка файла standalone.xml

+

В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных). - Сортировать по - позволяет задать элемент базы данных, по значению которого будет производиться сортировка

+

Пример возможной настройки:

+

+

Свойство Выпадающий список. Сохранение значения

+

+

В случае, если значение в поле Выпадающий список необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение.В случае, если значение поля Выпадающий список не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Статичный выпадающий список от компоненты Выпадающий список? Компонента Статичный выпадающий списокиспользуются для выбора значений, которые указываются аналитиком вручную при настройке компоненты,Выпадающий списокиспользуется для выбора значений,которые подгружаются из таблицы базы данных.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Выпадающий список. Сохранение значения? Да. В случае, если функция “Выпадающий список. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
В выпадающем списке есть возможность ручного ввода символов для поиска значения? Да, при вводе символов в поле, компонента фильтрует содержимое в соответствии с введенным пользователем значением.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Дата.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Дата.html new file mode 100644 index 00000000..f264258c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Дата.html @@ -0,0 +1,191 @@ + + + + + + + + Web-BPM Docs – Дата + + + + + + +
+
+ + + +
+
+

Дата

+

Назначение

+

Дата - это компонента, которая используетсядля ввода или отображения даты или даты-времени.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Дата может использоваться для:

+
    + +
  1. Для сохранения информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Дата. Сохранение значения должна быть включена)
  2. +
  3. Для отображения значения, которое был введено пользователем приложения или является константой, определённой в логике приложения (в данном случае, функция компоненты Дата. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке).
  4. +
+

Компонента Дата находится в разделе Компоненты - Поля - Дата.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Формат позволяет задать формат для вывода +
    +
  • Только дата (в данном случае, значение в поле будет отображаться без времени)
  • +
  • Дата со временем
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Год
Значение позволяет задать статичное значение поля по умолчанию для отображения на странице, состоящее из двух частей: значения даты и значения времени (часы, минуты и секунды) (значение времени будет отображаться на пользовательской странице при условии, что в свойстве элемента Формат указано Дата со временем) пример возможного значения: 23.03.2021 11:11:11
Тип минимальной даты позволяет выбрать тип настройки для указания минимально допустимого значения даты в поле +
    +
  • Статичное (STATIC) - при выборе данного типа отображается свойство для заполненияМинимальная дата
  • +
  • Текущая (CURRENT) - при выборе данного типа в качестве минимально допустимого значения для ввода будет текущая дата хоста, на котором работает браузер пользователя
  • +
  • Другой объект (OTHER_OBJECT) - при выборе данного типа отображается свойство Объект для минимальной даты (Min Date Object)
Тип максимальной даты позволяет выбрать тип настройки для указания максимально допустимого значения даты в поле +
    +
  • Статичное (STATIC) - при выборе данного типа отображается свойство для заполненияМаксимальная дата
  • +
  • Текущая (CURRENT) - при выборе данного типа в качестве минимально допустимого значения для ввода будеттекущая дата хоста, на котором работает браузер пользователя
  • +
  • Другой объект (OTHER_OBJECT) - при выборе данного типа отображается свойство Объект для максимальной даты (Max Date Object)
Минимальная дата позволяет задать статичное минимально возможное значение даты, меньше которого пользователь ввести не сможет. Указание данного значения доступно, если в свойстве Тип для минимального значения (Min Date Type) выбрано - Статичное (STATIC). Минимальное значение состоит из двух частей: значения даты и значения времени (часы, минуты и секунды)(значение времени будет учитываться при условии, в свойстве элементаФормат указано Дата со временем) пример возможного значения: 23.03.2021 11:11:11
Обьект минимальной даты позволяет указать объект (компоненту) с типом Дата на настраиваемой странице, значение которой будет выступать в качестве минимально допустимого значения даты для ввода пользователем. Указание данного значения доступно, если в свойстве Тип для минимального значения (Min Date Type) выбрано -Другой объект (OTHER_OBJECT)
Максимальная дата позволяет задать статичное максимально возможное значение даты, больше которого пользователь ввести не сможет. Указание данного значения доступно, если в свойстве Тип для максимального значения (Max Date Type) выбрано - Статичное (STATIC). Максимальное значение состоит из двух частей: значения даты и значения времени (часы, минуты и секунды)(значение времени будет учитываться при условии, в свойстве элементаФормат указано Дата со временем) пример возможного значения: 31.12.2017 11:11:11
Обьект максимальной даты позволяет указать объект (компоненту) с типом Дата на настраиваемой странице, значение которой будет выступать в качестве максимально допустимого значения даты для ввода пользователем. Указание данного значения доступно, если в свойстве Тип для максимального значения (Max Date Type)выбрано -Другой объект (OTHER_OBJECT)
В виде календаря позволяет задать возможность отображения элемента на странице в виде развернутого календаря Принимает два значения: +
    +
  • Активно - элемент на странице будет отображаться в виде календаря с возможностью выбора даты
  • +
  • Не активно - элемент на странице будет отображаться в виде поля для ручного ввода значения или выбора значения из календаря
+

Свойство Дата. Сохранение значения

+

+

В случае, если значение в поле Дата необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющие тип в базе данных - Даты и времени (DATETIME, DATE и TIMESTAMP).В случае, если значение поля Дата не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое было введено пользователем приложения или является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить_роли_текущего_пользователя

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Сместить дату из поля на период вперед или назад

+

Определить текущую дату и сместить её вперед или назад на заданный период

+

Она относится к той группе функций, чья функциональность применяется и может быть полезной не сразу после добавления в исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется несколько новых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ в исходном компоненте Дата выбрано(изменилось) значение, ТО в другую компоненту Дата вывести значение из исходного, но на заранее заданный период (или годы, или месяцы, или дни) в будущее или прошлое’. Функция имеет параметры, позволяющие аналитику задать направление и величину сдвига во времени.

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Можно ли проставлять текущую серверную дату при открытии страницы с данным полем? Да, можно. Для этого необходимо добавить соответствующую функцию (Определить текущую дату и сместить её вперед или назад на заданный период) в функции поля. Необходимо отметить, что для проставления текущей даты не нужно заполнять свойства скрипта.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Дата. Сохранение значения? Да. В случае, если функция “Дата. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
Можно ли вносить данные в поле Дата вручную? Да,ввод значения предусмотрен как с клавиатуры, так и выбор значения по значку в виде календаря.
Обязательно при ручном вводе значения в поле Дата указывать значение с разделителем в виде точки, т.е. 01.01.2021? Нет, необязательно указывать разделитель между числами. Введя значение 01012021 и убрав фокус с поля оно автоматически отформатируется к виду 01.01.2021.
Можно ли проставлять дату со смещением при открытии страницы с данным полем? Да,можно. Для этого необходимо добавить соответствующий скрипт (Определить текущую дату и сместить её вперед или назад на заданный период) в функции поля. В данном случае, необходимо заполнить свойства функции и указать необходимый диапазон смещения от текущей даты.
Какое значение будет проставлено в поле Дата если ввести толькоодну часть значения, например, день? Если ввести только значение дня в поле Дата, то убрав фокус с поля оставшаяся часть месяц и год будут проставлены в соответствии с текущим месяцем и годом на сервере приложения.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Денежное_поле.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Денежное_поле.html new file mode 100644 index 00000000..65accef6 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Денежное_поле.html @@ -0,0 +1,174 @@ + + + + + + + + Web-BPM Docs – Денежное поле + + + + + + +
+
+ + + +
+
+

Денежное поле

+

Назначение

+

Денежное поле - это компонента, которая используется для ввода и отображения денежного значенияна форме страницы.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Денежное поле может использоваться для:

+
    + +
  1. Для сохранения введеннойинформации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Денежное поле. Сохранение значения должна быть включена) (рис.2)
  2. +
  3. Для отображения числа, которые было введено пользователем приложения или является константой, определённой в логике приложения(в данном случае, функция компоненты Денежное поле. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке) (рис.3)
  4. +
+

Компонента Денежное поле находится в разделе Компоненты - Поля - Денежное поле.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите сумму
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Введите сумму
Значение по умолчанию позволяет задать значение поля по умолчанию, которое будет отображаться на странице пример возможного значения: 100
Минимальное возможное значение позволяет задать минимально возможное значение числа, меньше которого пользователь ввести не сможет пример возможного значения: 0
Максимальное возможное значение позволяет задать максимально возможное значение числа, больше которого пользователь ввести не сможет пример возможного значения: 999999
Шаг увеличения позволяет задать шаг увеличения значения числа пример возможного значения: 1
Количество знаков после запятой позволяет задать количество знаков после запятой пример возможного значения: 2
Префикс позволяет задать префикс, который будет отображаться перед суммой пример возможного значения: руб
Разделитель позволяет задать разделитель целой и дробной части суммы пример возможного значения:,
Разделитель тысяч позволяет задать разделитель тысяч пример возможного значения: .
+

Свойство Текстового поля (с возможностью сохранения): Сохранение значения

+

Указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Подгрузка данных по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации скриптов (

+

- скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Включить вычисление математических операций

+

Включить вычисление математических операций

+

Включить конвертирование значений

+

TODO desribe function

+

Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет осуществить преобразование значения в исходном компоненте из текущего типа (чаще всего, в компоненте Поле ввода с подбором значенияиз типа данных ANY) в целочисленный тип данных.

+

Она относится к той группе функций, чья функциональность применяетсяи может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется нескольконовых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ в компоненте Поле ввода с подбором значения выбрано (изменилось) значение, ТО в компоненту числовое поле вывести идентификатор(первичный ключ) этого значения’

+

+

Рис.1 Активация функции на компоненте Поле ввода с подбором значения

+

+

Рис.2 Числовое поле, в которое будем записывать идентификатор значения из компонента Поле ввода с подбором значения

+

+

Рис. 3 Пример алгоритма заполнения числового поля идентификатором значения, выбранного в поле с Постановщиком задачи, при условии расширения функциональности исходной компоненты Поле ввода с подбором значения функцией Сконвертировать значение в целочисленный тип; (появился новый метод Сконвертировать в число; у исходной компоненты)

+

+

Рис.4 Пример невозможности построения алгоритма из-за отсутствия необходимого метода Сконвертировать в число, вследствие удаления функции Сконвертировать значение в целочисленный тип из исходной компоненты Поле ввода с подбором значения Постановщик задачи (пропал метод Сконвертировать в число у исходной компоненты)

+

После запуска web-приложения (in runtime mode) выбираем в компоненте Список с поиском одно из значений (например, постановщика задачи с фамилией Дякин), после этого значение идентификатора (первичный ключ сотрудника по фамилии Дякин в справочнике) переносится в поле"Идентификатор постановщика", а в консоли браузера можно наблюдать сообщение о срабатывании компоненты Обработка событий, которое показывает выполненное функцией действие.

+

+

Рис 5.Выбираем Постановщика задачи

+

+

Рис.6 Функция заполняет числовое поле идентификатором

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Денежное поле от компоненты Числовое поле? Компонента Денежное полеиспользуются для отображения денежных значений на странице, числовое полеиспользуется для отображения и ввода чисел.
Все ли свойства компоненты обязательны для заполнения? Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Многострочное_поле_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Многострочное_поле_на_страницу_.html new file mode 100644 index 00000000..4d37f63e --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Многострочное_поле_на_страницу_.html @@ -0,0 +1,88 @@ + + + + + + + + Web-BPM Docs – Как добавить Многострочное поле на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить “Многострочное поле” на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице добавления департамента поле *Многострочного ввода (с возможностью сохранения)*с наименованием “Описание записи справочника” и следующими свойствами:

+
    + +
  • имя поля - Описание записи справочника
  • +
  • к полю должен быть применен CSS-класc: font-mini
  • +
  • поле должно иметь подсказку - Описание записи справочника
  • +
  • поле должно иметь надпись - Марка и номер авто принадлежащая организации
  • +
  • поле должно иметь ограничение в 20 символов
  • +
  • поле должно иметь маску ввода: A999AA AAAAAAAAAAAA
  • +
  • сохранение введенного значения должно осуществляться в базу данныхв таблицу org_charts в колонку avto_number
  • +
+

Решение задачи:

+

Предполагается, что страница с добавлением нового департамента уже создана бизнес-аналитиком. Для добавления на страницу и настройки компоненты Поле многострочного ввода (с возможностью сохранения) необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Многострочное поле из блока Компоненты - Поля - Многострочное поле (рис.1)
  • +
  • произвести настройки свойств согласно условиям задачи (рис.2). В этом случае стоит обратить внимание особенное внимание на свойство “Маска ограничивающая ввод”.
  • +
+

+ +
+
рис.1. Добавление компоненты Поле многострочного ввода на страницу   
+
+ +

+ +
+
рис.1. Добавление компоненты Поле многострочного вводана страницу             
+рис.2. Настройка компоненты Поле многострочного вводапо условию задачи
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.3).

+

+ +
+
 рис. 3. Визуальное отображение выполнения условий задачи
+
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Переключатель_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Переключатель_на_страницу_.html new file mode 100644 index 00000000..7e5f967c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Переключатель_на_страницу_.html @@ -0,0 +1,88 @@ + + + + + + + + Web-BPM Docs – Как добавить Переключатель на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить Переключатель на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице переключатель и будет иметь следующие настройки:

+
    + +
  • надпись поля - Должность
  • +
  • список значений из таблицы - employees
  • +
  • колонка сортировки - колонка position в таблице employees
  • +
  • колонка наименования - колонка position в таблице employees
  • +
  • колонка с кодом - колонка position в таблице employees
  • +
  • порядок сортировки - по возрастанию
  • +
+

Решение задачи:

+

Предполагается, что страница уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимаятаблица ***employees***. Для добавления на страницу и настройки текстового поля необходимо сделать следующее:

+
    + +
  • добавить внутрь **Формы**компоненту переключатель с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление переключателя на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Текстовое_поле_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Текстовое_поле_на_страницу_.html new file mode 100644 index 00000000..30c2e978 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_Текстовое_поле_на_страницу_.html @@ -0,0 +1,109 @@ + + + + + + + + Web-BPM Docs – Как добавить Текстовое поле на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить Текстовое поле на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице добавления нового департамента текстовое поле, значение которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • надпись поля - Название департамента
  • +
  • обязательно для заполнения пользователем приложения
  • +
  • ввод текста в поле должен осуществляться с использованием типа регистра -Первая буква-заглавная, то есть каждое новое слово в поле будет начинаться с заглавной буквы
  • +
  • поле должно иметь подсказку -Введите название департамента
  • +
  • к полю должны быть применены CSS-классы: фиксированный заголовок (fixed-label), размерность поля на странице должна быть максимальная (width-full)
  • +
  • сохранение введенного значения должно осуществляться в базу данных в таблицу org_unit колонку Департамент (name)
  • +
+

Решение задачи:

+

Предполагается, что страница с добавлением нового департамента уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая, в данном случае, таблица org_unit, в которую будет сохраняться введенное значение (наименование департамента). Для добавления на страницу и настройки текстового поля необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Текстовое поле (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.2)
  • +
+

+ +
+
рис.1. Добавление текстового поля на страницу            
+рис.2. Настройка текстового поля по условию задачи
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены, как, например, текстовое поле обязательно для заполнения (рис.3) и каждое новое слово вводимого значения в поле автоматически** начинается с Заглавной буквы** (рис.4).

+


+

+ +
+
рис.3. Визуальное отображение условия обязательности поля       
+рис.4. Визуальное отображение выполнения условия: тип регистра Первая буква - заглавная  
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_денежное_поле_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_денежное_поле_на_страницу_.html new file mode 100644 index 00000000..89282a60 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_денежное_поле_на_страницу_.html @@ -0,0 +1,89 @@ + + + + + + + + Web-BPM Docs – Как добавить денежное поле на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить денежное поле на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Денежное поле (с возможностью сохранения) - стоимость услуги, значение которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • надпись поля - Стоимость услуги
  • +
  • поле должно иметь всплывающую подсказку - Введите стоимость услуги в рублях
  • +
  • минимальное возможное значение должно быть равно 0
  • +
  • максимальное возможное значение должно быть равно 999999
  • +
  • шаг увеличения значения должен быть равно 10
  • +
  • количество знаков после запятой должно быть равно2
  • +
  • префикс значение должно быть - руб
  • +
  • сохранение введенного значения должно осуществляться в базу данныхв таблицу Список услуг (service) колонку Стоимость (price)
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница Карточка услуги уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая, в данном случае, ***таблица Список услуг (service)***, в которую будет сохраняться введенное значение (стоимость услуги). Для добавления на страницу и настройки денежного поля необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Денежное поле с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление денежного поля на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_компоненту_Текст_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_компоненту_Текст_на_страницу_.html new file mode 100644 index 00000000..7085e405 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_компоненту_Текст_на_страницу_.html @@ -0,0 +1,99 @@ + + + + + + + + Web-BPM Docs – Как добавить компоненту Текст на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить компоненту Текст на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице добавления нового департамента элемент Текст, который будет иметь следующие настройки:

+
    + +
  • надпись поля - Создание департамента
  • +
  • поле должно иметь подсказку - Новая карточка департамента
  • +
  • к полю должны быть применены CSS-классы: заголовок (title)
  • +
+

Решение задачи:

+

Предполагается, что страница с добавлением нового департамента уже создана бизнес-аналитиком. Для добавления на страницу и настройки компоненты Текст необходимо сделать следующее:

+
    + +
  • добавить внутрь Вертикального контейнера компоненту Текст( рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.2)
  • +
+

+ +
+
рис.1. Добавление компоненты Текст на страницу                     
+рис.2. Настройка компоненты Текст по условию задачи
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены, как, например, текст виден пользователю и имеет всплывающую подсказку (рис.3).

+

+ +
+
  рис.3. Визуальное отображение выполнения условий задачи
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_несколько_полей_Дата_на_страницу_с_автоматическим_заполнением_последнего_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_несколько_полей_Дата_на_страницу_с_автоматическим_заполнением_последнего_.html new file mode 100644 index 00000000..69b1bc51 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_несколько_полей_Дата_на_страницу_с_автоматическим_заполнением_последнего_.html @@ -0,0 +1,116 @@ + + + + + + + + Web-BPM Docs – Как добавить несколько полей Дата на страницу с автоматическим заполнением последнего? + + + + + + +
+
+ + + +
+
+

Как добавить несколько полей Дата на страницу с автоматическим заполнением последнего?

+

Постановка задачи: необходимо реализовать на пользовательской странице два элемента Дата (с возможность сохранения), значение которых будут сохраняться в базу данных и будут иметь следующие настройки:

+

Поле Дата №1 (задаем условия так, чтобы определялась текущая дата):

+
    + +
  • надпись - “С”
  • +
  • минимальная дата - 01.11.2017
  • +
  • в свойства поля необходимо добавить функцию “Определить текущую дату и сместить её вперед или назад на заданный период”, которая имеет условия: +
      + +
    • чекбокс “В будущее”
    • +
    +
  • +
+

Поле Дата №2 (задаем условия таким образом, чтобы дата смещалась на 2 года от текущей):

+
    + +
  • надпись - “По”
  • +
  • в свойства поля необходимо добавить функцию “Определить текущую дату и сместить её вперед или назад на заданный период”, которая имеет условия: +
      + +
    • чекбокс “В будущее” (истина)
    • +
    • количество лет - 2
    • +
    +
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница Карточка задачи уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая таблица, в которую будет сохраняться введенноезначение. Для добавления на страницу и настройки полей Дата (с возможностью сохранения) необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы две компоненты* Дата,* расположенного в блоке Компоненты - Поля - Дата (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.2, рис.3)
  • +
+

+ +
+
  рис.1. Добавление компоненты Дата на страницу                            
+  рис. 2 и рис.3 Настройка компоненты
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.4)
+

+

+ +
+
 рис.4. Визуальное отображение выполнения условий задачи
+
+ +


+

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_поле_Время_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_поле_Время_на_страницу_.html new file mode 100644 index 00000000..09cb5762 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_поле_Время_на_страницу_.html @@ -0,0 +1,95 @@ + + + + + + + + Web-BPM Docs – Как добавить поле Время на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить поле Время на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Время (с возможность сохранения), значение которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • всплывающая подсказка - Пожалуйста введите время
  • +
  • подсказка - Время
  • +
  • минимальное время - 08:00
  • +
  • максимальное время - 22:00
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница Карточка задачи уже создана бизнес-аналитиком, где имеется*основная компонента Форма, в структуру сущностей которой включена необходимая таблица, куда будет сохраняться введенноезначение. Для добавления на страницу и настройки поля Время необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Время с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.2)
  • +
+

+ +
+
   рис.1. Добавление компоненты Время на страницу     
+   рис.2. Настройка компоненты Время
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.3)
+

+

+ +
+
   рис.3. Визуальное отображение выполнения условий задачи 
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_поле_Дата_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_поле_Дата_на_страницу_.html new file mode 100644 index 00000000..8f9402c9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_поле_Дата_на_страницу_.html @@ -0,0 +1,93 @@ + + + + + + + + Web-BPM Docs – Как добавить поле Дата на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить поле Дата на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Дата (с возможность сохранения), значение которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • надпись - Дата создания департамента
  • +
  • всплывающая подсказка - Заполняется датой перехода в систему
  • +
  • минимальная дата - 01.11.2017
  • +
  • формат - Только дата
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница Карточка задачи уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая таблица, в которую будет сохраняться введенноезначение. Для добавления на страницу и настройки поля Дата необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Дата с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.2)
  • +
+

+ +
+
рис.1. Добавление компоненты Дата на страницу            
+рис.2. Настройка компоненты Дата
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.3)

+

рис.3. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_список_с_поиском_для_выбора_одного_значения_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_список_с_поиском_для_выбора_одного_значения_на_страницу_.html new file mode 100644 index 00000000..f540ec89 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_список_с_поиском_для_выбора_одного_значения_на_страницу_.html @@ -0,0 +1,239 @@ + + + + + + + + Web-BPM Docs – Как добавить список с поиском для выбора одного значения на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить список с поиском для выбора одного значения на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Создания проекта элемент Администратор проекта (Список с поиском для выбора одного значения), выбранное значение которого будет сохраняться в базу данных и вложенные компоненты которого будут иметь следующие настройки:

+

Список с поиском (с возможностью сохранения):

+
    + +
  • надпись поля - Администратор
  • +
  • недоступно для управления пользователем
  • +
  • обязательно для заполнения пользователем приложения
  • +
  • должно иметь подсказку - Выберите сотрудника
  • +
  • подлежит сохранению в базу данных
  • +
  • значение поля должно сохраняться в таблицу Проекты (projects) в колонку Администратор проекта (admin_employee_id)
  • +
  • в Граф сущностей должна быть добавлена таблица Список сотрудников(employees)
  • +
  • колонка должна быть составной и включать в себя поля Фамилия, Имя, Отчество, электронный адрес из таблицы Список сотрудников (employees). Разделителем должен быть пробел. Например, Петров Иван Алексеевич (petrov@cg.ru)
  • +
+

Кнопка выбора (вызова диалога):

+
    + +
  • надпись на кнопке - +
  • +
+

Группа фильтров должна включать в себя фильтры, расположенные в двух вертикальных контейнерах параллельных друг другу:

+
    + +
  • Фильтр по текстовому полю (по фамилии сотрудника) +
      + +
    • надпись поля - Фамилия
    • +
    • подсказка - Укажите фамилию
    • +
    • фильтровать по… - таблице Список сотрудников и колонке Фамилия (name_last)
    • +
    • операция фильтрации - Содержит всю подстроку
    • +
    +
  • +
  • Фильтр по текстовому полю (по имени сотрудника) +
      + +
    • надпись поля - Имя
    • +
    • подсказка - Укажите имя
    • +
    • фильтровать по… - таблице Список сотрудников иколонке Имя(name_first)
    • +
    • операция фильтрации - Содержит всю подстроку
    • +
    +
  • +
  • Фильтр по текстовому полю (по отчеству сотрудника) +
      + +
    • надпись поля -Отчество
    • +
    • подсказка - Укажите отчество
    • +
    • фильтровать по… - таблице Список сотрудников иколонке Отчество (name_middle)
    • +
    • операция фильтрации - Содержит всю подстроку
    • +
    +
  • +
  • Фильтр по текстовому полю (по e-mail сотрудника) +
      + +
    • надпись поля - E-mail
    • +
    • подсказка -Укажите весь email или его часть
    • +
    • фильтровать по… -таблице Список сотрудников и колонке Электронный адрес(user_mail)
    • +
    • операция фильтрации - Содержит всю подстроку
    • +
    +
  • +
  • Фильтр по выпадающему списку (по организации) +
      + +
    • надпись поля -Организация
    • +
    • подсказка -Выберите значение из списка в настройках фильтрации: правило обработки -ИЛИ
    • +
    • фильтровать по… -таблице Список сотрудников иколонке Организация(legal_entity_id)
    • +
    • подгрузка данных:
    • +
    • источником данных служит - таблица Организация (legal_entities), заданная в Графе сущностей сортировка производится по полю - Наименование (name) таблицы Организация (legal_entities) на странице пользователю отображается значение поля -Наименование (name) таблицы Организация (legal_entities) дополнительно возвращаться значение - Идентификатор(legal_entity_id) таблицы Организация (legal_entities) значение фильтра, которое будет передаваться другому элементу - Идентификатор (legal_entity_id) таблицы Организация (legal_entities)
    • +
    • операция фильтрации: Равно
    • +
    +
  • +
+

Таблица:

+
    + +
  • в Граф сущностей должны быть включены таблицы -Список сотрудников (главная сущность) и Организация, связанные по ключу legal_entity_id
  • +
  • должны отображаться три колонки: +
      + +
    1. Составная колонка ФИО из полей Фамилия, Имя, Отчество таблицы Список сотрудников(employees)
    2. +
    3. E-mail из поля Электронный адрес (user_mail) таблицы Список сотрудников(employees)
    4. +
    5. Организация из поля Наименование (name) таблицы Организация (legal_entities)
    6. +
    +
  • +
  • сортировка должна осуществляться по возрастанию по колонке Фамилия (name_last) таблицыСписок сотрудников(employees)
  • +
+

Решение задачи:

+

Предполагается, что страница с Созданием проекта уже реализована бизнес-аналитиком, где имеется основная компонента Форма, в структуру сущностей которой включена необходимая, в данном случае, ***таблица Проекты (projects)***, в которую будет сохраняться выбранное значение (Администратор проекта). Для добавления на страницу и настройки Списка с поиском для выбора одного значениянеобходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Список с поиском для выбора одного значения и для удобства переименовать ее, например как, Администратор
  • +
  • произвести настройку всех вложенных компонент согласно условию задачи
  • +
+

Настройка вложенных компонент:

+

Список с поиском с возможностью сохранения (рис.1,рис.1.1, рис.1.2)

+ +
+
рис.1 Настройка основных параметров Списка с поиском      
+рис.1.1 Настройка Графа сущностей Списка с поиском     
+рис.1.2 Настройка подгрузки данных Списка с поиском с возможностью сохранения         
+
+ +

Кнопка выбора (рис.2)

+

Фильтр по Фамилии сотрудника (рис.3)

+

Фильтр по Имени сотрудника (рис.4)

+


+

+ +
+
рис.2 Настройка Кнопки выбора  
+рис.3 Настройка Фильтра по фамилии сотрудника           
+рис.4 Настройка Фильтра по имени сотрудника  
+
+ +

Фильтр по Отчеству сотрудника (рис.5)

+

Фильтр по E-mail сотрудника (рис.6)

+

Фильтр по Организации (рис.7)

+


+
+

+ +
+
  рис.5 Настройка Фильтра по отчеству сотрудника   
+  рис.6 Настройка Фильтра по E-mail сотрудника       
+  рис.7 Настройка Фильтра по организации  
+
+ +

Таблица (рис.8, рис.9, рис.10)

+ +
+
   рис.8 Настройка Графа сущностей Таблицы        
+   рис.9 Настройка колонок Таблицы      
+   рис.10 Настройка колонок Таблицы
+
+
+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и элемент корректно отображается на странице (рис.11, рис.12, рис.13)

+


+
+

+ +
+
рис.11 Визуальное отображение поля без выбранного значения 
+рис.12 Визуальное отображение окна Диалога с Таблицей    
+рис.13 Визуальное отображение поля с выбранным значением
+
+ +
+
+

Attachments:

+
+ +
+ +

image2019-2-6_17-6-45.png (image/png)
+ image2019-2-15_13-42-3.png (image/png)
+ image2019-2-15_13-42-12.png (image/png)
+ image2019-2-15_13-42-16.png (image/png)
+ image2019-2-15_15-46-41.png (image/png)
+ image2019-2-15_15-47-42.png (image/png)
+ image2019-2-15_15-51-8.png (image/png)
+ image2019-2-15_15-52-35.png (image/png)
+ image2019-2-15_15-52-56.png (image/png)
+ image2019-2-15_15-57-18.png (image/png)
+ image2019-2-15_15-59-34.png (image/png)
+ image2019-2-15_16-1-57.png (image/png)
+ image2019-2-15_16-2-22.png (image/png)
+ image2019-2-15_16-6-5.png (image/png)
+ image2019-2-18_15-31-45.png (image/png)
+ image2019-2-18_15-32-27.png (image/png)
+ image2019-2-18_15-32-59.png (image/png)
+ image2019-2-18_15-34-10.png (image/png)
+ image2019-2-18_15-34-40.png (image/png)
+ image2019-2-18_15-35-7.png (image/png)
+ image2019-2-18_15-38-23.png (image/png)
+ image2019-2-18_15-39-4.png (image/png)
+ image2019-2-18_15-54-23.png (image/png)
+ image2019-2-18_15-54-57.png (image/png)
+ image2019-2-18_15-56-22.png (image/png)
+ image2019-2-18_16-5-34.png (image/png)
+ image2019-2-18_16-7-57.png (image/png)
+ image2019-2-18_16-8-44.png (image/png)
+ image2019-2-18_16-9-24.png (image/png)
+ image2019-2-18_16-24-23.png (image/png)
+ image2019-2-18_16-24-52.png (image/png)
+ image2019-2-18_16-27-49.png (image/png)
+ image2019-2-18_16-28-40.png (image/png)
+ image2019-2-18_16-31-32.png (image/png)
+ image2019-2-18_16-32-22.png (image/png)
+ image2019-2-18_16-32-46.png (image/png)
+ image2019-2-19_10-6-59.png (image/png)

+
+ + +
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_статичный_выпадающий_список_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_статичный_выпадающий_список_на_страницу_.html new file mode 100644 index 00000000..3fc6f896 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_статичный_выпадающий_список_на_страницу_.html @@ -0,0 +1,85 @@ + + + + + + + + Web-BPM Docs – Как добавить статичный выпадающий список на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить статичный выпадающий список на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Статичный выпадающий список с возможностью сохранения, выбранное значение из которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • надпись поля - Выберите год
  • +
  • поле должно иметь всплывающую подсказку - Выберите значение из списка
  • +
  • список значений должен содержать элементы - Текущий год и Отчетный год
  • +
  • сохранение выбранного значения должно осуществляться в базу данныхв таблицу service колонку Год (year), если выбран Текущий год в базу данных записывается 2019, при выборе Отчетный год в базу данных записывается 2018
  • +
+

Решение задачи:

+

Предполагается, что страница уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая, в данном случае, таблица service, в которую будет сохраняться выбранное значение (год). Для добавления на страницу и настройки Статичного выпадающего списка необходимо сделать следующее:

+
    + +
  • добавить внутр ь**Формы** компоненту Статичный выпадающий список с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление статичного выпадающего списка на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_числовое_поле_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_числовое_поле_на_страницу_.html new file mode 100644 index 00000000..f588df91 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_числовое_поле_на_страницу_.html @@ -0,0 +1,91 @@ + + + + + + + + Web-BPM Docs – Как добавить числовое поле на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить числовое поле на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице элемент Числовое поле (с возможность сохранения) - оценку результата, значение которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • надпись поля - Оценка
  • +
  • поле должно иметь всплывающую подсказку -Введите оценку результата по задаче
  • +
  • к полю должны быть применены CSS-классы: фиксированный заголовок (fixed-label-small) и размерность поля минимальная (mini)
  • +
  • минимальное возможное значение должно быть равно 0
  • +
  • максимальное возможное значение должно быть равно 5
  • +
  • шаг увеличения значения должен быть равен 1
  • +
  • сохранение введенного значения должно осуществляться в базу данныхв таблицу Список задач (tasks) колонку Оценка результата (result_score)
  • +
+

Решение задачи:

+

Предполагается, что пользовательская страница Карточка задачи уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая, в данном случае, ***таблица Список задач (tasks)***, в которую будет сохраняться введенное значение (оценка результата по задаче). Для добавления на страницу и настройки числового поля необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Числовое поле с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

рис.1. Добавление числового поля на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_элемент_Выпадающий_список_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_элемент_Выпадающий_список_на_страницу_.html new file mode 100644 index 00000000..e7a8f86b --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_элемент_Выпадающий_список_на_страницу_.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Выпадающий список на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Выпадающий список на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Карточки сотрудника Выпадающий список с возможностью сохранения, в котором будет отображаться перечень районов проживания доступных для выбора пользователем, и который будет иметь следующие настройки:

+
    + +
  • надпись поля - Выберите район проживания
  • +
  • вГраф сущностейв качестве Главной сущности должна быть определена таблица районов (district)
  • +
  • показывать пользователю колонку - Наименование района (колонка name в таблице district)
  • +
  • колонка БД для сохранения - колонка district_id в таблице price_monitor_report
  • +
+

Решение задачи:

+

Предполагается, что страница Карточка сотрудника уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая таблица price_monitor_report для сохранения выбранного значения пользователем в элементе Выпадающий список с возможностью сохранения. Для добавления на страницу и настройки Выпадающего списка необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Выпадающий список с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1 Добавление Выпадающего списка на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_элемент_Статичный_переключатель_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_элемент_Статичный_переключатель_на_страницу_.html new file mode 100644 index 00000000..c3f123fa --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_добавить_элемент_Статичный_переключатель_на_страницу_.html @@ -0,0 +1,82 @@ + + + + + + + + Web-BPM Docs – Как добавить элемент Статичный переключатель на страницу? + + + + + + +
+
+ + + +
+
+

Как добавить элемент Статичный переключатель на страницу?

+

Постановка задачи: необходимо реализовать на пользовательской странице Карточка сотрудника элементСтатичный переключатель с возможностью сохранения, выбранное значение из которого будет сохраняться в базу данных и будет иметь следующие настройки:

+
    + +
  • надпись поля - Выберите период
  • +
  • список значений должен содержать элементы - Месяц и Год
  • +
  • значение по умолчанию - Год
  • +
  • сохранение выбранного значения должно осуществляться в базу данныхв таблицу service колонку Период (period), если выбран Месяцв базу данных записывается month,при выборе Год в базу данных записывается year
  • +
+

Решение задачи:

+

Предполагается, что страница уже создана бизнес-аналитиком, где имеется ***основная компонентаФорма***, в структуру сущностей которой включена необходимая, в данном случае, таблица service, в которую будет сохраняться выбранное пользователем значение (период). Для добавления на страницу и настройки Статичного переключателя необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Статичный переключатель с возможностью сохранения (рис.1)
  • +
  • произвести настройки согласно условию задачи (рис.1)
  • +
+

+

рис.1. Добавление Статичного переключателя на страницу

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.2)

+

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Загрузка_файла_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Загрузка_файла_на_странице_.html new file mode 100644 index 00000000..17596b97 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Загрузка_файла_на_странице_.html @@ -0,0 +1,300 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Загрузка файла на странице? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту “Загрузка файла” на странице?

+

Постановка задачи: необходимо реализовать на пользовательской странице “Карточка Проекта” загрузку файлов, являющихся сканированными приложениями к проекту (расширения png, jpeg, jpg).

+

Для настройки компоненты Загрузка файла потребуются следующие данные:

+
    + +
  • + +

    надпись поля - Файлы-вложения

    +
  • +
  • + +

    максимальный размер каждого файла - 10 Мб

    +
  • +
  • + +

    допустимо удаление файла - удаление разрешено

    +
  • +
  • + +

    список допустимых типов файлов -png, jpeg, jpg

    +
  • +
  • + +

    допустимое максимальное количество файлов в компоненте - 10 и отдельным случаем рассмотреть - единственный 1 файл

    +
  • +
  • + +

    главная сущность графа основной формы-таблица projects.project_id

    +
  • +
  • + +

    главная сущность графа компоненты - таблица project_attachments

    +
  • +
  • + +

    колонка-внешний ключ из таблицы вложений в таблицу проектов -project_attachments.project_id

    +
  • +
  • + +

    колонка с именем файла вглавной сущности графа компоненты-project_attachments.attachment_file_path

    +
  • +
  • + +

    колонка с содержимым файлав главной сущности графа компоненты -project_attachments.file

    +
  • +
  • + +

    для случая с единственным файлом: колонка с именем файла в главной сущности графа основной формы-projects.attachment_file_path

    +
  • +
  • + +

    для случая с единственным файлом: колонка с содержимым файлав главной сущности основной формы -projects.file

    +
  • +
+

Страница “Карточка Проекта” должна иметь следующие настройки:

+
    + +
  • в качествеглавной сущности компонентыФормадолжна быть назначена таблица “Проекты”(projects).
  • +
  • внутри родительской компоненты-контейнераФормавсей страницы следует расположить компоненту “Загрузка файла”.
  • +
  • внутри родительской компоненты-контейнераФормавсей страницы следует расположить другие компоненты, например, Текстовое поле для сохранения иных параметров сущности “проект” (не входит в текущее задание).
  • +
  • для случая, когда к одному проекту следует сохранить несколько вложений: вГраф сущностей компоненты Загрузка файлав качестве Главной сущности должна быть определена таблица вложений (project_attachments) .
  • +
  • для случая, когда к одному проекту следует сохранить единственное вложение: вГраф сущностей компоненты Загрузка файлав качестве Главной сущности должна быть определена таблица Проектов (projects).
  • +
  • установить должным образом связи между таблицами в параметрах компоненты.
  • +
+

Решение задачи:

+
    + +
  • Добавляем ***основную компонентуФорма***, в структуру сущностей которой включаем таблицу projects. (рис.1)
  • +
+

+

рис.1. Добавление компоненты Форма на страницу

+
    + +
  • Добавляем внутрь компоненты Формы компоненту Загрузка файла (рис.2)
  • +
+

+

рис.2. Добавление компоненты Загрузка файла на страницу

+
    + +
  • Настраиваем основные параметры компоненты Загрузка файла (рис. 3)
  • +
+

+

рис.3. Настройка основных параметров компоненты Загрузка файла

+
    + +
  • Настраиваем граф сущностей компоненты Загрузка файла (рис. 4)
  • +
+

+

рис.4. Настройка графа сущностей компоненты Загрузка файла.

+

Обращаем внимание, что при изменении настройки “Допустимое максимальное количество файлов”, появляется дополнительный параметр для указания внешнего ключа,

+

по которому связаны главная сущность компоненты Форма и главная сущность компоненты Загрузка файла

+
    + +
  • Настраиваем взаимосвязи главной сущности графа компоненты Форма и главной сущности компоненты Загрузка файла (рис.5)
  • +
+

+

рис.4. Настройкавзаимосвязи главной сущности графа компоненты Форма и главной сущности компоненты Загрузка файла

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.5,6)

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+

+
+
+ +

+
+

рис. 5 Открываем карточку проекта.

+ +

Переходим к компоненте Загрузка файла и указываем список файлов для прикрепления.

+ +

Сохраняем карточку проекта.


+
+

рис. 6 Открываем ту же карточку проекта на изменение. Прикрепленные на предыдущем шаге файлы отображаются в зоне предпросмотра.

+ +

Крестик в верхнем углу файла позволяет удалить файл из списка прикрепленных.

+ +

Нажатие мышкой по наименованию файла (представленного гиперссылкой) приводит к выкачивания файла браузером.

+
+ +

Дополнительно отдельно рассмотрим случай сохранения единственного файла вложений в ту же таблицу, что и другие параметры сущности “проект” (а не в зависимую таблицу).

+

Возвращаемся к настройке графа сущностикомпоненты Загрузка файла (рис. 4а) и вместо зависимой таблицы project_attachments в качестве главной сущности компоненты Загрузка файла выбираем такую же таблицу, как у главной сущности компоненты Форма - projects.

+
    + +
  • Изменяем параметр “Допустимое максимальное количество файлов” в значение “1” и настраиваем граф сущностей компоненты Загрузка файла (рис. 4а)
  • +
+

рис.4а Настройка графа сущностей компоненты Загрузка файла.

+

Обращаем внимание, что при изменении настройки “Допустимое максимальное количество файлов”, исчезает ранее настроенный дополнительный параметр для указания внешнего ключа,

+

по которому связаны главная сущность компоненты Форма и главная сущность компоненты Загрузка файла.

+
    + +
  • Настраиваем взаимосвязи главной сущности графа компоненты Форма и главной сущности компоненты Загрузка файла (рис.5)
  • +
+

рис.4. Настройкавзаимосвязи главной сущности графа компоненты Форма и главной сущности компоненты Загрузка файла

+

Результат выполнения задачи для варианта с единственным прикрепляемым файлом:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис.5а,6а)

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+

+
+
+ +

+
+

рис. 5а Открываем карточку проекта.

+ +

Переходим к компоненте Загрузка файла и указываем список файлов для прикрепления.

+ +


+


+
+

рис. 5б Компонента не позволяет прикрепить список файл и оставляет только один из выбранных.

+ +

Сохраняем карточку с единственным прикрепленным файлом.

+ +


+

+
+ +

+

Рис. 6а Открываем ту же карточку проекта на изменение. Прикрепленный на предыдущем шаге единственный файл отображаются в зоне предпросмотра.

+

Крестик в верхнем углу файла позволяет удалить файл из прикрепленных.

+

Нажатие мышкой по наименованию файла (представленного гиперссылкой) приводит к выкачивания файла браузером.

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Поле_ввода_с_подбором_значения_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Поле_ввода_с_подбором_значения_на_странице_.html new file mode 100644 index 00000000..d64d18d6 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Поле_ввода_с_подбором_значения_на_странице_.html @@ -0,0 +1,187 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Поле ввода с подбором значения на странице? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту “Поле ввода с подбором значения” на странице?

+

Постановка задачи: на пользовательской странице Карточка задачи необходимо обеспечить возможность ввода Постановщика задачис использованием компоненты “Поле ввода с подбором значения”, источником данных для которой будет справочник сотрудников, а выбор одного сотрудника из справочника будет осуществляться путем постепенного набора первых букв фамилии с последующим подбором и отображением сужающегося списка сотрудников, в чьих фамилиях содержится вводимый пользователем набор букв.

+

При открытии карточки задачи на редактирование, в компоненте должен отобразиться ранее сохраненный в качестве Постановщика задачи пользователь.

+

Страница “Карточка задачи” должна иметь следующие настройки:

+
    + +
  • в качествеглавной сущности компонентыФормадолжна быть назначена таблица “Список задач”(tasks),в которойимеется колонка с идентификатором сотрудника, являющегося постановщиком задачи (reporter_employee_id).
  • +
  • внутри родительской компоненты-контейнераФормавсей страницы следует расположить 3 простых компоненты:Текстовое поледля параметраНаименование задачи,Текстовое поледля параметраОписание задачи, Поле с подбором значения для параметра Постановщик задачи
  • +
  • в Граф сущностей компоненты Поле с подбором значения в качестве Главной сущности должна быть определена таблица сотрудников (employee)
  • +
  • показываемая пользователю колонка - составная, получаемая из соединения колонок Фамилия (last_name), Имя(first_name), Отчество(middle_name)
  • +
  • колонка базы данных для сохранения значения из компоненты Поле с подбором значения - tasks.reporter_employee_id
  • +
+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком и в логике бизнес-процесса определена необходимая переменная процесса task_id, значение которой заполняется перед открытием страницы пользователем. Для решения поставленной задачи необходимо произвести следующие действия:

+
    + +
  • добавить внутрь страницы компоненту Форма (рис.1)
  • +
  • в настройках добавленной Формы перейти к разделу Подгрузка данных основная - Источник данных - Граф сущностей и настроить его в соответствии с условием задачи (рис.2).
  • +
+

+ +
+
рис.1 Добавление компоненты Форма на страницу  
+рис.2 Настройка Графа сущностей компоненты Форма
+
+ +
    + +
  • + +

    в параметре “Переменная процесса с идентификатором” ( Подгрузка данных основная- Переменная процесса с идентификатором ) следует указать переменную процесса task_id (рис.3)

    +

    +

    рис.3 Настройка переменной процесса

    +
  • +
  • + +

    расположить компоненты для отображения параметров Наименование задачи, Описание задачии настроить их на отображение информации из источника данных (рис.4, рис.5)

    + +
    + + + + + + + + + + + + + + + + + + +
    +
    + +

    +
    +
    + +

    +
    рис.4 Добавление элемента Наименованиерис.5 Добавление элемента Описание
    +
    +
  • +
  • + +

    расположить компоненту Поле с подбором значения внутри компоненты Форма и настроить колонку для сохранения информации в базу данных (чтения информации из базы данных) рис. 6:

    +
  • +
+

+

рис.6 Назначение колонки сохранения информации

+
    + +
  • настроитькомпоненту Поле с подбором значения на свой источник данных для отображения содержимого справочника сотрудников по мере набора букв фамилии сотрудника (рис. 7)
  • +
+

+

рис.7 Конфигурация основных параметров компоненты

+

Зеленой цветом (стрелкой) показан процесс конфигурации графа сущности компоненты.

+

Коричневыми рамками отмечены параметры “Начать подбор вариантов после ввода”, “Показывать варианты по” , отвечающие за а) назначение количества символов, после ввода которых начнется подбор и предложение подходящих по подстроке вариантов из справочника и б) указание максимального количества вариантов, выводимых в выпадающем списке в процессе подбора.

+

Розовой рамкой отмечен параметр “Тип поиска”, указывающий системе каким образом обрабатывать вхождение вводимой пользователем подстроки - вхождение с любого места или только с начала строки.

+

Синими рамками помечены взаимосвязанные параметры “Зависит от”, “Связаны по” для случая, когда текущая компонента является зависимой от родительской и предлагаемые текущей компонентой значения должны удовлетворять значению, ранее выбранному в родительской компоненте (отобрать только такие записи, в которых значенияв указанной колонке текущей компоненты соответствуютзначению идентификатора главной сущности родительской компоненты).

+

Светло-синей рамкойпомечен параметр с колонкой, значение которой будет дополнительно возвращать компонента при использовании метода “Получить значение по BusinessId” (дополнительно к обычно возвращаемому идентификатору главной сущности графа компоненты).

+

Желтой рамкойпомечен параметр “Активировать фильтрацию по колонке”, указывающий на колонку, по которой будет работать метод “Задать фильтр”.

+
    + +
  • настроить компоненту Поле с подбором значения для формирования составного значения из колонок с фамилией, именем и отчеством сотрудника (рис.8)
  • +
+

+

рис.8 Конфигурация составной колонки, в качестве разделителя указан “пробел”

+

На этом настройка компоненты закончена, запускаем приложение.

+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис. 9)

+ +
+ +

+
+ +

+

+

При вводе первых двух букв система не реагирует, ждет третью

+

После появления третьей буквы начинает предлагать имеющиеся варианты, подходящие по условиям вхождения уже введенной подстроки

+

После появления очередной буквы, позволяющей индивидуализировать подбираемое значение, остается единственный вариант, который можно добрать вручную, выбрать манипулятором мышь или нажать кнопку “Ввод” на клавиатуре

+

рис. 9 Работа компоненты в запущенном приложении

+

рис.2. Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Пополняемый_список_зависимых_записей_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Пополняемый_список_зависимых_записей_.html new file mode 100644 index 00000000..2e437a14 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Пополняемый_список_зависимых_записей_.html @@ -0,0 +1,290 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Пополняемый список зависимых записей? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту “Пополняемый список зависимых записей”?

+

Постановка задачи: на пользовательской странице Карточка задачи, кроме набора параметров непосредственно самой задачи, необходимо обеспечить возможность прикрепления информации о нескольких приложенных документах (с атрибутами “имя документа”, “описание документа”) для последующего добавления в базу данных одной строки с информацией о задаче и одновременногодобавления нескольких строк в зависимую таблицу с сохранением взаимосвязи между вставленными в обе таблицы записями.

+

При открытии такой карточки на редактирование, согласно сохраненным ссылкам между записями, интерфейс системы должен отобразить и параметры самой задачи, и список сопоставленных с ней документов.

+

Страница “Карточка задачи” должна иметь следующие настройки:

+
    + +
  • в качестве главной сущности компоненты Формадолжна быть назначена таблица “Список задачи”(tasks), в которойимеются колонки с информацией о наименовании и описании задачи и колонка с первичным ключом (task_id).
  • +
  • внутри родительской компоненты-контейнераФормавсей страницы следует расположить 3 простых компоненты:Текстовое поледля параметраНаименование задачи,Текстовое поледля параметраОписание задачи.
  • +
  • в граф сущности элемента “Редактируемая Таблица” компоненты Пополняемый список зависимых записей включитьтаблицу “Вложенные документы задачи” (task_attachments), в которойимеются колонки с информацией “имя документа”, “описание документа” для хранения атрибутов файла и колонка для указания идентификатора задачи (task_id), с которым конкретный документ соотнесен.
  • +
  • внутри элемента Формакомпоненты Пополняемый список зависимых записей расположить2 простых компоненты:Текстовое поледля параметраИмя документа,Текстовое поледля параметраОписание документа
  • +
+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком и в логике бизнес-процесса определена необходимая переменная процесса task_id, значение которой заполняется перед открытием страницы пользователем. Для добавления на страницу и настройки компоненты Форма необходимо сделать следующее:

+
    + +
  • добавить внутрь страницы компоненту Форма (рис.1)
  • +
  • в настройках добавленной Формы перейти к разделу Подгрузка данных основная - Источник данных - Граф сущностейи настроить его в соответствии с условием задачи (рис.2).
  • +
+

+ +
+
рис.1 Добавление компоненты Форма на страницу    
+рис.2 Настройка Графа сущностей компоненты Форма
+
+ + +

+ +
+
рис.3 Настройка переменной процесса
+
+ +
    + +
  • расположить компоненты для отображения параметровНаименование задачи, Описание задачии настроить их на отображение информации из источника данных (рис.4, рис.5)
  • +
+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+
рис.4 Добавление элемента Наименованиерис.5 Добавление элемента Описание
+
+ +

На этом настройка компоненты Форма для работы с базой данных завершена.

+
    + +
  • добавить внутрь только что сконфигурированной компоненты Форма (рис.1) сложный компонент “Пополняемый список зависимых записей” (рис. 6):
  • +
+


+рис.6 Добавление компоненты Пополняемый список зависимых записей

+
    + +
  • перейти к элементу Редактируемая таблица и настроить все реквизиты параметра “Пополняемый список зависимых записей”. Подгрузка данных (рис.7, рис.8, рис.9)
  • +
+

рис.7 Настройка параметра “Пополняемый список зависимых записей”. Подгрузка данных

+

**
+**

+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+ +

+ +

Таблицы Список задач и Вложенные документы связаны по колонке task_id, при этом для таблицы "Список задач" (главная сущность компоненты Форма всей страницы) колонка task_id является первичным ключом, а для таблицы "Вложенные документы" (основная сущность элемента Редактируемая таблица сложной компоненты) колонка task_id является ссылочной колонкой на таблицу Список задач (внешним ключом).

+
рис. 8 Формирование Графа сущности элемента Редактируемая таблица +

рис. 9 Настройка взаимосвязей таблиц

+
+ +
    + +
  • оставаясь в элементе Редактируемая таблица так же настроить параметрТаблица. Настроить колонки таблицы (рис. 10)
  • +
+

рис.10 Настройка параметраТаблица. Настроить колонки таблицы

+
    + +
  • перейти к элементу Форма в сложном компоненте и, ничего не меняя в настройках, разместить внутри этого элементакомпоненты для работы с полямиНаименование документа, Описание документа (рис. 11)****
  • +
+

+

рис. 11 Размещение компонент в элементе Форма

+
    + +
  • + +

    настроить только что добавленные текстовые компоненты Наименование документа, Описание документана работу с источником данных, указанным в графе сущности элемента Редактируемая таблица (рис. 12, рис. 13)

    + +
    + + + + + + + + + + + + + + + + + + +
    +
    + +

    +
    +
    + +

    +
    рис.12 Настройка компоненты Наименование документарис.13 Настройка компоненты Описание документа
    +
    +
  • +
  • + +

    Для создания новой записи (INSERT) или изменения имеющихся значений (UPDATE), необходимо добавить на страницу компоненту Кнопка сохранения и указать этой кнопке наФорму, согласно Графу сущностей которой следуют провести операцию добавления новой записи или обновления существующей информации после нажатия на кнопку (рис.14)

    +
  • +
+ +
+ + + + + + + + + + + + + + +
+
+ +


+

+
+

рис.14 Настройка элемента Кнопка сохранения

+ +

Заполнение параметра Компонент "Форма" Кнопки сохранения происходит путем перетаскивания манипулятором мышь объекта "Основная Форма страницы " из дерева структуры страницы в окно параметра Компонент "Форма" Кнопки сохранения (как показано стрелкой на скриншоте).

+ +

Также существует удобная функциональность обратного быстрого перехода по дереву структуры страницы к задействованной компоненте посредством клика на параметре Компонент "Форма" Кнопки сохранения, когда есть необходимость уточнить, на какую именно компоненту в дереве ссылается интересующий параметр.

+
+ +

В результате выполнения указанной последовательности действий и запуска приложения, интерфейс экранной формы примет следующий вид :

+

+ +
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Список_зависимых_записей_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Список_зависимых_записей_.html new file mode 100644 index 00000000..37806aa9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Список_зависимых_записей_.html @@ -0,0 +1,165 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Список зависимых записей? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту Список зависимых записей?

+

Постановка задачи: на пользовательской странице Направление на испытание АП (алкогольной продукции), где уже располагаются все необходимые атрибуты (дата направления, инспектор, количество образцов на испытание и другие поля) необходимо реализовать возможность добавления пользователем дополнительных видов испытаний (одного или нескольких) продукции из заранее сформированного перечня, предлагаемого в виде списка из которого можно включать или исключать необходимую запись(и). Данная возможность должна быть реализована с помощью элемента Список зависимых записей, иерархически вложенного и зависящего от основной компоненты Форма на текущей странице.

+

При открытии страницы Направление на испытание АПна редактирование, согласно сохраненным ссылкам между записями, интерфейс системы должен отобразить не только параметры самого направления (дату направления, лабораторию, количество образцов на испытание и др.), но и список связанных с ним дополнительных испытаний на проверку АП, ранее выбранных и сохранённых пользователем при формировании данного направления в системе.

+

Список зависимых записей(список дополнительных испытаний АП) должен иметь следующие настройки:

+
    + +
  • элемент Список зависимых записей должен располагаться внутриосновной компоненты Форма на текущей странице, для того чтобы данные отобранные с помощью этой компоненты,сохранялись считывались из/в базу данных;
  • +
  • в Граф сущностейв качестве Главной сущности основной результирующейТаблицы зависимых записей на странице должна быть определена таблица базы данных (справочник испытаний АП) -dic_test, на которую ссылается по ключу таблица связи product_review_request_referral_dic_test (данная таблица необходима, так как является таблицей связи между справочником испытаний dic_test и таблицей базы данных, где хранятся направления на испытания АП -product_review_request_referral, определенной в качестве Главной сущности компонентыФормана странице);
  • +
  • в основной результирующейТаблице зависимых записей на странице должно отображаться наименование выбранного(ых) пользователем дополнительного(ых) испытания(й) АП, то есть должна быть включена колонка Наименование (name) таблицы базы данных Справочник испытаний (dic_test)с отображаемым на странице заголовком Дополнительные испытания;
  • +
  • вГраф сущностейв качестве Главной сущности Таблицы доступных строк для выбора пользователем должна быть определенатаблица базы данных (справочник испытаний АП)-dic_test и в настройках колонок Таблицы должна быть включена колонкаНаименование (name) с отображаемым на странице заголовком Вид испытания;
  • +
  • Связанную таблицу уже выбранных пользователем строк настраивать нет необходимости, поскольку по умолчанию (с помощью уже включенной в базовую конфигурацию функции - Продублировать конфигурацию текущей таблицы (с доступными строками) в таблицу уже выбранных строк) дублирует конфигурацию Таблицы доступных строк для выбора.
  • +
+

Решение задачи:

+

Предполагается, что страница Направление на испытание АП уже реализована бизнес-аналитиком, где имеется основная компонента Форма, в структуру сущностей которой в качестве Главной сущности включена таблица базы данных, где хранятся направления на испытания АП-product_review_request_referral (рис.1), на которую будет ссылаться основная Таблица компоненты Список зависимых записей, что позволит сохранять/подгружать значения из/в базы данных, отобранные с помощью этой компоненты.

+

Для добавления на страницу и настройки Списка зависимых записей необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Список зависимых записей и для удобства переименовать ее, например как, Дополнительные испытания (рис.2);
  • +
+


+

+ +
+
рис.1 Редактор структуры сущностей основной компоненты Форма           
+рис.2 Добавление компоненты Список зависимых записей внутрь Формы  
+
+ +
    + +
  • настроить в соответствии с условиемзадачи основную Связанную таблицу зависимых записей (в списке компонент, входящих в структуру Списка зависимых записей, находится первой по очередности над Кнопкой “Изменить”). +
      + +
    • в Граф сущностей настраиваемого элемента необходимо включить две таблицы базы данных: Справочник испытаний АП -dic_test (главная сущность) и таблица связи между справочником испытаний и направлением на испытаниеАП -product_review_request_referral_dic_test (рис.3).
    • +
    • в свойстве компоненты Таблица. Настроить колонки таблицы необходимо указать колонку Наименование (name) таблицы базы данных dic_test (рис.4)
    • +
    • в свойстве компонентыСписок зависимых записей. Взаимосвязи таблиц производим следующие настройки (рис.4):
      +> Колонка, ссылающаяся на таблицу “доступных”-указывается колонка dic_test_id таблицы базы данныхproduct_review_request_referral_dic_test, включенной в Граф сущностей текущей настраиваемой Связанной таблицы, что обеспечит связь с главной сущностью dic_testТаблицы доступных строк для выбора;
      +>Колонка, ссылающаяся на “основную” таблицу -указывается колонкаproduct_review_request_referral_idтаблицы базы данныхproduct_review_request_referral_dic_test, включенной в Граф сущностей текущей настраиваемой Связанной таблицы, что обеспечит связь с главной таблицей product_review_request_referralв Графе сущностей основной компоненты Форма на странице;
      +>Колонка “основной” таблицы - указывается колонка (первичный ключ) product_review_request_referral_id таблицы базы данныхproduct_review_request_referral, которая определена в качестве главной таблицы в Графе сущностейосновной компонентыФормана странице, на которую ссылается текущаянастраиваемаяСвязанная таблица;
    • +
    +
  • +
+


+*

+ +
+
рис.3 Редактор структуры сущностей Связанной таблицы                 
+рис.4 Настройка колонок таблицы и Взаимосвязи таблиц
+
+ +

настроить в соответствии с условиями задачи Таблицу доступных строк для выбора пользователем(в списке компонент, входящих в структуру Списка зависимых записей, находится первой по очередности внутри элемента Диалог).

+
    + +
  • в Граф сущностейнастраиваемого элемента необходимо включить в качестве Главной сущности таблицу базы данныхСправочник испытаний АП-dic_test(рис.5)
  • +
  • в свойстве компоненты Таблица. Настроить колонки таблицы необходимо указать колонкуНаименование (name)таблицы базы данныхdic_test(рис.6)
  • +
+


+

+ +
+
рис.5 Редактор структуры сущностей Таблицы доступных строк                     
+рис.6 Настройка колонок Таблицы доступных строк  
+
+ +
    + +
  • Связанную таблицууже выбранных пользователем строк (в списке компонент, входящих в структуру Списка зависимых записей, находится после Вертикального контейнера с кнопками действий “Добавить”, “Добавить все”, “Удалить”, “Удалить все” - рис.7) настраивать нет необходимости, поскольку по умолчанию дублирует конфигурацию (настройки) Таблицы доступных строк. Для этого используется функцияПродублировать конфигурацию текущей таблицы (с доступными строками) в таблицу уже выбранных строк,включенная в свойства Таблицы доступных строк (рис.8) +

    рис.7 Связанная таблица уже выбранных пользователем строк рис.8 Настройка функции Продублировать конфигурацию текущей таблицы в таблицу выбранных строк

  • +
+ +
    + +
  • настройки Кнопок действий"Добавить", “Добавить все”, “Удалить”, “Удалить все”, используемые для добавления исключения записей в/из Таблицы доступных строк и Связанной таблицы уже выбранных пользователем строк, находящихсявнутрикомпоненты Диалог - оставить неизменными, т.е. по умолчанию заданными.
  • +
  • настройки Кнопок подтверждения и отмены действия “Ок”/“Отмена”, находящихся внутри компоненты Диалог,остаются по умолчанию заданными.
  • +
+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что на странице отображается основная Таблицазависимых записей - “Дополнительные испытания” с кнопкой “Изменить”(рис.9). По нажатию на кнопку “Изменить” происходит открытие диалогового окна на странице со списком доступных записей для выбора пользователем. В левой части окна отображается список видов дополнительных испытаний АП, в правой части - список выбранных пользователем записей из предложенного справочника (рис.10). Выбор (исключение) записей осуществляется с помощью кнопок"Добавить", “Добавить все”, “Удалить”, “Удалить все”, расположенных в контейнере между Таблицей доступных строк для выбора и Таблицей уже выбранных строк (рис.11). После того, как список необходимых видов испытаний был сформирован пользователем, по нажатию на кнопку подтверждения действий “Выбрать” происходит перенос записей из Таблицы выбранных строк в основную Таблицу зависимых записей на странице (рис.12). Сохранение значений, отобранных с помощью компоненты Список зависимых записей, в таблицу базы данных будет произведено вместе с сохранением основнойФормы на странице по нажатию на кнопку “Сохранить”.

+ +
+
рис.9 Основная таблица зависимых записей на странице                  
+рис.10 Диалоговое окно со списком видов испытаний для выбора
+
+ +


+

+ +
+
рис.11 Добавление (исключение) записей из Таблицы доступных в Таблицу выбранных строк          
+рис.12 Основная таблица зависимых записей с выбранными значениями
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Список_зависимых_записей_поле_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Список_зависимых_записей_поле_.html new file mode 100644 index 00000000..43c97db2 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Список_зависимых_записей_поле_.html @@ -0,0 +1,133 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Список зависимых записей (поле)? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту Список зависимых записей (поле)?

+

Постановка задачи: на пользовательской страницеформирования отчетных форм Отчётность, в окне ввода параметров для одного из доступных отчетов (Отчет о состоянии утверждения), необходимо реализовать возможность выбора нескольких Утверждающих, идентификаторы которых будут передаваться в виде массива на вход отчетной формы. Параметр Утверждающие должен позволять выбрать нескольких сотрудников из актуального Справочника сотрудников.

+

Список зависимых записей (поле)(Утверждающие) должен иметь следующие настройки:

+
    + +
  • элемент*Список зависимых записей (поле)*должен располагаться внутри окна Параметры отчета (Диалог);
  • +
  • элемент*Список зависимых записей (поле)*должен иметь заголовок Утверждающие и внутри поля должна отображаться подсказка “Выбрать сотрудников”
  • +
  • выбранные значения в Поле с множественным выбором должны отображаться через точку запятой
  • +
  • в диалоговом окне Параметров отчета Поле с множественным выбором не должно быть доступно для управления, выбор сотрудников должен осуществляться только в зависимом диалоговом окне выбора “Выбор утверждающих”
  • +
  • вГрафе сущностейэлемента Поле с множественным выбором в качестве Главной сущностидолжна быть определена таблица базы данных (справочник Сотрудников)-employee.Отображаемым значением пользователю должна быть выбрана колонка employee.name_short_email
  • +
  • вГраф сущностейв качестве Главной сущностиТаблицыдоступных строк для выбора пользователем должна быть определенатаблица базы данных (справочник сотрудников)-employee,на которую ссылается представление базы данных view_admin_employee и связь с которой ограничит список доступных для выбора значений. В настройках колонок Таблицы должна быть включена колонкаФИО (view_admin_employee.name) с отображаемым на странице заголовком ФИО;
  • +
  • Связанную таблицууже выбранных пользователем строк настраивать нет необходимости, поскольку по умолчанию (с помощью уже включенной в базовую конфигурацию функции -Продублировать конфигурацию текущей таблицы (с доступными строками) в таблицу уже выбранных строк) дублирует конфигурациюТаблицыдоступных строк для выбора.
  • +
+

Решение задачи:

+

Предполагается, что страницаОтчетность и окно ввода параметров для отчета - компонентаДиалогуже реализована бизнес-аналитиком, с соответствующей логикой для формирования печатнойформысо страницы приложения.

+

Для добавления на страницу и настройкиСписка зависимых записей (поле)необходимо сделать следующее:

+

добавить внутрь Диалога (окна параметров отчетной формы) компоненту*Список зависимых записей (поле)*и для удобства переименовать ее, например как,Утверждающие (рис.1)

+

+

рис.1 Добавление компоненты Список зависимых записей (поле) в окно Параметры отчета настроить в соответствии с условиемзадачи Поле множественного выборазависимых записей:

+
    + +
  • в Основных параметрах Поля множественного выбора необходимо заполнить значениями следующие свойства (рис.2): +
      + +
    • Надпись - Утверждающие
    • +
    • Видимость -(Истина)
    • +
    • Недоступно для управления -(Истина)
    • +
    • Разделитель - ;
    • +
    +
  • +
  • в функции Поле с множественным выбором. Подгрузка данных вГраф сущностейнастраиваемого элемента необходимо включитьтаблицу базы данных (справочник Сотрудников)-employee.(рис.3)
  • +
  • в функции Поле с множественным выбором. Подгрузка данных в свойстве “Отображаемая колонка” необходимо указать колонку базы данных ФИО сотрудника -employee.name_short_email (рис.3)
  • +
+

рис.2 Настройка основных параметров компоненты Поле с множественным выбором
+рис.3 Настройка Графа сущностей компоненты Поле с множественным выбором

+

настроить в соответствии с условиями задачиТаблицудоступных строк для выбора пользователем(в списке компонент, входящих в структуру Списка зависимых записей (поле), находится первой по очередности внутри элементаДиалог).

+
    + +
  • в Граф сущностейнастраиваемого элемента необходимо включить в качестве Главной сущности таблицу базы данныхСправочник пользователей -employee ина которую ссылается представление базы данных view_admin_employee(рис.4)
  • +
  • в свойстве компоненты Таблица. Настроить колонки таблицы необходимо указать колонкуФИО (name)таблицы базы данных view_admin_employee(рис.5)
  • +
+

рис.4 Редактор структуры сущностей Таблицы доступных строк
+рис.5 Настройка колонок Таблицы доступных строк

+
    + +
  • Связанную таблицууже выбранных пользователем строк (в списке компонент, входящих в структуру Списка зависимых записей (поле), находится после Вертикального контейнера с кнопками действий"Добавить", “Добавить все”, “Удалить”, “Удалить все”- рис.6)настраивать нет необходимости, поскольку по умолчанию дублирует конфигурацию (настройки)Таблицыдоступных строк. Для этого используется функцияПродублировать конфигурацию текущей таблицы (с доступными строками) в таблицу уже выбранных строк,включенная в свойстваТаблицыдоступных строк (рис.7)
  • +
+

рис.6 Связанная таблица уже выбранных пользователем строк
+рис.7 Настройка функции Продублировать конфигурацию текущей таблицы в таблицу выбранных строк

+
    + +
  • настройки Кнопок действий"Добавить", “Добавить все”, “Удалить”, “Удалить все”, используемые для добавления исключения записей в/изТаблицыдоступных строк иСвязанной таблицыуже выбранных пользователем строк, находящихсявнутрикомпонентыДиалог- оставить неизменными, т.е.по умолчанию заданными.
  • +
  • настройки Кнопок подтверждения и отмены действия"Ок"/“Отмена”,находящихся внутри компонентыДиалог,остаютсяпо умолчанию заданными.
  • +
+

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что к окне Параметры отчета добавлено Поле с множественным выбором - Утверждающие с кнопкой вызова диалогового окна выбора значений (рис.8).По нажатию на кнопку “Изменить” происходит открытие диалогового окна на странице со списком доступных записей для выбора пользователем. В левой части окна отображается список сотрудников (утверждающих), в правой части - список выбранных пользователем записей из предложенного справочника (рис.9). Выбор (исключение) записей осуществляется с помощью кнопок “Добавить”, “Добавить все”, “Удалить”, “Удалить все”, расположенных в контейнере между Таблицей доступных строк для выбора иТаблицейуже выбранных строк (рис.10). После того, как список необходимых видов испытаний был сформирован пользователем, по нажатию на кнопку подтверждения действий “Выбрать” происходит перенос записей из Таблицы выбранных строк в Поле множественного выбора, где значения разделены между собой символом точки запятой(рис.11).

+

рис.9 Окно Параметры отчета
+рис.10 Диалоговое окно со списком сотрудников для выбора

+

рис.11 Добавление записей из Таблицы доступных в Таблицу выбранных строк
+рис.12 Отображение результата выбора значений

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Флаг_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Флаг_на_странице_.html new file mode 100644 index 00000000..152bf4f0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_задействовать_компоненту_Флаг_на_странице_.html @@ -0,0 +1,135 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Флаг на странице? + + + + + + +
+
+ + + +
+
+

Как задействовать компоненту Флаг на странице?

+

Постановка задачи: на пользовательской странице Карточка задачи, скрыть блоки параметров, касающихся сроков исполнения задачи и задействованных по ней сотрудников. При этом расположить и сделать видимыми компоненты Флаг, с помощьюкоторых можно открыть (cделать видимыми) изначально скрытые блоки.

+

Решение задачи:

+

Предполагается, что страница Карточка задачи уже создана бизнес-аналитиком.

+
    + +
  • Страница содержит блоки “Общие сведения”, “Сроки”, “Действующие лица”, реализованные с использованием компонент Группа полей. Снять с этих компонент параметр “Видимость”, чтобы при первоначальной загрузке страницы блоки “Сроки” и “Действующие лица” были невидимы. (рис.1)
  • +
+

+
    + +
  • в структуру страницы добавить 2 компоненты Флаг (без возможности сохранения), сразу после каждого из блоков “Сроки” и “Действующие лица”. Подобрать наименования для этих компонент, указывающее их назначение. Произвести настройку параметров “Надпись”, “Значение” (выставить FALSE) и “Расширенные настройки”→ “CSS классы” (рис. 2)
  • +
+

+

класс check-invert предписывает расположить сам визуальный значок компоненты перед параметром компоненты “Надпись”

+

класс free-label предписывает не форматировать значение параметра “Надпись”, располагая его свободным текстом после визуального значка компоненты

+
    + +
  • в структуру страницы добавить 2 компоненты Обработка событий для управления событиями и реакцией на них в случае изменения пользователем состояния компонент Флаг, а именно проставления флага или его снятия. Подобрать наименования для этих компонент, указывающее их назначение. Произвести настройку алгоритма реакции на событие. (рис. 3)
  • +
+ +
+ + + + + + + + + + + + + + + + + + +
+
+ +

+
+
+ +

+

+

+
+
+ +

В результате выполнения указанной последовательности действий и запуска приложения, интерфейс экранной формы примет следующий вид:

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_компоненту_Текст_для_отображения_названия_организации_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_компоненту_Текст_для_отображения_названия_организации_на_странице_.html new file mode 100644 index 00000000..08a61c76 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_компоненту_Текст_для_отображения_названия_организации_на_странице_.html @@ -0,0 +1,95 @@ + + + + + + + + Web-BPM Docs – Как использовать компоненту Текст для отображения названия организации на странице? + + + + + + +
+
+ + + +
+
+

Как использовать компоненту Текст для отображения названия организации на странице?

+

Постановка задачи: необходимо реализовать на странице вывода информации об организации элемент Текст (с возможностью сохранения), который будет отображать наименование организации и сохраняться в базу данных, содержащий следующие настройки:

+
    + +
  • надпись поля -Название организации
  • +
  • поле должно иметь подсказку -Наименование организации
  • +
  • значение поля должно подгружаться из переменной процесса organization
  • +
  • сохранение значения должно осуществляться в базу данныхв таблицу organization колонку Организация (legal_entity_id)
  • +
+

Решение задачи:

+

Предполагается, что бизнес процесс и страница вывода информации об организации уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***. Для добавления на страницу и настройки компоненты Текст (с возможностьюсохранения) необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Текст и произвести настройки согласно условию задачи (рис.1)
  • +
  • в функции Заполнить значением из переменной любого типа выбрать переменную процесса, относящуюся к организации****(рис.2)
    +(прим. переменная процесса была создана ранее при создании бизнес процесса)
  • +
  • в функции Сохранение значения необходимо указать таблицу и колонку БД, куда будет сохранена информация об организации (рис.2)
  • +
+

+ +
+
рис.1. Добавление компоненты Текст (с возможностью сохранения) на страницу   
+рис.2. Настройка компоненты Текст (с возможностью сохранения)
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены, как, например, Текст соответствует наименованию организации (рис.3).

+

+

рис.3.Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_текстовое_поле_в_качестве_параметра_для_печатной_формы_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_текстовое_поле_в_качестве_параметра_для_печатной_формы_.html new file mode 100644 index 00000000..14faab57 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_текстовое_поле_в_качестве_параметра_для_печатной_формы_.html @@ -0,0 +1,104 @@ + + + + + + + + Web-BPM Docs – Как использовать текстовое поле в качестве параметра для печатной формы? + + + + + + +
+
+ + + +
+
+

Как использовать текстовое поле в качестве параметра для печатной формы?

+

Постановка задачи: необходимо реализовать на странице вывода информации о департаменте текстовое поле, значение из которого будет использоваться в качестве входного параметра для формирования печатной (отчетной) формы об этом департаменте и будет иметь следующие настройки:

+
    + +
  • надпись поля -Название департамента
  • +
  • обязательно для заполнения пользователем приложения
  • +
  • ввод текста в поле должен осуществляться с использованиемтипа регистра -Первая буква-заглавная,то есть каждое новое слово в поле будет начинаться с заглавной буквы
  • +
  • поле должно иметь подсказку -Введите название департамента
  • +
  • к полю должны быть применены CSS-классы: фиксированный заголовок (fixed-label)
  • +
+

Решение задачи:

+

Предполагается, что страница вывода информации о департаменте уже создана бизнес-аналитиком, где имеется ***основная компонента Вертикальный контейнер***, куда включена и ссылается компонента Кнопка печати отчета из формы. Для добавления на страницу и настройки текстового поля в качестве параметра для печатной формы необходимо сделать следующее:

+
    + +
  • добавить внутрь Вертикального контейнера компоненту Текстовое поле, отключив у нее функцию Текстовое поле. Сохранения значения, поскольку в данном случае сохранения значения и подгрузки его из базы данных происходить не будет, значение будет вводиться пользователем на странице. Далее произвести настройкисогласно условию задачи (рис.1)
  • +
  • в компоненте Кнопка печати отчета из формы в качестве входного параметра указать созданное Текстовое поле (рис.2)
  • +
+

+ +
+
рис.1. Добавление текстового поля на страницу и настройка               
+рис.2. Настройка кнопки печати отчета с использованием текстового поля
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены, как, например, текстовое поле обязательно для заполнения (рис.3) и каждое новое слово вводимого значения в поле автоматически начинается с Заглавной буквы (рис.4).

+

+ +
+
рис.3. Визуальное отображение условия обязательности поля     
+рис.4. Визуальное отображение выполнения условия: тип регистра Первая буква - заглавная
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_текстовое_поле_для_настройки_видимости_других_элементов_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_текстовое_поле_для_настройки_видимости_других_элементов_на_странице_.html new file mode 100644 index 00000000..9110fbc5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_использовать_текстовое_поле_для_настройки_видимости_других_элементов_на_странице_.html @@ -0,0 +1,137 @@ + + + + + + + + Web-BPM Docs – Как использовать текстовое поле для настройки видимости других элементов на странице? + + + + + + +
+
+ + + +
+
+

Как использовать текстовое поле для настройки видимости других элементов на странице?

+

Постановка задачи: необходимо в зависимости от того, каким из возможных значений переменной процесса create_available, заполнилось по умолчанию скрытое Текстовое поле, отображать на странице Вывода предупреждения пользователю три варианта сообщения с помощью компоненты Текст:

+
    + +
  1. Невозможно создать документ. Выбранные партии соответствуют разным наименованиям ассортимента (когда значение переменной равно assort)
  2. +
  3. Невозможно создать документ. Одна или несколько из выбранных партий уже содержаться в ранее созданных свидетельствах и соответствуют разным наименованиям ассортимента(когда значение переменной равно certificate)
  4. +
  5. Невозможно создать документ. Одна или несколько из выбранных партий уже содержаться в ранее созданных решениях о невыдаче и соответствуют разным наименованиям ассортимента(когда значение переменной равно denial_decision)
  6. +
+

На странице Вывода предупреждения пользователю также должно быть реализовано:

+
    + +
  • видимый по умолчанию элемент Текст с примененным CSS-классом: title (заголовок), который будет служить заголовком страницы и содержать в себе статичный текст -Внимание!
  • +
  • кнопка навигации, по которой будет осуществляться Выход со страницы по значению registr_part
  • +
+

Решение задачи:

+

Предполагается, что страница Вывода предупреждения пользователю уже создана бизнес-аналитиком в проекте, как и переменная процесса create_available, имеющая тип строка и значение которой заполняется с помощьюОбработчика, выполняющего SQL-запрос перед открытием страницы. Для настройки Текстового поля и отображения информации на странице в соответствии с условиями задачи необходимо сделать следующее:

+
    + +
  • добавить видимый элемент Текст, который будет служить заголовком страницы и настроить его согласно условию задачи (рис.1)
  • +
  • добавить скрытое Текстовое поле (можно назвать его как create_available), значение которого будет заполняться из переменной процесса create_available (рис.2)
  • +
  • добавить кнопку навигации, по нажатию на которую будет осуществляться Выход со страницы и следующий переход по бизнес-процессу (рис.3)
  • +
+

+ +
+
        рис.1 Настройка заголовка страницы    
+        рис.2 Настройка скрытого Текстового поля          
+        рис.3 Настройка кнопки навигации
+
+ +
    + +
  • + +

    добавить три скрытых по умолчанию компоненты Текст, которые будут содержать в себе сообщения для пользователя (рис.4, рис.5, рис.6)

    + +
    +
    рис.4 Настройка первого сообщения пользователю   
    +рис.5 Настройка второго сообщения пользователю       
    +рис.6 Настройка третьего сообщения пользователю
    +
    +
  • +
  • + +

    добавить три Обработчика событий, которые в зависимости от значения Текстового поля будут отображать статичные сообщения пользователю (рис.7, рис.8, рис.9)

    +
  • +
+

+ +
+
    рис.7 Настройка обработчика событий для 1-го условия     
+    рис.8 Настройка обработчика событий для 2-го условия      
+    рис.9 Настройка обработчика событий для 3-го условия
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и сообщения пользователю на странице Вывода предупреждения отображаются корректно (рис.10, рис.11).

+

+ +
+
рис.10 Визуальное отображение вывода первого варианта предупреждения пользователю   
+рис.11 Визуальное отображение вывода второго варианта предупреждения пользователю
+
+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_отобразить_название_организации_текстом.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_отобразить_название_организации_текстом.html new file mode 100644 index 00000000..7f883a4d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Как_отобразить_название_организации_текстом.html @@ -0,0 +1,95 @@ + + + + + + + + Web-BPM Docs – Как использовать компоненту Текст для отображения названия организации на странице? + + + + + + +
+
+ + + +
+
+

Как использовать компоненту Текст для отображения названия организации на странице?

+

Постановка задачи: необходимо реализовать на странице вывода информации об организации элемент Текст (с возможностью сохранения), который будет отображать наименование организации и сохраняться в базу данных, содержащий следующие настройки:

+
    + +
  • надпись поля -Название организации
  • +
  • поле должно иметь подсказку -Наименование организации
  • +
  • значение поля должно подгружаться из переменной процесса organization
  • +
  • сохранение значения должно осуществляться в базу данныхв таблицу organization колонку Организация (legal_entity_id)
  • +
+

Решение задачи:

+

Предполагается, что бизнес процесс и страница вывода информации об организации уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***. Для добавления на страницу и настройки компоненты Текст (с возможностьюсохранения) необходимо сделать следующее:

+
    + +
  • добавить внутрь Формы компоненту Текст и произвести настройки согласно условию задачи (рис.1)
  • +
  • в функции Заполнить значением из переменной любого типа выбрать переменную процесса, относящуюся к организации****(рис.2)
    +(прим. переменная процесса была создана ранее при создании бизнес процесса)
  • +
  • в функции Сохранение значения необходимо указать таблицу и колонку БД, куда будет сохранена информация об организации (рис.2)
  • +
+

+ +
+
рис.1. Добавление компоненты Текст (с возможностью сохранения) на страницу   
+рис.2. Настройка компоненты Текст (с возможностью сохранения)
+
+ +

Результат выполнения задачи:

+

После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены, как, например, Текст соответствует наименованию организации (рис.3).

+

+

рис.3.Визуальное отображение выполнения условий задачи

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Многострочное_поле.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Многострочное_поле.html new file mode 100644 index 00000000..564a280d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Многострочное_поле.html @@ -0,0 +1,213 @@ + + + + + + + + Web-BPM Docs – Многострочное поле + + + + + + +
+
+ + + +
+
+

Многострочное поле

+

Назначение

+

Многострочное поле - это компонента, которая используетсядля ввода и отображения нескольких строк текста. В таком текстовом поле допустимо делать переносы строк.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Многострочное полеможет использовать для:

+
    + +
  • Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Поле многострочного ввода. Сохранение значения должно быть включена).
  • +
  • Для отображения текста, который был введен пользователем приложения или является константой, определённой в логике приложения (в данном случае, функция компоненты Поле многострочного ввода. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке).
  • +
+

Компонента Многострочное поле находится в разделе Компоненты - Поля - Многострочное поле.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите название организации
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Наименование организации
Значение позволяет задать значение поля по умолчанию пример возможного значения: ООО “Форт”
Максимальная длина задаёт максимальное количество вводимых символов в поле пример возможного значения: 10
Минимальная длина (Min length) задаёт минимальное количество вводимых символов в поле
allowMoreSymbols при true позволяет пользователю ввести больше символов, чем значение максимальной длины, но при этом поле станет невалидным и будет отображено сообщение об ошибке maxLengthErrorMsg (см. документацию) логическое значение (true, false)
Оперировать немаскированным значением позволяет регулировать возможность ввода текста в соответствии с маской, даже если маска задана (значение маски указывается в расширенных настройках в поле “маска, ограничивающая ввод”) +
    +
  • значение не определено - по умолчанию
  • +
  • активно - сохранять без форматирования маской
  • +
  • пустое - сохранять с форматированием маской
Маска позволяет задать маску, в соответствии с которой пользователь будет осуществлять ввод текста выставление маски не может обеспечить выполнение требования обязательности ввода, маска только внешне отфильтровывает и форматирует последовательность вводимых пользователем символов заранее заданным образом (например, ввод тел. номера “+ 7 (917) - 101 - 02 - 03” вместо “8917010203” или не допустит такого ввода “89170102АЯ”). Для блокирования сохранения записи с пустым значением поля и обеспечения контроля обязательности ввода используйте свойство “Обязательность”
Регистр позволяет задать вид регистра вводимого текста +
    +
  • в верхнем регистре - заглавные (прописные) буквы
  • +
  • в нижнем регистре - строчные (маленькие) буквы
  • +
  • первая буква каждого слова заглавная
  • +
  • только первая буква текста заглавная, остальные строчные
  • +
  • первая буква текста заглавная
Тип позволяет задать тип вводимого текста +
    +
  • обычный текст
  • +
  • пароль (заполнитель - звездочки)
  • +
  • электронная почта
  • +
  • URL
Регулярное выражение или Pattern позволяет задать проверку вводимого текста с помощью регулярных выражений поля, для которых не выполняются условия заданных регулярных выражений, при сохранении записи подсвечиваются красным оттенком и операция отменяется.
patterErrorMsg, maxLengthErrorMsg, minLengthErrorMsg позволяют задать пользовательское сообщение о соответствующих ошибках валидации строка
+

Примеры масок:

+
    + +
  • A (буква, латинская, регистр не имеет значения) в маске - позволит ввести в поле одну любую букву любого алфавита
  • +
  • Б (буква, русская, в верхнем регистре) в маске - позволит ввести в поле одну любую букву русского алфавита
  • +
  • 9 (цифра) в маске - позволит ввести в поле одну любую цифру
  • +
  • * (символ) в маске - позволит ввести в поле одну любую цифру или букву
  • +
  • R (буква, латинская, в верхнем регистре) в маске - позволит ввести в поле одну римскую цифру
  • +
  • ? (символ) в маске - позволит ввести или опустить при вводе в поле один необязательный символ (букву, цифру) ,например 999?9; под эту маску подходит как 123, так и 1234
  • +
+

Например, необходимо задать форматирование ввода маской для значения Й456QЬ. В данном случае маска будет выглядеть следующим образом: А999АА, где А - латинская буква.

+

Некоторые типовые регулярные выражения:

+
    + +
  • \d [0-9] - одна цифра от 0 до 9
  • +
  • \D [^0-9] - любой символ кроме цифры
  • +
  • \s - пробел
  • +
  • [A-Z] - только заглавная латинская буква
  • +
  • [A-Za-z] - только латинская буква в любом регистре
  • +
  • [А-Яа-яЁё] - только русская буква в любом регистре
  • +
  • [A-Za-zА-Яа-яЁё] - любая буква русского и латинского алфавита
  • +
  • [0-9]{3} - три цифры
  • +
  • [A-Za-z]{6,} - не менее шести латинских букв
  • +
  • [0-9]{,3} - не более трёх цифр
  • +
  • [0-9]{5,10} - от пяти до десяти цифр
  • +
  • ^[a-zA-Z]+$ - любое слово на латинице
  • +
  • ^[А-Яа-яЁё\s]+$ - любое слово на русском включая пробелы
  • +
  • ^[ 0-9]+$ - любое число
  • +
+

Например, чтобы ограничить возможность ввода и сохранения текста латиницей, можно использовать регулярное выражение ^[А-Яа-яЁё\s]+$

+

Свойство Поле многострочного ввода. Сохранение значения

+

+

В случае, если значение в многострочное поле необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение.Для выбора доступны только колонки имеющий строковый тип в базе данных. В случае, если значение многострочного поля не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда многострочное поле используется дляотображения текста, который был введен пользователем приложения или является константой, определённой в логике приложения.

+

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Склеить несколько значений

+

Склеить несколько значений

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Поле многострочного вводаот компоненты Текст? Компонента Поле многострочного ввода используются для отображения многострочного текста на странице, где предусмотрены переносы строк.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Поле многострочного ввода. Сохранение значения? Да. В случае, если функция “Поле многострочного ввода. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
Можно ли ограничить перенос строки по нажатию на клавишу Enter в Многострочном поле? Чаще всего подобногорода задачи решаются использованием Маски в свойствах элемента. Для того, чтобы ограничить перенос строки по нажатию на клавишу Enter в Многострочном поле необходимо в Расширенных настройках в свойстве Маска указать значение[^\r\n]* и перевести значение флага regexMask =true
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Настройка_взаимозависимых_полей_с_подбором_значения.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Настройка_взаимозависимых_полей_с_подбором_значения.html new file mode 100644 index 00000000..485e41b0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Настройка_взаимозависимых_полей_с_подбором_значения.html @@ -0,0 +1,88 @@ + + + + + + + + Web-BPM Docs – Настройка взаимозависимых полей с подбором значения + + + + + + +
+
+ + + +
+
+

Настройка взаимозависимых полей с подбором значения

+

Дано: два поля City (Город), District (Район). Сущности: country, city, country_city.

+

Задача: настроить подгрузку районов в зависимости от выбранного города, т.е. если в первом поле выбрали Казань, то во втором должны подгружаться казанские районы, н-р, Вахитовский.

+

Решение:

+
    + +
  1. + +

    Задать сущность для поля City (Autocomplete Service - Load Dao) - выбрать city. Настроить свойства поля:

    +
  2. +
  3. + +

    Задать сущности для поля District (Autocomplete Service - Load Dao) -country, city,country_city. Настроить связи между ними:
    +2.1. Тянем стрелки от country_city к country и city.
    +2.2. Выделяем стрелку, нажимаем кнопку “Элемент”, выбираем исходящую и входящую колонки.

    +
  4. +
  5. + +

    Настроить остальные свойства поля District:
    +3.1. Задать родителя (City) - drag&drop City в свойство Parent Control поля District.
    +3.2. Выставить значения Parent Control Reference - city, city_id.
    +3.3. Настроить оставшиеся свойства, в т.ч. Column For Sort, Display Column.

    +
  6. +
+

Результат: в поле Город выбрали Казань. В поле район можно выбирать только казанские районы, в данном случае Вахитовский.

+ +
+
+

Attachments:

+
+ +
+ +

city-attr.JPG (image/jpeg)
+ relations-1.JPG (image/jpeg)
+ relations-2.JPG (image/jpeg)
+ district-attr.JPG (image/jpeg)
+ dependents_autocomplete.JPG (image/jpeg)

+
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Переключатель.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Переключатель.html new file mode 100644 index 00000000..d5173b1e --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Переключатель.html @@ -0,0 +1,152 @@ + + + + + + + + Web-BPM Docs – Переключатель + + + + + + +
+
+ + + +
+
+

Переключатель

+

Назначение

+

Переключатель - это компонента, которая используется для выбора одного из нескольких предоставленных вариантов.Значения берутся из базы данных,а не вводятся вручную.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Переключатель может использоваться для:

+
    + +
  1. Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Переключатель. Сохранение значения должна быть включена)
  2. +
  3. Для отображения значений,которые были введены пользователем приложенияили являются константой, определённой в логике приложения (в данном случае, функция компоненты Дата. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Переключатель находится в разделе Компоненты - Поля - Переключатель.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента. Данное свойство не применимо с логикой отображения поля на странице приложения
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Статусы
+

Свойство Переключатель. Подгрузка данных

+

+

Позволяет задать источник подгрузки/сохранения данных в компоненту из/в объекта базы данных (таблицы или представления) с указанием следующих дополнительных настроек:

+
    + +
  • Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей. Является обязательным к заполнению и настройке.
  • +
  • Возвращать значение дополнительно из - по умолчанию компонента возвращает идентификатор записи выбранной из справочника значений. Настройка данного параметра позволяет указать компоненте, какое значение необходимо дополнительно считать и вернуть, кроме значения идентификатора выбранной пользователем записи.
  • +
  • + +

    Колонка наименования - позволяет задать колонку базы данных, значение которой будет отображено пользователю в списке

    +
  • +
  • + +

    Порядок сортировки - позволяет задать порядок сортировки отображаемых значений в списке для выбора, принимает значения:

    +
      + +
    • по возрастанию- значения будут сортироваться от меньшего к большему
    • +
    • по убыванию- значения будут сортироваться от большего к меньшему
    • +
    +
  • +
  • + +

    Колонка сортировки - позволяет задать колонку базы данных, по которой будет производиться сортировка

    +
  • +
+

Пример возможной настройки:

+

+

Свойство Переключатель. Сохранение значения

+

+

В случае, если значение в поле Переключатель необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющие числовой тип в базе данных.

+

В случае, если значение поля Переключатель не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется для отображения значения, которое было введено пользователем приложения или является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений,- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Статичный переключатель от компоненты Переключатель? Компонента Статичный переключательиспользуются для выбора значений, которые вводятся аналитиком при настройке компоненты,Переключательиспользуется для выбора значений,которые берутся из базы данных.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Переключатель. Сохранение значения? Да. В случае, если функция “Переключатель. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Поле_ввода_с_подбором_значения.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Поле_ввода_с_подбором_значения.html new file mode 100644 index 00000000..bfaec12d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Поле_ввода_с_подбором_значения.html @@ -0,0 +1,201 @@ + + + + + + + + Web-BPM Docs – Поле ввода с подбором значения + + + + + + +
+
+ + + +
+
+

Поле ввода с подбором значения

+

Назначение

+

Поле ввода с подбором значения - это компонента, которая визуально выглядит как обычное поле ввода, но по мере набора пользователем символов с клавиатуры подбирает, отображая возможные варианты, значений из подключенного справочника, при этом функционируя уже как компонента Выпадающий список.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Поле ввода с подбором значения может использоваться для:

+
    + +
  1. Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Поле ввода с подбором значения. Сохранение значения должна быть включена)
  2. +
  3. Для отображения данных, которые были введены пользователем приложения или является константой, определённой в логике приложения(в данном случае, функция компоненты Поле ввода с подбором значения. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Поле ввода с подбором значения находится в разделе Компоненты - Поля - Поиск.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Район
Зависит от позволяет указать объект (родителя), например Выпадающий список, по идентификатору которого будут отображаться сведения в текущем зависимом элементе
Начать подбор вариантов после ввода позволяет задать количество символов, после ввода которых пользователем, компонента начинает подбор и вывод вариантов, соответствующих уже введенной пользователем подстроке пример возможного значения: 3
Прикрепить значение (Scroll Gravity) позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений +
    +
  • По умолчанию (DEFAULT) - выбранное значение отображается в порядке своего следования в списке доступных значений для выбора
  • +
  • По центру (CENTER) - выбранное значение отображается по центру в выпадающем списке доступных значений для выбора
  • +
  • В верхней части (TOP)- выбранное значение отображается в верхней части выпадающего списка доступных значений для выбора
  • +
  • В нижней части (BOTTOM) - выбранное значение отображается в нижней части выпадающего списка доступных значений для выбора
Исключить условия графа данное свойство позволяет подгружать для отображения значения в поле минуя условия (ограничения), заданные в Графе сущностей компоненты +
    +
  • Не активно - в данном состоянии, при подгрузке значений отсекаются значения не соответствующие условиям, заданным в Графе сущностей компоненты
  • +
  • Активно - в данном состоянии, при подгрузке значений допускается отображение значений, не соответствующих условиям, заданным в Графе сущностей компоненты, но без возможности их повторного выбора в выпадающем списке
Помечать невалидным (Mark invalid if not Satisfy) данное свойство доступно для управления при активации значении свойства Exclude Graph Conditions и позволяет визуально помечать поле как невалидное на странице, в случае если в него было подгружено значение, не соответствующие условиям Графа сущностей элемента +
    +
  • Не активно - в данном значении, поле не помечается на странице как невалидное и отображается стандартным образом
  • +
  • Активно - в данном значении, убрав фокус с поля, оно помечается на странице как невалидное
Css class if not Satisfy данное свойство доступно для управления при активном значении свойства Exclude Graph Conditions и позволяет задать CSS-класс, который будет применяться, в случае если в поле было подгружено значение, не соответствующие условиям Графа сущностей элемента
Tooltip if not Satisfy позволяет отображать всплывающую подсказку,в случае если в поле было подгружено значение, не соответствующие условиям Графа сущностей элемента. Данное свойство доступно для управления при: активном значении свойства Exclude Graph Conditions и заданному значению в поле Css Class If Not Satisfy пример возможного значения: not_valid
+

Свойство компоненты: Поле ввода с подбором значения. Сохранение значения

+

+

указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение

+

+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен **перечень функций, расширяющих её базовую функциональность,**которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить_роли_текущего_пользователя

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Сконвертировать значение в целочисленный тип

+

Сконвертировать значение в целочисленный тип

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Поле ввода с подбором значения от компоненты Выпадающий список? Поле ввода с подбором значения отличается от компоненты Выпадающий список тем, что не показывает и не подгружает сразу все строки из справочника, но по мере ввода пользователем подстроки предлагает всё более усеченный список вариантов, выводя только релевантные уже введенной подстроке значения.
Значение какого типа возвращает компонента? В общем случае может быть любым (чаще всего целочисленным или строковым).Тип возвращаемого компонентойзначения определяется выбором аналитиком метода, который возвращает значение, а также типом колонки в базе данных.
+

Метод “Получить значение” возвращает первичный ключ и тип такого значения зависит от типа колонки первичного ключа в базе данных (обычно целочисленный bigint).

+

Метод"Задать значение" выставляет в компоненте значение, соответствующее значению в колонке с первичным ключом.

+

Метод “Получить значение BusinessId” возвращает значение колонки, заданной в параметре компоненты “Возвращать значение доп.колонки(BusinessId)” и определяется типом этой колонки в базе данных.

+

Метод “Задать значение поBusinessId” выставляет в компонентезначение, соответствующее значению в колонке, указанной в параметре компоненты"Возвращать значение доп.колонки(BusinessId)".

+

В этом примере функции “Получить значение” и “Задать значение” работаю следующим образом:

+ + + + + + + + + + + + + + + + + + + + + +
Функция в обработчике событий Пример использования
Получить значение BusinessId +
    +
  1. Пользователь выбрал значение на форме из справочника
  2. +
  3. Для выбранной пользователем записи значение из колонки, которая указана в параметре Возвращать значение доп. колонки (BusinessId), возвращается значение
Пример: Для справочника статусов задачи для BusinessId указана дополнительная колонка CODE. Значение этой колонки будет возвращено этой функцией при выборе пользователя.
Получить значение +
    +
  1. Пользователь выбрал значение на форме из справочника
  2. +
  3. Для выбранной пользователем записи значение из колонки, которая указана как первичный ключ, возвращается значение
Пример: Для справочника статусов задачи для первичного ключа указана колонка STATUS_ID. Значение этой колонки будет возвращено этой функцией при выборе пользователя.
Задать значение BusinessId +
    +
  1. Аналитик выбрал значение из справочника для отображения в поле по умолчанию. Выбор выполнен через дополнительное поле BusinessId, а точнее с помощью CODE. Для этого с помощью функции Задать значение указывается квалификатор (статичное), тип значения (строка) и само значение (например, “ЗАДАЧА ЗАВЕРШЕНА”)
  2. +
  3. Обработчик события загрузки формы вызывает функцию задания значения
  4. +
  5. Поле ввода автоматически по заданному CODE = “ЗАДАЧА ЗАВЕРШЕНА”; находит единственную запись в справочнике и отображает пользователю как значение по умолчанию
Задать значение +
    +
  1. Аналитик выбрал значение из справочника для отображения в поле по умолчанию. Выбор выполнен через первичный ключ, а точнее с помощью STATUS_ID. Для этого с помощью функции “Задать значение” указывается квалификатор (статичное), тип значения (целое число) и само значение (например, “123”)
  2. +
  3. Обработчик события загрузки формы вызывает функцию задания значения
  4. +
  5. Поле ввода автоматически по заданному STATUS_ID = 123 находит единственную запись в справочнике и отображает пользователю как значение по умолчанию
+

Дополнительная функция “Сконвертировать значение в целочисленный тип” как раз используется для явной конвертации возвращаемого компонентой неопределенного типа (ANY) в явно желаемый Integer (например, при присвоении идентификатора строки выбранного в компоненте значения какой-либо переменной целого типа на странице).

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Пополняемый_список_зависимых_записей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Пополняемый_список_зависимых_записей.html new file mode 100644 index 00000000..844f287f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Пополняемый_список_зависимых_записей.html @@ -0,0 +1,449 @@ + + + + + + + + Web-BPM Docs – Пополняемый список зависимых записей + + + + + + +
+
+ + + +
+
+

Пополняемый список зависимых записей

+

Назначение

+

Пополняемый список зависимых записей - это составной компонент, которыйиспользуется для выполнения на одной web-странице двух последовательных действий - добавления одной или нескольких новых строк в зависимую (от главной сущности компоненты Форма на текущей странице) таблицу и последующую взаимосвязь (линкование) каждой из вновь добавленных в зависимую таблицу строкс главной сущностьюкомпоненты Форма на текущей странице. Примером такого использования может служить необходимость прикрепления сразу нескольких сканированных документов (т.е. добавление набора файлов с атрибутами имя файла, описание, размер и т.д. в виде отдельных строк взависимую таблицу “Вложения”) к какой-то одной заявке (является главной сущностью компоненты Форма основной страницы, на которой находится пользователь).

+

Если web-страница открывается в режиме просмотра/изменения, то компонента отображает и позволяет внести изменения в список ранее уже связанных записей зависимой таблицы с главной сущностью компоненты Форма.

+

Для того, чтобы сформированные в этой компоненте строки сохранялись/считывались из/в базу данных, Пополняемый список зависимых записей следует по иерархии расположить внутри компоненты Форма.

+

Работа с компонентой осуществляется в следующей последовательности:

+
    + +
  • нажатие кнопки создать (изменить) в панели кнопок компоненты (в составе компоненты находится над элементом Редактируемая таблица)
  • +
  • в открывшемся экранном интерфейсе (элемент компоненты Диалог) ввести атрибуты создаваемой (изменяемой) записи
  • +
  • сохранение записи в элемент “Редактируемая таблица” компоненты Пополняемый список зависимых записей по нажатию на кнопку “Ок”
  • +
  • сохранение всей карточки главной сущностикомпоненты Форма, при котором осуществляется взаимопривязка (линкование) каждой записи из элемента “Редактируемая таблица” к главной сущности экранного интерфейса
  • +
+

Компонента Пополняемый список зависимых записей находится в разделе Компоненты - Сложные - Пополняемый список зависимых записей.

+

Структура компоненты Пополняемый список зависимых записей представлена набором простых компонентов, связанных между собой заранее определенными алгоритмами, и в нее входят следующие элементы (рис.2)

+

Структура

+

Основные вложенные элементы компоненты “Пополняемый список зависимых записей”(табл.1)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование элемента Описание
Пополняемый список зависимых записей Корневой контейнер вертикального выравнивания компоненты, в который по иерархии вложены все дочерние компоненты. основные параметры элемента “Список зависимых записей”
Кнопка создать используется для открытия (вызова) диалогового окна с экранным интерфейсом для ввода атрибутов записи, которую необходимо добавить в связанную таблицу
Кнопка редактировать используется для открытия (вызова) диалогового окна с экранным интерфейсом для изменения атрибутов записи, которую необходимо добавить в связанную таблицу
Кнопка Удалить используется для удаления ранее уже связанной записи в зависимой таблице
Редактируемая таблица используется для отображения строк в зависимой таблице, которые уже связаны с главной сущностью компоненты Форма
Диалог используется для отображения всплывающего диалогового окна, позволяющего ввести или изменить атрибуты зависимой записи
Форма компонента - контейнер используется для наполнения её простыми компонентами, которые позволят пользователю ввести значения атрибутов зависимой записи (при добавлении или изменении)
Кнопка Сохранение используется для сохранения введенных пользователем в поля формы значений атрибутов зависимой записи
Кнопка Отмены используется для отмены ввода значений атрибутов зависимой записи и закрывает Диалог
+

Свойства

+

Компонента имеет набор общих свойств.

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Вертикальный контейнер

+

Базовые функции элемента “Пополняемый список зависимых записей”

+

Заполнить значением по умолчанию

+

Основные параметры элемента Редактируемая таблица

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов +
  • Не активно - не отображать колонку флагов
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Форма ввода и сохранения зависимых записей Позволяет указать (методом DragAndDrop) ссылку на элемент Пополняемый список зависимых записей - Форма. В текущем компоненте, в которой будут вводиться атрибуты записей для последующей вставки в зависимую таблицу (или отображаться уже сохраненные при открытии в режиме просмотра) По умолчанию уже заполнена соответствующей ссылкой на этот элемент
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах: No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
+

Свойство компоненты: “Пополняемый список зависимых записей”. Подгрузка данных

+

+

позволяет задать граф сущностей для подгрузки данных в Таблицу. Является обязательным к заполнению и настройке.

+

Особенностью данной настройки является обязательная необходимость указания колонок, по которым связаны таблица, в которую добавляются зависимые записи (в примере - “Вложенные документы задачи”), и таблица главной сущности компоненты Форма (в примере - “Список задач”)

+

С описанием настройки Графа сущностей для Таблицы можно ознакомиться в разделе: Настройка Графа сущностей

+

Свойство компоненты: Таблица. Настроить колонки таблицы

+

+

позволяет настроить колонки (набор , порядок следования, сортировка) в Таблице

+

Отображает новые записи, добавляемые пользователем с использованием компоненты Пополняемый список зависимых записей

+

с описанием настройки Колонок Таблицы можно ознакомиться в разделе:

+

Настройка колонок Таблицы

+

Свойство компоненты: Активировать кнопку после выбора строки в таблице

+

+

Автоматически переводит кнопки “Редактировать”, “Удалить” в кликабельное состояние после выбора строки в Редактируемой таблице.

+

Если ни одна строка в Редактируемой таблице не выбрана, то кнопки не могут быть нажаты пользователем.

+

Базовые функции элемента “Редактируемая таблица”

+

Заполнить значением по умолчанию

+

Основные параметры элемента Кнопка “Создать”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет создать надпись на кнопке Создать - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет
+

Свойство компоненты: Диалог. Вызвать

+

+

указывается ссылка на дочерний элемент Пополняемый список зависимых записей - Диалог, для отображениявсплывающего диалогового окна, позволяющего ввести или изменить атрибуты зависимой записи при нажатии на кнопку

+

Свойство компоненты: “Пополняемый список зависимых записей”. Создать новую зависимую запись в списке

+

+

Предписывает системе, что нужно связать логикой исполнения перечисленные дочерние элементы Пополняемый список зависимых записей - Диалог, в котором находится элемент Пополняемый список зависимых записей - Форма, информация из полей которой потребуется для вставки записей в Редактируемую (зависимую) таблицу.

+

Параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Пополняемый список зависимых записей

+
    + +
  • Форма ввода и сохранения зависимых записей: заполняется ссылкой на дочерний элемент Пополняемый список зависимых записей - Форма основная результирующая таблица с выбранными (зависимыми) записями на странице
  • +
  • Пополняемый список зависимых записей : указывается ссылка на дочерний элемент Редактируемая таблица, которая отображает строки в зависимой таблице
  • +
  • Вызываемый диалог: указывается ссылка на дочерний элемент Пополняемый список зависимых записей - Диалог, для отображениявсплывающего диалогового окна, позволяющего ввести или изменить атрибуты зависимой записи
  • +
  • Вызываемый диалог: указывается текст заголовка дочернего элемента Диалог, по умолчанию принимает значение “Создание записи” (но может быть изменен)
  • +
+

Основные параметры элемента Кнопка “Редактировать”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет создать надпись на кнопке Редактировать - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет Внести изменения в список?
+

Свойство компоненты: Диалог. Вызвать

+

+

Вызвать диалог - указывается ссылка на дочерний элемент Пополняемый список зависимых записей - Диалог, для отображениявсплывающего диалогового окна, позволяющего ввести или изменить атрибуты зависимой записи при нажатии на кнопку

+

Свойство компоненты: “Пополняемый список зависимых записей”. Изменить новую зависимую запись в списке

+

+

Предписывает системе, что нужно связать логикой исполнения перечисленные дочерние элементы Пополняемый список зависимых записей - Диалог, в котором находится Пополняемый список зависимых записей - Форма, информация из полей которой потребуется для вставки записей в Редактируемую (зависимую) таблицу.

+

Параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Пополняемый список зависимых записей

+
    + +
  • Форма ввода и сохранения зависимых записей: заполняется ссылкой на дочерний элемент Пополняемый список зависимых записей - Форма основная результирующая таблица с выбранными (зависимыми) записями на странице
  • +
  • Пополняемый список зависимых записей : указывается ссылка на дочерний элемент Редактируемая таблица, которая отображает строки в зависимой таблице
  • +
  • Вызываемый диалог: указывается ссылка на дочерний элемент Пополняемый список зависимых записей - Диалог, для отображениявсплывающего диалогового окна, позволяющего ввести или изменить атрибуты зависимой записи
  • +
  • Вызываемый диалог: указывается текст заголовка дочернего элемента Диалог, по умолчанию принимает значение “Редактирование записи” (но может быть изменен)
  • +
+

Основные параметрыэлемента “Кнопка Удалить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе-Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет создать надпись на кнопке Удалить - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет
+

Свойство компоненты: “Пополняемый список зависимых записей”. Удалить новую зависимую запись в списке

+

+

Предписывает системе произвести операцию удаления выбранной записи из элемента Редактируемая (зависимая) таблица

+

Основные параметры элемента “Диалог”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Диалог

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет задать заголовок диалога на странице пример возможного значения: Выбор записей - значение по умолчанию
Допускается скрытие через системную Х позволяет задать возможность закрытия диалога по нажатию на системный возможно закрыть диалог через- значение по умолчанию, невозможно закрыть диалог (системный скрыт)
+

Базовые функции элемента “Диалог”

+

Заполнить значением по умолчанию

+

Основные параметры элемента “Форма”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Форма

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Пополняемый список зависимых записей Устанавливает взаимосвязь с элементом Редактируемая (зависимая) таблица, указывая Системе, в какую таблицу должна сохранить (или считать) данные элементу Пополняемый список зависимых записей #Форма
Диалог Указывает системе на взаимосвязь с родительским элементом Пополняемый список зависимых записей #Диалог, в котором элемент Форма находится
+

Свойство компоненты: “Форма”. Подгрузка данных основная

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Скрипт Используется в предустановленной конфигурации по умолчанию, изменений со стороны пользователя не требует
Show server validation error Позволяет выводить текст с северной ошибкой при загрузке формы. +
    +
  • Активно - выводит текст серверной ошибки
  • Не активно - не выводить текст серверной +
  • +
  • Значение не определено - по умолчанию
Message validation template Позволяет задать текст шаблона валидации
+

Базовые функции элемента “Форма”

+

Заполнить значением по умолчанию

+

Основные параметры элемента “Кнопка Сохранения”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка сохранения

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке Значение “Ок” по умолчанию, может быть изменено
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет
Компонента Форма Указывает системе, данные из какого элемента Пополняемый список зависимых записей #Форма следует сохранить в таблицу зависимых записей
+

Основные параметры элемента “Кнопка Отмена”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке Значение “Отмена” по умолчанию, может быть изменено
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет
+

Свойство компоненты: Диалог. Скрыть

+

+

Предписывает системе закрыть элемент Пополняемый список зависимых записей #Диалог в случае нажатия на кнопку Отмена

+

Базовые функции

+

Заполнить значением по умолчанию

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотренперечень функций, расширяющих её базовую функциональность,которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации скриптов (

+

-скрипты выполняются удаленно на сервере приложений,

+

- скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Какие параметры компоненты “Пополняемый список зависимых записей” требуют непосредственной настройки аналитиком? Большинству описанных параметров элементов сложного компонента уже заранее заданы значения по умолчанию, и они не требуют каких-либо изменений от аналитика в типовых случаях. Но часть параметров следует задать в процессе использования компоненты для её внедрения в логику проекта. Вот список этих параметров: “Пополняемый список зависимых записей”. Подгрузка данных; “Таблица”. Настроить колонки таблицы; И дополнительно наполнить полями элемент Пополняемый список зависимых записей #Форма - на этом шаге от аналитика требуется заполнить в дереве страницы контейнер элемента Форма необходимыми простыми компонентами для оперирования атрибутами вставляемой записи.
Можно ли поменять порядок отображаемых колонок в Таблице? Для того, чтобы изменить порядок колонок в Таблице необходимо в свойстве Настроить колонки таблицы - Колонки нажать правой кнопкой мыши на «Элемент» и выбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент
Как изменить формат отображения данных в колонке Таблицы? В случае, если необходимо изменить формат отображения значений в колонке Таблицы необходимо при настройке колонки применить Форматтер. Например, подгружаемое значение в колонку имеет тип данных Дата и Время (DateTime), но на странице пользовательского приложения необходимо отображать значение в колонке без Времени, только Дату. В таком случае, целесообразно использовать форматтер DateFormatter, который отобразит значение колонки в нужном виде. Но при этом предварительно необходимо применить к Таблице функцию Очистить форматирование колонок таблицы, указав наименование настраиваемой колонки.
Можно ли изменить цветовое оформление Таблицы? Да. Цветовым оформлением Таблицы можно управлять с помощью CSS-стилей, задаваемых в Основных параметрах - Расширенные настройки - CSS классы
Как автоматически вывести сумму значений по колонке в Таблицу? Для того, чтобы на странице отобразилась сумма значений по колонке, необходимо при настройке колонки выбрать Агрегирующую функцию - Сумма, после чего в Таблице автоматически отобразится зафиксированная (положение не будет изменяться при прокрутке записей) результирующая строка в Таблице. При этом строка будет выделена отличным от других записей в таблице цветом и значение в результирующем поле будет динамически изменяться по мере заполнения колонки (выбранной в качестве источника данных) новыми значениями в таблице базы данных.С описанием настройки колонок в Таблице можно ознакомиться в разделе: Настройка колонок Таблицы
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_зависимых_записей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_зависимых_записей.html new file mode 100644 index 00000000..88554aba --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_зависимых_записей.html @@ -0,0 +1,777 @@ + + + + + + + + Web-BPM Docs – Список зависимых записей + + + + + + +
+
+ + + +
+
+

Список зависимых записей

+

Назначение

+

Список зависимых записей - это составной компонент, который используется для формирования и отображения списка выбранных пользователем и связанных с главной сущностью (компонентой Формана текущей странице) записей (одной или нескольких) из множества доступных, но без возможности пополнения пользователем списка доступных записей. Примером использования может служить задача назначения нескольких сотрудников из списочного состава организации в команду проекта, когда списочный состав - это заранее сформированный и нередактируемый из компоненты справочник сотрудников, из которого можно только выбирать тех, кто будет включен в команду проекта.

+

Для того чтобы данные, отобранные с помощью этой компоненты, сохранялись/считывались в/из базы данных, её необходимо расположить внутри (вложить) компоненты Форма.

+

Компонента Список зависимых записей находится в разделе Компоненты - Поля - Список зависимых записей.

+

В структуру компоненты Список зависимых записей, представленной набором простых компонентов и связанных между собой заранее определенными алгоритмами, входят следующие элементы

+

Работа с компонентой и выбор требуемых значений из списка доступных записей осуществляется в следующей последовательности:

+
    + +
  • нажатие Кнопки “Изменить”, расположенной рядом с основной Таблицей зависимых записей на странице(в составе компоненты находится под элементом Связанная таблица); по нажатию на кнопку происходит открытие всплывающего диалогового окна
  • +
  • поиск необходимых значений в Таблице доступных записей (на странице в диалоговом окне находится слева)
  • +
  • выбор значения с помощью Кнопок “Добавить” или *“Добавить все” *из списка доступных записей; по нажатию на кнопку происходит перенос (добавление) записи из Таблицы доступных значений (на странице в диалоговом окне находится слева) в Связанную таблицу выбранных значений (на странице в диалоговом окне находится справа)
  • +
  • удаление выбранного значения с помощью Кнопок “Удалить” или “Удалить все” из списка уже выбранных значений; по нажатию на кнопку происходит перенос (удаление) записи из Связанной таблицы выбранных значений(на странице в диалоговом окне находится справа) и возвращение записи в Таблицу доступных значений(на странице в диалоговом окне находится слева)
  • +
  • перенос значений из Связанной таблицы выбранных записей в результирующую Связанную таблицу с главной сущностью (компонентой Формана текущей странице) по нажатию на Кнопку “Ок” и закрытие диалогового окна
  • +
  • сохранение всей карточки главной сущности компоненты Форма, при котором осуществляется взаимопривязка (линкование) каждой записи из элемента “Связанная таблица” к главной сущности экранного интерфейса
  • +
+

Структура

+

Основные вложенные элементы компоненты Список зависимых записей

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование элемента Описание
Список зависимых записей контейнер вертикального выравнивания, в который вложены все дочерние компоненты
Связанная таблица используется для отображения строк в зависимой таблице, которые уже связаны сглавной сущностью компоненты Форма
Кнопка Изменить используется для открытия (вызова) диалогового окна со списком доступных значений для выбора
Диалог используется для отображения всплывающего диалогового окна со списком доступных значений для выбора
Таблица используется для отображения списка доступных значений (записей) для выбора (во всплывающем диалоговом окне находится слева)
Кнопка Добавить используется для переноса (добавления) одной выбранной записи из Таблицы
Кнопка Добавить все используется для переноса (добавления) всех записей из Таблицы всех доступных значений(на странице в диалоговом окне находится слева)вСвязанную таблицувыбранных значений(на странице в диалоговом окне находится справа)
Кнопка Удалить используется для исключения (удаления) строки из Связанной таблицы уже выбранных значений (на странице в диалоговом окне находится справа) и обратного переноса в Таблицу всех доступных значений(на странице в диалоговом окне находится слева)
Кнопка Удалить все используется для исключения (удаления) всех строк из Связанной таблицы уже выбранных значений (на странице в диалоговом окне находится справа) и обратного переноса в Таблицу всех доступных значений(на странице в диалоговом окне находится слева)
Связанная таблица используется для отображения списка уже выбранных пользователем записей (во всплывающем диалоговом окне находится справа) из массива доступных значений (записей) для выбора. Необязательна для настройки (только при необходимости более детального вывода информации), так как по умолчанию дублирует конфигурацию
Кнопка Ок используется для переноса значений из Связанной таблицы выбранных записей в результирующую Связанную таблицу с главной сущностью(компонентойФормана текущей странице)и закрытия диалогового окна
Кнопка Отмена используется для отмены выбора значений из списка доступных и закрытия диалогового окна
+

Свойства

+

Компонента имеет набор общих свойств.

+

Основные параметры Список зависимых записей

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Вертикальный контейнер

+

Основные параметры Связанной таблицы

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Подсказка позволяет создать подсказку, расположенную внутри элемента
Надпись позволяет задать наименование поля, которое будет отображаться на странице
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов +
  • Не активно - не отображать колонку флагов
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Save Column State позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
  • +
  • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
No Rows Overlay Message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют(доступно для настройки при Loading Overlay Type - TEXT_OVERLAY) пример возможного значения:Данные отсутствуют
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах:No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
Loading overlay message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например,Загрузка данных, пожалуйста, подождите.(доступно для настройки приLoading Overlay Type - TEXT_OVERLAY)
+

Свойство компоненты: Список зависимых записей. Подгрузка данных

+

+

позволяет задать граф сущностей для подгрузки данных в Таблицу. Является обязательным к заполнению и настройке.

+

с описанием настройки Графа сущностей для Таблицы можно ознакомиться в разделе: Настройка Графа сущностей

+

Свойство компоненты: Таблица. Настроить колонки таблицы

+

+

позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку

+

с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

+

Свойство компоненты: Список зависимых записей. Взаимосвязи таблиц

+

+

позволяет задать взаимосвязи между таблицами для подгрузки/сохранения значений

+
    + +
  • Колонка, ссылающаяся на таблицу “доступных” - указывается колонка объекта базы данных, включенного в Граф сущностей текущей настраиваемой Связанной таблицы, которая ссылается на главную таблицу в Графе сущностей Таблицы “доступных” записей для выбора (на странице в диалоговом окне находится слева)
  • +
  • Колонка, ссылающаяся на “основную” таблицу - указывается колонка объекта базы данных, включенного в Граф сущностей текущей настраиваемой Связанной таблицы, которая ссылается на главную таблицу в Графе сущностей основной компоненты Форма на странице
  • +
  • Колонка “основной” таблицы - указывается колонка (первичный ключ) главной таблицы в Графе сущностей основной компоненты Форма на странице, на которую ссылается текущая настраиваемая Связанная таблица
  • +
+

Свойство компоненты: Список зависимых записей. Заполнить значением по умолчанию

+

+

позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компоненты Список зависимых записей

+

с описанием функции Заполнить значением по умолчанию можно ознакомиться в разделе: Заполнить значением по умолчанию - Список зависимых записей.

+

с описанием настройки Графа сущностей для Таблицы можно ознакомиться в разделе: Настройка Графа сущностей

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет создать надпись на кнопке Изменить - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Внести изменения в список?
+

Свойство компоненты: Диалог. Вызвать

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Вызвать диалог позволяет задать диалог, который будет открываться при нажатии на кнопку по умолчанию задан Диалог вложенный в компоненту Список зависимых записей
+

Свойство компоненты: Список зависимых записей. Перенести записи в таблицу “выбранных” записей

+

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • Из списка зависимых записей: указывается основная результирующая Связанная таблица с главной сущностью(компонентой Формана текущей странице)
  • +
  • В таблицу выбранных записей: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных
  • +
  • Таблица со всеми доступными записями: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи
  • +
+

+

Основные параметры Диалога

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Диалог

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет задать заголовок диалога на странице пример возможного значения: Выбор записей - значение по умолчанию
Допускается скрытие через системную Х позволяет задать возможность закрытия диалога по нажатию на системный возможно закрыть диалог через- значение по умолчанию, невозможно закрыть диалог (системный скрыт)
+

Основные параметры Таблицы

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов +
  • Не активно - не отображать колонку флагов
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Save column state позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
  • +
  • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах:No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
No Rows Overlay Message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют(доступно для настройки при Loading Overlay Type - TEXT_OVERLAY)
Loading overlay message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например,Загрузка данных, пожалуйста, подождите.(доступно для настройки приLoading Overlay Type - TEXT_OVERLAY) *пример возможного значения:Загрузка данных, пожалуйста, подождите.
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
+

Свойство компоненты: Таблица. Подгрузка данных

+

+

позволяет задать граф сущностей для подгрузки данных в Таблицу. Является обязательным к заполнению и настройке.

+

с описанием настройки Графа сущностей для Таблицы можно ознакомиться в разделе: Настройка Графа сущностей

+

Свойство компоненты: Таблица. Настроить колонки таблицы

+

+

позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку

+

Видимые колонки данной Таблицы должны быть равны колонкам, отображаемым в основной Связанной таблице (колонки могут быть скрыты, но должны быть включены в таблицу)

+

с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

+

Свойство компоненты: Активировать кнопку после выбора строки в таблице

+

+

устанавливает доступность Кнопки “Добавить” после выбора строки в Таблице со списком доступных записей (на странице в диалоговом окне находится слева) для переноса записи в Связанную таблицу выбранных пользователем записей (на странице в диалоговом окне находится справа)

+

+

-по умолчанию задана Кнопка “Добавить”, вложенная в компоненту Список зависимых записей

+

Свойство компоненты: Продублировать конфигурацию текущей таблицы (с доступными строками) в таблицу уже выбранных строк

+

+

позволяет продублировать настройки Таблицы с доступными для выбора записей (на странице в диалоговом окне находится слева) в Связанную таблицу уже выбранных пользователем записей (на странице в диалоговом окне находится справа), то есть исключает необходимость ручной настройки (так как обе таблицы должны быть приведены к единому виду) бизнес-аналитиком колонок таблицы, сортировки, форматирования таблицы и проч. для Связанной таблицы.

+

+

-по умолчанию задана Связанная таблица, вложенная в компоненту Список зависимых записей

+

Свойство компоненты: Исключить из текущей таблицы (доступных строк) уже выбранные строки

+

+

при выборе записи в Таблице с доступными для выбора записей (на странице в диалоговом окне находится слева) и переносе её (с помощью Кнопки “Добавить” или Кнопки “Добавить все” ) в Связанную таблицу уже выбранных пользователем записей (на странице в диалоговом окне находится справа) исключает данную запись (и) из текущей Таблицы (доступных строк)

+

-по умолчанию задана Связанная таблица, вложенная в компоненту Список зависимых записей

+

Свойство компоненты: Таблица. Настроить динамическую подгрузку данных при просмотре страницы

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Количество записей в блоке количество отображаемых записей в Таблице по умолчанию при каждой новой подгрузке 20 - значение по умолчанию
+

Основные параметры Кнопки “Добавить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: > - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите выбрать данное значение?
+

Свойство компоненты: Список зависимых записей. Перенести строку из таблицы “доступных” строк в таблицу “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос строки из Таблицы доступных записей (на странице в диалоговом окне находится слева) в Таблицу выбранных пользователем записей (на странице в диалоговом окне находится справа)

+

параметры функции заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • Из таблицы “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, откуда будет перенесена выбранная запись
  • +
  • В таблицу “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, куда будет перенесена выбранная запись
  • +
+

+

Основные параметры Кнопки “Добавить все”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе-Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке *пример возможного значения: >> - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите выбрать данное значение?
+

Свойство компоненты: Список зависимых записей. Перенести строку из таблицы “доступных” строк в таблицу “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос всех строк из Таблицы доступных записей (на странице в диалоговом окне находится слева) в Таблицу выбранных пользователем записей (на странице в диалоговом окне находится справа)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • Из таблицы “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, откуда будут перенесены все записи одновременно
  • +
  • В таблицу “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, куда будут перенесены записи
  • +
+

+

Основные параметры **Кнопки “Удалить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: < - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите исключить данное значение?
+

Свойство компоненты: Список зависимых записей. Вернуть строку в таблицу “доступных” из таблицы “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос строки из Таблицы выбранных пользователем записей (на странице в диалоговом окне находится справа) в Таблицу доступных записей (на странице в диалоговом окне находится слева)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • В таблицу “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, куда будет перенесена (возвращена) выбранная запись
  • +
  • Из таблицы “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, откуда будет перенесена (возвращена) выбранная запись
  • +
+

+

Основные параметры **Кнопки “Удалить все”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: << - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите исключить все значения?
+

Свойство компоненты: Список зависимых записей. Вернуть все строки в таблицу “доступных” из таблицы “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос строки из Таблицы выбранных пользователем записей (на странице в диалоговом окне находится справа) в Таблицу доступных записей (на странице в диалоговом окне находится слева)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • В таблицу “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, куда будут перенесены (возвращены) все записи
  • +
  • Из таблицы “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, откуда будут перенесены (возвращены) все записи
  • +
+

+

Основные параметры Связанной таблицы (таблица выбранных пользователем записей)

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Подсказка позволяет создать подсказку, расположенную внутри элемента
Надпись позволяет задать наименование поля, которое будет отображаться на странице
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов +
  • Не активно - не отображать колонку флагов
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Save Column State позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
  • +
  • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах:No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
No Rows Overlay Message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют(доступно для настройки при Loading Overlay Type - TEXT_OVERLAY)
Loading overlay message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например,Загрузка данных, пожалуйста, подождите.(доступно для настройки приLoading Overlay Type - TEXT_OVERLAY)
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
+

Свойство компоненты: Таблица. Настроить колонки таблицы

+

+

позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку

+

с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

+

Свойство компоненты: Активировать кнопку после выбора строки в таблице

+

+

устанавливает доступность Кнопки “Удалить” после выбора строки в Связанной таблице выбранных пользователем записей (на странице в диалоговом окне находится справа) для переноса (возврата) записи в Таблицу со списком доступных записей (на странице в диалоговом окне находится слева)

+

по умолчанию задана - Кнопка “Удалить”

+

+

Свойство компоненты:Список зависимых записей. Заполнить значением по умолчанию

+

+

позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компоненты Список зависимых записей

+

Внимание! При использовании данной функции, нет необходимости настройки и заполнения Графа сущностей в текущей таблице

+

с описанием функции Заполнить значением по умолчанию можно ознакомиться в разделе: Заполнить значением по умолчанию.Список зависимых записей

+

Основные параметры Кнопки “Ок”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет создать надпись на кнопке пример возможного значения: Ок - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно выбрали все необходимые значения?
+

Свойство компоненты: Диалог. Скрыть

+

+

Скрыть Диалог - позволяет задать диалог, который будет закрыт при нажатии на кнопку. По умолчанию задан Список зависимых записей#Диалог, вложенный в компоненту Список зависимых записей

+

Свойство компоненты: Список зависимых записей. Перенести записи из таблицы “выбранных” записей

+

+

по нажатию на кнопку автоматически происходит перенос записей из Таблицы выбранных пользователем записей (на странице в диалоговом окне находится справа) в результирующую Связанную таблицу зависимых записей (на основной странице)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • Из таблицы “выбранных”: указывается Связанная таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, откуда будут перенесены значения
  • +
  • В список зависимых записей: указывается основная результирующая Связанная таблица с главной сущностью(компонентой Формана текущей странице), куда будут перенесены записи
  • +
+

+

Основные параметры Кнопки “Отмена”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет создать надпись на кнопке пример возможного значения: Отмена - значение по умолчанию
Текст подтверждения при нажатии позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите отменить операцию?
+

Свойство компоненты: Диалог. Скрыть

+

+

позволяет задать диалог, который будет закрыт при нажатии на кнопку

+

- по умолчанию задан Список зависимых записей#Диалог, вложенный в компоненту Список зависимых записей

+

Базовые функции

+

заполнить значением по умолчанию

+

Назначение

+

Функция, которая позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компоненты Список зависимых записей.

+

Функция Заполнить значением по умолчанию должна быть задействована на обоих компонентах “Связанная таблица”, а настроена только на основной компоненте “Связанная таблица”, входящей в состав сложной компоненты Список зависимых записей.

+

Активация и настройка функции на первой компоненте “Связанная таблица”

+

Активация без настройки функции на второй компоненте “Связанная таблица”

+

При этом, на выше лежащей компоненте Форма функция Подгрузка значений по умолчанию должна быть активирована (но может быть не настроена).

+

+

Результатом исполнения функции Заполнить значением по умолчанию является одно или несколько значений, которыми предзаполняются основная компонента “Связанная таблица”, входящая в состав сложнойкомпоненты Список зависимых записей, и отображающая список только тех строк из списка всех доступных строк, которые выбраны пользователем .

+

В этом основное отличие этой функции от аналогичной функции, используемой для запроса ‘значений по умолчанию’ обычных визуальных компонентов, но оперирующей только одним значением.

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Как ограничить количество строк в Связанной таблице (LinkField)

+

Чтобы ограничить количество строк в Связанной таблице установите необходимое значение в параметр “Макс. количество строк” (Если значение не установлено или 0, то ограничение не действует):

+

+

Если Вы хотите выбрать действие при попытке выйти за границы максимального количества, выберите это действие в блоке “Тогда” в компоненте “Обработка событий”:

+

+

Если Вы хотите динамически менять максимальное количество строк, используйте метод “Задать максимальное количество строк” в компоненте:

+

+

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Как сделать, чтобы данные, отобранные с помощью компоненты Список зависимых записей, сохранялись в базу данных? Для того, чтобы данные, отобранные с помощью компоненты Список зависимых записей, сохранялись/считывались в/из базы данных, её необходимо вложить внутрь основной компоненты Формана странице.
Какие дочерние элементы Списка зависимых записей требуют обязательной и непосредственнойнастройки аналитиком? Большинству описанных параметров дочерних элементов компоненты Список зависимых записей уже заранее заданы значения по умолчанию, и они не требуют каких-либо изменений от аналитика в типовых случаях. Но часть параметров следует задать в процессе использования компоненты для её корректной работы и внедрения в логику бизнес-процесса: +
    +
  • параметры основной Таблицы Списка зависимых записей на странице -Связанная таблица: Список зависимых записей. Подгрузка данныхСписок зависимых записей. Взаимосвязи таблиц Таблица. Настроить колонки таблицы
  • +
  • параметры Таблицы доступных строк для выбора -Таблица: Таблица. Подгрузка данных Таблица. Настроить колонки таблицы
В каких случаях используется Список зависимых записей, а в каких случаях Список с поиском для выбора одного значения? В случае, когда необходимо связать идентификатор главной сущности компоненты Форма, например, Заявление на получение лицензии, одновременно с несколькими значениями (связь многие ко многим), например, виды деятельности лицензиата,из заранее сформированного списка доступных значений, то используется Список зависимых записей (сохранение отобранных значений, осуществляется в таблицу связи базы данных, в приведенном примере, между Заявлением и Видом деятельности лицензиата). В случае, когда архитектура базы данных предполагает сохранение одного идентификатора из списка доступных значений (связь один ко многим) используется Список с поиском для выбора одного значения
Можно ли использовать Набор фильтров для удобства поиска значений в Таблице доступных строк? Да, можно. Для этого необходимо в элемент Диалог, входящий в состав компоненты Список зависимых записей, добавить элемент Набор фильтров со вложенными фильтрами, например, *Текстовое поле (фильтр)*или Фильтр по числовому полю, настроить их свойства и в качестве Таблицы, по значениям которой будет происходить фильтрация, в Наборе фильтров указать Таблицу доступных строк компоненты Список зависимых записей.
Почему при открытии диалога на странице неактивна кнопка “Добавить”? Кнопка "Добавить"недоступна для управления по умолчанию и становится активна только при выборе записи (с помощью функцииАктивировать кнопку после выбора строки в таблице, настраиваемой в свойствах Таблицы) в Таблице доступных строк для выбора(на странице в диалоговом окне находится слева). По нажатию на кнопку выбранная пользователем строка будет перенесена в Таблицу выбранных строк(на странице в диалоговом окне находится справа). Аналогичная логика заложена в работу кнопки “Удалить”, которая становится активна только при выборе записи в Таблице выбранных строк(на странице в диалоговом окне находится справа),и по нажатию на кнопку выбранная запись будет перенесена в Таблицу доступных строк(на странице в диалоговом окне находится слева).
Можно ли выбрать одновременно несколько строк в Таблице доступных записей для добавления в Таблицу выбранных строк? Да, можно. Для этого необходимо при настройке основных параметров Таблицы доступных строк, привести свойства Допустимо выбрать несколько строк и Колонка флагов в значение(истина) в параметре Таблица. Задействовать режим выбора нескольких строк, после чего в интерфейсе в Таблице доступных строк (на странице в диалоговом окне находится слева)отобразится колонка флагов (выбора записи), которая позволит одновременно выделить несколько строк (при этом выбранные строки окрасятся в отличный от других строк цвет), и по нажатию на кнопку “Добавить” выбранные записи будут перенесены в Таблицу выбранных строк(на странице в диалоговом окне находится слева). В случае, когда необходимо выбрать все предложенные записи в Таблице доступных строк и включить их в Таблицу выбранных строк используется кнопка “Добавить все”.
Можно ли изменить цветовое оформление Таблицы? Да. Цветовым оформлением Таблицы можно управлять с помощью CSS-стилей, задаваемых в**Основных параметрах - Расширенные настройки - CSS классы.
Как изменить формат отображения данных в колонке Таблицы? В случае, если необходимо изменить формат отображения значений в колонке Таблицы необходимо при настройке колонки применить Форматтер. Например, подгружаемое значение в колонку имеет тип данных Дата и Время (DateTime), но на странице пользовательского приложения необходимо отображать значение в колонке без Времени, только Дату. В таком случае, целесообразно использовать форматтер DateFormatter, который отобразит значение колонки в нужном виде. Но при этом предварительно необходимо применить к Таблице функцию Очистить форматирование колонок таблицы, указав наименование настраиваемой колонки.
Можно ли поменять порядок отображаемых колонок в Таблице? Для того, чтобы изменить порядок колонок в Таблице необходимо в свойстве Настроить колонки таблицы - Колонки нажать правой кнопкой мыши на «Элемент» и выбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент.
Можно ли задать автоматическую нумерацию строк (записей) в Таблице? Да, можно. Для этого необходимо в настраиваемых параметрах Таблицы перейти к свойству Таблица. Основные параметры - Показывать номер строки и привести его в значение(истина).
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_зависимых_записей_поле_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_зависимых_записей_поле_.html new file mode 100644 index 00000000..7e694e19 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_зависимых_записей_поле_.html @@ -0,0 +1,751 @@ + + + + + + + + Web-BPM Docs – Список зависимых записей (поле) + + + + + + +
+
+ + + +
+
+

Список зависимых записей (поле)

+

Назначение

+

Список зависимых записей (поле)- это составной компонент, которыйиспользуется длявыбора одного или нескольких значений из списка доступных и записи выбранных значений в поле, которое имеет возможность хранения и отображения нескольких значений одновременно (поле с множественным выбором). Логика работы компоненты Список зависимых записей (поле) схожа с логикой работы компоненты Список зависимых записей, отличие заключается в том, что результатвыбора значений отображается не в виде таблицы, а в виде поля с множественным выбором.Компонента может быть использована в достаточно частных случаях, посколькуданные, отобранные с помощью этой компоненты, не сохраняются в базу данных. Примером возможного применения компоненты Список зависимых записей (поле) можно назвать использование компоненты в качестве входного параметра для формирования отчетной формы, когда в качестве параметра необходимо передать массив значений (идентификаторов) (например, список нескольких сотрудников, по которым необходимо сформировать отчет).

+

Компонента Список зависимых записей (поле) находится в разделе Компоненты - Поля - Список зависимых записей(поле).

+

В структуру компоненты Список зависимых записей (поле), представленной набором простых компонентов и связанных между собой заранее определенными алгоритмами, входят следующие элементы

+

Работа с компонентой и выбор требуемых значений из списка доступных записей осуществляется в следующей последовательности:

+
    + +
  • нажатие Кнопки “Изменить” (рис.3), расположенной рядом с Полем с множественным выбором на странице; по нажатию на кнопку происходит открытие диалогового окна (рис.4)
  • +
  • доступные для выбора значения расположены вТаблицедоступных записей(на странице в диалоговом окне находится слева)
  • +
  • выбор значения осуществляется с помощью Кнопок “Добавить” (>) или “Добавить все” (>>) из списка доступных записей; по нажатию на кнопку происходит перенос (добавление) записи из Таблицы доступных значений(на странице в диалоговом окне находится слева) в Связанную таблицу выбранных значений (на странице в диалоговом окне находится справа)
  • +
  • удаление выбранного значения осуществляется с помощью Кнопок “Удалить” или “Удалить все” из списка уже выбранных значений; по нажатию на кнопку происходит перенос (удаление) записи из Связанной таблицы выбранных значений(на странице в диалоговом окне находится справа) и возвращение записи в Таблицу доступных значений(на странице в диалоговом окне находится слева)
  • +
  • перенос значений из Связанной таблицы выбранных записей в результирующее Поле с множественным выбором по нажатию на Кнопку “Ок” и закрытие диалогового окна
  • +
+

+

рис.3 Поле с множественным выборок и кнопка “Изменить”

+

+

рис.4 Диалоговое окно для выбора значений

+

Структура

+

Основные вложенные элементы компоненты Список зависимых записей (поле)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование элемента Описание
Список зависимых записей (поле) контейнер горизонтального выравнивания, в который вложены все дочерние компоненты
Поле с множественным выбором используется только для отображения (без возможности управления и ручного ввода) выбранных значений из Связанной таблицы
Кнопка “Изменить” используется для открытия (вызова) диалогового окна со списком доступных значений для выбора
Диалог используется для отображениявсплывающего диалогового окна со списком доступных значений для выбора
Таблица используется для отображения списка доступных значений (записей) для выбора (во всплывающем диалоговом окне находится слева)
Кнопка “Добавить” используется для переноса (добавления) одной выбранной записи из Таблицы всех доступных значений (на странице в диалоговом окне находится слева) в Связанную таблицу выбранных значений (на странице в диалоговом окне находится справа)
Кнопка Добавить все используется для переноса (добавления) всех записей из Таблицы всех доступных значений(на странице в диалоговом окне находится слева)вСвязанную таблицувыбранных значений(на странице в диалоговом окне находится справа)
Кнопка “Удалить” используется для исключения (удаления) строки из Связанной таблицы уже выбранных значений (на странице в диалоговом окне находится справа) и обратного переноса в Таблицу всех доступных значений(на странице в диалоговом окне находится слева)
Кнопка Удалить все используется для исключения (удаления) всех строк из Связанной таблицы уже выбранных значений (на странице в диалоговом окне находится справа) и обратного переноса в Таблицу всех доступных значений(на странице в диалоговом окне находится слева)
Связанная таблица используется для отображения списка уже выбранных пользователем записей (во всплывающем диалоговом окне находится справа) из массива доступных значений (записей) для выбора. Необязательна для настройки (только при необходимости более детального вывода информации), так как по умолчанию дублирует конфигурацию Таблицы Списка зависимых записей всех доступных значений для выбора (во всплывающем диалоговом окне находится слева)
Кнопка “ОК” используется для переноса значений из “Связанной таблицы” выбранных записей в результирующее “Поле с множественным выбором” и закрытия диалогового окна
Кнопка Отмены используется для отмены выбора значений из списка доступных и закрытия диалогового окна
+

Свойства

+

Компонента имеет набор общих свойств.

+

Основные параметры Список зависимых записей (поле)

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Горизонтальный контейнер

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
+

Основные параметры Поле с множественным выбором

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись позволяет задать наименование поля, которое будет отображаться на странице *пример возможного значения:*Утверждающие (рис.1)
Разделитель позволяет указать символ или пробел, который будет разделять между собой выбранные значения в поле пример возможного значения: ;
Подсказка позволяет создать подсказку, расположенную внутри элемента *пример возможного значения:*Выбрать сотрудников
+

Свойство компоненты: Поле с множественным выбором. Подгрузка данных

+

+

позволяет задать источник подгрузки данных с указанием отображаемых значений пользователю, и с настройкой Графа сущностей. Является обязательным к заполнению и настройке.

+
    + +
  • + +

    Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей. Является обязательным к заполнению и настройке.

    +
  • +
  • + +

    Отображаемая колонка - позволяет задатьэлемент базы данных, значение которого будет отображено пользователю на странице в Поле с множественным выбором

    +
  • +
+

Свойство компоненты: Поле с множественным выбором. Подгрузка данных по умолчанию

+

позволяет указать значение по умолчанию, которое будет подгружаться в поле с помощью двух типов подгрузки (источников подгрузки значения):

+
    + +
  • из колонки
  • +
  • из сервиса
  • +
+

с описанием настройки свойства Подгрузка данных по умолчаниюи соответствующих ей типов подгрузкиможно ознакомиться в разделе: Заполнить значением по умолчанию

+

Основные параметры Кнопки “Изменить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Внести изменения в список?
Надпись позволяет задать надпись на кнопке пример возможного значения: … - значение по умолчанию
+

Свойство компоненты: Диалог. Вызвать

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
позволяет задать диалог, который будет открываться при нажатии на кнопку по умолчанию задан Диалог (Список зависимых записей(поле) - Диалог вложенный в компоненту Список зависимых записей (поле))
+

Свойство компоненты: Список зависимых записей. Перенести записи в Поле множественного выбора (SetRowsFromFieldForMTMField)

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
SetRowsFromFieldForMTMField параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей (поле) +
    +
  • From (Из списка зависимых записей): указывается результирующий элемент Поле с множественным выбором
  • +
  • To (В таблицу выбранных записей): указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных
  • +
  • Grid (Таблица со всеми доступными записями): указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи
+

+

рис.1 Отображение связи элементов

+

Основные параметры Диалога

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Диалог

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет задать заголовок диалога на странице пример возможного значения: Выбор записей - значение по умолчанию
Допускается скрытие через системную Х позволяет задать возможность закрытия диалога по нажатию на системный возможно закрыть диалог через- значение по умолчанию, невозможно закрыть диалог (системный скрыт)
+

Основные параметры Таблицы

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список
Всплывающая подсказка позволяет указать текст всплывающей подсказки, которая появляется при наведении курсора на элемент
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов
  • +
  • Не активно - не отображать колонку флагов
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Save Column State позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
  • +
  • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах:No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
No Rows Overlay Message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют(доступно для настройки при Loading Overlay Type - TEXT_OVERLAY) пример возможного значения:Данные отсутствуют
Loading overlay message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например,Загрузка данных, пожалуйста, подождите.(доступно для настройки приLoading Overlay Type - TEXT_OVERLAY) пример возможного значения:Загрузка данных, пожалуйста, подождите.
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
+

Свойство компоненты: Таблица. Подгрузка данных

+

+

позволяет задать граф сущностей для подгрузки данных в Таблицу. Является обязательным к заполнению и настройке.

+

Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей.

+
    + +
  • + +

    Колонка для режима “Зависит от” - позволяет указать колонку настраиваемой Таблицы, которая обеспечивает связь текущей компоненты с компонентой заданной в параметре “Зависит от”

    +
  • +
  • + +

    Datasource Jndi Name - позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.

    +
  • +
+

Значение данного свойства может быть задано следующим образом: java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файле standalone.xml (аналогично тому, как указывается, например, подключение к базе данных безопасности).

+

В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).

+

Свойство компоненты: Таблица. Настроить колонки таблицы

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Настроить колонки таблицы позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы
+

+

Свойство компоненты: Активировать кнопку после выбора строки в таблице

+

+

устанавливает доступность Кнопки “Добавить” (>) после выбора строки в Таблице со списком доступных записей (на странице в диалоговом окне находится слева) для переноса записи в Связанную таблицу выбранных пользователем записей (на странице в диалоговом окне находится справа)

+

+
    + +
  • по умолчанию задана Кнопка “Добавить”, вложенная в компоненту Список зависимых записей (поле)
  • +
+

Свойство компоненты: Продублировать конфигурацию текущей таблицы (с доступными строками) в таблицу уже выбранных строк

+

+

позволяет продублировать настройки Таблицы с доступными для выбора записей (на странице в диалоговом окне находится слева) в Связанную таблицу уже выбранных пользователем записей (на странице в диалоговом окне находится справа), то есть исключает необходимость ручной настройки (так как обе таблицы должны быть приведены к единому виду) бизнес-аналитиком колонок таблицы, сортировки, форматирования таблицы и проч. для Связанной таблицы.

+

+
    + +
  • по умолчанию задана Связанная таблица, вложенная в компоненту Список зависимых записей
  • +
+

Свойство компоненты: Таблица.Настроить динамическую подгрузку данных при просмотре страницы

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Количество запесей в блоке количество отображаемых записей в Таблице по умолчанию при каждой новой подгрузке пример возможного значения: 20 - значение по умолчанию
+

Основные параметры Кнопки “Добавить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: > - значение по умолчанию
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите выбрать данное значение?
+

Свойство компоненты: Список зависимых записей. Перенести строку из таблицы “доступных” строк в таблицу “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос строки из Таблицы доступных записей (на странице в диалоговом окне находится слева) в Таблицу выбранных пользователем записей (на странице в диалоговом окне находится справа)

+

параметры функции заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей (поле)

+
    + +
  • Из таблицы “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, откуда будет перенесена выбранная запись
  • +
  • В таблицу “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, куда будет перенесена выбранная запись
  • +
+

+

Основные параметры Кнопки “Добавить все”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: >> - значение по умолчанию
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите выбрать данное значение?
+

Свойство компоненты: Список зависимых записей. Перенести строку из таблицы “доступных” строк в таблицу “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос всех строк из Таблицы доступных записей (на странице в диалоговом окне находится слева) в Таблицу выбранных пользователем записей (на странице в диалоговом окне находится справа)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически ходящими в состав компоненты Список зависимых записей (поле)

+
    + +
  • Из таблицы “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, откуда будут перенесены все записи одновременно
  • +
  • В таблицу “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, куда будут перенесены записи
  • +
+

+

Основные параметры Кнопки “Удалить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: < - значение по умолчанию
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите выбрать данное значение?
+

Свойство компоненты: Список зависимых записей. Вернуть строку в таблицу “доступных” из таблицы “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос строки из Таблицы выбранных пользователем записей (на странице в диалоговом окне находится справа) в Таблицу доступных записей (на странице в диалоговом окне находится слева)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • В таблицу “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, куда будет перенесена (возвращена) выбранная запись
  • +
  • Из таблицы “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, откуда будет перенесена (возвращена) выбранная запись
  • +
+

+

Основные параметры Кнопки “Удалить все”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: << - значение по умолчанию
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите выбрать данное значение?
+

Свойство компоненты: Список зависимых записей. Вернуть все строки в таблицу “доступных” из таблицы “выбранных”

+

+

по нажатию на кнопку автоматически происходит перенос строки из Таблицы выбранных пользователем записей (на странице в диалоговом окне находится справа) в Таблицу доступных записей (на странице в диалоговом окне находится слева)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей (поле)

+
    + +
  • В таблицу “доступных”: указывается таблица, расположенная (слева) во всплывающем диалоговом окне, в которой находятся все доступные для выбора записи, куда будут перенесены (возвращены) все записи
  • +
  • Из таблицы “выбранных”: указывается таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, откуда будут перенесены (возвращены) все записи
  • +
+

+

Основные параметры Связанной таблицы(таблица выбранных пользователем записей)

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Подсказка позволяет создать подсказку, расположенную внутри элемента
Надпись позволяет задать наименование поля, которое будет отображаться на странице Активно - подлежит сохранению - значение по умолчанию, Не активно -не подлежит сохранению
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов
  • +
  • Не активно - не отображать колонку флагов
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Save Column State позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
  • +
  • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах:No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
No Rows Overlay Message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют(доступно для настройки при Loading Overlay Type - TEXT_OVERLAY) пример возможного значения:Данные отсутствуют
Loading overlay message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например,Загрузка данных, пожалуйста, подождите.(доступно для настройки приLoading Overlay Type - TEXT_OVERLAY) пример возможного значения: Загрузка данных, пожалуйста, подождите.
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
+

Свойство компоненты: Таблица. Настроить колонки таблицы

+

+

позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку

+

с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

+

Свойство компоненты: Активировать кнопку после выбора строки в таблице

+

+

устанавливает доступность Кнопки “Удалить” после выбора строки в Связанной таблице выбранных пользователем записей (на странице в диалоговом окне находится справа) для переноса (возврата) записи в Таблицу со списком доступных записей (на странице в диалоговом окне находится слева)

+

по умолчанию задана - Кнопка “Удалить” (Список зависимых записей (поле ) - Кнопка удалить).

+

+

Свойство компоненты: Список зависимых записей. Заполнить значением по умолчанию

+

+

позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компонентыСписок зависимых записей (поле)

+

с описанием функции Заполнить значением по умолчанию можно ознакомиться в разделе: Заполнить значением по умолчанию. Список зависимых записей

+

Основные параметры Кнопки “Ок”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: Ок - значение по умолчанию
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно выбрали все необходимые значения?
+

Свойство компоненты: Диалог. Скрыть

+

+

позволяет задать диалог, который будет закрыт при нажатии на кнопку

+

- по умолчанию задан Диалог Список зависимых записей (поле) - Диалог вложенный в компоненту Список зависимых записей (поле)

+

Свойство компоненты: Список зависимых записей. Перенести записи из таблицы “выбранных” записей

+

+

по нажатию на кнопку автоматически происходит перенос записей из Таблицы выбранных пользователем записей (на странице в диалоговом окне находится справа) в результирующую Связанную таблицу зависимых записей (на основной странице)

+

параметры заполнены по умолчанию ссылками на элементы, иерархически входящими в состав компоненты Список зависимых записей

+
    + +
  • Из таблицы “выбранных”: указывается Связанная таблица, расположенная (справа) во всплывающем диалоговом окне, в которой находятся уже выбранные пользователем записи из списка доступных, откуда будут перенесены значения
  • +
  • В список зависимых записей: указывается результирующая компонента Поле с множественным выбором
  • +
+

+

Основные параметры Кнопки “Отмена”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: Отмена - значение по умолчанию
Текст подтверждения позволяет задать текст, который будет отображен пользователю внутри диалогового окна вместе с кнопками для подтверждения действия - Да/Нет пример возможного значения: Вы действительно хотите отменить действие?
+

Свойство компоненты: Диалог. Скрыть

+

+

позволяет задать диалог, который будет закрыт при нажатии на кнопку

+

- по умолчанию задан Диалог Список зависимых записей (поле) - Диалог, вложенный в компоненту Список зависимых записей

+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (-функции, которые выполняются удаленно на сервере приложений,- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Рекурсивно копировать составные объекты сложных компонент

+

TODO

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Какие дочерние элементы Списка зависимых записей требуют обязательной и непосредственнойнастройки аналитиком? Большинству описанных параметров дочерних элементов компоненты Список зависимых записей (поле) уже заранее заданы значения по умолчанию, и они не требуют каких-либо изменений от аналитика в типовых случаях. Но часть параметров следует задать в процессе использования компоненты для её корректной работы и внедрения в логику бизнес-процесса: +
    +
  • параметры элемента Поле с множественнымвыбором: Поле с множественным выбором. Подгрузка данных
  • +
  • параметры Таблицы доступных строк для выбора - Таблица: Таблица. Подгрузка данных Таблица. Настроить колонки таблицы
С примером добавления и настройки компоненты Список зависимых записей можно ознакомиться в разделе: Как задействовать компоненту Список зависимых записей (поле)
Можно ли использовать Набор фильтров для удобства поиска значений в Таблице доступных строк? Да, можно. Для этого необходимо в элемент Диалог, входящий в состав компоненты Список зависимых записей (поле), добавить элемент Набор фильтров со вложенными фильтрами, например, Текстовое поле (фильтр) или Фильтр по числовому полю, настроить их свойства и в качестве Таблицы, по значениям которой будет происходить фильтрация, в Наборе фильтров указать Таблицу доступных строк (Список зависимых записей (поле) - Таблица) компоненты Список зависимых записей (поле).
Почему при открытии диалога на странице неактивна кнопка “Добавить”? Кнопка"Добавить"недоступна для управления по умолчанию и становится активна только при выборе записи (с помощью функцииАктивировать кнопку после выбора строки в таблице,настраиваемой в свойствахТаблицы) в Таблице доступных строк для выбора(на странице в диалоговом окне находится слева).По нажатию на кнопку выбранная пользователем строка будет перенесена в Таблицу выбранных строк(на странице в диалоговом окне находится справа).Аналогичная логика заложена в работу кнопки"Удалить", которая становится активна только при выборе записи в Таблице выбранных строк(на странице в диалоговом окне находится справа),и по нажатию на кнопку выбранная запись будет перенесена в Таблицу доступных строк(на странице в диалоговом окне находится слева).
Можно ли выбрать одновременно несколько строк в Таблице доступных записей для добавления в Таблицу выбранных строк? Да, можно. Для этого необходимо при настройкеосновных параметров Таблицы доступных строк, привести свойства Допустимо выбрать несколько строк (Multiselectable) и Колонка флагов в значение (истина), после чего в интерфейсе в Таблице доступных строк (на странице в диалоговом окне находится слева) отобразится колонка флагов (выбора записи), которая позволит одновременно выделить несколько строк (при этом выбранные строки окрасятся в отличный от других строк цвет), и по нажатию на кнопку"Добавить"выбранные записи будут перенесены в Таблицу выбранных строк(на странице в диалоговом окне находится слева).В случае, когда необходимо выбрать все предложенные записи в Таблице доступных строк и включить их в Таблицу выбранных строк используется кнопка"Добавить все".
Можно ли изменить цветовое оформление Таблицы? Да. Цветовым оформлением Таблицы можно управлять с помощью CSS-стилей, задаваемых в**Основных параметрах - Расширенные настройки - CSS классы.
Как изменить формат отображения данных в колонке Таблицы? В случае, если необходимо изменить формат отображения значений в колонке Таблицы необходимо при настройке колонки применить Форматтер. Например, подгружаемое значение в колонку имеет тип данных Дата и Время (DateTime), но на странице пользовательского приложения необходимо отображать значение в колонке без Времени, только Дату. В таком случае, целесообразно использовать форматтер DateFormatter, который отобразит значение колонки в нужном виде. Но при этом предварительно необходимо применить к Таблице функцию Очистить форматирование колонок таблицы, указав наименование настраиваемой колонки.
Можно ли поменять порядок отображаемых колонок в Таблице? Для того, чтобы изменить порядок колонок в Таблице необходимо в свойстве Настроить колонки таблицы - Колонкинажать правой кнопкой мыши на «Элемент» и выбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент.
Можно ли задать автоматическую нумерацию строк (записей) в Таблице? Да, можно. Для этого необходимо в настраиваемых параметрах Таблицы перейти к свойству Таблица. Основные параметры - Показывать номер строкии привести его в значение(истина).
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_с_поиском_для_выбора_одного_значения.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_с_поиском_для_выбора_одного_значения.html new file mode 100644 index 00000000..5919d8af --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Список_с_поиском_для_выбора_одного_значения.html @@ -0,0 +1,675 @@ + + + + + + + + Web-BPM Docs – Список с поиском для выбора одного значения + + + + + + +
+
+ + + +
+
+

Список с поиском для выбора одного значения

+

Назначение

+

Список с поиском для выбора одного значения - это составной компонент, который используется длявыбора одного значения из списка доступных с возможностью поиска.Для того чтобы данные, отобранные с помощью этой компоненты, сохранялись в базу данных, её необходимо вложить в компоненту Форма.

+

Компонента Список с поиском для выбора одного значения находится в разделе Компоненты - Поля - Список с поиском для выбора одного значения.

+

В структуру компоненты Список с поиском для выбора одного значения входят следующие элементы

+

Структура

+

Основные вложенные элементы компоненты Список с поиском для выбора одного значения

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование элемента Описание
Список с поиском для выбора одного значения контейнер горизонтального выравнивания, в который вложены все дочерние компоненты
Списка с поиском (с возможностью сохранения) отображает информацию по выбранной записи из списка
Кнопка выбора используется для открытия (вызова) диалогового окна
Диалог выбора используется для отображениявсплывающего диалогового окна
Панель фильтров представляет собой сворачиваемую панель, которая включает в себя Группу фильтров, Кнопку для фильтрации и “Кнопку Очистить”, которые будут отображаться в диалоговом окне
Группа фильтров позволяет задать фильтры поиска, которые будут применяться к Таблице; в зависимости от типа полей (текст, число и т.д.) по которым будет осуществляться фильтрация, в группу фильтров может быть вложен, например, Фильтр по текстовому полю или Фильтр по числовому полю
Кнопка для фильтрации используется для осуществления поиска значения в Таблице в соответствии с заданными фильтрами из Группы фильтров
Кнопка Очистить позволяет очистить введенные значения фильтров из Группы фильтров
Таблица используется для отображения информации в табличном виде, в данном случае, списка доступных значений из справочника
Кнопка выбора позволяет перенести значение из списка доступных вариантов в поле список с поиском (с возможностью сохранения)
Кнопка отмены позволяет закрыть диалог без выполнения действий с данными
+

Свойства

+

Компонента имеет набор общих свойств.

+

Основные параметры Списка с поиском для выбора одного значения

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Горизонтальный контейнер

+

Основные параметры Списка с поиском с возможностью сохранения

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Поле ввода с подбором значения (Поиск)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Начните вводить название департамента
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Департамент
Зависит от используется в том случае, когда набор доступных для выбора значений в текущем компоненте необходимо ограничить, исходя из выбранного значения в вышестоящем компоненте, от которого зависит текущий
Начать подбор вариантов после ввода задает минимальное число символов, при наборе которых будет осуществляться запрос на сервер пример возможного значения: 3 - значение по умолчанию
Прикрепить значение (Scroll Gravity) позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений +
    +
  • По умолчанию (DEFAULT) - выбранное значение отображается в порядке своего следования в списке доступных значений для выбора
  • +
  • По центру (CENTER) - выбранное значение отображается по центру в выпадающем списке доступных значений для выбора
  • +
  • В верхней части (TOP)- выбранное значение отображается в верхней части выпадающего списка доступных значений для выбора
  • +
  • В нижней части (BOTTOM) - выбранное значение отображается в нижней части выпадающего списка доступных значений для выбора
Исключить условия графа данное свойство позволяет подгружать для отображения значения в поле минуя условия (ограничения), заданные в Графе сущностей компоненты +
    +
  • Не активно - в данном состоянии, при подгрузке значений отсекаются значения не соответствующие условиям, заданным в Графе сущностей компоненты
  • +
  • Активно - в данном состоянии, при подгрузке значений допускается отображение значений, не соответствующих условиям, заданным в Графе сущностей компоненты, но без возможности их повторного выбора в выпадающем списке
Помечать невалидным (Mark invalid if not Satisfy) данное свойство доступно для управления при активации значении свойства Exclude Graph Conditions и позволяет визуально помечать поле как невалидное на странице, в случае если в него было подгружено значение, не соответствующие условиям Графа сущностей элемента +
    +
  • Не активно - в данном значении, поле не помечается на странице как невалидное и отображается стандартным образом
  • +
  • Активно - в данном значении, убрав фокус с поля, оно помечается на странице как невалидное
Css class if not Satisfy данное свойство доступно для управления при активном значении свойства Exclude Graph Conditions и позволяет задать CSS-класс, который будет применяться, в случае если в поле было подгружено значение, не соответствующие условиям Графа сущностей элемента
Tooltip if not Satisfy позволяет отображать всплывающую подсказку,в случае если в поле было подгружено значение, не соответствующие условиям Графа сущностей элемента. Данное свойство доступно для управления при: активном значении свойства Exclude Graph Conditions и заданному значению в поле Css Class If Not Satisfy пример возможного значения: not_valid
+

Свойство компоненты: Поле ввода с подбором значения. Подгрузка данных

+

+

позволяет задать источник подгрузки данных с указанием методов и типов сортировки, и с настройкой Графа сущностей. Является обязательным к заполнению и настройке.

+
    + +
  • + +

    Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей. Является обязательным к заполнению и настройке.

    +
  • +
  • + +

    Возвращать значение дополнительно из - по умолчанию компонента возвращает идентификатор записи выбранной из справочника значений. Настройка данного параметра позволяет указать компоненте, какое значение необходимо дополнительно считать и вернуть, кроме значения идентификатора выбранной пользователем записи.

    +
  • +
  • + +

    Показывать варианты по - позволяет ограничить список отображаемых вариантов в процессе подбора по подстроке.

    +
  • +
  • + +

    Тип поиска позволяет задать один из вариантов поиска по вводимой пользователем подстроке:

    +
  • +
  • + +

    С начала строки - значение отображается в списке, если с введенной пользователем подстроки начинается значение колонки из базы данных

    +
  • +
  • По всей строке -значение отображается в списке, если введенная пользователем подстрока содержится в значении колонки из базы данных с любого места вхождения
  • +
  • + +

    Связаны по - позволяет указать колонку текущей компоненты, по которой осуществляется связь с компонентой, указанной в свойстве “Зависит от”, обеспечивающую связь между родительской и текущей компонентами

    +
  • +
  • + +

    Тип колонки - это свойство, позволяющее выбрать тип для отображения значения в поле:

    +
  • +
  • + +

    Из одной колонки - значение по умолчанию

    +
  • +
  • Из нескольких колонок - позволяет указать перечень колонок, значения которых будут склеиваться в одну строку при отображении на страницес определяемым разделителем значений (точка, запятая, пробел и другие)
  • +
  • + +

    Разделитель - символ или пробел, который будет разделять между собой значения из разных колонок таблиц (ы) приводимых в одну строку (доступно для настройки при Тип колонки - Из нескольких колонок)

    +
  • +
  • + +

    Колонка для поиска (Search Columns) - позволяет задать элемент базы данных (колонку) со строковым типом данных, значениекоторого будет отображаться в строке результата поиска, в случае если в отображаемой (по умолчанию) пользователю колонке (Display Column) содержится значение NULL (доступно для настройки при Тип колонки - Из нескольких колонок)

    +
  • +
  • + +

    Порядок сортировки (Sort Order) - позволяет задать порядок сортировки отображаемых значений в списке для выбора, принимает значения:

    +
      + +
    • по возрастанию - значения будут сортироваться от меньшего к большему
    • +
    • по убыванию - значения будут сортироваться от большего к меньшему
    • +
    +
  • +
  • + +

    Показывать пользователю - позволяет задатьэлемент базы данных, значение которого будет отображено пользователю в Выпадающем списке (доступно для настройки при Тип колонки - Из одной колонки)

    +
  • +
  • + +

    Активировать фильтрацию по - позволяет задать колонку, по которой можно будет динамически активировать фильтр при использовании метода “Задать фильтр” (Set_Filter) в компоненте Обработка Событий в отношении настраиваемой компоненты

    +
  • +
  • + +

    *Datasource Jndi Name - *позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.

    +
  • +
+

Значение данного свойства может быть задано следующим образом: java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файлеstandalone.xml(аналогично тому, как указывается, например, подключение к базе данных безопасности) (рис.1)

+

В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).

+
    + +
  • Сортировать по - позволяет задать элемент базы данных, по значению которого будет производиться сортировка
  • +
+

с описанием настройки Списка с поиском с возможностью сохраненияможно ознакомиться в разделе: Поле ввода с подбором значения

+

Свойство компоненты: Поле ввода с подбором значения. Сохранение значения

+

+

В случае, если значение в Поле ввода с подбором значения необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение.

+

В случае, если значение Поля ввода с подбором значения не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется для отображения значения, которое является константой, определённой в логике приложения.

+

+

Свойство компоненты: Заполнить значением из переменнойлюбого типа

+

позволяет указать переменную процесса, значение которой будет передаваться в поле и отображаться по умолчанию

+

с описанием настройки свойстваЗаполнить значением из переменной процессаможно ознакомиться в разделе: Заполнить значением из переменной процесса

+

Свойство компоненты: Поле ввода с подбором значения. Подгрузка данных по умолчанию

+

позволяет указать значение по умолчанию, которое будет подгружаться в поле с помощью двух типов подгрузки (источников подгрузки значения):

+
    + +
  • из колонки
  • +
  • из сервиса
  • +
+

с описанием настройки свойства Заполнить значением поумолчаниюи соответствующих ей типов подгрузкиможно ознакомиться в разделе: Заполнить значением по умолчанию

+

Основные параметры Кнопки выбора (открытия диалога)

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка выбора

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке … - значение по умолчанию
Вызвать диалог позволяет задать диалог, который будет открываться при нажатии на кнопку по умолчанию задан Диалог выбора
+

Основные параметры Диалога выбора

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Диалог

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовк позволяет задать заголовок диалога на странице пример возможного значения: Выбор записи - значение по умолчанию
Допускается скрытие через системную Х позволяет задать возможность закрытия диалога по нажатию на системный крестик возможно закрыть диалог через - значение по умолчанию, невозможно закрыть диалог (системный скрыт)
+

Основные параметры Панели фильтров

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Заголовок позволяет задать заголовок сворачиваемой панели на странице пример возможного значения: Фильтр - значение по умолчанию
Открывать развернутым позволяет задать вид панели при открытии диалога не активно - панель свернута - значение по умолчанию, активно - панель развернута
+

Основные параметры Кнопки для фильтрации

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка для фильтрации

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке Найти - значение по умолчанию
Компонент “Набор фильтров” позволяет задать Набор фильтров, по значениям которых будет осуществляться поиск по умолчанию задана Группа фильтров
Текст подтверждения позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопкус возможностью подтвердить действие с помощью кнопок “Да / Нет”
+

Основные параметры Кнопки “Очистить”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе-Кнопка очистки фильтра

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: Сбросить - значение по умолчанию
Текст подтверждения позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопкус возможностью подтвердить действие с помощью кнопок “Да / Нет”
Для компонента “набор фильтров” позволяет задать Набор фильтров, поля которого будут очищаться при нажатии по умолчанию задана Группа фильтров
Сбросить значения фильтров на значения по умолчанию при нажатии на кнопку возвращает значения заданных фильтров к значениям по умолчанию Не активно - не сбрасывать значения - значение по умолчанию, активно - сбрасывать значения
Применять фильтры после сброса позволяет задать возможность возврата фильтруемой Таблицы в первоначальное состояние при нажатии на кнопку Не активно - не применять значения фильтров - значение по умолчанию, активно - применять значения фильтров
+

Основные параметры Кнопки выбора

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка выбора

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: Выбрать - значение по умолчанию
Текст подтверждения позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопкус возможностью подтвердить действие с помощью кнопок “Да / Нет”
Скрыть диалог позволяет указать Диалог, который будет закрыт при нажатии на кнопку по умолчанию задан Диалог выбора
+

Свойство компоненты: Перенести значение из списка доступных вариантов в поле “выбранное значение”

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Из списка доступных вариантов позволяет задать Таблицу, из которой будет переносится выбранное значение по умолчанию задана Таблица
В поле выбранное занчение позволяет указать поле, куда будет копироваться выбранное значение из Таблицы по умолчанию задан Список с поиском (с возможностью сохранения)(Поле ввода с подбором значения)
+

Основные параметры “Кнопки отмены”

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Кнопка отмены

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись на кнопке позволяет задать надпись на кнопке пример возможного значения: Отмена - значение по умолчанию
Скрыть диалог позволяет указать Диалог, который будет закрыт при нажатии на кнопку по умолчанию задан Диалог выбора
Текст подтверждения позволяет задать текст сообщения, который отобразится в диалоговом окне после нажатия на кнопкус возможностью подтвердить действие с помощью кнопок “Да / Нет”
+

Основные параметры Таблицы

+

прим.: с полным описанием компоненты и её настройки также можно ознакомиться в разделе - Таблица

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список пример возможного значения: необходимо ограничить по конкретному признаку вложенную Таблицу (справочник районов). В данном случае, ограничивающим признаком будет служить значение из Выпадающего списка (регионы России), например, Республика Татарстан. В Таблице будут отображаться районы только Республики Татарстан, из которых будет производится дальнейший выбор.
Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
    +
  • возможность выбора сразу нескольких или одной строки
  • +
  • возможность выбора одной строки - значение по умолчанию
Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать колонку флагов +
  • Не активно - не отображать колонку флагов
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
    +
  • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
  • +
  • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
  • +
  • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
Save column state позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
  • +
  • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
    +
  • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах: No Rows Overlay Message и Loading Overlay Message
  • +
  • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
No rows overlay message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют (доступно для настройки при Loading Overlay Type - TEXT_OVERLAY) пример возможного значения: Данные отсутствуют
Loading Overlay Message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например,Загрузка данных, пожалуйста, подождите.(доступно для настройки приLoading Overlay Type - TEXT_OVERLAY) пример возможного значения:Загрузка данных, пожалуйста, подождите.
Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
  • +
  • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
+

Свойство компоненты: Таблица. Подгрузка данных

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подгрузка данных позволяет задать граф сущностей для подгрузки данных в Таблицу. Является обязательным к заполнению и настройке. +
    +
  • Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей. Является обязательным к заполнению и настройке.
  • +
  • Колонка для режима “Зависит от” - позволяет указать колонку настраиваемой Таблицы, которая обеспечивает связь текущей компоненты с компонентой заданной в параметре “Зависит от”
+

Свойство компоненты: Таблица. Настроить колонки таблицы

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Настроить колонки таблицы позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы
+

Свойство компоненты: Активировать кнопку после выбора строки в таблице

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Активируемая кнопка устанавливает доступность Кнопки выбора записи после указания необходимой строки в Таблице по умолчанию задана Кнопка выбора
+

Свойство компоненты: Таблица. Настроить динамическую подгрузку данных при просмотре страницы

+ + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Количество записей в блоке количество отображаемых записей в Таблице по умолчанию при каждой новой подгрузке пример возможного значения: 20 - значение по умолчанию
+

Основные параметры Группы фильтров

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Фильтровать сразу позволяет задать возможность фильтровать Таблицу сразу по мере ввода значения фильтра, без нажатия на Кнопку для фильтрации +
    +
  • Активно - не фильтровать сразу - значение по умолчанию
  • +
  • Активно - фильтровать сразу, без нажатия Кнопки для фильтрации
  • +
  • - значение не определено
Применить к … позволяет задать Таблицу, по которой будет осуществляться фильтрация записей по умолчанию задана Таблица
Запомнить значения фильтра позволяет восстанавливать значения фильтров при возврате на страницу, т.е. запоминать значения фильтров (сохранять в кэше). При этом значение фильтра, заданное пользователем имеет приоритет над значением фильтра по умолчанию +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - запоминать значения фильтров
  • +
  • Не активно - не запоминать значения фильтров
Skip initial loading позволяет исключать подгрузку данных в таблицу без указания значений фильтров (пустыми фильтрами) +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - исключает возможность подгрузки данных в таблицу без указания значений фильтров, т.е. при пустых значениях фильтров при первоначальном открытии страницы или по кнопке “Найти” запрос в базу данных (по Графу сущностей таблицы) выполняться не будет
  • +
  • Не активно - позволяет подгружать данные в таблицу без указания значений фильтров, т.е. при первоначальном открытии страницы или по кнопке “Найти” будет осуществляться запрос в базу данных по пустым значениям фильтров
позволяет задатьшаблон вывода сообщения (текст сообщения), отображаемого в окне ошибки при валидации значений фильтров. По умолчанию шаблон сообщения выставлен как:“#{label}: #{message}”, где параметры интерпретируются следующим образом: #{label} -наименование компоненты, в которой произошла ошибка. #{message}-текст сообщения об ошибке Примеры возможной настройки: При пустом значений в поле* Message Validation Template* текст в окне об ошибке, отображаемом, например, при не заполнении значения в обязательном поле, будет отображаться по шаблону "\#{label}: \#{message}", где \#{label} - наименование компоненты, в которой произошла ошибка (например, поле ФИО) \#{message} - текст сообщения об ошибке (значение по умолчанию Поле обязательно). При указании конкретного текста в поле Message Validation Template,например, “Для выполнения поиска необходимо заполнить обязательные поля!”. Указываемое значение вMessage Validation Template допускает и использование атрибутов#{label} и #{message} по отдельности, например, если задать значение “#{label}: Некорректное значение в обязательном поле”, то окно об ошибке будет иметь следующий вид (рис.3), где#{label} -наименование компоненты, в которой произошла ошибка (например, поле ФИО)
+

Функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

TODO

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Как определить какие типы фильтров необходимо включить в Группу Фильтров? В зависимости от того, к какому типу относится колонка в таблице, по которой будет осуществляться поиск и фильтрация, определяется соответствующий тип фильтра. Например, если мы указываем, что необходимо фильтровать по колонке, в которой хранится текст, то в данном случае, используем Фильтр по текстовому полю, если необходимо предоставить возможность выбора значения из списка значений, то применяем Фильтр по выпадающему списку.
Есть ли ограничения по количеству включаемых фильтров в Группу фильтров? Нет.Количество фильтров определяется в зависимости от решаемой задачи.
Обязательно ли использование фильтров в диалоговом окне? Нет, необязательно.Фильтры можно отключить, скрыв видимость Панели фильтров.
В каком случае целесообразно использовать компоненту Список с поиском для выбора одного значения, а в каком Выпадающий список? Если справочник, из которого необходимо выбрать значение имеет небольшую размерность и пользователь сможет сразу найти значение без использования вспомогательных фильтров, то целесообразно использовать Выпадающий список значений. Если для удобства выбора значения необходимо отобразить дополнительные параметры в виде Таблицы, то в этом случае необходимо использовать Список с поиском для выбора одного значения.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Статичный_выпадающий_список.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Статичный_выпадающий_список.html new file mode 100644 index 00000000..61a59e0d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Статичный_выпадающий_список.html @@ -0,0 +1,144 @@ + + + + + + + + Web-BPM Docs – Статичный выпадающий список + + + + + + +
+
+ + + +
+
+

Статичный выпадающий список

+

Назначение

+

Статичный выпадающий список - это компонента, которая используется для выбора одного значения из выпадающего списка значений, источником подгрузки которых является не объект базы данных (таблица или представление), а массив данных, определенный вручную аналитиком при настройке элемента.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Статичный выпадающий список может использоваться для:

+
    + +
  1. Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Статичный выпадающий список. Сохранение значения должна быть включена)
  2. +
  3. Для отображения данных, которые были введены пользователем приложения или является константой, определённой в логике приложения(в данном случае, функция компоненты Статичный выпадающий список. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Статичный выпадающий список (без возможности сохранения) находится в разделе Компоненты - Поля - Статичный выпадающий список.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Отчетный год
Значение позволяет задать значение поля по умолчанию пример возможного значения: 2019
Список значений позволяет задать список значений, которые будут отображаться в выпадающем списке +
    +
  • надпись - позволяет задать наименование элемента в списке значений
  • +
  • значение - позволяет задать значение элемента, которое можно записать в базу данных
  • +
  • скрыть - позволяет регулировать видимость элемента в списке значений
надпись - Отчетный год, значение - 2018
Прикрепить значение (Scroll Gravity) позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений позволяет задать расположение уже выбранного значения при отображении в выпадающем списке доступных значений +
    +
  • По умолчанию (DEFAULT) - выбранное значение отображается в порядке своего следования в списке доступных значений для выбора
  • +
  • По центру (CENTER) - выбранное значение отображается по центру в выпадающем списке доступных значений для выбора
  • +
  • В верхней части (TOP)- выбранное значение отображается в верхней части выпадающего списка доступных значений для выбора
  • +
  • В нижней части (BOTTOM) - выбранное значение отображается в нижней части выпадающего списка доступных значений для выбора
+

Свойство компоненты: Выпадающий список. Сохранение значения

+

+

указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

сохранить значение в переменную процесса любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить_роли_текущего_пользователя

+

Заполнить значением из переменной любого типа

+

Заполнить значением из переменной процесса

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Статичный выпадающий список от компоненты Выпадающий список? Компонента Статичный выпадающий список используются для выбора значений, которые указываются аналитиком вручную при настройке компоненты, Выпадающий список используется для выбора значений, которые подгружаются из таблицы базы данных.
Все ли свойства компоненты обязательны для заполнения? Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Статичный_переключатель.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Статичный_переключатель.html new file mode 100644 index 00000000..de423f24 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Статичный_переключатель.html @@ -0,0 +1,138 @@ + + + + + + + + Web-BPM Docs – Статичный переключатель + + + + + + +
+
+ + + +
+
+

Статичный переключатель

+

Назначение

+

Статичный переключатель - это компонента, которая используется для выбора одного из нескольких предоставленных вариантов.Значения берутся не из базы данных,а задаются аналитиком вручную при настройке компоненты.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Статичный переключатель может использоваться для:

+
    + +
  1. Для сохранения введеннойинформации в базу данных и отображения значения из базы данных(в данном случае, функция компоненты Статичный переключатель. Сохранение значения должна быть включена)
  2. +
  3. Для отображения значений,заданных бизнес-аналитиком или являющихся константой, определённой в логике приложения(в данном случае, функция компоненты Статичный переключатель. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Статичный переключатель находится в разделе Компоненты - Поля без сохранения - Статичный переключатель.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента. Данное свойство не применимо с логикой отображения поля на странице приложения
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Статус
Значение позволяет задать значение по умолчанию, соответствующее одному из указанных значений в настройках компоненты “Список значений” в настройке элемента “Возвращаемое значение” В списке значений компоненты указано, например, два элемента, в настройках которых заполнены поля “Возвращаемое значение”, одно из которых можно использовать в качестве значения по умолчанию для компоненты, отображаемое при отсутствиииного значения подгруженного из базы данных (через функцию Статичный переключатель. Сохранение значения)
Список значений позволяет задать значения доступные для выбора пользователем на странице со следующими настройками +
    +
  • Возвращаемое значение - позволяет задать значение, которое может быть сохранено в базу данных
  • +
  • Сделать скрытым -* позволяет регулировать видимость элемента (значения)
  • +
  • Видимое значение - позволяет задать значение, которое будет отображено пользователю
  • +
  • Сделать недоступным для выбора* - позволяет регулировать возможность управления элементом
+

Свойство Статичный переключатель. Сохранение значения

+

+

В случае, если значение в поле Статичный переключатель необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющие строковый тип в базе данных.

+

В случае, если значение поля Статичный переключатель не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое было введено пользователем приложения или является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Статичный переключатель от компоненты Переключатель? Компонента Статичный переключательиспользуются для выбора значений, которые задаются аналитиком при настройке компоненты, Переключательиспользуется для выбора значений,которые берутся из базы данных.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Статичный переключатель. Сохранение значения? Да. В случае, если функция “Статичный переключатель. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Стили-полей-ввода.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Стили-полей-ввода.html new file mode 100644 index 00000000..8688dbe9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Стили-полей-ввода.html @@ -0,0 +1,201 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Название класса css Описание
radio-invert применять для группы radiobutton с целью изменения порядка следования элементов
radio-horizontal применять для RadioButton / StaticRadioButton для горизонтального вывода (кнопки в одну строку)
check-invert применять для группы checkbox с целью изменения порядка следования элементов
ok Бледно-зеленый фон input-а
error Мигающий красный фон input-а
align-center-field Выравнивание полей по центру по горизонтали (Для корректной работы должен находиться внутри отдельного контейнера с классом align-center)
+

Растягиваемые по ширине поля

+

Пользоваться КРАЙНЕ аккуратно, возможны искажения информации!

+ + + + + + + + + + + + +
Название класса css Описание
width-full для полнотекстовых полей input и textarea. Использовать только если элемент единственный в строке!
+

Размеры полей

+ + + + + + + + + + + + + + + + + + + + + + + + +
Название класса css Описание
extra-mini 60px
mini 80px
small 150px
medium 220px
large 600px
+

Размеры надписей к компонентам

+ + + + + + + + + + + + + + + + + + + + + +
Название класса css Описание
fixed-label класс для жесткой фиксации длины метки (заголовка поля), ширина - 200px
fixed-label-small класс для жесткой фиксации длины метки (заголовка поля), ширина - 150px
fixed-label-mini класс для жесткой фиксации длины метки (заголовка поля), ширина - 100px
free-label сбрасывает изначальную ширину, принимает значение по длине текста
+

Размеры шрифтов

+ + + + + + + + + + + + + + + + + + + + + +
Название класса css Описание
font-large 1.8em
font-medium 1.4em
font-small 0.9em
font-mini 0.8em
+

Жирный шрифт

+ + + + + + + + + + + + +
Название класса css Описание
font-bold для текста
+

Компонент Text

+ + + + + + + + + + + + + + + + + + + + + +
Название класса css Описание
title класс для заголовка страницы. * При необходимости использования title на группу элементов, применять ко всему контейнеру * Применять title при наличии заголовка у объекта «fieldset».
blue (совместно с title) Синий фон заголовка
text-blink Мигающий красный текст
text-blink -blue Мигающий синий текст
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Текст.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Текст.html new file mode 100644 index 00000000..5e94c673 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Текст.html @@ -0,0 +1,146 @@ + + + + + + + + Web-BPM Docs – Текст + + + + + + +
+
+ + + +
+
+

Текст

+

Назначение

+

Текст - это компонента, которая используется для отображения статического текста на форме страницы без возможности прямого ввода значения в поле на форме приложения.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Текст может использоваться для:

+
    + +
  1. Для сохранения информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Текст. Сохранение значения должна быть включена)
  2. +
  3. Для отображения текста, который является константой, определённой в логике приложения(в данном случае, функция компоненты Текст. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке) (рис.3)
  4. +
+

Компонента Текст находится в разделе Компоненты - Поля - Текст.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Наименование организации
Значение позволяет задать значение поля по умолчанию пример возможного значения: ООО “Форт”
+

Свойство Текст. Сохранение значения

+

+

В случае, если значение в поле Текст необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны колонки без ограничения по типу данных (например, если для Текстового поля можно выбрать только колонки имеющий строковый тип данных, то для компоненты Текст таких ограничений нет).

+

В случае, если значение поля Текст не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется для отображения текста, являющегося константой, определённой в логике приложения, например, Заголовок страницы.

+

+

Свойство Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Свойство Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Сохранить значение в переменную процесса любого типа

+

Сохранить значение в переменную процесса любого типа

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

### Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

### Добавить строку к значению в текущем поле

+

Добавить строку к значению в текущем поле

+

### Склеить несколько значений

+

Склеить несколько значений

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Текстовое поле от компоненты Текст? Компонента Текст используется для отображения статического текста на странице без возможности ввода значения в поле на форме,текстовое полеиспользуется для отображения и ввода текста.
Для решения каких задач чаще всего используется компонента Текст? Компонента Текст чаще всего используется для добавления Заголовка на странице или отображения каких-то текстовых примечаний для пользователя на странице без возможности их редактирования пользователем.
Какие действия необходимо выполнить для того, чтобы значение указанное в настройке поля Текст отобразилось как заголовок на странице (т.е. отличалось от других текстовых полей на странице)? Для того, чтобы элемент Текст отображался как заголовок на странице к нему необходимо применить CSS-класс “title”.
Как задать определенный цвет шрифта для значения, содержащегося в поле Текст? Для этого необходимо применить соответствующий необходимому цвету CSS-класс в настройке компоненты, например, “font-color-pink.”
Как задать определенный размер шрифта для значения, содержащегося в поле Текст? Для этого необходимо применить соответствующий необходимому размеру шрифта CSS-класс в настройке компоненты, например, "font-small.
Все ли свойства компоненты обязательны для заполнения? Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Текст. Сохранение значения? Да. В случае, если функция “Текст. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
Если в поле Текст невозможно ввести значение на странице приложения, то возможно ли выставить в него значение по определенному действию на странице? Для того, чтобы выставить в поле Текст определенное значение по событию (действию) на странице, необходимо использовать компоненту “Обработка событий”, настроив ее условия следующий образом: в условии “Когда” мы указываем событие, по которому должно происходить определение значения в поле, например нажатие на кнопку на странице или изменение значения в другом поле; в условии “Если” указываем дополнительные условия, при которых должно выполниться действие, например, значение в поле указанном в условии “Когда” - не пусто; в условии “Тогда” указываем поле Текст, которому необходимо задать значение, выбираем метод “Задать значение” во вкладке “Текст. Основные параметры” и указываем необходимое значение в зависимости от поставленной задачи, в условии “Иначе” также можно прописать ряд в действий в зависимости от поставленной задачи.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Текстовое_поле.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Текстовое_поле.html new file mode 100644 index 00000000..514bbe3f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Текстовое_поле.html @@ -0,0 +1,231 @@ + + + + + + + + Web-BPM Docs – Текстовое поле + + + + + + +
+
+ + + +
+
+

Текстовое поле

+

Назначение

+

Текстовое поле - это компонента, которая используется для отображения и ввода однострочного текста на форме страницы.

+

В зависимости от настройкисвойств, включенных по умолчанию в состав компоненты, компонента Текстовое поле может использоваться для:

+
    + +
  1. Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Текстовое поле. Сохранение значения должна быть включена) (рис.2)
  2. +
  3. Для отображения текста, который был введен пользователем приложения или является константой, определённой в логике приложения (в данном случае, функция компоненты Текстовое поле. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке) (рис.3)
  4. +
+

Компонента Текстовое поле находится в разделе Компоненты - Поля - Текстовое поле.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите название организации
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Наименование организации
Значение позволяет задать значение поля по умолчанию пример возможного значения: ООО “Форт”
Максимальная длина задаёт максимальное количество вводимых символов в поле пример возможного значения: 10
Минимальная длина (Min length) задаёт минимальное количество вводимых символов в поле
allowMoreSymbols при true позволяет пользователю ввести больше символов, чем значение максимальной длины, но при этом поле станет невалидным и будет отображено сообщение об ошибке maxLengthErrorMsg (см. документацию) логическое значение (true, false)
Оперировать немаскированным значением указывает системе порядок обработки символов маски при сохранении значения поля в базу данных +
    +
  • значение не определено - по умолчанию
  • +
  • активно - сохранять без форматирования маской
  • +
  • пустое - сохранять с форматированием маской
Значение, отформатированное маской в поле ввода как “+7~(917)-922-33-44”, может быть сохранено в поле таблицы базы данных как “+7~(917)-922-33-44” (если флажок снят) или как “9179223344” (если флажок выставлен)
Маска позволяет задать маску, в соответствии с которой пользователь будет осуществлять ввод текста выставление маски не может обеспечить выполнение требования обязательности ввода, маска только внешне отфильтровывает и форматирует последовательность вводимых пользователем символов заранее заданным образом (например, отобразит тел. номер в виде “+ 7 (917) - 101 - 02 - 03” вместо “8917010203” или не допустит такого ввода “89170102йЯ”). Для блокирования сохранения записи с пустым значением поля и обеспечения контроля обязательности ввода используйте свойство “Обязательность” Примеры масок: +
    +
  • A (буква, латинская, регистр не имеет значения) в маске - позволит ввести в поле одну любую букву любого алфавита
  • +
  • Б (буква, русская, в верхнем регистре) в маске - позволит ввести в поле одну любую букву русского алфавита
  • +
  • 9 (цифра) в маске - позволит ввести в поле одну любую цифру
  • +
  • * (символ) в маске - позволит ввести в поле одну любую цифру или букву
  • +
  • R (буква, латинская, в верхнем регистре) в маске - позволит ввести в поле одну римскую цифру
  • +
  • [ ] (внутри квадратных скобок) в маске - позволит ввести или опустить при вводе в поле один или несколько необязательных символов (букву, цифру), например 999[9]; под эту маску подходит как 123, так и 1234 Например, необходимо задать форматирование ввода маской для значения Й456QЬ. В данном случае маска может выглядеть следующим образом: Б999АА, где А - латинская буква.
Регистр позволяет задать вид регистра вводимого текста: +
    +
  • в верхнем регистре - заглавные (прописные) буквы
  • +
  • в нижнем регистре - строчные (маленькие) буквы
  • +
  • первая буква каждого слова заглавная
  • +
  • только первая буква текста заглавная, остальные строчные
  • +
  • первая буква текста заглавная
Тип позволяет задать тип вводимого текста: +
    +
  • обычный текст
  • +
  • пароль (заполнитель - звездочки)
  • +
  • электронная почта
  • +
  • URL
Регулярное выражение или Pattern позволяет задать проверку вводимого текста с помощью регулярных выражений поля, для которых не выполняются условия заданных регулярных выражений, при сохранении записи подсвечиваются красным оттенком и операция отменяется. Некоторые типовые регулярные выражения: +
    +
  • \d [0-9] - одна цифра от 0 до 9
  • +
  • \D [^0-9] - любой символ кроме цифры
  • +
  • \s - пробел
  • +
  • [A-Z] - только заглавная латинская буква
  • +
  • [A-Za-z] - только латинская буква в любом регистре
  • +
  • [А-Яа-яЁё] - только русская буква в любом регистре
  • +
  • [A-Za-zА-Яа-яЁё] - любая буква русского и латинского алфавита
  • +
  • [0-9]{3} - три цифры
+
    +
  • [A-Za-z]{6,}- не менее шести латинских букв
  • +
  • [0-9]{,3} - не более трёх цифр
  • +
  • [0-9]{5,10} - от пяти до десяти цифр
  • +
  • ^[a-zA-Z]+$ - любое слово на латинице
  • +
  • ^[А-Яа-яЁё\s]+$ - любое слово на русском включая пробелы
  • +
  • ^[ 0-9]+$ - любое число
чтобы ограничить возможность ввода и сохранения текста латиницей, можно использовать регулярное выражение ^[А-Яа-яЁё\s]+$
patterErrorMsg, maxLengthErrorMsg, minLengthErrorMsg, emailErrorMsg, urlErrorMsg позволяют задать пользовательское сообщение о соответствующих ошибках валидации строка
+

Свойство Текстовое поле. Сохранение значения

+

+

В случае, если значение в текстовом поле необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющий строковый тип в базе данных.В случае, если значение текстового поля не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда текстовое поле используется дляотображения текста, который был введен пользователем приложения или является константой, определённой в логике приложения.

+

+

Свойство Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Настройка

+

Для добавления функции в логику работы компоненты необходимо нажать на кнопку Добавить скрипт - Выбрать из списка функцию, если она предусмотрена для использования с компонентой Указать переменную, в которую будет сохраняться значение из поля.

+

+

+

### Определить права текущего пользователя

+

Определить права текущего пользователя

+

### Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Добавить строку к значению в текущем поле

+

Добавить строку к значению в текущем поле

+

Склеить несколько значений

+

Склеить несколько значений

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компонента Текстовое поле от компоненты Текст? Компонента текст используются для отображения статического текста на странице, текстовое поле используется для отображения и ввода текста.
Все ли свойства компоненты обязательны для заполнения? Нет. Свойства компоненты определяются в зависимости от решаемой задачи.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Текстовое поле. Сохранение значения? Да. В случае, если функция “Текстовое поле. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
Чем отличается регулярное выражение от маски? Маска даёт простое и наглядное представление правила ввода с подстановкой дополнительных символов, а регулярное выражение позволяет задать более сложный шаблон с дополнительными условиями. Необходимо отметить, что поля, для которых не выполняются условия заданных регулярных выражений, при сохранении записи подсвечиваются красным оттенком и операция отменяется.
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
Все ли типы переменных можно записать в текстовое поле? Нет. Вслучае с текстовым полем, используется строковый тип переменной (string).
Какую функцию необходимо добавить, чтобы сохранить значение из текстовогополя в переменную процесса? Для того чтобы сохранить значение из текстового поля в переменную процесса необходимо по кнопке “Добавить функцию” выбрать в списке функцию “Сохранить значение в переменную процесса любого типа”, выбрав в настройке добавленной функции необходимую переменную строкового типа (string).
Обязательно ли наличие Формы на странице для сохранения значения из текстового поля в переменную процесса? Нет, наличие Формы на странице необязательно для сохранения значения из текстового поля в переменную процесса. При переходе по процессу со страницы, где расположено текстовое поле, например, по Кнопке навигации, осуществится сохранение значения в переменную процесса при условии, что на текстовое поле добавлена функция “Сохранить значение в переменную процесса любого типа” и указана необходимая переменная процесса.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Файл.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Файл.html new file mode 100644 index 00000000..f5d1c5da --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Файл.html @@ -0,0 +1,172 @@ + + + + + + + + Web-BPM Docs – Файл + + + + + + +
+
+ + + +
+
+

Файл

+

Файл - это компонента, которая сочетает в себе функциональность сохранения файлов-вложений в базу данных в кодировке base64, функциональность отображения preview уже сохраненных файлов и функциональность скачивания сохраненных в базу данных файлов-вложений на компьютер пользователя. Указание файлов, подлежащих сохранению в базу данных, осуществляется через перетягивание файлов мышью из других приложений (drag-and-drop), либо явным указанием набора файлов через системный диалог операционной системы. Режим предпросмотра включен всегда - если файлы существуют, и для них операционная система может отобразить содержимое - то компонента отображает контент в уменьшенном масштабе. Для скачивания ранее сохраненных файлов достаточно кликнуть мышью по наименованию файла, являющемуся гиперссылкой на скачивание:

+

Компонента Файл находится в разделе Компоненты - Поля - Файл.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Выберите файл для загрузки
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Файл
Максимальный размер каждого файла позволяет задать максимально разрешенный размер для каждого из загружаемых файлов, измеряется мегабайтами пример возможного значения: 10
Допустимо удаление файла позволяет настроить разрешение на удаление файла
Список доступных типов файлов позволяет сформировать список разрешенных для загрузки расширений файлов, при пустом списке можно добавлять файлы любых расширений пример возможного значения: doc
File names
+

Свойство Загрузки файлов: Настройка

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Ссылка на главную сущность графа основной формы осуществляется настройка таблиц и связей между ними для сохранения файлов-вложений.
граф сущностей настраивается в соответствии с п. Настройка Графа сущностей. Указывается только та таблица, в которую будут сохраняться вложения.
допустимое максимальное количество файлов в компоненте позволяет задать количество файлов, которые допустимо загрузить.
колонка главной сущности графа основной формы(а не графа сущности текущей компоненты) - позволяет задать наименование таблицы и колонки, указанной как главная в графе сущностей родительской компоненты Форма.
колонка с именем файла позволяет задать наименование таблицы и колонки с именем файла.
колонка с содержимым файла позволяет задать наименование таблицы и колонки для сохранения содержимого файла в base64 кодировке.
+

+

В показанной конфигурации в основную таблицу базы данных (Проекты) сохраняется информация об основным признаках проекта, т.е в новой создаваемой строке о проекте присваивается новый идентификатор, а в зависимую таблицу (Вложенные документы) со ссылкой на этот идентификатор создается 10 записей, в каждой из которых сохраняется по 1 файл вложений.

+

Таким образом, между 2 таблицами создается связь один-ко-многим с внешним ключом из зависимой таблицы вложений в основную таблицу проектов.

+

+

Для случая, когда количество вложений строго ограничено 1 (одним) файлом, параметр:

+

допустимое максимальное количество файлов в компоненте - принимает значение “1”,

+

а параметр:

+

колонка главной сущности графа основной формы - исключается из интерфейса настройки компоненты.

+

+

В показанной конфигурации в основную таблицу базы данных (Проекты) сохраняется информация как об основных признаках проекта, так и сам файл вложений.

+

Таким образом, сохранение 1 файла-вложения происходит в ту же таблицу, что и другие основные параметры сущности “проект”, без использования зависимой таблицы и без внешних ключей между сущностью “проект” и файлом-вложением .

+

Заполнить значением по умолчанию

+

Заполнить значением по умолчанию

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации скриптов (скрипты выполняются удаленно на сервере приложений, скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Все настроено верно, но компонента по-прежнему не сохраняет вложения в базу данных ? Проверьте свойство компоненты
Нужно ли включать (дублировать) в граф сущности компоненты таблицу, являющуюся главной сущностью всей компоненты Form ? Ответ зависит от ситуации ,в которой используется компонента Файл. Когда для одной основной сущности всей страницы требуется сохранить несколько файлов вложений (это большинство случаев использования компоненты) в графе сущностей компоненты Файл указывается только таблица, в которую происходит непосредственное сохранение файлов. Взаимосвязь с таблицей, представляющей главную сущность родительской компоненты Форма, осуществляется не стрелками в графе сущностей компоненты Файл, а при настройке параметров колонка главной сущности графа основной формы,колонка с именем файла,колонка с содержимым файла в интерфейсе Диспетчера компоненты Файл. Когда для одной основной сущности всей страницы требуется сохранить единственный файл вложений (редкий вариант) в графе сущностей компоненты Файлуказывается та же самая таблица, которая указана в качестве главной сущности родительской компоненты Форма.
Где в иерархии страницы следует располагать компоненту? Поскольку она уже имеет свою структуру сущности - должна ли она обязательно находиться внутри родительской компоненты Form всей страницы? Да, При любом кейсе использования компоненты Файл, эта она должна быть дочерней по отношению к компоненте Форма всей страницы и располагаться внутри ее (компоненты Форма) контейнера.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Фильтрация_источника_данных.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Фильтрация_источника_данных.html new file mode 100644 index 00000000..887fe11b --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Фильтрация_источника_данных.html @@ -0,0 +1,105 @@ + + + + + + + + Web-BPM Docs – Фильтрация источника данных одного из полей с подбором значения в зависимости от выбранного значения в другом поле с подбором значения + + + + + + +
+
+ + + +
+
+

Фильтрация источника данных одного из полей с подбором значения в зависимости от выбранного значения в другом поле с подбором значения

+

Дано: 3 Autocomplete поля: Страна, область и город. Необходимо организовать последовательное заполнение этих полей.

+

Проблема: Если просто использовать 3 Autocomplete поля, без настройки,пользователь сможет выбрать несуществующую цепочку, к примеру: Германия - Татарстан - Пекин
+Нужно, чтобы в следующем уровне можно было выбирать только дочерние значения родительского уровня. В России можно выбирать только российские населенные пункты и т.д.

+

Пример настройки

+

На страницу добавлены нужные компоненты:

+
    + +
  1. Настроить Autocomplete. Autocomplete области и города сделать неактивными (Enabled = false), для того, чтобы пользователь заполнял поля последовательно.
  2. +
  3. Задать свойство filter column
    +для Autocomplete области фильтруем по странам, для города - по областям. Для Autocomplete страны не задаем.
  4. +
  5. + +

    Настраиваем ActionController’ы:
    +Настроем ActionController, который отвечает за фильтрацию области по стране. Настройка выглядит следующим образом:

    +
  6. +
+

ЕСЛИ Autocomplete страны был заполнен,

+

ТОГДА установить фильтр дляAutocomplete области (метод setFilter) по значению изAutocomplete страны.

+

А также сделать активным(Enabled = true)Autocomplete области.

+

ИНАЧЕ очистить фильтр используя метод resetFilter

+

исделать неактивным (Enabled = false) Autocomplete области.

+

5. Аналогично настраивается второйAutocomplete.

+

Фильтрация может задаваться 2 способами:

+
    + +
  1. C использованием метода getValue :
  2. +
+

Autocomplete_1:

+

Autocomplete_2:

+

Используется метод getValue:

+
    + +
  1. C помощью метода getBusinessId:
  2. +
+

Autocomplete_1:

+

Autocomplete_2:

+

Используется метод getBusinessId:

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Фильтрация_источника_данных_одного_из_полей_с_подбором_значения_в_зависимости_от_выбранного_значения_в_другом_поле_с_подбором_значения.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Фильтрация_источника_данных_одного_из_полей_с_подбором_значения_в_зависимости_от_выбранного_значения_в_другом_поле_с_подбором_значения.html new file mode 100644 index 00000000..6588db93 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Фильтрация_источника_данных_одного_из_полей_с_подбором_значения_в_зависимости_от_выбранного_значения_в_другом_поле_с_подбором_значения.html @@ -0,0 +1,105 @@ + + + + + + + + Web-BPM Docs – Фильтрация источника данных одного из полей с подбором значения в зависимости от выбранного значения в другом поле с подбором значения + + + + + + +
+
+ + + +
+
+

Фильтрация источника данных одного из полей с подбором значения в зависимости от выбранного значения в другом поле с подбором значения

+

Дано: 3 Autocomplete поля: Страна, область и город. Необходимо организовать последовательное заполнение этих полей.

+

Проблема: Если просто использовать 3 Autocomplete поля, без настройки,пользователь сможет выбрать несуществующую цепочку, к примеру: Германия - Татарстан - Пекин
+Нужно, чтобы в следующем уровне можно было выбирать только дочерние значения родительского уровня. В России можно выбирать только российские населенные пункты и т.д.

+

Пример настройки

+

На страницу добавлены нужные компоненты:

+
    + +
  1. Настроить Autocomplete. Autocomplete области и города сделать неактивными (Enabled = false), для того, чтобы пользователь заполнял поля последовательно.
  2. +
  3. Задать свойство filter column
    +для Autocomplete области фильтруем по странам, для города - по областям. Для Autocomplete страны не задаем.
  4. +
  5. + +

    Настраиваем ActionController’ы:
    +Настроем ActionController, который отвечает за фильтрацию области по стране. Настройка выглядит следующим образом:

    +
  6. +
+

ЕСЛИ Autocomplete страны был заполнен,

+

ТОГДА установить фильтр дляAutocomplete области (метод setFilter) по значению изAutocomplete страны.

+

А также сделать активным(Enabled = true)Autocomplete области.

+

ИНАЧЕ очистить фильтр используя метод resetFilter

+

исделать неактивным (Enabled = false) Autocomplete области.

+

5. Аналогично настраивается второйAutocomplete.

+

Фильтрация может задаваться 2 способами:

+
    + +
  1. C использованием метода getValue :
  2. +
+

Autocomplete_1:

+

Autocomplete_2:

+

Используется метод getValue:

+
    + +
  1. C помощью метода getBusinessId:
  2. +
+

Autocomplete_1:

+

Autocomplete_2:

+

Используется метод getBusinessId:

+ +
+
+

Attachments:

+
+ + +
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Флаг.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Флаг.html new file mode 100644 index 00000000..d2fabde5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Флаг.html @@ -0,0 +1,138 @@ + + + + + + + + Web-BPM Docs – Флаг + + + + + + +
+
+ + + +
+
+

Флаг

+

Назначение

+

Флаг - это компонента, которая используется для проставления отметок в виде “флажков - галочек” в группе из нескольких доступных пользователю вариантов выбора значений. Отличается от компоненты Переключатель тем, что предоставляет выбор сразу нескольких значений вместо одного из альтернативных. При одиночном использовании (не в составе группы) может использоваться как включатель/выключатель какой-либо функциональности, разработанной аналитиком на web-странице. В этом случае используется совместно с компонентой Обработка Событий, которая управляет реакцией системы на изменение значения компоненты Флаг.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Флаг может использоваться для:

+
    + +
  1. Для сохранения введеннойинформации в базу данных и отображения значения из базы данных(в данном случае, функция компоненты Флаг. Сохранение значения должна быть включена)
  2. +
  3. Для отображения значений,которые были введены пользователем приложенияили являются константой, определённой в логике приложения (в данном случае, функция компоненты Дата. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Флаг (без возможности сохранения) находится в разделе Компоненты - Поля - Флаг

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента данное свойство не применимо с логикой отображения поля на странице приложения
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Пример поля Флаг
Значение позволяет задать значение по умолчанию, которое примет компонента при открытии страницы в приложении, значение типа Boolean (TRUE, FALSE, UNDEFINED) Истина (TRUE), Ложь (FALSE), Не определено (UNDEFINED) - значение по умолчанию
Allow null позволяет регулировать возможность выбора (отображения) значения “Не определено (UNDEFINED)” при работе с полем Флаг Активно - позволяет выбирать значение “Не определено (UNDEFINED)” пользователем при работе с полем на ряду со значениямиИстина (TRUE) иЛожь (FALSE), Не активно - исключает возможность выбора значения “Не определено (UNDEFINED)” пользователем при работе с полем, т.е. к выбору доступны только два значения Истина (TRUE) и Ложь (FALSE)- значение по умолчанию
+

Свойство Флаг.Сохранение значения

+

+

В случае, если значение в поле Флаг необходимо сохранить или подгрузить из базы данных, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Для выбора доступны только колонки имеющие логический тип в базе данных - BOOLEAN. В случае, если значение поля Флаг не требуется сохранять или подгружать из базы данных, то данное свойство удаляется (или отключается). Данный вариант может быть необходим, когда поле используется дляотображения значения, которое было введено пользователем приложения или является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

сохранить значение в переменную процесса любого типа

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вопрос Ответ
Чем отличается компоненты Флаг и Переключатель? в компоненте Переключатель в один и тот же момент времени может быть выбрано только единственное значение из нескольких возможных, тогда как компонент Флаг предоставляет возможность одновременно выбрать несколько вариантов из предложенных. При этом, поскольку компонента Переключатель предоставляет выбор только одного варианта, то в базу данных сохраняется разные значения, но в одну колонку для всех вариантов. Для компоненты Флаг для каждого варианта должна быть предусмотрена своя колонка.
Чем отличается компоненты Флаг и Переключатель? в компоненте Переключатель в один и тот же момент времени может быть выбрано только единственное значение из нескольких возможных, тогда как компонент Флаг предоставляет возможность одновременно выбрать несколько вариантов из предложенных. При этом, поскольку компонента Переключатель предоставляет выбор только одного варианта, то в базу данных сохраняется разные значения, но в одну колонку для всех вариантов . Для компоненты Флаг для каждого варианта должна быть предусмотрена своя колонка.
Сохраняет ли в базу данных свои значения компонента Флаг? КомпонентаФлаг, для которой указана колонка для сохранения, обеспечивает и сохранение значения в базу данных, и чтение из нее. КомпонентаФлаг, без параметра “колонка для сохранения в БД” не сохраняет свое значение в базу данных. Но зато может использоваться для динамического управления интерфейсом страницы, на которой расположена. Пример такой настройки приведен в разделе методических рекомендаций.
Все ли свойства компоненты обязательны для заполнения? Нет.Свойства компоненты определяются в зависимости от решаемой задачи.
Можно ли расположить сам Флаг на странице с левой стороны от наименования поля? Да. Если на странице необходимо отображать сначала сам Флаг, а после Наименование этого поля, то необходимо использовать CSS-класс “check-invert”. После применения CSS-класса поле Флаг будет выглядеть следующим образом:(вместо стандартного отображения)
Если удалить базовые функции, которые включены в компоненту по умолчанию, например, “Заполнить значением по умолчанию” можно ли будет вновь их добавить? Да. Если удалить какую-то базовую функцию компоненты, то по кнопке “Добавить функцию” она будет доступна для выбора.
Возникнет ли ошибка при запуске приложения, если оставить незаполненным свойство Флаг. Сохранение значения? Да.В случае, если функция “Флаг. Сохранения значения” включена у элемента и не заполнены ее параметры, то при валидации проекта возникнет ошибка. Если по условию задачи данное поле не должно подгружаться и сохраняться в базу данных, данную функцию в компоненте необходимо либо отключить либо удалить.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Числовое_поле.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Числовое_поле.html new file mode 100644 index 00000000..0dcfa602 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/fields/Числовое_поле.html @@ -0,0 +1,165 @@ + + + + + + + + Web-BPM Docs – Числовое поле + + + + + + +
+
+ + + +
+
+

Числовое поле

+

Назначение

+

Числовое поле - это компонента, которая используется для отображения и ввода чисел на форме страницы.

+

В зависимости от настройки свойств, включенных по умолчанию в состав компоненты, компонента Числовое поле может использоваться для:

+
    + +
  1. Для сохранения введенной информации в базу данных и отображения значения из базы данных (в данном случае, функция компоненты Числовое поле. Сохранение значения должна быть включена)
  2. +
  3. Для отображения числа, которые было введено пользователем приложения или является константой, определённой в логике приложения(в данном случае, функция компоненты Числовое поле. Сохранение значения должна быть выключена или удалена через настройки функции по кнопке)
  4. +
+

Компонента Числовое поле находится в разделе Компоненты - Поля - Числовое поле.

+

Свойства

+

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Введите год
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Год
Значение по умолчанию позволяет задать значение поля по умолчанию, которое будет отображаться на странице пример возможного значения: 100
Минимальное возможное значение позволяет задать минимально возможное значение числа, меньше которого пользователь ввести не сможет пример возможного значения: 0
Максимальное возможное значение позволяет задать максимально возможное значение числа, больше которого пользователь ввести не сможет пример возможного значения: 2999
Шаг увеличения позволяет задать шаг увеличения значения числа пример возможного значения: 1
maxValueErrorMsg, minValueErrorMsg, numberErrorMsg позволяют задать пользовательское сообщение о соответствующих ошибках валидации строка
+

Свойство Числового поля: Сохранение значения

+

+

В случае если значение в числовом поле необходимо сохранить или подгрузить из БД, указывается поле таблицы базы данных, куда будет сохраняться и откуда будет подгружаться введенное значение. Если же числовое поле не требуется сохранять в БД или подгружать из БД, то данное свойство удаляется. Данный вариант может быть необходим, когдачисловое поле используется для отображения текста,который был введен пользователем приложенияили является константой, определённой в логике приложения.

+

+

Базовые функции

+

Заполнить значением по умолчанию

+

Подгрузка данных по умолчанию

+

Заполнить значением из переменной процесса

+

Заполнить значением из переменной процесса

+

Дополнительные функции

+

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

+

Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

+

Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

+

Определить права текущего пользователя

+

Определить права текущего пользователя

+

Определить роли текущего пользователя

+

Определить роли текущего пользователя

+

Включить вычисление математических операций

+

Включить вычисление математических операций

+

Включить конвертирование значений

+

TODO desribe function

+

Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет осуществить преобразование значения в исходном компоненте из текущего типа (чаще всего, в компоненте Поле ввода с подбором значенияиз типа данных ANY) в целочисленный тип данных.

+

Она относится к той группе функций, чья функциональность применяетсяи может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется нескольконовых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ в компоненте Поле ввода с подбором значения выбрано (изменилось) значение, ТО в компоненту числовое поле вывести идентификатор(первичный ключ) этого значения’

+

+

Рис.1 Активация функции на компоненте Поле ввода с подбором значения

+

+

Рис.2 Числовое поле, в которое будем записывать идентификатор значения из компонента Поле ввода с подбором значения

+

+

Рис. 3 Пример алгоритма заполнения числового поля идентификатором значения, выбранного в поле с Постановщиком задачи, при условии расширения функциональности исходной компоненты Поле ввода с подбором значения функцией Сконвертировать значение в целочисленный тип; (появился новый метод Сконвертировать в число; у исходной компоненты)

+

+

Рис.4 Пример невозможности построения алгоритма из-за отсутствия необходимого метода Сконвертировать в число, вследствие удаления функции Сконвертировать значение в целочисленный тип из исходной компоненты Поле ввода с подбором значения Постановщик задачи (пропал метод Сконвертировать в число у исходной компоненты)

+

После запуска web-приложения (in runtime mode) выбираем в компоненте Список с поиском одно из значений (например, постановщика задачи с фамилией Дякин), после этого значение идентификатора (первичный ключ сотрудника по фамилии Дякин в справочнике) переносится в поле"Идентификатор постановщика", а в консоли браузера можно наблюдать сообщение о срабатывании компоненты Обработка событий, которое показывает выполненное функцией действие.

+

+

Рис 5.Выбираем Постановщика задачи

+

+

Рис.6 Функция заполняет числовое поле идентификатором

+

Сохранить значение в переменную процесса

+

Сохранить значение в переменную процесса любого типа

+

Методические рекомендации по применению

+

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

+ +

Часто задаваемые вопросы

+ + + + + + + + + + + + + + + + + + +
Вопрос Ответ
В каком случае используется числовое поле, а в каком текстовое? Использование того или иного компонента зависит от типа поля в базе данных, в которую предполагается сохранение данных. Например, если поле в базе данных текстовое (text, char и т.п.), то используется компонента - текстовое поле.
Можно ли в числовое поле вводить отрицательные числа? Да, можно.
Можно ли в числовое поле вводить нецелые числа? Да, например, 3,25.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ColumnNavigationRenderer.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ColumnNavigationRenderer.html new file mode 100644 index 00000000..c8349c30 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/ColumnNavigationRenderer.html @@ -0,0 +1,70 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Скрипт для настройки переходов по ячейке в новых таблицах GridV2. Накидывается на колонку GridV2Column.

+

Правила настройки:

+
    + +
  1. + +

    В отличие от NavigateOnGridCellOrRow, в данном скрипте не нужно проставлять индексы колонок:

    +
      + +
    • Если необходимо использовать значение из данной колонки, а не идентификатор (isPk == false), то свойство useSelfValue выставляем в true.
    • +
    • Если нужно взять значение из другой, то накидываем соответствующую колонку в поле valueColumn.
    • +
    +
  2. +
  3. + +

    Все остальные свойства настраиваются по аналогии со свойствами в NavigateOnGridCellOrRow.

    +
  4. +

+

Примеры заполнения:

+

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/CustomSqlLoadDao-и-CustomSqlFormDao.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/CustomSqlLoadDao-и-CustomSqlFormDao.html new file mode 100644 index 00000000..ee039360 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/CustomSqlLoadDao-и-CustomSqlFormDao.html @@ -0,0 +1,53 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Расположение в студии: database\dao\CustomSqlLoadDao.java, dao\container\CustomSqlFormDao.java

+

Описание: скрипты добавляют возможность задания оптимизированного запроса в виде текста. Статичные параметры должны быть прописаны в тексте запроса, а динамические в тексте запроса должны быть определены знаком ‘?’ и заданы в переменных процесса (parameterVariables).

+

CustomSqlLoadDao необходим для загрузки данных таблицы и загрузки данных по умолчанию, а CustomSqlFormDao для загрузки данных формы.

+

CustomSqlLoadDao необходимо добавить вместо DefaultLoadDao, а CustomSqlFormDao необходимо добавить вместо FormDao.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridServiceWithAggregationColumnsImpl-агрегация.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridServiceWithAggregationColumnsImpl-агрегация.html new file mode 100644 index 00000000..69096312 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridServiceWithAggregationColumnsImpl-агрегация.html @@ -0,0 +1,52 @@ + + + + + + + + Web-BPM Docs – Применение агрегирующих функций + + + + + + +
+
+ + + +
+
+

Применение агрегирующих функций

+

Для того чтобы применить агрегирующую функцию на колонку, необходимо во вкладке “Таблица. Подгрузка данных” выбрать скрипт GridServiceWithAggregationColumnsImpl и в нужной колонке выбрать агрегирующую функцию. В таком случае к запросу будет применен group by без агрегирующихся колонок.

+

! Примечание: если среди агрегирующихся колонок есть та, которая принадлежит главной сущности, то вместо id главной сущности каждой строке будет присвоен фиктивный идентификатор, соответсвующий его порядковому номеру в результирующей таблице.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridV2.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridV2.html new file mode 100644 index 00000000..26851cc7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/GridV2.html @@ -0,0 +1,264 @@ + + + + + + + + Web-BPM Docs – GridV2 + + + + + + +
+
+ + + +
+
+

GridV2

+

Назначение

+

GridV2 - это компонента, которая используется для отображения информации из базы данных в табличном виде с возможностью сортировки записей в нужном порядке.

+

Свойства

+

Компонента имеет набор общих свойств.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список или Таблицей
multiselectable Выбор более 1 строки Да/Нет. По умолчанию ???
checkboxColumn ТУДУ: нельзя менять ширину колонки. Отобразить колонку с флажками для выбора значений. Свойство активно, если задано multiselectable = true Да/Нет
checkboxHeader Добавить выбор/снятие выбора для всех элементов. Свойство активно, если задано checkboxColumn == true Да/Нет
pinnedBottomRowLabel ТУДУ Подпись, которая видна, только если задать checkboxColumn=true ?!!!
rowClickSelectionType Выбор действия по нажатию левой кнопки мыши : SUPPRESS_SELECT_CLICK - запрет выбора строк, MULTI_SELECT_CLICK - выбор нескольких строк, SINGLE_SELECT_CLICK - выбор 1 строки. По умолчанию - SINGLE_SELECT_CLICK.
showRowNumber ТУДУ: нельзя менять ширину колонки. Отобразить колонку с порядковым номером строки Да/Нет. По умолчанию - нет
floatingFilter Добавить компоненты фильтрации в шапке Да/Нет. По умолчанию - нет
loadOnInit Загружать данные при инициализации Да/Нет. По умолчанию - да
pagination Показать элементы для переключения между страницами Да/Нет. По умолчанию - нет
fetchSize
rowModelType Тип загрузки данных INFINITE_LOAD - постраничная загрузка данных, CLIENT_SIDE - загрузка всех данных. По умолчанию - CLIENT_SIDE
+

Расширенные свойства

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
headerHeight высота заголовка
rowHeight высота строки
autoStretchColumns ТУДУ: AutoSizeColumn? Растянуть колонки по содержимому Да/нет
loadingOverlayType способ отображения процесса загрузки данных TEXT_OVERLAY - визуализация внутри грида, PROGRESS_BAR - блокирующий прогресс бар на странице
loadingOverlayMessage Сообщение при загрузке данных. Свойство видно если задано loadingOverlayType=TEXT_OVERLAY По умолчанию “Загрузка данных, пожалуйста, подождите.”
noRowsOverlayMessage Сообщение при отсутствии данных. Свойство видно если задано loadingOverlayType=TEXT_OVERLAY По умолчанию “Данные отсутствуют”
theme Визуализация таблицы (темы) BOOTSTRAP, BALHAM, BALHAM_DARK, BLUE, DARK, MATERIAL, FRESH
allowContextMenuWithControlKey Если нет, то при нажатии Ctrl и правой кнопки будет отображение контекстное меню браузера. Иначе всегда контекстное меню таблицы. Да/Нет.
saveColumnState Сохранять ли состояние колонок грида в локальный кэш браузера
gridConfigurationRowHeight Высота строки в диалоге конфигурации колонок грида
+

GridV2Column

+

Назначение

+

Для настройки колонок в GridV2 добавлена компонента GridV2Column, с помощью которой на клиентской части можно настраивать отображение и экспорт данных в колонке.

+

Свойства

+ + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Value Formatter Форматирование исходных данных для корректного отображения. При задании серверного и клиентского форматера возможно непредвиденное поведение. Форматирование будет применяться и на строку Итого. Принимает один из возможных форматеров (см. раздел Value Formatter ниже). По умолчанию выбран DefaultValueFormatter
File Export Formatter Форматирование исходных данных для корректного экспорта. Принимает один из возможных форматтеров (см. раздел Export Formatter ниже).
Renderer Позволяет изменить внешний вид GridV2Column (напр. цвет текста). Принимает один из возможных GridCellValueRenderer скриптов.
+

Value Formatter

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование форматера Назначение форматера Настраиваемые значения
DateFormatter Преобразует дату из стандартного (ISO) формата в формат DD.MM.YYYY -
DateTimeFormatter Преобразует дату из стандартного (ISO) формата в формат DD.MM.YYYY hh.mm.ss -
DefaultValueFormatter Предназначен для замены null-значений на настраиваемое noDataValue - значение, на которое будет заменяться null, по умолчанию настроено значение пустой строки
ReplaceValueFormatter Заменяет значения, указанные в Regex, на значения, указанные в New Value No Data Value - значение, на которое будет заменяться null, по умолчанию настроено значение пустой строки
Value To Replace - список пар значений Regex, New Value;
Regex - регулярное выражение, которое используется при поиске;
New Value - значение, на которое нужно заменить.
+

File Export Formatter

+ + + + + + + + + + + + + + + + + + +
Наименование форматера Назначение форматера Настраиваемые значения
DateExportFormatter Преобразует дату из стандартного (ISO) формата в формат DD.MM.YYYY -
DateTimeExportFormatter Преобразует дату из стандартного (ISO) формата в формат DD.MM.YYYY hh.mm.ss -
+

Renderer

+ + + + + + + + + + + + + + +
Наименование скрипта Назначение форматера Настраиваемые значения
ChangeColorOnColumnValueColumnCellRenderer Позволяет изменять цвет текущего GridV2Column на основе значения из любого GridV2Column на странице Grid Column - позволяет указать GridV2Column, который будет использоваться для сравнения значений. Color For Value - позволяет выбрать цвет для каждого значения, которому равен выбранный GridV2Column.
+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/MaskCellValueFormatter.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/MaskCellValueFormatter.html new file mode 100644 index 00000000..9f1e274d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/MaskCellValueFormatter.html @@ -0,0 +1,51 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Описание: Форматер для колонок GridV2, задает маску для отображения колонки.

+

Использование: Выбрать скрипт MaskCellValueFormatter.ts на объект GridV2Column в valueFormatter. Поле mask - обязательное, для задачи маски. Поле regex - регулярное/не регулярное выражение. Поле casing - отвечает за регистр, может принимать значения null, “upper”, “lower” or “title”.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html new file mode 100644 index 00000000..740c86fa --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/NavigateOnGridCellOrRow.html @@ -0,0 +1,98 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Скрипт для настройки переходов по строке (одинарный, двойной клик) и по ячейке: по процессу, по внешней/внутренней ссылке, к диалогу. Накидывается на таблицу.

+

Правила настройки:

+
    + +
  1. + +

    Для начала нужно выбрать направление перехода redirectionType: BPMN (по процессу), LINK (по ссылке) или DIALOG (к диалогу).

    +

    > Большинство остальных свойств настраиваются по аналогии со свойствами в старых скриптах > (SelectAndNavigateCellGridConfigurator, NavigateOnClickGridRow, NavigateOnDoubleClickGridRow).

    +
  2. +
  3. + +

    Вместо identityColumnIndex используется valueColumnIndex - индекс колонки, из которой берем значения (необязательно идентификатор).

    +
  4. +
  5. + +

    Для таблиц типа GridV2 добавлено свойство columnGroupIndex:

    +
      + +
    • Нумерация групп начинается с 1 с учетом индексов колонок, НЕ входящих в группы.
    • +
    • Если колонка принадлежит группе, то необходимо указать индекс columnGroupIndex. Индекс самой колонки начинается с 1 внутри группы.
    • +
    • Если колонка не принадлежит ни одной из групп, то свойство columnGroupIndex оставляем незаполненным (либо 0).
    • +
    +
  6. +
  7. + +

    Сегмент ссылки передается как resources:

    +
      + +
    • Образец внешней ссылки: https://www.wildberries.ru/catalog/${sku}/detail.aspx
    • +
    • Образец внутренней ссылки: products/ru.cg.webbpm.packages.base:resources:jar:3.182.0
    • +
    +
  8. +
  9. + +

    Для ссылок (baseRoute) добавлено свойство isAbsolute:

    +
      + +
    • Если ссылка внутренняя (isAbsolute == false), то для нее можно задать свойство openInNewTab. При true ссылка откроется в новой вкладке.
    • +
    • Если ссылка внешняя, она всегда будет открываться в новой вкладке.
    • +
    +
  10. +
  11. + +

    При настройке перехода к диалогу на свойство dialog необходимо накинуть соответствующий объект диалога.

    +
  12. +

+

Для того чтобы настроить переходы без индексов, необходимо использовать скрипты RowNavigationHandler и ColumnNavigationRenderer. Работают только для GridV2.


+

Пример заполнения:

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/RowNavigationHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/RowNavigationHandler.html new file mode 100644 index 00000000..48db3da5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/RowNavigationHandler.html @@ -0,0 +1,69 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Скрипт для настройки переходов по строке в новых таблицах GridV2. Накидывается на таблицу GridV2.

+

Правила настройки:

+
    + +
  1. + +

    В отличие от NavigateOnGridCellOrRow, в данном скрипте не нужно проставлять индексы колонок:

    +
      + +
    • Если в навигации не используем идентификатор (isPk == false), то колонку, из которой берем значения, накидываем в поле valueColumn.
    • +
    +
  2. +
  3. + +

    Все остальные свойства настраиваются по аналогии со свойствами в NavigateOnGridCellOrRow.

    +
  4. +

+

Примеры заполнения:

+

+

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/SelectAndNavigateCellGridConfigurator.ts-(Колонки-с-навигацией).html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/SelectAndNavigateCellGridConfigurator.ts-(Колонки-с-навигацией).html new file mode 100644 index 00000000..2e28bfb7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/SelectAndNavigateCellGridConfigurator.ts-(Колонки-с-навигацией).html @@ -0,0 +1,58 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
+
+ + + +
+
+

Скрипт предназанчен для отображения колонки(колонок) грида как ссылки для перехода на другую страницу. Скрипт доступен для добавления в любой грид.

+

Параметры:

+

variable - переменная процесса, в которую будет сохранено значение(идентификатор) из ячейки-ссылки, на которой было нажатие.

+

navigableColumns - массив элементов вида:

+

renderColumnIndex - индекс колонки, которую нужно отобразить как ссылку, нумерация начинается с 1.

+

isPk - сохранять в переменную ‘_variable’_ значение первичного ключа строки, в которой была нажата ячейка-ссылка. Если isPk=true, то в переменную ‘variable’ сохраняется первичный ключ строки, иначе надо указать индекс колонки(identityColumnIndex), из которой брать значение

+

identityColumnIndex - поле видно, если isPk = false, указывает на индекс колонки, из которой будет взято значение для сохранения в переменную
+‘variable’ . Нумерация начинается с 1

+

navigateTo - значение которое будет передано в переменную для навигации.

+
+
+
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/index.html new file mode 100644 index 00000000..36d30ab9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/index.html @@ -0,0 +1,72 @@ + + + + + + + + Web-BPM Docs – Таблицы + + + + + + + +
+
+
+
+

© 2023 +Micord +

+
+

Built by Maven +

+
+
+ + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Древовидная_таблица.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Древовидная_таблица.html new file mode 100644 index 00000000..1071ef21 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Древовидная_таблица.html @@ -0,0 +1,182 @@ + + + + + + + + Web-BPM Docs – Древовидная таблица + + + + + + +
+
+ + + +
+
+

Древовидная таблица

+

Назначение

+

Древовидная таблица - это компонента, которая используется для отображения иерархических данных из таблицы базы данных в виде дерева (каждую запись, можно назвать узлом или ветвью, которая может иметь один или несколько подразделов, то есть дочерних записей). При работе с элементом на странице можно развернуть каждую запись таблицы для просмотра подпунктов (если такие существуют), а также свернуть, чтобы их скрыть. Источником подгрузки данных в компоненту является иерархическая таблица базы данных (определенная в качестве Главной сущности в Редакторе структуры сущностей элемента), представляющая собой набор элементов данных (записей), связанных между собой иерархическими связями. Иерархические связи - это связи, в которых один из элементов данных является родителем другого элемента, то есть в таблице присутствует внешний ключ (например, parent_id), ссылающийся на первичный ключ этой же таблицы базы данных.

+

Компонента Древовидная таблица находится в разделе Компоненты - Таблицы - Древовидная таблица (рис.1)

+

Примером использования компоненты Древовидная таблица можно привести задачу, когда на странице необходимо отобразить справочник ОКТМО (Общероссийский классификатор территорий муниципальных образований), где каждый муниципальный район будет отображаться вместе со входящими в него сельскими и городскими поселениями, в виде дерева. В данном случае, Алексеевский муниципальный район будет считаться родителем для входящих в него сельских поселений, например, Лебяжинское, Майнское и др., которые считаются по отношению к нему дочерними записями. При этом на пользовательской странице родительская запись в таблице будет отображаться вместе с подсчитанным числом относящихся к нему дочерних записей, выведенным в скобках после значения, отображаемого в первом столбце таблицы, например, 92606000 (20), где 92606000 - это код муниципального района, а (20) - количество поселений входящих в данный муниципальный район.

+

+

рис.1 Компонента Древовидная таблица

+

+

рис.2 Пример использования компоненты Древовидная таблица на странице

+

Свойства

+

Компонента имеет набор общих свойств.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Наименование свойства Назначение свойства Принимаемые значения
Показывать номер строки позволяет задать автоматическую нумерацию строк +
    +
  • значение не определено - по умолчанию
  • +
  • Активно - отображать нумерацию строк
  • +
  • Не активно - не отображать нумерацию строк
Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список или Таблицей
Root id equal parent id В случае, если корневой элемент таблицы имеет id равный родительскому id, свойство позволяет переопределить построение иерархии +
  • Значение не определено/Не активно - по умолчанию.
  • +
  • Активно - корневой элемент ссылается сам на себя при построении таблицы
  • Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
      +
    • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
    • +
    • MULTI_SELECT_CLICK– при каждом клике на строку не сбрасываются предыдущие выбранные строки. Например, если вы кликнули на одну строку, а затем на другую, то первая строка останется выбранной. В этом случае клик по уже выбранной строке снимает выделение (deselect). Эта настройка полезна для touch-устройств, у которых нет клавиш Ctrl или Shift.
    • +
    • SUPPRESS_SELECT_CLICK– сроки не будут выбираться при клике. Например, если вы хотите выбирать строки только при нажатии на чекбокс.
    +

    Свойство компоненты: Таблица. Задействовать режим выбора нескольких строк

    + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Допустимо выбрать несколько строк позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
      +
    • возможность выбора сразу нескольких или одной строки
    • +
    • возможность выбора одной строки - значение по умолчанию
    Колонка “Флагов” позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица +
      +
    • значение не определено - значение по умолчанию
    • +
    • Активно - отображать колонку флагов
    • +
    • Не активно - не отображать колонку флагов
    +

    Свойство компоненты: Древовидная таблица. Подгрузка данных

    +

    +

    Позволяет задать Граф сущностей для подгрузки данных в Таблицу и Колонку, указывающую на родительский элемент для построения древовидной структуры. Является обязательным к заполнению и настройке.

    +

    Сущность - это объект с которым работают в графе. В качестве объекта могут быть: таблицы и представления (вью) из базы данных. Понятие сущности не равно понятию таблицы, поскольку одна таблица может быть добавлена в граф несколько раз.

    +
      + +
    • Колонка, указывающая на родительский элемент - это колонка иерархической таблицы базы данных, включенной в качестве Главной сущности
    • +
    • в структуру сущности элемента Древовидная таблица, которая является внешним ключом (например,parent_id), ссылающимся на первичный ключ
    • +
    • этой же таблицы базы данных.
    • +
    +

    с описанием настройки Графа сущностей для Таблицы можно ознакомиться в разделе: Настройка Графа сущностей

    +

    Свойство компоненты: Таблица. Настроить колонки таблицы

    +

    +

    позволяет настроить отображаемые колонки в Таблице с сортировкой данных по конкретному порядку

    +

    с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

    +

    Функции

    +

    В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

    +

    Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

    +

    Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

    +

    Определить права текущего пользователя

    +

    Определить роли текущего пользователя

    +

    Очистить форматирование колонок таблицы

    +

    Преобразовать в колонки со значениями-переходами

    +

    Методические рекомендации по применению

    +

    Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

    + +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    Как задать ширину Таблицы? Для того, чтобы настроить ширину или высоту таблицы необходимо в Основных настройках - Расширенные настройки - Стилизадать необходимые значения для настраиваемых параметров, например, Ширина 500px.
    Как задать ширину колонок в процентах? Для задания ширины колонок в процентах необходимо выставить нужный процент в поле width и поставить галочку “Автоматически выравнивать по ширине” (autoStretchColumns)
    Можно ли поменять порядок отображаемых колонок в Таблице? Для того, чтобы изменить порядок колонок в Таблице необходимо в свойстве Настроить колонки таблицы - Колонкинажать правой кнопкой мыши на «Элемент»ивыбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент
    Как настроить возможность многострочного выбора записей в Таблице? Для того, чтобы настроить многострочный выбор (одновременный выбор нескольких) записей в Таблице необходимо в разделеТаблица. Задействовать режим выбора нескольких строкустановить свойство Допустимо выбрать несколько строк в значение(истина).
    Можно ли поменять порядок отображаемых колонок в Таблице? Для того, чтобы изменить порядок колонок в Таблице необходимо в свойстве Настроить колонки таблицы - Колонкинажать правой кнопкой мыши на «Элемент»ивыбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент
    Можно ли добавлять в Граф сущностейдополнительные таблицы, ссылающиеся на главную иерархическую таблицу, и отображать значения их колонок в Древовидной таблице? Да, можно. Добавление к Главной сущности компоненты (иерархической таблице) связанных с ней таблиц базы данных, никак не изменяет логики работы и отображения данных в Древовидной таблице.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_Таблицу_на_страницу_с_фильтрацией_записей_по_условию_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_Таблицу_на_страницу_с_фильтрацией_записей_по_условию_.html new file mode 100644 index 00000000..54025945 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_Таблицу_на_страницу_с_фильтрацией_записей_по_условию_.html @@ -0,0 +1,104 @@ + + + + + + + + Web-BPM Docs – Как добавить Таблицу на страницу с фильтрацией записей по условию? + + + + + + +
    +
    + + + +
    +
    +

    Как добавить Таблицу на страницу с фильтрацией записей по условию?

    +

    Постановка задачи: необходимо реализовать на пользовательской странице Реестра заявлений элемент Таблица, в которой будет отображаться информация о поступивших заявлениях на получение лицензии. Перечень заявлений доступных для просмотра пользователю (сотруднику) и отображаемых в Таблице должен определяться в зависимости от того, к какому территориальному органу относится сотрудник, то есть сотрудник Чистопольского территориального органа должен видеть заявления, зарегистрированные только в этом территориальном органе, заявления из других объектов не должны отображаться ему в Таблице.

    +

    Таблица с заявлениями должна иметь следующие настройки:

    +
      + +
    • в Граф сущностей в качестве Главной сущности должна быть определена таблица заявлений (application), которая будет связана с другими таблицами базы данных, где содержится дополнительная информация для вывода на страницу как тип заявления, данные по организации-заявителю, территориальный орган
    • +
    • в структуре Графа сущностей должно быть задано условие (фильтр), которое будет регулировать отображаемые записи в Таблице в зависимости от территориального органа сотрудника, просматривающего страницу. Ограничение можно задать приравняв значение из таблицы базы данных Территориальный орган (предварительно включенной в Граф сущностей) к переменной процесса div_code, значение которой определяется в зависимости от учетной записи пользователя и заполняется перед открытием страницы Реестр заявлений.
    • +
    • в структуру Таблицы должно быть включено шесть колонок (источником подгрузки значений из базы данных будут служить заданные в Графе сущностей таблицы): +
        + +
      • Номер заявления
      • +
      • Дата заявления
      • +
      • Наименование организации
      • +
      • Цель обращения
      • +
      • Инн
      • +
      • Территориальныйорган
      • +
      +
    • +
    • сортировка записей в Таблице должна осуществляться по дате заявления (по убыванию)
    • +
    +

    Решение задачи:

    +

    Предполагается, что страница Реестра заявлений уже создана бизнес-аналитиком и в логике бизнес-процесса определена необходимая переменная процесса div_code, значение которое заполняется перед открытием страницы пользователем. Для добавления на страницу и настройки Таблицы необходимо сделать следующее:

    +
      + +
    • добавить внутрь страницы компоненту Таблица (рис.1)
    • +
    • в настройках добавленной Таблицы перейти к разделу Таблица. Подгрузка данных - Источник данных - Граф сущностей и настроить его в соответствии с условием задачи. Во вкладке Структура открывшегося Редактора структуры сущностей необходимо задать условие (фильтр) по территориальному органу сотрудника-пользователя (рис.2)
    • +
    +

    + +
    +
    рис.1 Добавление элемента Таблица на страницу
    +рис.2 Настройка Графа сущностей Таблицы и условия фильтрации записей
    +
    + + +

    +

    рис.5 Настройка колонок Таблицы

    +

    +

    рис.6 Настройка колонок Таблицы

    +

    +

    рис.7 Настройка сортировки в Таблице по дате заявления

    +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и записи в Таблице с заявлениями отображаются согласно заданному условию (фильтру) в структуре сущностей компоненты (рис.8). При удалении данного условия из логики настройки Таблицы, подгружаются данные по все территориальным органам вне зависимости от того к какому отделу относится сотрудник-пользователь, просматривающий страницу (рис.9).

    +

    рис.8 Визуальное отображение выполнения условий задачи

    +

    +

    рис.9 Отображение данных в Таблице без применения условия по территориальному органу

    +

    image2019-3-7\_15-22-36.png Screenshot\_9.png Screenshot\_9.png
    +image2019-3-7\_15-26-43.png Screenshot\_6.png
    +image2019-3-7\_15-59-25.png Screenshot\_7.png
    +Screenshot\_8.png
    +Screenshot\_3.png
    +Screenshot\_4.png

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_на_страницу_Таблицу_с_постраничным_отображением_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_на_страницу_Таблицу_с_постраничным_отображением_.html new file mode 100644 index 00000000..e48991fe --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_на_страницу_Таблицу_с_постраничным_отображением_.html @@ -0,0 +1,102 @@ + + + + + + + + Web-BPM Docs – Как добавить на страницу Таблицу с постраничным отображением? + + + + + + +
    +
    + + + +
    +
    +

    Как добавить на страницу Таблицу с постраничным отображением?

    +

    Постановка задачи: необходимо реализовать на пользовательской странице Реестра сведений о розничных ценах по товарамэлемент Таблица с постраничным отображением, в которой будет отображаться информация о предоставленных и зарегистрированных сведениях о ценах на продовольственные товары по территориальным органам и входящих в него районах.

    +

    Таблица со сведениями должна иметь следующие настройки:

    +
      + +
    • в Граф сущностей в качестве Главной сущности должна быть определена таблица сведений (price_monitor_report), которая будет связана с другими таблицами базы данных, где содержитсядополнительная информация для вывода на страницу как территориальный орган, район, статус обработки, тип сведения
    • +
    • в структуру Таблицы должно быть включено семь колонок (источником подгрузки значений из базы данных будут служить заданные в Графе сущностей таблицы): +
        + +
      • Территориальный орган
      • +
      • Район
      • +
      • Наименование предоставляемых сведений
      • +
      • Период отчетности
      • +
      • Торговый объект
      • +
      • Статус
      • +
      • Комментарий
      • +
      +
    • +
    • сортировка записей в Таблице должна осуществляться по периоду отчетности (по убыванию)
    • +
    +

    Решение задачи:

    +

    Предполагается, что страница Реестра сведений о розничных ценах по товарам, где необходимо разместить Таблицу, уже создана бизнес-аналитиком и включена в логику бизнес-процесса. Для добавления на страницу и настройки Таблицы с постраничным отображением необходимо сделать следующее:

    +
      + +
    • добавить внутрь страницы компоненту Таблица с постраничным отображением (рис.1)
    • +
    • в настройках добавленной Таблицы с постраничным отображением перейти к разделу Таблица с постраничным отображением. Подгрузка данных - Источник данных Граф сущностей и настроить его в соответствии с условием задачи. В качестве Главной сущности (выделена желтой рамкой) в Редакторе структуры сущности задана таблица базы данныхprice_monitor_report (рис.2)
    • +
    +

    + +
    +
    рис.1 Добавление элемента Таблица с постраничным отображением на страницу
    +рис.2 Настройка  Графа сущностей Таблицы с постраничным отображением
    +
    + + +

    + +
    +
    рис.3 Настройка колонок Таблицы         
    +рис.4 Настройка колонок Таблицы   
    +рис.5 Настройка колонок и сортировки в Таблице  
    +
    + +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены и в Таблице с постраничным отображением содержится вся необходимая информация (рис.6).

    +

    + +
    +
    рис.6 Визуальное отображение выполнения условий задачи
    +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_связанные_Таблицы_на_страницу_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_связанные_Таблицы_на_страницу_.html new file mode 100644 index 00000000..f3b97baf --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_добавить_связанные_Таблицы_на_страницу_.html @@ -0,0 +1,89 @@ + + + + + + + + Web-BPM Docs – Как добавить связанные Таблицы на страницу? + + + + + + +
    +
    + + + +
    +
    +

    Как добавить связанные Таблицы на страницу?

    +

    Постановка задачи: необходимо реализовать на пользовательской странице Реестра заявлений, где имеется основная Таблица с информацией о заявлениях на оформление лицензии, дополнительную, зависящую от основной Таблицу объектов из заявления, где будет отображаться информация об объектах (наименование объекта, КПП, площадь), включенных в заявление. Таблица с информацией об объектах должна иметь следующие настройки:

    +
      + +
    • в Граф сущностей должна быть включена в качестве Главной сущности таблица application_object, в которой имеется ссылка на идентификатор заявления(из таблицы application) и на идентификатор объекта(из таблицы object). Также в Граф сущностей должна быть включена таблица object, из которой будет подгружаться информация об объектах, включенных в заявление
    • +
    • в структуру Таблицы должны быть включены три колонки (источником подгрузки значений из базы данных будут служить заданные вГрафе сущностейтаблицы): +
        + +
      • Наименование объекта
      • +
      • КПП объекта
      • +
      • Площадь
      • +
      +
    • +
    +

    Решение задачи:

    +

    Предполагается, что страница Реестра заявлений уже создана бизнес-аналитиком, где имеется настроенная основная Таблица заявлений, в Граф сущностей которой добавлены все необходимые объекты базы данных (таблицы и представления) и в качестве Главной сущности задана таблица базы данных application, так как будет запоминаться идентификатор выбранной из неё записи(рис.1). Для добавления на страницу и настройки дополнительной, зависящей от главной, Таблицы необходимо сделать следующее:

    +
      + +
    • добавить внутрь Формы компоненту Таблица и в параметре “Зависит от” указать основную Таблицу с заявлениями (рис.2)
    • +
    +

    + +
    +
    рис.1 Граф сущностей главной Таблицы заявлений                         
    +рис.2 Добавление связи между Таблицами
    +
    + +
      + +
    • в настройках добавленной Таблицы перейти к разделу Таблица. Подгрузка данных - Источник данных - Граф сущностей и настроить его в соответствии с условием задачи (рис.3). Там же в свойстве “Колонка для режима Зависит от” необходимо указать колонку связи с основной таблицей, и данный идентификатор будет служить в качествепараметра, по которому будет подгружаться информация в зависимую Таблицу с объектами (рис.4)
    • +
    • Настройка_колонок_Таблицы в соответствии с условием задачи (рис.5) +

      рис.3 Настройка Графа сущностей Таблицы с объекта из заявления рис.4 Настройка колонки связи между Таблицами
      +рис.5 Настройка колонок Таблицы

    • +
    +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что при выборе записи в главной Таблице, где находится информация о поступивших заявлениях, в зависимой Таблице, по идентификатору заявления из главной Таблицы, отображается информация об объектах, включенных в данное заявление (рис.6).

    + +
    +
    рис.6 Визуальное отображение выполнения условий задачи
    +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_задействовать_компоненту_Древовидная_таблица_на_пользовательской_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_задействовать_компоненту_Древовидная_таблица_на_пользовательской_странице_.html new file mode 100644 index 00000000..b791b3bd --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_задействовать_компоненту_Древовидная_таблица_на_пользовательской_странице_.html @@ -0,0 +1,158 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Древовидная таблица на пользовательской странице? + + + + + + +
    +
    + + + +
    +
    +

    Как задействовать компоненту Древовидная таблица на пользовательской странице?

    +

    Постановка задачи: на пользовательской странице Справочник видов продукции необходимо реализовать возможность отображения данных (наименований видов продукции) с использованием древовидной структуры в табличном виде, где в наборе элементов таблицы (записей) есть родительская запись Группа продукции и относящиеся к ней дочерние записи - Виды продукции. Помимо отображения данных в Древовидной таблице необходимо реализовать возможность добавления новой связанной дочерней записи к уже имеющейся ветви (записи) в таблице или родительскую запись, которая в последствии будет служить ветвью для добавления дочерних записей. При выборе записи в таблице по нажатию на кнопку Добавить (компонента Кнопка выбора) осуществляется переход по бизнес-процессу на страницу Добавления вида продукции, где помимо уже имеющихся полей на настроенной Форме для сохранения значений в таблицу базу данных - Код, Наименование продукции, Описание, Актуальность, необходимо добавить поле Родитель(компонентаПоле ввода с подбором значения), значение которого будет заполняться по умолчанию из переменной процесса значением (идентификатором) записи - parent_id, выбранной ранее с помощью кнопки Добавить в таблице Справочников видов продукции.

    +

    Последовательность действий пользователя, в данном случае, будет заключаться в следующем: в таблице Справочник видов продукции была выбрана родительская запись, например, Вина столовые фруктовые, которая является Группой продукции и уже включает в себя Виды продукции. К выбранной (строка окрашена в отличный от других строк цвет) Группе продукции (Вина столовые фруктовые) пользователю необходимо добавить новый вид продукции, для этого он нажимает на кнопку Добавить, после чего открывается страница Добавления вида продукции, где поле Родитель по умолчанию заполнилось значением - Вина столовые фруктовые и после сохранения к данной Группе продукции будет добавлена новая дочерняя запись Вид продукции, например, Сухие фруктовые вина.

    +

    В случае, когда пользователю будет необходимо добавить не дочернюю запись к уже существующей родительской записи, а самого родителя (ветвь) Группу продукции, которая в будущем будет объединять в себе Виды продукции, по нажатию на кнопку Добавить (без выбора записи в таблице) будет также осуществляться переход на страницу Добавления вида продукции, но поле Родитель будет оставаться пустым.

    +

    Источником для подгрузки данных в настраиваемой Древовидной таблице должна быть определена в качестве Главной сущности иерархическая таблица базы данных - Виды продукции, в структуре которойприсутствует внешний ключ(parent_id), ссылающийся на первичный ключ этой же таблицы базы данных. Для более детального отображения данных на странице Справочник видов продукции, в структуру сущностей компонентыДревовидная таблицанеобходимо также включить таблицы базы данных, которые будут ссылаться по ключу на Главную сущность - Справочник ЛКВП (локальный вид кода продукции) и Справочник кодов ФСРАР (классификатор видов продукции), значениями из которых будут заполняться колонки ЛКВП и Код ФСРАР в настраиваемой таблице.

    +

    Решение задачи: предполагается, что бизнес-аналитиком уже создана страница Справочник видов продукции, где необходимо расположить элемент Древовидная таблица,также создана страницаДобавление вида продукции, где помимо уже имеющихся на Формеэлементов страницы, необходимо разместить поле Родитель, значение которого будет подгружаться из уже созданной переменной процесса-parent_id и будет равно значению идентификаторазаписи выбранной в настраиваемой Древовидной таблице с помощью компоненты Кнопка выбора - Добавить.

    +

    Для добавления на страницу компоненты Древовидная таблица, которая будет отображать Справочник видов продукции в виде дерева, необходимо сделать следующее:

    +
      + +
    • добавить на страницу элемент из раздела Компоненты - Таблицы - Древовидная таблица (рис.1)
    • +
    • в свойстве компоненты Древовидная таблица. Подгрузка данных настроить Граф сущностей, где в Редакторе структуры сущностей необходимо включить таблицы базы данных Справочник видов продукции (иерархическая таблица - Главная сущность), Справочник ЛКВП (ссылается на первичный ключ Главной сущности) и Справочник кодов ФСРАР (связан с Главной сущностью через таблицу связи), которые будут служить в качестве источника данных для подгрузки значений в настраиваемую Таблицу (рис.2)
    • +
    +

    + +
    +
    рис.1 Добавление компоненты Древовидная таблица на страницу                         
    +рис.2 Настройка Графа сущностей Древовидной таблицы
    +
    + +
      + +
    • после заполнения Графа сущностей компоненты в свойстве Древовидная таблица. Подгрузка данных необходимо в качестве Колонки, указывающей на родительский элемент указать колонку Главной сущности (иерархической таблицы базы данных Справочник видов продукции) - parent_id, которая является внешним ключом, ссылающимся на первичный ключ этой же таблицы базы данных (рис.3). Указание данной колонки и использование иерархической таблицы базы данных в качестве Главной сущности позволит выстроить древовидную структуру таблицы с ветвями (родителями) и относящимися к ним дочерними записями.
    • +
    • в параметре Таблица. Настроить колонки таблицы необходимо включить элементы, которые будут отображать значения колонок из трёх ранее добавленных в Граф сущностей таблиц базы данных -Справочник видов продукции (иерархическая таблица -Главная сущность),Справочник ЛКВП и Справочник кодов ФСРАР (рис.4)
    • +
    • на этой же странице Справочник видов продукции для того чтобы реализовать возможность добавления новой записи в таблицу с переходом на страницу Добавления вида продукции необходимо добавить элемент Кнопка выбора,в свойствах которого настраиваются следующие параметры (рис.5): +
        + +
      • в качестве Компоненты для выбора записи указываем настраиваемую Древовидную в таблицу
      • +
      • в свойстве элемента Таблица. Получить идентификатор выбранной в таблице записи и сохранить в переменную процесса в параметре Сохранить идентификатор в…указываем уже созданную переменную процесса parent_id
      • +
      • по нажатию на кнопку Добавить скрипт необходимо выбрать из открывшегося списка доступную для компоненты функцию Управление навигацией и в её настройках указать значение переменной навигации add_vid_prod, по которому будет осуществляться переход по бизнес-процессу на страницу Добавление вида продукции
      • +
      +

      рис.3 Настройка свойства Подгрузка данных
      +рис.4 Настройка колонок Таблицы
      +рис.5 Настройка Кнопки выбора записи в таблице

      +
    • +
    +

    Согласно условию задачи, в случае, когда пользователю необходимо добавить новую запись (родительскую или дочернюю) в таблицу осуществляется переход по бизнес-процессу на страницу Добавления вида продукции по нажатию на кнопку Добавить. На открывшейся странице должно быть поле Родитель, которое будет заполнено из переменной процесса значением (идентификатором) выбранной ранее записи в таблице, в случае, если происходит добавление дочерней записи к уже существующей ветви (родителю). Если переход на страницу был осуществлен без выбора записи в Таблице, то есть пользователю необходимо добавить родительскую запись, на странице Добавления вида продукции поле Родитель будет пустым.

    +

    Для того чтобы добавитьполе Родитель(компонентаПоле ввода с подбором значения)на страницу Добавления вида продукции необходимо сделать следующее:

    +
      + +
    • добавить элемент из раздела **Компоненты – Поля – Поле ввода с подбором значения (с возможностью сохранения)**внутрь компоненты Формана странице(рис.6)
    • +
    • в свойстве компоненты Поле ввода с подбором значения. Подгрузка данных настроить Граф сущностей, где в Редакторе структуры сущностей необходимо включить в качестве Главной сущности таблицу базы данных -Справочник видов продукции (рис.7)
    • +
    +

    + +
    +
    рис.6 Добавление компоненты Поле ввода с подбором значения (с возможностью сохранения)     
    +рис.7 Настройка Графа сущностей Поля ввода с подбором значения
    +
    + +
      + +
    • после заполнения Графа сущностей компоненты в свойствеПоле ввода с подбором значения. Подгрузка данныхнеобходимо дополнительно настроить два параметра (рис.8): +
        + +
      • в параметре Сортировать поуказываем колонку Название (name)таблицы базы данных Справочник видов продукции, включенной в Граф сущностей компоненты.
      • +
      • в параметреПоказывать пользователюуказываем колонку Название (name)таблицы базы данных Справочник видов продукции, включенной в Граф сущностей компоненты.
      • +
      +
    • +
    • для того, чтобы полученное значение из элемента Родитель сохранялось в базу данных, необходимо настроить свойствоПоле ввода с подбором значения. Сохранения значения, где мы указываем таблицу базы данных и колонку, в которую будет происходить сохранение значения на странице (рис.9)
    • +
    • согласно поставленной задаче, описанной выше, значение поля Родитель на странице должно подгружаться из переменнойпроцесса - parent_id, что можно настроить перейдя к свойству компоненты Заполнить значением из переменной процесса (рис.9) +

      рис.8 Настройка Подгрузки данныхПоля ввода с подбором значения рис.9 Настройки свойств сохранения и заполнения значения из переменной

    • +
    +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что на страницеСправочник видов продукции есть Древовидная таблица, в которой записи отображаются в виде дерева, где видно основную ветвь (родительскую запись) - Группу продукции, и ответвляющиеся от неё дочерние записи - Виды продукции (рис.10). Для того, чтобы добавить новую запись в Таблицу (дочернюю к уже имеющейся записи) на странице размещена кнопка Добавить (рис.10). По нажатию на кнопку происходит запись идентификатора выбранной строки-родителя, к которой пользовательхочет добавить дочернюю запись, в переменную процесса и переход по бизнес-процессу на страницу Добавления вида продукции (рис.11). После открытия страницы в поле Родитель отображается значение ранее выбранное в Древовидной таблице на странице Справочник видов продукции (рис.12, рис.13). В случае, если пользователь добавляет саму ветвь (родителя), то он не выбирает запись в таблице, а сразу нажимает на кнопку Добавить, и значение поля Родитель у добавляемой записи остается пустым (рис.13).

    +

    + +
    +
    рис.10 Отображение Древовидной таблицы на странице 
    +рис.11 Выбор родительской записи в таблице для добавления дочерней записи
    +
    + +

    + +
    +
    рис.12 Отображение значения в поле Родитель   
    +рис.13 Последовательность двух вариантов действия: добавление родительской и дочерней записи
    +
    + +
    +
    +

    Attachments:

    +
    + +
    + +

    image2019-4-12_14-27-47.png (image/png)
    + image2019-4-12_14-27-55.png (image/png)
    + Screenshot_2.png (image/png)
    + Screenshot_8.png (image/png)
    + Screenshot_9.png (image/png)
    + Screenshot_9.png (image/png)
    + image2019-4-12_15-13-14.png (image/png)
    + Screenshot_10.png (image/png)
    + Screenshot_11.png (image/png)
    + image2019-4-16_15-40-30.png (image/png)
    + Screenshot_12.png (image/png)
    + Screenshot_151.png (image/png)
    + Screenshot_15.png (image/png)
    + Screenshot_15.png (image/png)
    + Screenshot_15.png (image/png)
    + image2019-4-17_10-42-16.png (image/png)
    + image2019-4-17_10-48-37.png (image/png)
    + image2019-4-17_10-50-29.png (image/png)
    + image2019-4-17_10-51-29.png (image/png)
    + image2019-4-17_10-55-32.png (image/png)
    + Запись_2019_04_17_11_02_28_197.gif (image/gif)
    + image2019-4-17_11-7-50.png (image/png)
    + image2019-4-17_11-12-45.png (image/png)

    +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_сохранить_идентификатор_связанной_таблицы_используя_скрытое_числовое_поле_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_сохранить_идентификатор_связанной_таблицы_используя_скрытое_числовое_поле_.html new file mode 100644 index 00000000..890ff3a1 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Как_сохранить_идентификатор_связанной_таблицы_используя_скрытое_числовое_поле_.html @@ -0,0 +1,68 @@ + + + + + + + + Web-BPM Docs – Как сохранить идентификатор связанной таблицы используя скрытое числовое поле? + + + + + + +
    +
    + + + +
    +
    +

    Как сохранить идентификатор связанной таблицы используя скрытое числовое поле?

    +

    Постановка задачи: предполагается, что есть переменная процесса (employee_id), которая хранит в себе значение идентификатора текущего авторизованного пользователя изтаблицы с информацией о пользователях системы.Необходимо реализовать на странице скрытое Числовое поле, в которое будет записываться значение из переменной employee_id и сохраняться в базе данных в качестве идентификатора изменившего запись в таблицу Список задач (tasks) колонку updated_employee_id.

    +
      + +
    • поле должно быть невидимым пользователю
    • +
    • значение поля должно подлежать сохранению
    • +
    • сохранение значения должно осуществляться в базу данныхв таблицу Список задач (tasks) колонку updated_employee_id
    • +
    • значение поля должно заполняться из переменной employee_id
    • +
    +

    Решение задачи:

    +

    Предполагается, что страница уже создана бизнес-аналитиком, где имеется ***основная компонента Форма***, в структуру сущностей которой включена необходимая, в данном случае,таблица Список задач (tasks), в которую будет сохраняться полученноезначение. Для добавления на страницу и настройки числового поля необходимо сделать следующее:

    +
      + +
    • добавить внутрь Формы компоненту Числовое поле с возможностью сохранения
    • +
    • произвести настройки согласно условию задачи
    • +
    +

    +

    Результат выполнения задачи:

    +

    Так как поле должно быть невидимым, на странице приложения оно не отобразится. При нажатии на кнопку сохранения, значение из поля будет записано в таблицу Список задач (tasks) колонку updated_employee_id.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Настройка_колонок_Таблицы.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Настройка_колонок_Таблицы.html new file mode 100644 index 00000000..aa346113 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Настройка_колонок_Таблицы.html @@ -0,0 +1,100 @@ + + + + + + + + Web-BPM Docs – Настройка колонок Таблицы + + + + + + +
    +
    + + + +
    +
    +

    Настройка колонок Таблицы

    +

    Для того, чтобы приступить к настройке колонок отображаемой в приложении Таблицы, необходимо предварительно заполнить Граф сущностей компоненты, где указываются объекты базы данных (таблицы и представления) с соответствующими условиямии связями, которые будут выступать в качестве источника данных для подгрузки значений.

    +

    После настройки Графа сущностей и сохранения внесённых изменений в его структуру*, во встроенных функциях элемента Таблица* необходимо перейти к разделу Таблица. Настроить колонки таблицы - Колонки и нажать на кнопку “Плюс” (рис.1). По нажатию на кнопку будет добавлен первый элемент (колонка), который имеет следующие настройки:

    +
      + +
    • Колонка - позволяет указать конкретную таблицу или представление базы данных, предварительно включенную в Граф сущностей, и колонку из этой таблицы, значения из которой будут отображаться на странице;
    • +
    • Наименование - это свойство, которое**позволяет задать наименование колонки, которое будет отображаться в шапке Таблицы; если название колонки не задано, то по умолчанию будет отображаться название таблицы и колонки в базе данных, откуда подгружаются значения
    • +
    • Ширина - свойство, которое**позволяет указать ширину (по умолчанию в пикселях) отображаемой колонки в Таблице;
    • +
    • Фиксированная ширина - данное условие выполняется только при заполненном выше значении Ширина и фиксирует размер колонки в Таблице;
    • +
    • Скрытое - данное свойство позволяет задать возможность скрытия столбца в Таблице. Применяется в том случае, когда необходимо настроить сортировку по содержимому колонки или использовать её в качестве входного параметра для кастомных (нестандартных) функций, но при этом отображать колонку в Таблице пользователю не нужно.
    • +
    • Агрегирующая функция - это функция, которая обрабатывает набор строк в указанной колонке для подсчета и возвращения одного обобщающего значения.Предусмотрено использование следующих агрегирующих функций: +
        + +
      • Сумма- возвращает сумму содержащихся в колонке значений, при этом указанная колонка из таблицы базы данных должна иметь числовой тип;
      • +
      • Максимум- возвращает максимальное значение из массива имеющихся значений в колонке, при этом указанная колонка из таблицы базы данных должна иметь числовой тип;
      • +
      • Минимум- возвращает минимальное значение из массива имеющихся значений в колонке,при этом указанная колонка из таблицы базы данных должна иметь числовой тип;
      • +
      • Среднее- возвращает среднее подсчитанное значение из массива имеющихся значений в колонке,при этом указанная колонка из таблицы базы данных должна иметь числовой тип;
      • +
      +

      Количество - возвращает общее количество записей в колонкеВ случае, когда свойство настроено у колонки, например, выбрана Агрегирующая функция Сумма, на странице пользовательского приложения вычисленное значение по колонке будет автоматически отображаться зафиксированной (положение не будет изменяться при прокрутке записей) результирующей строкой в Таблице (рис.3). При этом строка будет выделена отличным от других записей в таблице цветом и значение в результирующем поле будет динамически изменяться по мере заполнения колонки (выбранной в качестве источника данных) новыми значениями в таблице базы данных.

      +
    • +
    • Форматирование - данное свойство позволяет отобразить значение из колонки базы данных в необходимом формате на странице в приложении. Например, подгружаемое значение в колонку имеет тип данных Дата и Время (DateTime), но на странице пользовательского приложения необходимо отображать значение в колонке без Времени, только Дату. В таком случае, целесообразно использовать форматтер DateFormatter, который отобразит значение колонки в нужном виде. Но при этом предварительно необходимо применить к Таблице функцию Очистить форматирование колонок таблицы, указав наименование настраиваемой колонки.
    • +
    +

    Порядок и удаление колонки в Таблице можно регулировать нажав правой кнопкой мыши на надписи Элемент и выбрав один из трех вариантов Переместить наверх - Переместить вниз - Удалить элемент (рис.2).

    +

    +

    рис.1 Добавление колонок в Таблицу

    +

    +

    рис.2 Изменение элемента в Таблице (порядок или удаление)

    +

    +

    рис.3 Отображение колонок с Агрегирующими функциями

    +

    В случае, когда необходимо отобразить значение из нескольких колонок таблиц(ы) базы данных в одной колонке Таблицы на странице приложения используется свойство Составная колонка (рис.4).

    +
      + +
    • Составная колонка - это элемент Таблицы, который включает в себянесколько вложенных колонок из одной или разных таблиц базы данных с определяемым разделителем значений (точка, запятая, пробел и другие) и следующими настройками: +
        + +
      • префикс- символ или текст, который будет отображаться перед подгружаемым значением из колонки базы данных, например символ открывающейся скобки (;
      • +
      • постфикс - символ или текст, который будет отображаться после подгружаемого значения из колонки базы данных, например символ закрывающейся скобки ) ;
      • +
      • разделитель - символ или пробел, который будет разделять между собой значения из разных колонок таблиц (ы) приводимых в одну строку
      • +
      +
    • +
    +

    Для отображения записей в Таблице в определенном порядке используется Сортировка, которую можно настроить перейдя к разделу Таблица. Настроить колонки таблицы - Сортировкаи нажать на кнопку. Важно отметить, что колонка(и), по которым будет производитьсяСортировкадолжны быть включены в качестве элементов в Таблицу, либо включены, но скрыты, иначе при открытии страницы пользовательского приложения будет выведена ошибка. На языке SQL-запросовданное условие равно оператору ORDER BY, который можно применять как к числовым столбцам, так и к строковым (в последнем случае, сортировка будет происходить по алфавиту). По нажатию на кнопку будет добавлен элемент сортировки, который имеет следующие настройки:

    +
      + +
    • Колонка - позволяет указать конкретную таблицу или представление базы данных, предварительно включенную в Граф сущностей, и колонку из этой таблицы, по которой будут сортироваться записи в Таблице;
    • +
    • Порядок сортировки позволяет указать в каком порядке будет производиться сортировка По возрастанию или По убыванию (рис.5)
    • +
    +

    +

    рис.4 Добавление элемента Составная колонка

    +

    +

    рис.5 Добавление сортировки Таблиц по условию

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Очистить_форматирование_колонок_таблицы.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Очистить_форматирование_колонок_таблицы.html new file mode 100644 index 00000000..b148daa5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Очистить_форматирование_колонок_таблицы.html @@ -0,0 +1,77 @@ + + + + + + + + Web-BPM Docs – Очистить форматирование колонок таблицы + + + + + + +
    +
    + + + +
    +
    +

    Очистить форматирование колонок таблицы

    +

    Функция, которая в режиме исполнения приложения (runtime mode) очищает форматирование по умолчанию указанных в настройках функции колонок компоненты Таблица для возможности применения пользовательских параметров форматирования, указываемых в настройках колонок компоненты Таблица. Попытка выставления аналитиком пользовательских параметров форматирования в настройках колонок компоненты Таблица без совместного использования с функцией Очистить форматирование колонок таблицы не приведет к изменению форматирования и к колонкам компоненты Таблица по-прежнему будет применяться форматирование по умолчанию

    +

    Может быть активирована только на компоненте Таблица.

    +

    +

    Рис. 1 Внешний вид активированной функции

    +

    Параметры функции (табл.1)

    + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Список колонок, обязательный позволяет сформировать список колонок компоненты Таблица, для которых система должна сбросить форматирование по умолчанию. Колонки для текущей функции идентифицируются по именам, присвоенным колонкам при настройке функции “Таблица”. Настроить колонки таблицы
    +

    Пример настройки и применения

    +

    +

    Рис.2 Активация функции на компоненте Таблица

    +

    +

    Рис. 3 Форматирование колонки без применения функции “Очистить форматирование колонок таблицы”

    +

    +

    Рис.4 Форматирование колонки после применения функции Очистить форматирование колонок таблицы

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблица.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблица.html new file mode 100644 index 00000000..8a00ca25 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблица.html @@ -0,0 +1,247 @@ + + + + + + + + Web-BPM Docs – Таблица + + + + + + +
    +
    + + + +
    +
    +

    Таблица

    +

    Назначение

    +

    Таблица - это компонента, которая используется для отображения информации из базы данных в табличном виде с возможностью сортировки записей в нужном порядке.

    +

    Компонента Таблица находится в разделе Компоненты - Таблицы - Таблица

    +

    Свойства

    +

    Компонента имеет набор общих свойств.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список или Таблицей
    Multiselectable позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
      +
    • возможность выбора сразу нескольких или одной строки
    • +
    • возможность выбора одной строки - значение по умолчанию
    Checkbox Column позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица +
      +
    • значение не определено - по умолчанию
    • +
    • Активно - отображать колонку флагов
    • +
    • Не активно - не отображать колонку флагов
    Показывать номер строки позволяет задать автоматическую нумерацию строк +
      +
    • значение не определено - по умолчанию
    • +
    • Активно - отображать нумерацию строк
    • +
    • Не активно - не отображать нумерацию строк
    Pinned Bottom Row Label позволяет задать значение для названия итоговой строки таблицы (строки с агрегирующими значениями по колонкам таблицы) пример возможного значения: Итого
    Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
      +
    • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
    • +
    • MULTI_SELECT_CLICK -при каждом клике на строку, предыдущие выбранные строки не сбрасываются, т.е если кликнули на одну строку, а затем на другую, то первая строка останется выбранной. Клик по уже выбранной строке снимает с неё выделение. Использования данного метода допустимо, в случае, если в таблице доступен выбор нескольких строк (при значениисвойстваMultiselectable)
    • +
    • SUPPRESS_SELECT_CLICK – исключает возможность выбора (выделения) строки по клику. В данном случае, выбор строки представляется возможным только при использовании чекбоксов.
    Save Column State позволяет задать возможность сохранения пользовательских настроек в части состава и ширины колонок в таблице +
      +
    • значение не определено - по умолчанию
    • +
    • Активно - изменения пользователя в части отображаемых колонок в таблице (состав и ширина) будут сохраняться в локальном хранилище, т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения отобразятся
    • +
    • Не активно - не сохранять изменения пользователя в части отображаемых колонокв таблице (состав и ширина), т.е. если пользователь исключил для отображения конкретную колонку или изменил ширину столбца в таблице, то при повторном переходе на страницу эти изменения не отобразятся и таблица будет иметь исходный вид по умолчанию
    Loading Overlay Type позволяет выбрать вид прелоадера при подгрузке данных в таблицу Доступны следующие виды настройки: +
      +
    • TEXT_OVERLAY - отображает текст в центре таблицы при подгрузке данных, задаваемый в свойствах: No Rows Overlay Message и Loading Overlay Message
    • +
    • PROGRESS_BAR - отображает прогресс-бар при подгрузке данных в таблицу
    No Rows Overlay Message позволяет указать текст для отображения пользователю в таблице в случае, если результат запроса не вернул ни одной строки, например, Данные отсутствуют (доступно для настройки при Loading Overlay Type - TEXT_OVERLAY) пример возможного значения: Данные отсутствуют
    Loading overlay message позволяет указать текст для отображения пользователю в процессе подгрузки данных в таблицу, например, Загрузка данных, пожалуйста, подождите.( доступно для настройки при Loading Overlay Type - TEXT_OVERLAY) пример возможного значения: Загрузка данных, пожалуйста, подождите. Allow Context Menu With позволяет управлять отображением контекстного меню (список доступных для исполнения действий) при нажатии правой кнопкой мыши на ячейку внутри таблицы +
      +
    • значение не определено - по умолчанию
    • +
    • Активно - при нажатии правой кнопкой мыши на ячейку внутри таблицы отображается контекстное меню доступных действий, например, копирование значения ячейки
    • +
    • Не активно - исключает отображение контекстного меню при нажатии правой кнопкой мыши на ячейку внутри таблицы
    +

    Свойство компоненты: Таблица. Подгрузка данных

    +

    +

    Подгрузка данных - позволяет задать граф сущностей для подгрузки данных в Таблицу. Является обязательным к заполнению и настройке.

    +
      + +
    • + +

      Граф сущностей элемента настраивается в соответствии с п. Настройка Графа сущностей. Является обязательным к заполнению и настройке.

      +
    • +
    • + +

      Колонка для режима “Зависит от” - позволяет указать колонку настраиваемой Таблицы, которая обеспечивает связь текущей компоненты с компонентой заданной в параметре “Зависит от”

      +
    • +
    • + +

      Datasource Jndi Name -позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.

      +
    • +
    +

    Значение данного свойства может быть задано следующим образом: java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файле standalone.xml (аналогично тому, как указывается, например, подключение к базе данных безопасности).

    +

    В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).

    +
      + +
    • Aggregation Header For Export - свойство в расширенных настройках, позволяющее задать заголовок для агрегационной строки при экспорте данных.
    • +
    +

    +

    Свойство компоненты: Таблица. Настроить колонки таблицы

    +

    +

    позволяет настроить отображаемые колонки в Таблице с сортировкой записей по конкретному порядку

    +

    с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

    +

    Свойство компоненты: Таблица. Настроить динамическую подгрузку данных при просмотре страницы

    + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Количество записей в блоке количество отображаемых записей в Таблице по умолчанию при каждой новой подгрузк пример возможного значения: 20 - значение по умолчанию
    +

    Функции

    +

    В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

    +

    Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

    +

    Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

    +

    Очистить форматирование колонок таблицы

    +

    Преобразовать в колонки со значениями-переходами

    +

    Определить права текущего пользователя

    +

    Определить роли текущего пользователя

    +

    Методические рекомендации по применению

    +

    Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

    + +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    Как задать ширину Таблицы? Для того, чтобы настроить ширину или высоту таблицы необходимо в Основных настройках - Расширенные настройки - Стили задать необходимые значения для настраиваемых параметров, например, Ширина 500px.
    Как задать ширину колонок в процентах? Для задания ширины колонок в процентах необходимо выставить нужный процент в поле width и поставить галочку “Автоматически выравнивать по ширине” (autoStretchColumns)
    Как скрыть колонку Таблицы? Для того, чтобы скрыть колонку таблицы можно снять флажок с параметра колонки “Скрытое” в Диспетчере компоненты, либо установить ширину колонки в значение 0px (параметр “Ширина” колонки в Диспетчере компоненты)
    Можно ли поменять порядок отображаемых колонок в Таблице? Для того, чтобы изменить порядок колонок в Таблице необходимо в свойстве Настроить колонки таблицы - Колонки нажать правой кнопкой мыши на «Элемент» и выбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент
    Как изменить формат отображения данных в колонке Таблицы? В случае, если необходимо изменить формат отображения значений в колонке Таблицы необходимо при настройке колонки применить Форматтер. Например, подгружаемое значение в колонку имеет тип данных Дата и Время(DateTime), но на странице пользовательского приложения необходимо отображать значение в колонке без Времени, только Дату. В таком случае, целесообразно использовать форматтер DateFormatter, который отобразит значение колонки в нужном виде. Но при этом предварительно необходимо применить к Таблице функцию Очистить форматирование колонок таблицы, указав наименование настраиваемой колонки.
    Можно ли изменить цветовое оформление Таблицы? Да, можно. Цветовым оформлением Таблицы можно управлять с помощью CSS-стилей, задаваемых в Основных параметрах - Расширенные настройки - CSS классы
    Как автоматически вывести сумму значений по колонке в Таблицу? Для того, чтобы на странице отобразилась сумма значений по колонке, необходимо при настройке колонки выбрать Агрегирующую функцию - Сумма, после чего в Таблице автоматически отобразится зафиксированная (положение не будет изменяться при прокрутке записей) результирующая строка в Таблице. При этом строка будет выделена отличным от других записей в таблице цветом и значение в результирующем поле будет динамически изменяться по мере заполнения колонки (выбранной в качестве источника данных) новыми значениями в таблице базы данных. С описанием настройки колонок в Таблице можно ознакомиться в разделе: Настройка колонок Таблицы
    При выборе записи в основной Таблице в зависимой Таблице (с настроенным режимом «Зависит от»)**отображаются некорректные записи. В чем ошибка? В данном случае, некорректна указана колонка связи между зависимой и основной Таблицами. С описанием настройки связанных Таблиц можно ознакомиться в разделе: Как добавить связанные Таблицы на страницу?
    Как настроить возможность многострочного выбора записей в Таблице? Для того, чтобы настроить многострочный выбор (одновременный выбор нескольких) записей в Таблице необходимо в разделе Таблица. Задействовать режим выбора нескольких строк установить свойство Допустимо выбрать несколько строк в значение(истина).
    Можно ли задать автоматическую нумерацию строк (записей) в Таблице? Да, можно. Для этого необходимо в настраиваемых параметрах Таблицы перейти к свойству Таблица. Основные параметры - Показывать номер строки и привести его в значение(истина).
    Колонка в шапке таблицы имеет странное наименование. Как исправить? Такая ситуация возникает в том случае, если не было задано значение значение параметра “Наименование” в диспетчере компоненты при создании колонки и ей было присвоено название по умолчанию в формате “название таблицы:название колонки”.
    Как поменять порядок следования столбцов таблицы в диспетчере компоненты? Вызвать контекстное меню на надписи Элемент и выбрать соответствующий пункт.
    Как отобразить доступный для понимания вариант адреса, если в колонке базы данных он задан идентификатором guid_fias? Необходимо вручную настроить параметр “Форматирование” в Диспетчере компоненты.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблица_с_постраничным_отображением.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблица_с_постраничным_отображением.html new file mode 100644 index 00000000..cbd952a7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблица_с_постраничным_отображением.html @@ -0,0 +1,187 @@ + + + + + + + + Web-BPM Docs – Таблица с постраничным отображением + + + + + + +
    +
    + + + +
    +
    +

    Таблица с постраничным отображением

    +

    Назначение

    +

    Таблица с постраничным отображением - это компонента, которая используется для отображения информации из базы данных в табличном виде с возможностью сортировки записей в нужном порядке и постраничным просмотром (переключением) записей.

    +

    Компонента Таблица с постраничным отображением находится в разделе Компоненты - Таблицы - Таблица с постраничным отображением (рис.1)

    +

    Свойства

    +

    Компонента имеет набор общих свойств.

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Показывать номер строки позволяет задать автоматическую нумерацию строк +
      +
    • значение не определено - по умолчанию
    • +
    • Активно - отображать нумерацию строк
    • +
    • Не активно - не отображать нумерацию строк
    Зависит от позволяет указать объект (родителя), по идентификатору которого будут отображаться сведения в текущей Таблице; задаётся в случае необходимости связать Таблицу с другой компонентой, например, Выпадающий список или Таблицей
    Row click selection type позволяет задать поведение выбора строк при клике на строку Таблицы +
      +
    • SINGLE_SELECT_CLICK – при клике на строку предыдущие выбранные строки сбрасываются, если не была зажата клавиша Ctrl или Shift- данный метод выбран по умолчанию
    • +
    • MULTI_SELECT_CLICK– при каждом клике на строку не сбрасываются предыдущие выбранные строки. Например, если вы кликнули на одну строку, а затем на другую, то первая строка останется выбранной. В этом случае клик по уже выбранной строке снимает выделение (deselect). Эта настройка полезна для touch-устройств, у которых нет клавиш Ctrl или Shift.
    • +
    • SUPPRESS_SELECT_CLICK– сроки не будут выбираться при клике. Например, если вы хотите выбирать строки только при нажатии на чекбокс.
    +

    Свойство компоненты: Таблица. Задействовать режим выбора нескольких строк

    + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Допустимо выбрать несколько строк позволяет задать возможность единовременного выбора одной или нескольких записей в Таблице; выбранные строки окрашиваются в отличный от других строк цвет +
      +
    • возможность выбора сразу нескольких или одной строки
    • +
    • возможность выбора одной строки - значение по умолчанию
    Колонка “Флагов” позволяет поставить отметку в виде флажка на тех записях, которые выбраны пользователем в рамках работы с компонентой Таблица +
      +
    • значение не определено - значение по умолчанию
    • +
    • Активно - отображать колонку флагов
    • +
    • Не активно - не отображать колонку флагов
    +

    Свойство компоненты: Таблица с постраничным отображением.

    + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Показать строки по умолчанию позволяет задать количество записей отображаемых на каждой странице компоненты по умолчанию *пример возможного значения:*20 - значение по умолчанию
    Выдавать по <…> строк на странице список всех доступных пользователю вариантов количеств отображаемых строк на одной странице компоненты, которые он может выбрать в запущенном приложении пример возможного значения: 10, 20, 30 - значение по умолчанию
    +

    Свойство компоненты: Таблица с постраничным отображением. Подгрузка данных

    +

    +

    позволяет задать граф сущностей для подгрузки значений в Таблицу из базы данных. Является обязательным к заполнению и настройке.

    +

    Сущность - это объект с которым работают в графе. В качестве объекта могут быть: таблицы и представления (вью) из базы данных. Понятие сущности не равно понятию таблицы, поскольку одна таблица может быть добавлена в граф несколько раз.

    +

    с описанием настройки Графа сущностей для Таблицы можно ознакомиться в разделе: Настройка Графа сущностей

    +

    +

    позволяет указать колонку настраиваемой Таблицы, которая обеспечивает связь текущей компоненты с компонентой заданной в параметре “Зависит от”

    +

    Свойство компоненты: Таблица. Настроить колонки таблицы

    +

    +

    позволяет настроить отображаемые колонки в Таблице с сортировкой записей по конкретному порядку

    +

    с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

    +

    Функции

    +

    В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

    +

    Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.

    +

    Вследствие технических особенностей реализации функций (функции, которые выполняются удаленно на сервере приложений, функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

    +

    Определить роли текущего пользователя

    +

    Определить права текущего пользователя

    +

    Очистить форматирование колонок таблицы

    +

    Преобразовать в колонки со значениями-переходами

    +

    Методические рекомендации по применению

    +

    Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

    + +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    В чем заключается различие между Таблицей с постраничным отображением и Единственное отличие заключается в том, что Таблица с постраничнымотображением функционально имеет возможность постраничного просмотра записей (с переключением).
    Можно ли изменить цветовое оформление Таблицы с постраничным отображением? Да. Цветовым оформлением Таблицы можно управлять с помощью CSS-стилей, задаваемых в **Основных параметрах - Расширенные настройки - CSS классы
    Как задать ширину или высоту Таблицы с постраничным отображением Для того, чтобы настроить ширину или высоту таблицы необходимо в Основных настройках - Расширенные настройки- Стили задать необходимые значения для настраиваемых параметров, например, Ширина 500px.
    Как изменить формат отображения данных в колонке Таблицы с постраничным отображением В случае, если необходимо изменить формат отображения значений в колонке Таблицы необходимо при настройке колонки применить Форматтер. Например, подгружаемое значение в колонку имеет тип данных Дата и Время(DateTime), но на странице пользовательского приложения необходимо отображать значение в колонке без Времени, только Дату. В таком случае, целесообразно использовать форматтер DateFormatter, который отобразит значение колонки в нужном виде. Но при этом предварительно необходимо применить к Таблице функцию Очистить форматирование колонок таблицы, указав наименование настраиваемой колонки.
    Можно ли поменять порядок отображаемых колонок в Таблице с постраничным отображением Для того, чтобы изменить порядок колонок в Таблице необходимо в свойствеНастроить колонки таблицы - Колонкинажать правой кнопкой мыши на«Элемент»ивыбрать предложенные варианты: Переместить наверх - Переместить вниз - Удалить элемент
    Как настроить возможность многострочного выбора записей в Таблице с постраничным отображением? Для того, чтобы настроить многострочный выбор (одновременный выбор нескольких) записей в Таблице необходимо в разделе Таблица. Задействовать режим выбора нескольких строкустановить свойство Допустимо выбрать несколько строкв значение
    +
    +
    +
    +
    +
    +
    +

    © 2022 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблицы.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблицы.html new file mode 100644 index 00000000..193ddf73 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/grids/Таблицы.html @@ -0,0 +1,53 @@ + + + + + + + + Web-BPM Docs – Таблицы + + + + + + + +
    +
    +
    +
    +

    © 2022 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/index.html new file mode 100644 index 00000000..f5ed4cb7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/index.html @@ -0,0 +1,104 @@ + + + + + + + + Web-BPM Docs – Базовая библиотека компонент + + + + + + +
    +
    + + + +
    +
    +

    Базовая библиотека компонент

    +
    +

    Функции

    +

    В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

    +

    Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт

    +

    Вследствие технических особенностей реализации функций (

    +

    - функции, которые выполняются удаленно на сервере приложений,

    +

    - функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

    +

    Рекурсивно копировать составные объекты сложных компонент

    +

    TODO: описать

    +

    Определить права текущего пользователя

    +

    Определить права текущего пользователя

    +

    Определить роли текущего пользователя

    +

    Определить роли текущего пользователя

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/AC._Методы-объектов-страницы.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/AC._Методы-объектов-страницы.html new file mode 100644 index 00000000..f53f80e0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/AC._Методы-объектов-страницы.html @@ -0,0 +1,83 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    +

    У каждого компонента есть набор методов, которые используются в ActionController.

    +

    Общие для всех компонентов методы представлены в следующей таблице:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Метод Значение
    setEnabled установить активность компонента
    isEnabled проверка на активность компонента
    setTooltip задать текст всплывающей подсказки
    getTooltip получить текст всплывающей подсказки
    setVisible установить видимость компонента
    isVisible проверка на видимость компонента
    +

    Также для каждого компонента существуют свои собственные, характерные только для него, методы.

    +

    Названия этих методов формируются по общему правилу:

    +

    метод называется set + свойство компонента. Например свойство значение (value), тогда для того, чтобы задать значение необходимо выбрать метод setValue.

    +

    Аналогично, с get методами.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ConditionOperation.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ConditionOperation.html new file mode 100644 index 00000000..07b662f9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ConditionOperation.html @@ -0,0 +1,108 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    OperationSimpleArray
    EQUALS SIMPLE.EQUALS(VALUE) ARRAY.EQUALS(VALUE) ALL ELEMENTS IN ARRAY
    NOT_EQUALS !SIMPLE.EQUALS(VALUE) !ARRAY.EQUALS(VALUE) ALL ELEMENTS IN ARRAY
    IS_EMPTY SIMPLE.IS_EMPTY() ARRAY.IS_EMPTY()
    IS_NOT_EMPTY !SIMPLE.IS_EMPTY() !ARRAY.IS_EMPTY()
    LESS_THAN SIMPLE.LESS_THAN(VALUE) ARRAY.LESS_THAN(VALUE) ALL ELEMENTS IN ARRAY
    LESS_THAN_OR_EQUAL LESS_THAN_OR_EQUAL(SIMPLE) LESS_THAN_OR_EQUAL(ARRAY) ALL ELEMENTS IN ARRAY
    GREATER_THAN SIMPLE.GREATER_THAN(VALUE) ARRAY.GREATER_THAN(VALUE) ALL ELEMENTS IN ARRAY
    GREATER_THAN_OR_EQUAL SIMPLE.GREATER_THAN_OR_EQUAL(VALUE) ARRAY.GREATER_THAN_OR_EQUAL(VALUE) ALL ELEMENTS IN ARRAY
    CONTAINS SIMPLE.CONTAINS(VALUE) ARRAY.CONTAINS(VALUE) === ELEMENT_X.EQUALS(VALUE)
    DOES_NOT_CONTAIN !SIMPLE.CONTAINS(VALUE) !ARRAY.CONTAINS(VALUE) === !ELEMENT_X.EQUALS(VALUE)
    STARTS_WITH SIMPLE.STARTS_WITH ARRAY.START_WITH(VALUE) ALL ELEMENTS IN ARRAY
    DOES_NOT_STARTS_WITH DOES_NOT_STARTS_WITH !ARRAY.START_WITH(VALUE) ALL ELEMENTS IN ARRAY
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/EventCalendar.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/EventCalendar.html new file mode 100644 index 00000000..b2d42908 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/EventCalendar.html @@ -0,0 +1,359 @@ + + + + + + + + Web-BPM Docs – EventCalendar + + + + + + +
    +
    + + + +
    +
    +

    EventCalendar

    +

    Назначение

    +

    Компонента позволяет размещать календарь на странице и отображать в нем события разных типов в виде цветных маркеров.

    +

    Описание

    +

    В календаре отображаются события разных типов в виде цветных точек, расположенных в ячейках дня в представлении по месяцам, или в виде списка в представлениях по дням или неделям.
    +При представлении в виде месяца, при клике на ячейку дня раскрывается список событий.
    +Для каждого типа событий аналитик может настроить идентификатор типа, его название, цвета отображения в календаре, конфигурацию поиска данных в базе данных.
    +Поиск событий может осуществляться 2-мя способами: - поиском по графу с заданием набора тип + колонки - поиском при помощи кастомных сервисов с указанием типа

    +

    Если типы событий не заданы, события выделяются цветом по умолчанию. Поиск при этом происходит по всем наборам.

    +

    Параметры настройки

    +

    В компоненте 2 основных скрипта: - EventCalendar.ts - EventCalendarRpcService.java

    +

    EventCalendar.ts

    +

    Унаследованные свойства компоненты: набор свойств Control.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Примечание
    1 Event Color Types Определять тип события, его название и цвета, которыми помечаются события в календаре. Необязательная настройка
    Типы событий
    1.1 Event Type Идентификатор типа подгружаемых событий. Задается аналитиком.
    тип события
    1.2 Type Label Название типа подгружаемых событий. Начало заголовка события. Задается аналитиком.
    название типа события Необязательная настройка.
    1.3 Delimiter Разделитель столбцов в заголовке события. По умолчанию: " : ". Необязательная настройка.
    разделитель По умолчанию: " : ".
    1.4 Primary Цвет маркера события. Обязательный цвет
    цвет маркера
    1.5 Secondary Цвет фона события. Обязательный цвет
    цвет фона
    1.6 Secondary Text Цвет шрифта фона события.
    цвет текста фона
    2 Day Clicked Listeners Возможность назначать скрипты, выполняющие действия по клику на ячейку дня в представлении месяца.
    Действия по клику на день
    3 Event Clicked Listeners Возможность назначать скрипты, выполняющие действия по клику на событиев списке событий.
    Действия по клику на событие Эти же действия будут выполнены по клику на цветной маркер события.
    4 Selected Event Types Возможность задать список типов событий, по которым будет происходить поиск событий для календаря.
    Выбранные типы событий
    +

    EventCalendarRpcService.java

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Примечание
    1 Script Сервис загружающий данные. Первоначально выбран сервис по умолчанию.
    Сервис загрузки
    2 Load Dao Класс, назначенный по умолчанию. В нем настраивается граф таблиц базы данных. Настройка графа обязательна.
    Источник данных
    3 User Id Column Столбец базы данных из графа, привязанный к id пользователя. Необязательная настройка.
    Id пользователя
    4 Event Sources Настройка источников событий разных типов.
    Источники событий
    4.1 Event Type Идентификатор типа подгружаемых событий. Задается аналитиком.
    тип события Необязательная настройка.
    4.2 Event Id Column Столбец идентификатора подгружаемых событий. Необязательная настройка.
    идентификатор события
    4.3 Start Date Column Столбец даты начала события. Обязательная настройка.
    начало события
    4.4 End Date Column Столбец даты крнца события. Необязательная настройка.
    конец события
    4.5 Title Columns Набор столбцов, из которых формируется заголовок события. Необязательная настройка.
    заголовок события
    5 Service Types Настройка сервисов для поиска событий разных типов. Необязательная настройка
    Настраиваемые сервисы Сервисы пишутся разработчиком.
    5.1 Event Type Идентификатор типа подгружаемых событий. Задается аналитиком.
    тип события Необязательная настройка.
    5.2 Event Service Подключаемый сервис. (Пишется разработчиком.)
    подключаемый сервис
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/HyperLink.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/HyperLink.html new file mode 100644 index 00000000..d53a5182 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/HyperLink.html @@ -0,0 +1,80 @@ + + + + + + + + Web-BPM Docs – HyperLink + + + + + + +
    +
    + + + +
    +
    +

    HyperLink

    +

    Назначение

    +

    HyperLink - компонента для отображение ссылки.

    +

    Свойства

    +

    Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    URL Ссылка. Может содержать выражения ${your-parameter}, которые будут заменяться. Для этого необходимо указать Parameter Providers.
    Text Текст ссылки
    Is Absolute Является ли ссылкой относительной или абсолютной
    Open In New Tab Открыть ссылку в отдельной вкладке
    Parameter providers Определяет ссылки на объекты и метод для получения значения.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/IFrame.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/IFrame.html new file mode 100644 index 00000000..eb96fb6f --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/IFrame.html @@ -0,0 +1,98 @@ + + + + + + + + Web-BPM Docs – IFrame + + + + + + +
    +
    + + + +
    +
    +

    IFrame

    +

    Назначение компонента

    +

    Компонент IFrame позволяет создавать ссылки на странице(page) во фрейме.

    +

    Настройка компонента

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    visible задаёт видимость компоненты true
    disabled задаёт редактируемость компоненты false
    tooltip задаёт текст всплывающей подсказки, которая появляется при наведении курсора на элемент
    cssClasses список CSS классов (см. раздел Дизайн)
    style список основных свойств: +
      +
    • padding (необходимо указывать единицы измерения)
    • +
    • margin (необходимо указывать единицы измерения). См. http://htmlbook.ru/css/margin. Например для задания отступа справа на 50px необходимо задать значение 0px 50px 0px 0px
    • +
    • border - задает размер, цвет и стиль рамки. Например “20px solid red”. Подробнее http://htmlbook.ru/css/border
    • +
    • height - задает высоту компонента
    • +
    • width - задает ширину компонента
    • +
    • minHeight - задает минимальную высоту компонента
    • +
    • minWidth - задает минимальную ширину компонента
    • +
    • maxHeight - задает максимальную высоту компонента
    • +
    • maxWidth - задает максимальную ширину компонента.
    source задает ссылку
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/InnerHtml.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/InnerHtml.html new file mode 100644 index 00000000..451c78a5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/InnerHtml.html @@ -0,0 +1,69 @@ + + + + + + + + Web-BPM Docs – InnerHtml + + + + + + +
    +
    + + + +
    +
    +

    InnerHtml

    +

    Назначение

    +

    InnerHtml - компонента для вставки HTML кода.

    +

    Свойства

    +

    Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

    + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    htmlAsString HTML код
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Menu.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Menu.html new file mode 100644 index 00000000..47524531 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Menu.html @@ -0,0 +1,100 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    +

    Компонент Menu предназначен для отображения иерархии элементов, навигации по процессам, расчету метрик по пунктам.

    +

    Настройка компоненты: * накидывается на каждую страницу, где должен отображаться * элементы добавляются/редактируются в разделе “Меню. Настройка элементов”

    +

    Описание элементов:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    items Массив элементов 0
    Name Наименование элемента
    is Group Задать элемент группой, выделяется жирным шрифтом и не содержит метрику. false
    Has Metric Необходимость вычислить метрику для элемента false
    Business Process To Start Выбрать процесс, который нужно запустить при нажатии на соответствующий пункт меню
    Dao Выбрать граф сущностей для вычисления метрики
    Aggregation Column Выбор таблицы и колонки, по которой нужна агрегация
    Aggregation Function Выбор агрегирующей функции
    +
      + +
    • компонент отрисовывается в виде дерева с элементами
    • +
    • по нажатию на элемент, для которых задан Business Process To Start, происходит старт указанного процесса
    • +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuGroup.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuGroup.html new file mode 100644 index 00000000..e3d71873 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuGroup.html @@ -0,0 +1,75 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    +

    Компонент MenuGroup является контейнером предназначеным для отображения иерархии элементов, навигации по процессам, расчету метрик по пунктам.

    +

    Настройка компоненты: * накидывается на каждую страницу, где должен отображаться * внутрь этой компоненты добавляются MenuItem для отображения конечного пункта меню * для подгрупп можно добавить ещё один MenuGroup внутрь текущей

    +

    Описание элементов:

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    Name Наименование для заголовка группы
    Show Empty Metric Флаг, для отображения суммы метрик по элементам. Если задано false - то в случае если сумма равна нулю - метрика не будет показана false
    Subsidiary Aggregation Флаг для отображения суммы метрик, если false - то сумма по дочерним элементам высчитываться не будет false
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuItem.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuItem.html new file mode 100644 index 00000000..5e3291c1 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/MenuItem.html @@ -0,0 +1,119 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    +

    Компонент MenuItem предназначен для отображения конечного элемента в меню, навигации по процессам, расчету метрик по пунктам.

    +

    Настройка компоненты: * накидывается на строго на компоненту MenuGroup * элементы добавляются/редактируются в разделе “Меню.Настройка элементов”

    +

    Описание элементов:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    Name Наименование элемента
    Has Metric Необходимость вычислить метрику для элемента false
    Custom Load Флаг для подгрузки метрики из кастомного запроса false
    Custom Dao Заполнение кастомного запроса с возможностью выбора переменных процесса
    Business Process To Start Выбрать процесс, который нужно запустить при нажатии на соответствующий пункт меню
    Dao Выбрать граф сущностей для вычисления метрики
    Aggregation Column Выбор таблицы и колонки, по которой нужна агрегация
    Aggregation Function Выбор агрегирующей функции
    Static Url Флаг для действия элемента, если true - открывает статичный URL false
    Process With Variables Выбор процесса для перехода
    Url URL для перехода
    Visible By Roles Список ролей который могут запустить процесс
    Advanced Properties - Additional Variables Здесь можно указать переменную процесса, значением которой будет значение выбранного объекта на форме. Эту переменную можно использовать в блоке Process with variables - Variables.
    +
      + +
    • по нажатию на элемент, для которых задан Business Process To Start, происходит старт указанного процесса
    • +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ValidationController.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ValidationController.html new file mode 100644 index 00000000..d090e876 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/ValidationController.html @@ -0,0 +1,138 @@ + + + + + + + + Web-BPM Docs – ValidationController + + + + + + +
    +
    + + + +
    +
    +

    ValidationController

    +

    Назначение компонента

    +

    ValidationController – инструмент для построения проверок перед сохранением.

    +

    ValidationController срабатывает только в момент сохранения (по кнопке SaveButton на Form.

    +

    Настройка компонента

    +

    Настройка ValidationController включает в себя настройку следующих разделов:

    +
      + +
    • ЕСЛИ условия.
    • +
    • Уведомить реакция системы на выполнение всех условий из ЕСЛИ.
    • +
    +

    +

    Рассмотрим настройку каждого раздела:

    +

    ЕСЛИ

    +

    Этот раздел задает условия(проверки), при выполнении которых будет выполняться раздел Уведомить.

    +

    Условие задается:

    +
      + +
    • ссылкой на объект (на который мы накладываем наше условие):
    • +
    • проверка.
    • +
    +

    Есть возможность создавать группы условий, объединенных логическими операциями “И”, “ИЛИ”.

    +

    Уведомить

    +

    Этот раздел задает реакцию системы, в случае если условия из раздела ЕСЛИ выполнились:

    +

    Есть два типа уведомлений:

    +
      + +
    • + +

      **SYSTEM **– стандартное уведомление, с заданным текстом;

      +

      +
    • +
    • + +

      **CUSTOM **– уведомление, которое будет выведено в заданный компонент. Для примера, будем использовать вывод уведомления в компонент TextArea. Такой вывод происходит в два этапа:

      +
    • +
    • +
        + +
      • + +

        действие до – предварительные действия.
        +В нашем примере, компонент TextArea, в который будет выведено уведомление, необходимо предварительно очистить (присвоить пустое значение):
        +

        +
      • +
      • + +

        действие _–****_ действия, непосредственно связанные с выводом.
        +Осуществим вывод в TextArea:
        +

        +
      • +
      +
    • +
    +

    Пример настройки

    +

    Задача: На странице имеются два поля (ComboBox) и кнопка сохранения. Необходимо проверить на заполненность этих полей при сохранении.

    +

    +
      + +
    1. + +

      Добавляем все необходимые компоненты на страницу:

      +

      +

      Замечание

      +

      Обратите внимание, поля расположены в Form.

      +

      ValidationController расположен в Form.

      +
    2. +
    3. + +

      Настраиваем компонент Form (см. Настройка Grid), компоненты ComboBox, SaveButton.

      +
    4. +
    5. Настраиваем ValidationController: +
        + +
      1. Создаем Условие (ЕСЛИ), нажатием на кнопку . Условия в этом примере связаны логической операцией ИЛИ, т.к. необходимо проверить оба поля на пустоту (если поставим И - будет выдаваться сообщение только если оба поля будут пустыми).
      2. +
      3. К Условию привязываем объект для валидации - PersistingComboBox_country (необходимо проверять ComboBox, содержащий страны, на пустоту): +

      4. +
      5. Задаем проверку на пустоту (Если значение ComboBox пусто):
        +
      6. +
      7. Тоже самое для второго ComboBox, содержащего города:
        +
      8. +
      9. Задаем реакцию на выполненные условия (Уведомить):
        +из выпадающего списка выбираем SYSTEM - вывод простого системного сообщения:
        +
      10. +
      11. Зададим сообщение:
        +
      12. +
      +
    6. +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/index.html new file mode 100644 index 00000000..e96ef8b8 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/index.html @@ -0,0 +1,52 @@ + + + + + + + + Web-BPM Docs – Компоненты без категории + + + + + + +
    +
    + + + +
    +
    +

    Компоненты без категории

    +

    Компоненты - TODO Calendar - IFrame - ValidationController - Диаграмма - Диаграмма Гантта (Календарный план) - Календарь - Меню. Группа - Меню. Элемент - Обработка событий - HyperLink - InnerHtml

    +

    Функции - AC. Методы объектов страницы - Condition Operation

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма.html new file mode 100644 index 00000000..059669b1 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма.html @@ -0,0 +1,160 @@ + + + + + + + + Web-BPM Docs – Диаграмма + + + + + + +
    +
    + + + +
    +
    +

    Диаграмма

    +

    Диаграмма - это компонента, которая используется для визуализации агрегированных аналитических показателей, полученных в результате выполнения запроса к базе данных.

    +

    Представляет возможность графического отображения на web-странице предусмотренных аналитиком значений мер (measures) в виде диаграмм известных и наиболее распространенных типов на шкале измерений (dimensions). Предоставляет функциональность выбора типа диаграммы, ее легенды, отображения динамичных контекстных подсказок показателей, управление видимостью показателей из легенды.

    +

    Компонента Диаграмма находится в разделе Компоненты - Без категории - Диаграмма (рис.1)

    +

    Свойства

    +

    Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Тип диаграммы позволяет выбрать один из распространенных типов диаграммы
    Допустим выбор типа диаграммы определяет возможность изменения типа диаграммы пользователем “на-лету” во время работы на web-странице в запущенном приложении +
      +
    • значение не определено- по умолчанию
    • +
    • изменение типа диаграммы “на-лету” разрешено
    • +
    • изменение типа диаграммы “на-лету” запрещено
    Легенда предписывает компоненте отображать или скрывать легенду диаграммына web-странице в запущенном приложении +
      +
    • значение не определено- по умолчанию
    • +
    • отображение легенды диаграммы разрешено
    • +
    • отображение легенды диаграммы запрещено
    Позиционирование легенды устанавливает месторасположение легенды диаграммы
    Поле ограничения подгрузки позволяется указать числовое поле, значение которого будет ограничивать число загружаемых данных в диаграмме
    Показывать все значения по оси Х предписывает компоненте отображать все без исключения значения “измерений”, даже если “мера” под такое значение шкалы измерителя отсутствует (не может быть подсчитана). +
      +
    • значение не определено- по умолчанию
    • +
    • отображать все значения “измерений”
    • +
    • отображать только те значения “измерений”, для которых существует (может быть подсчитано) значение “меры”
    +

    Свойство компоненты: Диаграмма. Подгрузка данных

    +

    +

    позволяет задать *Граф сущностей *и взаимосвязи колонок для подгрузки данных в Диаграмму Является обязательным к заполнению и настройке.

    +

    Сущность - это объект с которым работают в графе. В качестве объекта могут быть: таблицы и представления (вью) из базы данных. Понятие сущности не равно понятию таблицы, поскольку одна таблица может быть добавлена в граф несколько раз.

    +

    Скрипт - указывается модуль, реализующий логику построения диаграммы. Установлен по умолчанию, внесение изменений аналитиком не требует

    +

    С описанием настройки Графа сущностей можно ознакомиться в разделе: Настройка Графа сущностей.

    +

    Свойство компоненты: Диаграмма. Настройка

    +

    +

    позволяет настроить отображаемые показатели в Диаграмме.

    +

    Формирование набора этих параметров вкупе со структуройсущности предписывают компоненте автоматически сформировать аналитический агрегирующий запрос, в котором определяется шкала измерений и перечисляются все меры и способ их подсчета.

    +

    Метка - показатель (таблица и колонка из структуры сущности), который будет выступать “измерением” (dimension) в Диаграмме.

    +

    Следует быть уверенным (убедиться), что в колонке значений, которые будут представлены на шкале в качестве измерений, нет ячеек с пустым значением

    +

    Метод агрегирования - не используется

    +

    Наборы данных - формируемый аналитиком список “мер” (measures)и способ их подсчета для отображения по шкале измерений.

    +

    Метка - наименование “меры”, которое будет отображаться во всплывающей подсказке в Диаграмме

    +

    Колонка - таблица и колонка, значения из которой будут обрабатываться в качестве “меры”

    +

    Метод агрегирования - операция по вычислению агрегата над значениями “меры”

    +

    +

    +

    Одним из результатов работы компоненты в приведенной конфигурации будет корректный sql-запрос вида:

    +

    {select “Проекты”.“name”, max(“Список задач”.“task_id”) as “Список задач.task_id”, sum(“Список задач”.“task_id”) as “Список задач.task_id”, count(“Список задач”.“task_id”) as “Список задач.task_id” from “public”.“projects” as “Проекты” left outer join “public”.“tasks” as “Список задач” on “Список задач”.“project_id” = “Проекты”.“project_id” group by “Проекты”.“name”}

    +

    что позволит визуализирвоать , например, столбчатую диаграмму в таком виде:

    +

    +

    на горизонтальной оси размещены “измерения” (наименования проектов), по вертикальной оси в виде столбиков откладываются 3 “меры” (показатели: сумма идентификаторов задач, количество идентификаторов задач, максимальное значение идентификатора задачи).

    +

    При наведении мыши на столбик отображается контекстная подсказка с указанием конкретного “измерения” и отображаемой “меры”, соответствующей высоте столбика.

    +

    Функции

    +

    Настройка фильтрации в таблице и графике для компоненты Диаграмма

    +

    Определить_роли_текущего_пользователя

    +

    Определить права текущего пользователя

    +

    Методические рекомендации по применению

    +

    Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

    + +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    Как сортируются “измерения” и “меры” в Диаграмме? Можно ли изменить порядок сортировки и следования внутри шкалы измерений и мер? В произвольном порядке. Изменить порядок сортировки (следования) нельзя.
    Можно ли вывести легенду? Да, можно.
    Можно ли после отрисовки страницы с диаграммой в приложении поменять ее тип? Да, можно, в специально предназначенном для этого элементе управления Диаграммой.
    Можно ли скрывать значения и визуальное представление “мер” на Диаграмме ? Да, можно. Клик мыши по наименованию “меры” в легенде диаграммы скрывает визуализацию этой “меры” на Диаграмме.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма_chart-v2.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма_chart-v2.html new file mode 100644 index 00000000..7a6bc4bb --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма_chart-v2.html @@ -0,0 +1,257 @@ + + + + + + + + Web-BPM Docs – Chart v2 + + + + + + +
    +
    + + + +
    +
    +

    Chart v2

    +

    Назначение

    +

    Chart v2 - отображение графиков.

    +

    Свойства

    +

    Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    legendPosition Расположение описания графика. Если не задано, то описание не отображается ‘top’, ‘left’, ‘bottom’, ‘right’
    legendAlign Выравнивание описания графика ‘start’, ‘center’, ‘end’. По умолчанию ‘center’
    loadOnStart Загружать данные при инициализации true, false. По умолчанию - true
    chartType Тип графика. Для типов графиков LINE, BAR, HORIZONTAL_BAR задаётся dataSetServices, для типов PIE, DOUGHNUT задаётся dataSetService LINE, PIE, DOUGHNUT, BAR, HORIZONTAL_BAR
    datasetType Тип подгрузки данных: с агрегацией (AGGREGATION) или нет (STATIC) STATIC, AGGREGATION
    chartType Подтип графика. Сценарий использования - необходимо отобразить столбчатую диаграмму внутри линейной. Основной тип - линейная, подтип - столбчатая LINE, BAR, HORIZONTAL_BAR
    scales Шкалы. По умолчанию шкала по Х и шкала по У создаётся автоматически. Необходимо задавать, если нужно отобразить более 1 шкалы.
    Scale.ScaleId Идентификатор шкалы
    Scale.Position Расположение шкалы
    Scale.Display Отображать или нет шкалу
    Scale.Type TODO:
    Scale.BeginAtZero TODO:
    Scale.Stacked TODO:
    Scale.GridSettings.DrawOnChartArea TODO:
    Scale.TickFormatter Форматирование шкалы TickFormatter
    dataLabel
    dataColumn Колонка с данными
    dataColumnFormatter Тип форматирование данных
    labelColumn Колонка с подписью данных
    labelColumnFormatter Тип форматирование подписи
    backgroundColor Цвет фона
    borderColor Цвет границы
    xAxesId идентификатор шкалы Х. Идентификаторы задаются в scales
    yAxesId идентификатор шкалы У. Идентификаторы задаются в scales
    tension Сглаживание данных. 0 - без сглаживания
    columnSorts Колонки для сортировки данных
    aggregationDataSet.aggregationFunction Функция агрегации. Задаётся только в aggregationDataSet MIN, MAX, AVG, COUNT, SUM
    aggregationDataSet.groupByColumns Колонки группировки. Задаётся только в aggregationDataSet
    hoverRadius Размер точки при наведении
    hoverBackgroundColor Цвет точки при наведении
    noDataText Текст для вывода сообщения на графике при отсутствии данных ‘Нет данных для отображения’
    noDataFont Шрифт текста сообщения ‘20px Arial’
    noDataStyle Стиль текста сообщения ‘rgb(100,100,100)’
    +

    TickFormatter

    +

    Назначение

    +

    Для настройки шкал в ChartV2 есть возможность выбрать TickFormatter, с помощью которого на клиентской части можно настраивать отображение данных в шкале.

    +

    Свойства

    + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Script Форматирование исходных данных для корректного отображения. Форматирование будет применяться к значению шкалы. Принимает один из возможных форматеров (см. раздел Tick Formatters ниже).
    +

    Tick Formatters

    + + + + + + + + + + + + + + + + + + +
    Наименование форматера Назначение форматера Настраиваемые значения
    SuffixFormatter Добавляет до и после значения заданные префикс и суффикс. Prefix, Postfix.
    NumberSuffixFormatter Добавляет до и после значения заданные префикс и суффикс, форматирует число по заданным критериям. Prefix, Postfix, Decimal Delimiter, Decimal Length, Sections Delimiter, Sections Length.
    +

    ChartV2AdditionalElementProvider

    +

    В компоненту ChartV2 есть возможность добавить скрипт, который будет отрисовывать на графике любые дополнительные элементы (напр. количество скрытых дней при нажатии на кнопку “скрыть все”).

    +

    Для того чтобы создать скрипт, необходимо отнаследоваться от класса ChartV2AdditionalElementProvider и реализовать метод addAdditionalElement();

    +

    Прим. реализации, которая добавляет надпись.

    + +
    +
    addAdditionalElement(chartV2: ChartV2): void {
    +  let chart = chartV2.chart;
    +  let ctx = chart.ctx;
    +  let width = chart.width;
    +  let height = chart.height;
    +  ctx.textAlign = "center";
    +  ctx.textBaseline = "middle";
    +  ctx.font = this.font;
    +  ctx.fillStyle = this.style;
    +  ctx.fillText("Some text", width / 2, height / 2);
    +  ctx.restore();
    +  }
    +}
    +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма_Гантта_Календарный_план_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма_Гантта_Календарный_план_.html new file mode 100644 index 00000000..b76ad2c4 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Диаграмма_Гантта_Календарный_план_.html @@ -0,0 +1,152 @@ + + + + + + + + Web-BPM Docs – Диаграмма Гантта (Календарный план) + + + + + + +
    +
    + + + +
    +
    +

    Диаграмма Гантта (Календарный план)

    +

    Диаграмма Гантта (Календарный план) - это компонента, которая используется для иллюстрации плана, графика работ по проекту, визуально показывая пользователю состав работ по проекту, их взаимосвязь и расположение по шкале времени (также известна под названием Диаграммы Гантта)

    +

    Представляет собой отрезки, размещенные на горизонтальной шкале времени. Каждый отрезок соответствует какой-либо задаче. Список задач, составляющих такой план, размещаются по вертикальной шкале. Начало, конец и ширина отрезка на шкале времени соответствуют началу, концу и длительности задачи.

    +

    Компонента Календарный график находится в разделе Компоненты - Без категории - Диаграмма Гантта (рис.1)

    +

    Свойства

    +

    Компонента имеет набор общих свойств.

    +

    Свойство компоненты: Диаграмма Гантта. Подгрузка данных

    +

    +

    позволяет задать Граф сущностей и взаимосвязи колонок для подгрузки данных в Диаграмму Гантта

    +

    Является обязательным к заполнению и настройке.

    +

    Сущность - это объект с которым работают в графе. В качестве объекта могут быть: таблицы и представления (вью) из базы данных. Понятие сущности не равно понятию таблицы, поскольку одна таблица может быть добавлена в граф несколько раз.

    +
      + +
    • + +

      Скрипт - указывается модуль, реализующий логику построения календарного графика. Установлен по умолчанию, внесение изменений аналитиком не требует

      +
    • +
    • + +

      Колонка с идентификатором задач - это колонка главной сущности графа, которая содержит первичный ключ (как правило, идентификатор задачи)

      +
    • +
    • + +

      Колонка с наименованием задач - это колонка той сущности графа, которая содержит наименование задачи для отображения пользователю (как правило, в колонке должно находиться текстовое значение)

      +
    • +
    • + +

      Колонка с датой старта задач - это колонка той сущности графа, которая содержит дату, в которую запланирован старт задачи

      +
    • +
    • + +

      Колонка с датой завершения задач - это колонка той сущности графа, которая содержит дату, в которую запланировано завершение работ по задаче

      +
    • +
    • + +

      Колонка гл. сущн. с идентификатором родительской задачи - это колонка главной сущности графа, которая содержит значение первичного ключа родительской задачи

      +
    • +
    • + +

      Колонка линк. табл. с идентификатором осн. задачи - это колонка линковой таблицы графа сущности, которая содержит значение первичного ключа основной задачи

      +
    • +
    • + +

      Колонка линк. табл. с идентификаторами зависимых задач - это колонка линковой таблицы графа сущности, которая содержит значения первичных ключей тех задач, которые зависят от основной

      +
    • +
    • + +

      Колонка co статусом задач - это колонка той сущности графа, которая содержит формализованное значение статуса задачи:

      +
    • +
    • + +

      “ASSIGNED” - Назначена (заливка бирюзовым цветом)

      +
    • +
    • + +

      “CHECKING” - Требует контроля (заливка желтым цветом)

      +
    • +
    • + +

      “COMPLETED” - Завершена (заливка зеленым цветом)

      +
    • +
    • + +

      “ARCHIVED” - Перемещена в архив (заливка серым цветом)

      +
    • +
    +

    с описанием настройки Графа сущностей можно ознакомиться в разделе: Настройка Графа сущностей

    +

    Свойство компоненты: Диаграмма Гантта. Настройка колонок

    +

    +

    позволяет настроить отображаемые колонки в Диаграмме Гантта с сортировкой данных по конкретному порядку

    +

    с описанием настройки Колонок Таблицы можно ознакомиться в разделе: Настройка колонок Таблицы

    +

    Функции

    +

    Определить_роли_текущего_пользователя

    +

    Определить права текущего пользователя

    +

    Методические рекомендации по применению

    +

    Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

    + +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    Как сортируются задачи в Диаграмме Гантта? Задачи сортируются по возрастанию значений колонки дата завершения (от самых близких по сроку завершения к самым дальним). Изменить порядок сортировки нельзя.
    Можно ли вывести легенду цветовой дифференциации задач? Нет, нельзя.
    Можно ли на самой диаграмме Гантта изменять продолжительность задачи (сдвигать моменты начала и/или конца) ? Нет, нельзя.
    Можно ли на самой диаграмме Гантта сдвинуть задачу целиком по оси времени, не меняя продолжительности задачи (перетянуть как объект)? Нет, нельзя.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Диаграмма_Гантта_Календарный_план_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Диаграмма_Гантта_Календарный_план_на_странице_.html new file mode 100644 index 00000000..db61391d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Диаграмма_Гантта_Календарный_план_на_странице_.html @@ -0,0 +1,141 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Диаграмма Гантта (Календарный план) на странице? + + + + + + +
    +
    + + + +
    +
    +

    Как задействовать компоненту “Диаграмма Гантта (Календарный план)” на странице?

    +

    Постановка задачи: на пользовательской странице Реестр задач необходимо визуализировать список задач по проекту в виде Календарного плана (Диаграммы Гантта).

    +

    Страница “Реестр задач” должна иметь следующие настройки:

    +
      + +
    • основным элементом страницы должна быть компонента “Диаграмма Гантта (Календарный план)”, в главной сущностью которойдолжна быть назначена таблица “Список задач” (tasks).
    • +
    • необходимо задействовать компоненту Набор фильтров с включенной “живой фильтрацией” и с вложенной в Набор фильтров дочерней компонентой “Фильтр по полю ввода с подбором значения” для указания проекта , по которому следует осуществить отбор записей из списка задач.
    • +
    +

    Решение задачи:

    +

    Предполагается, что страница Реестр задач уже создана бизнес-аналитиком, расположена в проекте и связана с Пользовательской задачей на BPMN-схеме процесса . Для решения поставленной задачи необходимо произвести следующие действия:

    +
      + +
    • добавить внутрь страницы компоненту “Диаграмма Гантта”
    • +
    • в настройках добавленной компоненты перейти к разделу Диаграмма Гантта. Подгрузка данных основная - Источник данных - Граф сущностей и настроить его (рис. 1, рис. 2).
    • +
    +

    Для этого сформировать пул таблиц, колонки из которых будут использоваться при настройке отображаемой в Диаграмме Гантта информации и указать связи между ними.

    +

    + +
    +
    рис.1 Настройка Графа сущностей компоненты
    +
    + +

    Настроить прочие параметры компоненты"Диаграмма Гантта", указав на сущности и колонки, содержащие требуемую информацию.

    +

    + +
    +
    рис.2 Настройка компоненты
    +
    + +
      + +
    • добавить компоненту Набор фильтров с включенной “живой фильтрацией” (рис.4)
    • +
    +

    + +
    +
    рис.4 Добавление Компонента Набор фильтра и его связь с компонентой Диаграмма Гантта
    +
    + +
      + +
    • добавить компоненту Фильтр по полю ввода с подбором значения (рис.5) +

      рис. 5а Настройка компоненты Фильтр по полю ввода с подбором значения

    • +
    +

    + +
    +
    Рис. 5б Настройка компоненты Фильтр по полю ввода с подбором
    +значения
    +
    + +

    + +
    +
    рис. 5в Настройка компоненты Фильтр по полю ввода с подбором значения
    +
    + +

    На этом настройка компоненты закончена, запускаем приложение.

    +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис. 6)

    +

    +

    Для большей детализации компонент дает возможность изменить масштаб временного промежутка в котором отображается длительность задачи :

    +

    +

    рис.6. Визуальное отображение выполнения условий задачи

    + +
    +
    +

    Attachments:

    +
    + + +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Диаграмма_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Диаграмма_на_странице_.html new file mode 100644 index 00000000..064d9112 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Диаграмма_на_странице_.html @@ -0,0 +1,163 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Диаграмма на странице? + + + + + + +
    +
    + + + +
    +
    +

    Как задействовать компоненту “Диаграмма” на странице?

    +

    Постановка задачи: на пользовательской странице Реестр задач необходимо визуализировать количество задач по каждому из проектов в виде Диаграммы, вид которой можно менять динамически .

    +

    Страница “Реестр задач” должна иметь следующие настройки:

    +
      + +
    • основным элементом страницы должна быть компонента “Диаграмма”, главной сущностьюкоторойдолжна быть назначена таблица “Список задач” (tasks).
    • +
    • необходимо задействовать компоненту Набор фильтров с включенной “живой фильтрацией” и с вложенной в Набор фильтров дочерней компонентой “Фильтр по полю ввода с подбором значения” для указания проекта , по которому следует осуществить отбор записей из списка задач.
    • +
    +

    Решение задачи:

    +

    Предполагается, что страница Реестр задач уже создана бизнес-аналитиком, расположена в проекте и связана с Пользовательской задачей на BPMN-схеме процесса . Для решения поставленной задачи необходимо произвести следующие действия:

    +
      + +
    • добавить внутрь страницы компоненту"Диаграмма"
    • +
    • в настройках добавленнойкомпонентыперейти к раздел у Диаграмма .Подгрузка данных - Источник данных - Граф сущностей и настроить его (рис. 1, рис. 2).
    • +
    +

    Для этого сформировать пул таблиц, колонки из которых будут использоваться при настройке отображаемой в Диаграмме информации и указать связи между ними.

    + +
    +
    рис.1 Настройка Графа сущностей компоненты
    +
    + +

    Настроить прочие параметры компоненты"Диаграмма", указав на сущности и колонки, содержащие требуемую информацию.

    + +
    +
    рис.2 Настройка компоненты
    +
    + +
      + +
    • + +

      добавить компоненту Набор фильтровс включенной “живой фильтрацией” (рис.4)

      +

      рис.4 Добавление Компонента Набор фильтра и его связь с компонентой Диаграмма

      +
    • +
    • + +

      добавить 2 компоненты Фильтр по полю ввода с подбором значения для фильтрации по проекту и по исполнителю задачи (рис.5)

      +
    • +
    + +
    + +
    + +

    Фильтр по полю ввода с подбором значения “Фильтр по проекту”

    +
    +
    + +

    Фильтр по полю ввода с подбором значения “Фильтр по исполнителю”

    +

    +

    + +
    +
    рис. 5 Настройка компонент Фильтр по полю ввода с подбором значения
    +
    + +
      + +
    • настроить добавленные компоненты Фильтр по полю ввода с подбором значения для фильтрации (рис.6)
    • +
    + +
    + +

    Фильтр по полю ввода с подбором значения “Фильтр по проекту”

    +
    + +

    Фильтр по полю ввода с подбором значения “Фильтр по исполнителю”

    + +
    +
    + +

    + +
    +
    + +

    +

    Рис. 6 Настройка компонент Фильтр по полю ввода с подбором значения

    +

    На этом настройка компоненты закончена, запускаем приложение.

    +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что условия задачи соблюдены (рис. 7)

    +

    +

    Сузим массив показателей для формирования визуального представления на Диаграмме :

    +

    + +
    +
    +

    Attachments:

    +
    + + +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Обработка_событий_на_странице_.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Обработка_событий_на_странице_.html new file mode 100644 index 00000000..f199c170 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Как_задействовать_компоненту_Обработка_событий_на_странице_.html @@ -0,0 +1,239 @@ + + + + + + + + Web-BPM Docs – Как задействовать компоненту Обработка событий на странице? + + + + + + +
    +
    + + + +
    +
    +

    Как задействовать компоненту “Обработка событий” на странице?

    +

    Постановказадачи: на пользовательской странице Карточка задачи необходимо обеспечить сравнение двух полей с датами (начала и окончания работ) в момент события изменения значения одного из них. Если дата старта окажется больше, чем дата завершения, то вывести диалог с предупреждением, что дата начала выполнения задачи позже даты ее завершения, что само по себе является ошибочным обстоятельством. Если даты заданы верно, то рядом с полями дат вывести в поле с проставленным флагом, что все введено корректно.

    +

    Страница "Карточка задачи " должна иметь следующие настройки:

    +
      + +
    • на странице должны быть размещены 2компоненты Дата без возможности сохранения, компонента Диалог для отображения сообщения о некорректном вводе с компонентой-кнопкой “Ок” и компонента Флаг без возможности сохранения
    • +
    • Компонента Обработка событий, которая реализует алгоритм обработки, описанный в постановке задачи
    • +
    • с базой данных и источниками данных в этом кейсе работать не предполагается,поэтому компоненты с графами сущностей задействованы не будут.
    • +
    +

    Решение задачи:

    +
      + +
    • Добавить на страницу и настроить компоненту Дата для ввода даты начала работ по задаче (рис.1)
    • +
    +

    +

    рис.1 Добавление компоненты Дата и настройка ее основных параметров (дата начала работ по задаче)

    +
      + +
    • Добавить на страницу и настроить компоненту Дата для ввода даты окончания работ по задаче(рис.2)
    • +
    +

    +

    рис.2 Добавлениекомпоненты Датаи настройка ее основных параметров (дата окончания работ по задаче)

    +
      + +
    • Добавить на страницу и настроить компоненту Флаг (рис. 3)
    • +
    +

    +

    рис.3 Добавлениекомпоненты Флаги настройка ее основных параметров (отметка о корректности ввода значений)

    +
      + +
    • Добавить компоненту Диалог и внутрь нее добавить компоненты Text (для описания ошибки) и Кнопка (для закрытия Диалога после ознакомления с ошибкой) (рис.4)
    • +
    +


    +

    +

    рис.4 Добавление компоненты Диалог, Text и Кнопка

    +
      + +
    • Добавить первую компоненту Обработка событий1 и настроить алгоритм проверки дат (рис.5)
    • +
    +

    +

    рис.5 Настройка компоненты Обработка события для выявления ситуации, когда обе даты введены пользователем и при этом расположены в ошибочном порядке

    +

    (с компоненты Флаг снимается галочка, она превращается в невидимую компоненту, пользователю выводится компонента Диалог)

    +
      + +
    • Добавить вторую компоненту Обработка событий2 и настроить алгоритм проверки дат (рис.6)
    • +
    +

    +

    рис.6 Настройка компоненты Обработка события для выявления ситуации, когда обе даты явно введены и при этом расположены в верном порядке

    +

    (выводится компонента Флаг с помеченной галочкой внутри)

    +
      + +
    • Добавить компоненту Обработка событий и настроить реакцию на нажатие кнопки “Ок” в Диалоге, заключающуюся в очищении полей с неправильными значениями дат (рис.7)
    • +
    +

    +

    рис.7 Настройка компоненты Обработка события для выявления ситуации, когда нажата кнопка “Ок” в Диалоге

    +

    (компонента Диалог закрывается,с компоненты Флаг снимается галочка, она превращается в невидимую компоненту, поля с датами очищаются)

    +

    На этом настройка страницы закончена, можно собрать приложение и проверить работу компоненты.

    +

    Результат выполнения задачи:

    +

    После применения изменений на странице, в экранной форме пользовательского приложения, мы видим, что на странице отображаются таблица и блок фильтрации с компонентой “Фильтр по полю ввода с подбором значения” (рис.8 - рис.11)

    + +
    + + + + + + + + + + + + + + + + + + +
    +
    + +

    +
    +
    + +

    +
    +

    рис.8 Открытие страницы.

    + +

    Заполняем первое поле с датой.

    + +

    Ничего не происходит, потому что не выполнены условия ни одной из компонент Обработка событий (видно из анализа Консоли браузера)

    +

    рис. 9 Заполняем второе поле с датой. Порядок дат верный (начало периода раньше, чем окончание)

    + +

    Система помечает флажком компоненту Флаг и переводит ее в видимое состояние, поскольку обнаружено событие изменения второй даты и условия, при которых произошло это событие, выполнены.

    + +

    Консоль браузера сообщает об обнаружении заложенной в Систему аналитиком ситуации и производит соответствующие манипуляции с визуальными компонентами на странице.

    +
    + +
    + + + + + + + + + + + + + + + + + + +
    +
    + +

    +
    +
    + +

    +
    +

    рис.10 Меняем дату во втором поле ввода таким образом, чтобы порядок дат стал ошибочным (начало периода позже , чем окончание).

    + +

    Данное событие и условия, в которых оно возникло, обнаруживается компонентом Обработка событий ,поэтому Система выдает сообщение об ошибочном вводе посредством отображения компоненты Диалог в модальном режиме (весь экранный интерфейс, кроме она диалога, блокируется для пользователя) и ожидает дальнейших действий пользователя.

    + +

    На заднем плане видно, что выставленный на предыдущем этапе флажок корректного ввода пропал с экрана.

    + +

    Консоль браузера подсказывает, что изменения произошли потому, что исполнился заложенный в Систему аналитиком на этапе разработкиалгоритм, который предусматривает вывод диалогового окна, скрытие компоненты, показывающей факт корректного ввода и сброс ее значения в состояние "не отмечено".

    +

    рис.11 Нажали кнопку "Ок" в компоненте Диалог.

    + +

    Данное событие обнаруживается компонентом Обработка событий, поэтому Система скрывает компоненту Диалог, снимает блокировку с экранного интерфейса и очищает обе даты, которые заполнены в ошибочном порядке .

    + +

    Консоль браузера подсказывает, что изменения произошли потому, что исполнился заложенный в Систему аналитиком на этапе разработкиалгоритм, который предусматривает скрытие диалогового окна, скрытие компоненты, показывающей факт корректного ввода и сброс ее значения в состояние "не отмечено", а также очищение значений в полях ввода дат.

    +
    + +
    +
    +

    Attachments:

    +
    + +
    + +

    image2019-4-10_15-37-9.png (image/png)
    + image2019-4-10_15-41-23.png (image/png)
    + image2019-4-10_16-39-56.png (image/png)
    + image2019-4-11_15-37-26.png (image/png)
    + image2019-4-11_15-38-18.png (image/png)
    + image2019-4-10_18-20-12.png (image/png)
    + image2019-4-10_18-22-13.png (image/png)
    + image2019-4-10_18-49-15.png (image/png)
    + image2019-4-10_18-47-41.png (image/png)
    + image2019-4-10_18-48-6.png (image/png)
    + image2019-4-10_18-48-28.png (image/png)
    + image2019-4-10_18-48-42.png (image/png)
    + image2019-4-11_10-34-31.png (image/png)
    + image2019-4-12_17-18-58.png (image/png)
    + image2019-4-12_17-19-53.png (image/png)
    + image2019-4-12_17-21-32.png (image/png)
    + image2019-4-12_17-31-51.png (image/png)
    + image2019-4-12_17-44-33.png (image/png)
    + image2019-4-12_17-45-10.png (image/png)
    + image2019-4-12_17-48-29.png (image/png)
    + image2019-4-12_17-50-13.png (image/png)
    + image2019-4-12_17-50-42.png (image/png)
    + image2019-4-12_18-0-57.png (image/png)
    + image2019-4-12_18-23-10.png (image/png)
    + image2019-4-12_18-23-58.png (image/png)
    + image2019-4-12_18-25-26.png (image/png)
    + image2019-4-12_18-26-42.png (image/png)
    + image2019-4-12_18-33-7.png (image/png)
    + image2019-4-12_18-34-16.png (image/png)
    + image2019-4-12_18-35-29.png (image/png)
    + image2019-4-12_18-35-48.png (image/png)
    + image2019-4-12_18-36-13.png (image/png)
    + image2019-4-17_12-1-35.png (image/png)
    + image2019-4-17_12-4-17.png (image/png)
    + image2019-4-17_12-9-33.png (image/png)
    + image2019-4-17_12-10-16.png (image/png)
    + image2019-4-17_12-16-38.png (image/png)
    + image2019-4-17_12-23-13.png (image/png)
    + image2019-4-17_12-38-33.png (image/png)
    + image2019-4-17_12-56-24.png (image/png)

    +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Настройка_фильтрации_в_таблице_и_графике_для_компоненты_Диаграмма.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Настройка_фильтрации_в_таблице_и_графике_для_компоненты_Диаграмма.html new file mode 100644 index 00000000..8766d6c3 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Настройка_фильтрации_в_таблице_и_графике_для_компоненты_Диаграмма.html @@ -0,0 +1,54 @@ + + + + + + + + Web-BPM Docs – Настройка фильтрации в таблице и графике для компоненты Диаграмма + + + + + + +
    +
    + + + +
    +
    +

    Настройка фильтрации в таблице и графике для компоненты Диаграмма

    +

    в таблице для возможности строить запросы с агрегацией используется GridService → GridServiceWithAggregationColumnsImpl

    +

    В FilterGroup накидывается Grid, в Chart добавляется скрипт FilterDelegate.ts, в FilterDelegate.ts накидываем Grid

    +

    при активации фильтрации она будет произведена и в Таблице, и в Графике

    +

    Внимание! часть структуры по которой фильтруется Таблица и часть структуры по которой фильтруется График должны совпадать (название фильтруемой таблицы и колонки)

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Обработка_событий.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Обработка_событий.html new file mode 100644 index 00000000..587bdc22 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Обработка_событий.html @@ -0,0 +1,148 @@ + + + + + + + + Web-BPM Docs – Обработка событий + + + + + + +
    +
    + + + +
    +
    +

    Обработка событий

    +

    Назначение

    +

    Обработка событий - это невидимый для пользователя на web странице компонент, представляющий собой визуальный инструмент для аналитика, с помощью которого аналитик выстаивает алгоритм динамического управления функционированием web-страницы, основанный на отслеживании событий, происходящих на ней во время взаимодействия с пользователем в режиме исполнения (runtime mode). Динамическое управление подразумевает анализ вариантов возможных событий и действий пользователя с интерфейсом Системы, проверка условий, в которых происходят эти события и действия, предварительное составление последовательности необходимых манипуляций, которые должна предпринять Система в ответ на каждое из возможных воздействий пользователя.

    +

    Аналитик, используя компонент Обработка событий при проектировании web-страницы, получает в свое распоряжение рычаги управления свойствами, параметрами и настройками, а также значениями визуальных компонент, которые первоначально задаются в Инспекторе редактора страниц. Кроме того, компонент позволяет использовать скрытые в Инспекторе методы управления компонентами.

    +

    Компонента может располагаться в любом удобном для аналитика месте в составе дерева компонентов web странице.

    +

    Компонента Обработка событий находится в разделе Компоненты - Без категории - Обработка событий.

    +

    Свойства

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Когда Позволяет указать событие (перечень событий) которые нужно отследить Системе на экранной форме. +

    Добавление каждого из возможных событий осуществляется нажатием на кнопку и перетаскиваем соответствующего визуального компонента из иерархии страницы в появившееся поле. Так происходит связывание процесса ожидания события с конкретной компонентой, от которой это событие ожидается.

    +

    После указания субъекта события (компоненты из структуры страницы), следует указать какое именно событие от выбранной компоненты следует ожидать Системе - в следующем открывшемся поле выбрать это событие из списка всех возможных событий этой компоненты. Если добавлено несколько событий, то они автоматически соединяются между собой оператором ИЛИ (то есть система отслеживает появление хотя бы одного из них) и поменять этот оператор соединения событий нельзя.

    Если Позволяет задать условия, которые необходимо проверить системе при срабатывании механизма слежения за предписанным в предыдущем пункте событием. +

    Принцип формирования каждого конкретного условия идентичен принципу формирования события, описанному в предыдущем пункте. Также появляется поле для перетаскивания из дерева компонент страницы той компоненты, условие по которой требует проверки, а затем в следующем окне из предустановленного списка выбирается настройка, параметр, свойство или значение компоненты, которые необходимо проверить.

    +

    Поскольку каждое условие чаще всего задается для сравнения текущего состояния компоненты с каким то заранее продуманным значением, то конструктор условий позволяет задать значение для сравнения либо явно (числом, строкой и т.д.), либо сослаться на значение другой компоненты на странице, для чего снова показывает поле, в которое можно перетащить из дерева другой интересующий компонент и так же воспользоваться методом для получения уже его значения для сравнения.

    +

    Как правило, для получения значений текущей настройки, параметра, свойства или фактического значения используются методы компонент, которые перечисляются в предлагаемом списке.

    При визуальном формировании условия Система позволяет указать оператор сравнения между двумя значениями, при этом предлагаются операторы сравнения, релевантные используемым типам данных. Значение, с которым происходит сравнивание, может быть выбрано одним из трех типов: +
      +
    • статичное (аналитик сам указывает точное значение)
    • +
    • объект (аналитик накидывает дополнительно компоненту и метод, из которого будет получено это значение)
    • +
    • переменная процесса (аналитик дополнительно указывает переменную процесса, из которой будет получено это значение)
    +

    Визуальный конструктор позволяет аналитику выстраивать условия любой сложности и вложенности, разделять условия проверок на отдельные группы и явно выбирать оператор соединения как групп между собой, так и отдельных условий в каждой группе.

    +

    Формирование условий может и не выполняться при настройке, тогда Система при обнаружении события сразу перейдет в секции “Тогда” визуального конструктора алгоритма.

    Тогда +

    позволяет задать последовательность действий с одной или несколькими компонентами в случае, когда случилось отслеживаемое событие и выполнены заданные выше условия проверки вмомент происхождения события.

    +

    Если условия проверки не заданы, то Система сразу после обнаружения факта совершения ожидаемого события выполняет действия, описанные в этом пункте.

    +

    Принцип формирования каждого конкретного действия в списке действий идентичен принципу формирования события, описанному в первом пункте. Также появляется поле для перетаскивания из дерева компонент страницы той компоненты, над которой следует провести определенную операцию, а затем в следующем окне из предустановленного списка выбирается метод, который необходимо применить к компоненте и значение, которое является входящим аргументом для этого метода.Значение, которое передается в выбранный метод, может быть выбрано одним из трех типов:

    +
      +
    • статичное (аналитик сам указывает точное значение)
    • +
    • объект (аналитик накидывает дополнительно компоненту и метод, из которого будет получено это значение)
    • +
    • переменная процесса (аналитик дополнительно указывает переменную процесса, из которой будет получено это значение)
    +

    Все перечисленные в списке этого пункта действия выполняются через оператор "И", то есть выполняется каждое из заложенных действий. Изменить этот оператор соединения действий нельзя.

    +

    Например, “Числовое поле”. “Задать видимость” == “True”

    +

    Последовательность исполнения Системой инструкций в данном разделе не всегда соответствует порядку их расположения в конструкторе. В общем случае, порядок выполнения инструкций выбирается браузером произвольно.

    Иначе +

    позволяет задать последовательность действий с одной или несколькими компонентами в случае, когда случилось отслеживаемое событие, а набор условий, заданных выше, в момент происхождения события не является истинным.

    +

    Принцип формирования каждого конкретного действия в списке действий идентичен принципу формирования события, описанному в предыдущем пункте. Также появляется поле для перетаскивания из дерева компонент страницы той компоненты, над которой следует провести определенную операцию, а затем в следующем окне из предустановленного списка выбирается метод, который необходимо применить к компоненте и значение, которое является входящим аргументом для этого метода.Значение, которое передается в выбранный метод, может быть выбрано одним из трех типов:

    +
      +
    • статичное (аналитик сам указывает точное значение)
    • +
    • объект (аналитик накидывает дополнительно компоненту и метод, из которого будет получено это значение)
    • +
    • переменная процесса (аналитик дополнительно указывает переменную процесса, из которой будет получено это значение)
    +

    Все перечисленные в списке этого пункта действия выполняются через оператор “И”, то есть выполняется каждое из заложенных действий. Изменить этот оператор соединения действий нельзя.

    +

    Последовательность исполнения Системой инструкций в данном разделе не всегда соответствует порядку их расположения в конструкторе. В общем случае, порядок выполнения инструкций выбирается браузером произвольно.

    +

    Функции

    +

    Определить роли текущего пользователя

    +

    Определить права текущего пользователя

    +

    Методические рекомендации по применению

    +

    Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

    + +

    Другое

    +

    Для включения логирования ActionController в prod сборке приложения необходимо выполнить команду в консоли браузера

    +

    window.dev_mode=true;

    +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    В чем преимущества и гибкость компоненты Обработка событий? С использованием совокупности компонент Обработка событий, расположенных на странице,страница сама по себе может стать самостоятельной микросистемой (подмодулем) со своей логикой работы, встраивающейся в общую логику всей системы. Визуальное представление возможности строить алгоритмы посредством нескольких кликов манипулятором “мышь” и перетаскиванием нужных компонентов из иерархии страницы позволяет аналитику избежать необходимости привлечения писателей программного кода для “оживления” страницы. После сборки и запуска приложения платформа самапревратит заданные визуально алгоритмы в соответствующий код, который будет исполняться браузером пользователя.
    Существует ли возможность задать порядок рассмотрения и исполнения Системой алгоритмов из разных компонентов Обработка событий между собой? Нет, нельзя.
    Можно ли поставить рассмотрение и исполнение алгоритма из одного компонента Обработка событий в зависимость от алгоритма из другого компонента Обработка событий? Нет, нельзя.
    Как отследить исполнение и понять какие компоненты Обработка событий сработали на странице и по какому алгоритму они сработали Следует открыть в браузере “Инструменты разработчика” (обычно клавиша F12), перейти на вкладку “Консоль” и изучить расположенные там записи.В консоль выводятся информация ТОЛЬКО ОБ ОТРАБОТАВШИХ компонентах Обработка событий (Условия из раздела ЕСЛИ выполнились). Соответственно, выводится Satisfied condition for ActionController если выполнился раздел ТОГДА и Not satisfied condition for ActionController если раздел ИНАЧЕ.
    +

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Разные_компоненты.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Разные_компоненты.html new file mode 100644 index 00000000..da1097b5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/uncategorized/Разные_компоненты.html @@ -0,0 +1,52 @@ + + + + + + + + Web-BPM Docs – Таблицы + + + + + + + +
    +
    +
    +
    +

    © 2022 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Включить_вычисление_математических_операций.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Включить_вычисление_математических_операций.html new file mode 100644 index 00000000..28e10e37 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Включить_вычисление_математических_операций.html @@ -0,0 +1,63 @@ + + + + + + + + Web-BPM Docs – Включить вычисление математических операций + + + + + + +
    +
    + + + +
    +
    +

    Включить вычисление математических операций

    +

    Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет осуществить одну из математических операций (сложение, вычитание, умножение, деление) во время работы приложения (in runtime mode). Применима к компонентам, оперирующим числами - Числовое поле, Денежное поле. Результат вычисления помещает в тот компонент, на который была добавлена, замещая находившее там прежде значение. Математические действия возможны только с 2 аргументами.

    +

    Она относится к той группе функций, чья функциональность применяетсяи может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется нескольконовых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ значение в одном из числовых полей изменилось ТО к значению во втором числовом поле прибавить измененное значение из первого числового поля’

    +

    +

    Рис.1 Активация функции на компоненте с первым аргументом

    +

    +

    Рис.2 Второй аргумент

    +

    +

    Рис. 3 Пример обработки события изменения значения второго аргумента, в результате которого вычисляется сумма аргументов (появился новый метод Сложить; у исходной компоненты, доступны также методы Вычесть, Умножить, Разделить )

    +

    После запуска web-приложения (in runtime mode) вносим значение в поле “Аргумент 1”, затем в момент внесения значения в поле “Аргумент 2” , значение в поле"Аргумент 1" изменяется на значение суммы (“Аргумент 1” + “Аргумент 2”), в консоли браузера можно наблюдать сообщение о срабатывании компоненты Обработка событий, которое показывает выполненное функцией действие.

    +

    +

    Рис 4. Вносим значение в поле Аргумент 1

    +

    +

    Рис.5 Функция рассчитывает сумму аргументов

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Добавить_строку_к_значению_в_текущем_поле.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Добавить_строку_к_значению_в_текущем_поле.html new file mode 100644 index 00000000..1787182a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Добавить_строку_к_значению_в_текущем_поле.html @@ -0,0 +1,63 @@ + + + + + + + + Web-BPM Docs – Добавить строку к значению в текущем поле + + + + + + +
    +
    + + + +
    +
    +

    Добавить строку к значению в текущем поле

    +

    Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет дописать в конец текстового значения одной компоненты текстовое значение другой компоненты во время работы приложения (in runtime mode). Применима к компоненте, оперирующей строками, - Текстовое поле. Результат объединения строк помещает в тот компонент, на который была добавлена, замещая находившее там прежде значение. Функция добавления строки к значению в текущем поле может оперировать только с 2 аргументами.

    +

    Она относится к той группе функций, чья функциональность применяется и может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется нескольконовых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ’ЕСЛИ значение в одном из текстовых полей изменилось ТО в конец значения во втором текстовом поле добавить строковое значение из первого числового поля.

    +

    +

    Рис.1 Активация функции на компоненте с первой строкой

    +

    +

    Рис.2 Второе строковое значение

    +

    +

    Рис. 3 Пример обработки события изменения значения string2, в результате которого формируется строка конкатенацией строк string1 и string2 (появился новый метод Добавить строку у исходной компоненты)

    +

    После запуска web-приложения (in runtime mode) вносим значение в поле “Строка 1”, затем в момент внесения значения в поле “Строка 2”, значение в поле"Строка 1" изменяется на конкатенированное значение полей (“Строка 1” + “Строка 2”), в консоли браузера можно наблюдать сообщение о срабатывании компоненты Обработка событий, которое показывает выполненное функцией действие.

    +

    +

    Рис 4. Вносим значение в поле “Строка 1”;

    +

    +

    Рис.5 Функция соединяется строки

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_из_переменной_процесса.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_из_переменной_процесса.html new file mode 100644 index 00000000..ca8a540d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_из_переменной_процесса.html @@ -0,0 +1,78 @@ + + + + + + + + Web-BPM Docs – Заполнить значением из переменной процесса + + + + + + +
    +
    + + + +
    +
    +

    Заполнить значением из переменной процесса

    +

    Назначение

    +

    Функция, которая позволяет получить значение из указанной аналитиком переменной процесса и заполнить визуальный компонент ‘значением по умолчанию’.

    +

    В платформе существуютследующие возможные способы работы со значениями по умолчанию:

    +
      + +
    1. из колонки таблицы, указанной в структуре сущности родительской (по отношению к текущему) компоненты-контейнера (например, компоненты Форма, параметр Подгрузка данных по умолчанию)
    2. +
    3. из колонки таблицы, указанной в собственной, индивидуальной, структуре сущностей, принадлежащей текущей компоненте.
    4. +
    5. из переменной процесса (для этого следует воспользоваться обособленной функцией Заполнить значением из переменной процесса, которая и добавляется в компоненту и конфигурируется отдельно).
    6. +
    7. заполнить атрибут ‘Значение по умолчанию’ в основных параметрах любого визуального компонента.
    8. +
    +

    Функция Заполнить значением из переменной процесса позволяет оперировать алгоритмом из п.3

    +

    +

    Настройка

    + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Заполнить значением из переменной процесса Формирует список всех переменных процесса и выводит в виде выпадающего списка для выбора аналитиком. В процессе работы приложения заполняет значением выбранной переменной ту визуальную компоненту, для которой функция была активирована
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию.html new file mode 100644 index 00000000..784c8737 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию.html @@ -0,0 +1,115 @@ + + + + + + + + Web-BPM Docs – Заполнить значением по умолчанию + + + + + + +
    +
    + + + +
    +
    +

    Заполнить значением по умолчанию

    +

    Назначение

    +

    Функция, которая позволяет настроить параметры и осуществить запрос данных для заполнения компоненты значением по умолчанию.

    +

    В платформе существуютследующие возможные способы работы со значениями по умолчанию:

    +
      + +
    1. из колонки таблицы, указанной в структуре сущности родительской (по отношению к текущему) компоненты-контейнера (например, компоненты Форма, параметр Подгрузка данных по умолчанию)
    2. +
    3. из колонки таблицы, указанной в собственной, индивидуальной, структуре сущностей, принадлежащей текущей компоненте.
    4. +
    5. из переменной процесса (для этого следует воспользоваться обособленной функцией Заполнить значением из переменной процесса, которая и добавляется в компоненту и конфигурируется отдельно).
    6. +
    7. заполнить атрибут ‘Значение по умолчанию’ в основных параметрах любого визуального компонента.
    8. +
    +

    Функция Заполнить значением по умолчанию позволяет оперировать алгоритмами из пп.1 и 2.

    +

    +

    При выборе варианта “Из колонки” подгрузка значения по умолчанию осуществляется по алгоритму из п.1

    +

    При выборе варианта “Из сервиса” подгрузка значения по умолчанию осуществляется по алгоритму из п.2

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Тип подгрузки Наименование параметра Назначение параметра Принимаемые значения
    Из колонки Колонка Позволяет указать таблицу и колонку ‘структуры сущности по умолчанию’ родительской компоненты-контейнера, из которой следует взять значение для текущей компоненты ‘Таблица1’ в этом случае является элементом ‘структуры сущностей по умолчанию’ графа (параметр Подгрузка данных по умолчанию) родительской компоненты Форма
    Из сервиса Сервис Описывает запрос к базе данных, результаты которого позволяют наполнить вложенные видимые компоненты’значениями по умолчанию’из базы данных при открытии веб-страницы приложения. +
      +
    • с помощью визуального конструктора запросов позволяет задать Граф сущностей, т.е. указать объекты базы данных и взаимосвязи между ними для получения и отображенияна веб-странице информации по умолчанию, но не ее сохранения.
    • +
    • с помощью параметра Переменная процесса с идентификатором позволяет ограничить результаты полученного запроса единственным идентификатором смысловой единицы создаваемого интерфейса.
    Сервис Скрипт Скрипт автоматически выставляется по умолчанию, указывает платформе, что ‘значение по умолчанию’ для текущей компоненты следует получить из собственного запроса к базе данных
    Источник данных Скрипт предписывает использовать визуальный конструктор для построения запроса Единственный возможный вариант, выставлен по умолчанию
    Граф сущностей Граф сущностей позволяет с помощью визуального конструктора сформировать набор объектов базы данных, указать взаимосвязи между ними и\или дополнительные условия, тем самым подготовить запрос в базу данных. При подгрузке данных сформированный запрос отрабатывает как Select-запрос. ‘Таблица2’ в этом случае является элементом собственной структуры сущностей графа текущей компоненты
    Заполнить из колонки Позволяет указать таблицу и колонку собственной структуры сущности текущей компоненты, из которой следует взять ‘значение по умолчанию’
    Переменная процесса с идентификатором Позволяет выбрать из списка переменную процесса, содержащую в себе идентификатор сущности. Список формируется автоматически из всех переменных используемых в BPMN-процессе. Является ограничивающим значением запроса (в секции WHERE primary_id = ), построенного в визуальном конструкторе параметра Граф сущностей. Благодаря этому ограничению, источник данных выбирает атрибуты единственной смысловой сущности создаваемого интерфейса. task_id
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию_Пополняемый_список_зависимых_записей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию_Пополняемый_список_зависимых_записей.html new file mode 100644 index 00000000..4e129ccb --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию_Пополняемый_список_зависимых_записей.html @@ -0,0 +1,83 @@ + + + + + + + + Web-BPM Docs – Заполнить значением по умолчанию. Пополняемый список зависимых записей + + + + + + +
    +
    + + + +
    +
    +

    Заполнить значением по умолчанию. Пополняемый список зависимых записей

    +

    Назначение

    +

    Функция, которая позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компоненты Пополняемый список зависимых записей.

    +

    Функция Заполнить значением по умолчанию должна быть задействована и настроенана компоненте “Редактируемая таблица”, входящей в состав сложнойкомпоненты Пополняемый список зависимых записей. При этом, на вышележащей компоненте Форма скрипт Подгрузка значений по умолчанию должен быть активирован (но может быть не настроен).

    +

    Результатом исполнения функции Заполнить значением по умолчанию является одно или несколько значений, которыми предзаполняется компонента “Редактируемая таблица”, входящая в состав сложной компоненты Пополняемый список зависимых записей, и отображающая список тех строк, которыми будет пополнена связанная с основной таблицей компоненты Форма таблица.

    +

    В этом основное отличие этой функции от аналогичной функции, используемой для запроса ‘значений по умолчанию’ обычных визуальных компонентов, но оперирующей только одним значением.

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Тип подгрузки единственное возможное значение, выставляется по умолчанию. Описывает запрос к базе данных, результаты которого позволяют наполнить компоненту Редактируемая таблица ’значениями по умолчанию’из базы данных при открытии веб-страницы приложения. С помощью визуального конструктора запросов позволяет задать Граф сущностей т.е. указать объекты базы данных и взаимосвязи между ними для получения и отображенияна веб-странице информации по умолчанию но не ее сохранения
    Скрипт Скрипт автоматически выставляется по умолчанию, указывает платформе, что ‘значение по умолчанию’ для текущей компоненты следует получить из собственного запроса к базе данных
    Граф сущностей позволяет с помощью визуального конструктора сформировать набор объектов базы данных, указать взаимосвязи между ними и\или дополнительные условия, тем самым подготовить запрос в базу данных. При подгрузке данных сформированный запрос отрабатывает как Select-запрос. +
      +
    1. Переносим манипулятором Мышь таблицу, которая предоставит строки для подгрузки ‘значений по умолчанию’ в поле графа сущности.
    2. +
    3. Переименовываем (не обязательно, но для понимания) в сущность с именем test_default_eotm. Наименование сущности в этом пункте должно строго соответствовать наименованию этой же сущности в графе сущности функции Подгрузка данных компоненты “Редактируемая таблица”;, входящей в состав сложной компоненты Пополняемый список зависимых записей
    4. +
    5. В настройках фильтрации сущности test_default_eotm формируем условие, ограничивающее то количество выбираемых из сущности записей, которое мы хотим увидеть в ‘значениях, подгруженных по умолчанию’. В примере на скриншоте ограничение наложено на поле с первичным ключом ID (для очевидности), а в реальной жизни, как правило, ограничения накладываются, исходя из сопоставления значений переменной процесса и одной из колонок. Таким образом, из всех возможных записей в сущности test_default_eotm, система отберет в качестве ‘значений по умолчанию’ только те записи, id которых меньше числа 5.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию_Список_зависимых_записей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию_Список_зависимых_записей.html new file mode 100644 index 00000000..622dad73 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Заполнить_значением_по_умолчанию_Список_зависимых_записей.html @@ -0,0 +1,93 @@ + + + + + + + + Web-BPM Docs – Заполнить значением по умолчанию. Список зависимых записей + + + + + + +
    +
    + + + +
    +
    +

    Заполнить значением по умолчанию. Список зависимых записей

    +

    Назначение

    +

    Функция, которая позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компоненты Список зависимых записей.

    +

    Функция Заполнить значением по умолчанию должна быть задействована на обоих компонентах “Связанная таблица”, а настроена только на основной компоненте “Связанная таблица”, входящей в состав сложной компоненты Список зависимых записей.

    +

    +

    Активация и настройка функции на первой компоненте “Связанная таблица”

    +

    +

    Активация без настройки функции на второй компоненте “Связанная таблица”

    +

    При этом, на вышележащей компоненте Форма функция Подгрузка значений по умолчанию должна быть активирована (но может быть не настроена).

    +

    +

    Результатом исполнения функции Заполнить значением по умолчанию является одно или несколько значений, которыми предзаполняются основная компонента “Связанная таблица”, входящая в состав сложной компоненты Список зависимых записей, и отображающая список только тех строк из списка всех доступных строк, которые выбраны пользователем .

    +

    В этом основное отличие этой функции от аналогичной функции, используемой для запроса ‘значений по умолчанию’ обычных визуальных компонентов, но оперирующей только одним значением.

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Тип подгрузки единственное возможное значение, выставляется по умолчанию Описывает запрос к базе данных, результаты которого позволяют наполнить компоненту Связанная таблица ’значениями по умолчанию’из базы данных при открытии веб-страницы приложения. С помощью визуального конструктора запросов позволяет задать Граф сущностей, т.е. указать объекты базы данных и взаимосвязи между ними для получения и отображенияна веб-странице информации по умолчанию, но не ее сохранения.
    Скрипт Скрипт автоматически выставляется по умолчанию, указывает платформе, что ‘значение по умолчанию’ для текущей компоненты следует получить из собственного запроса к базе данных
    Граф сущностей позволяет с помощью визуального конструктора сформировать набор объектов базы данных, указать взаимосвязи между ними и\или дополнительные условия, тем самым подготовить запрос в базу данных. При подгрузке данных сформированный запрос отрабатывает как Select-запрос. +
      +
    1. Переносим манипулятором Мышь ‘таблицу с доступными записями’ в поле структуры сущности
    2. +
    3. Переименовываем (не обязательно, но для понимания) в сущность с именем default_for_mtm
    4. +
    5. В настройках фильтрации сущности default_for_mtm формируем условие, ограничивающее то количество предустановленных записей, которое мы хотим увидеть в ‘значениях, подгруженных по умолчанию’. В примере на скриншоте ограничение наложено на поле с первичным ключом ID (для очевидности), а в реальной жизни, как правило, ограничения накладываются, исходя из сопоставления значений переменной процесса и одной из колонок.Таким образом, из всех доступных записей в таблице сотрудников, система отберет в качестве ‘значений по умолчанию’ только те записи, id которых меньше числа 20.
    Первичный ключ таблицы доступных значений Позволяет указать таблицу доступных записей (справочник) и её колонку с первичным ключом, по которым будут отобраны записи, удовлетворяющие условию в структуре сущности для предзаполнения по ним ‘значений по умолчанию’ таблицы выбранных записей
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Значение_по_умолчанию_Пополняемый_список_зависимых_записей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Значение_по_умолчанию_Пополняемый_список_зависимых_записей.html new file mode 100644 index 00000000..0ce05440 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Значение_по_умолчанию_Пополняемый_список_зависимых_записей.html @@ -0,0 +1,83 @@ + + + + + + + + Web-BPM Docs – Заполнить значением по умолчанию. Пополняемый список зависимых записей + + + + + + +
    +
    + + + +
    +
    +

    Заполнить значением по умолчанию. Пополняемый список зависимых записей

    +

    Назначение

    +

    Функция, которая позволяет настроить параметры и осуществить запрос данных для заполнения значениями по умолчанию полей компоненты Пополняемый список зависимых записей.

    +

    Функция Заполнить значением по умолчанию должна быть задействована и настроенана компоненте “Редактируемая таблица”, входящей в состав сложнойкомпоненты Пополняемый список зависимых записей. При этом, на вышележащей компоненте Форма скрипт Подгрузка значений по умолчанию должен быть активирован (но может быть не настроен).

    +

    Результатом исполнения функции Заполнить значением по умолчанию является одно или несколько значений, которыми предзаполняется компонента “Редактируемая таблица”, входящая в состав сложной компоненты Пополняемый список зависимых записей, и отображающая список тех строк, которыми будет пополнена связанная с основной таблицей компоненты Форма таблица.

    +

    В этом основное отличие этой функции от аналогичной функции, используемой для запроса ‘значений по умолчанию’ обычных визуальных компонентов, но оперирующей только одним значением.

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Тип подгрузки единственное возможное значение, выставляется по умолчанию. Описывает запрос к базе данных, результаты которого позволяют наполнить компоненту Редактируемая таблица ’значениями по умолчанию’из базы данных при открытии веб-страницы приложения. С помощью визуального конструктора запросов позволяет задать Граф сущностей т.е. указать объекты базы данных и взаимосвязи между ними для получения и отображенияна веб-странице информации по умолчанию но не ее сохранения
    Скрипт Скрипт автоматически выставляется по умолчанию, указывает платформе, что ‘значение по умолчанию’ для текущей компоненты следует получить из собственного запроса к базе данных
    Граф сущностей позволяет с помощью визуального конструктора сформировать набор объектов базы данных, указать взаимосвязи между ними и\или дополнительные условия, тем самым подготовить запрос в базу данных. При подгрузке данных сформированный запрос отрабатывает как Select-запрос. +
      +
    1. Переносим манипулятором Мышь таблицу, которая предоставит строки для подгрузки ‘значений по умолчанию’ в поле графа сущности.
    2. +
    3. Переименовываем (не обязательно, но для понимания) в сущность с именем test_default_eotm. Наименование сущности в этом пункте должно строго соответствовать наименованию этой же сущности в графе сущности функции Подгрузка данных компоненты “Редактируемая таблица”;, входящей в состав сложной компоненты Пополняемый список зависимых записей
    4. +
    5. В настройках фильтрации сущности test_default_eotm формируем условие, ограничивающее то количество выбираемых из сущности записей, которое мы хотим увидеть в ‘значениях, подгруженных по умолчанию’. В примере на скриншоте ограничение наложено на поле с первичным ключом ID (для очевидности), а в реальной жизни, как правило, ограничения накладываются, исходя из сопоставления значений переменной процесса и одной из колонок. Таким образом, из всех возможных записей в сущности test_default_eotm, система отберет в качестве ‘значений по умолчанию’ только те записи, id которых меньше числа 5.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Как-добавить-шрифты-в-модуль-печати-JasperReports.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Как-добавить-шрифты-в-модуль-печати-JasperReports.html new file mode 100644 index 00000000..1afaaaa7 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Как-добавить-шрифты-в-модуль-печати-JasperReports.html @@ -0,0 +1,56 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    +

    Если при разработке шаблона использовались шрифты, которых нет в ОС сервера приложений, то при формировании печатной формы будет возникать ошибка. Чтобы этого избежать необходимо выполнить шаги:

    +
      + +
    1. Экспортировать шрифт по инструкции. На выходе будет файл с расширением jar.
    2. +
    3. Скопировать полученный файл в папку проекта: $project\extensions\jasper-fonts\src\main\resources\font\.
    4. +
    5. Собрать и запустить приложение.
    6. +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Настройка_Графа_сущностей.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Настройка_Графа_сущностей.html new file mode 100644 index 00000000..244d9c00 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Настройка_Графа_сущностей.html @@ -0,0 +1,144 @@ + + + + + + + + Web-BPM Docs – Настройка Графа сущностей + + + + + + +
    +
    + + + +
    +
    +

    Настройка Графа сущностей

    +

    Назначение

    +

    Граф сущностей - это визуальный конструктор запросов, с помощью которого бизнес-аналитик имеет возможность указать объекты базы данных, условия и взаимосвязи между ними для получения и отображения информации на странице пользовательского приложения, и/или её сохранения.

    +

    В качестве сущностей, заданных в графе, могут выступать таблицы и представления (view) базы данных. Важно отметить, что понятие сущности не равно понятию таблицы, поскольку одна таблица может быть добавлена в граф сущностей несколько раз.

    +

    Необходимость настройки Графа сущностей возникает при использовании компонент, логика работы которых предусматривает формирование источника данных в виде SQL-запроса, например, Таблица, Форма и другие.

    +

    В зависимости от используемой компоненты и логики её работы, Граф сущностей использует три типа оператора SQL-запросов к базе данных:

    +
      + +
    • SELECT- оператор запроса,который возвращает набор данных (выборку) из базы данных;
    • +
    • INSERT- оператор запроса, который осуществляет добавление новых записей в таблицу базы данных;
    • +
    • UPDATE- оператор запроса, который изменяет имеющиеся данные в таблице базы данных
    • +
    +

    Свойства

    +

    Для того, чтобы перейти к заполнению Графа сущностей настраиваемой компоненты, необходимо во встроенных функциях элемента перейти к разделу Подгрузка данных - Источник данных - Граф сущностей и нажать на кнопку (три точки). По нажатию на кнопку отобразится окно Редактор структуры сущностей, в котором происходит дальнейшее добавление необходимых объектов базы данных (таблиц или представлений) с соответствующими связями.

    +

    Редактор структуры сущностей включает в себя следующие области:

    +
      + +
    • Дерево БД (базы данных), где отображаются выбранные при сохранении БД схемы вместе с объектами (таблицы и представления)
    • +
    • Поиск, с помощью которого можно найти таблицу БД по её названию; по мере ввода символов будет отображаться список таблиц, содержащих в названии набранные символы (рис.4)
    • +
    +

    +

    рис.3 Редактор структуры сущностей

    +

    +

    рис.4 Область поиска

    +
      + +
    • + +

      вкладка Структура, которая в зависимости от решаемой задачи позволяет задать условия или группу условий , по которому(ым) будут ограничиваться (фильтроваться) подгружаемые данные по Графу сущностей. Для фильтрации записей больше, чем по одному условию используются операторы:

      +
        + +
      • AND - оператор, который отображает только те записи, когда первое и второе условие является истина/true;
      • +
      • OR- оператор, который отображает только те записи, когда хотя бы одно из двух или каждое из условий является истина/true;
      • +
      • AND_NOT - оператор, который отображает только те записи, когда хотя бы одно из условий является ложью/false;
      • +
      • OR_NOT - оператор, который отображает только те записи, когда все из условий являются ложью/false.
      • +
      +

      При добавлении условия (фильтра), значение из колонки таблицы или представления можно приравнять к четырем типам значений: Переменная процесса, Константа, Переменная времени выполнения, Другая колонка. В случае использования Переменной процесса, значение, к которому приравниваются данные из указанной колонки, могут динамически изменяться, в зависимости от того, какое значение содержится в переменной процесса в конкретный момент времени (рис.4). Применение заданного условия (фильтра), в котором используется переменная процесса, можно ограничить указав: Игнорировать фильтр, если переменная не задана или Не игнорировать фильтр, если переменная не задана. При указании типа Другая колонка, значение указанное в колонке сравнивается со значением другой колонки идентичной таблицы. При указании типа Переменная времени выполнения, значение из выбранной колонки сравнивается с runtime переменными. При указании типа Константа, подгружаемые данные по Графу сущностей будут фильтроваться по заданному статичному значению (рис.5). На языке SQL-запросов заданное условие (рис.5) будет иметь вид: SELECT … FROM public. Конференции AS Конференции WHERE Конференции. Описание (description) = ‘RU’

      +

      +

      рис.4 Применение фильтра с использованием Переменной процесса

      +

      +

      рис.5 Применение фильтра с использованием Константы

      +
    • +
    • + +

      вкладка Элемент, становится активна после добавления и выбора объекта базы данных:таблицы или представления(рис.6). К нередактируемым свойствам элемента относится: Схема базы данных, к которой относится объект и название Таблицы в базе данных. К настраиваемым свойствам элемента относится:

      +
        + +
      • Имя сущности, которое будет отображаться в Редакторе структуры сущностей;
      • +
      • Главная сущность - в каждом Графе должна быть задана Главная сущность, с которой начинается подгрузка и сохранение данных на странице; Главная сущность в Графе выделена желтой рамкой, все последующие сущности имеют синюю рамку.
      • +
      • Действие при сохранении: Удалить (значение по умолчанию).
      • +
      • Сохранить - Удалить если все значения FK. Добавление и возможность настройки данного свойства было обусловлено тем, что в некоторых случаях, при сохранении в сущность (таблицу) приходят пустые данные. В зависимости от того, необходимо ли сохранять пустые данные в таблицу или необходимо удалять старую запись в таблице, если пришли пустые данные, выбирается один из трех доступных вариантов действий. Как и в случае со Структурой *всего Графа сущностей, к Элементу можно применить условия (фильтрацию) для подгрузки значения. После того, как условие будет задано, в редакторе сущностей элемент будет отображаться со знаком фильтра .
      • +
      +
    • +
    +

    Добавление связей сущностей

    +

    Граф сущностей позволяет добавить сразу несколько объектов базы данных (таблиц и представлений) с соответствующими связями между собой. Одновременное использование нескольких таблиц позволяет получить достаточный и необходимый объем информации для вывода из базы данных с помощью SQL-запроса, формируемого Графом сущностей и отображения пользователю на странице с помощью компонент, например, Таблица, Форма и другие. Добавление связей возможно между объектами базы данных, которые либо явно ссылаются друг на друга по ключу, либо связь подразумевается, но внешними ключами не оформлена.

    +

    Для того, чтобы указать связь между сущностями (объектами базы данных) в Редакторе структуры сущностей, необходимо добавить элементы (таблицы или представления базы данных) и от таблицы, которая будет ссылаться на другую таблицу протянуть стрелку, нажав на указатель . Направление стрелки должно быть определено от вторичного ключа к первичному ключу. После добавления связи, необходимо выделить элемент и указать колонки, по которым будут связаны сущностиво вкладке Элемент: Исходящая колонка и Входящая колонка.

    +

    На языке SQL-запросов заданная связь (рис.8) будет иметь вид: LEFT OUTER JOIN public. Конференции AS Конференции ON Список сотрудников.employee_id = Конференции.updated_employee_id

    +

    При настройке и выборе элемента связи сущностей (стрелки ) становится активна вкладка Элемент, где помимо указания колонок связи сущностей (Исходящая и Входящая колонка), есть возможность задать следующие свойства (рис.9):

    +
      + +
    • Связь обязательна означает, что при построении SQL-запроса к базе данных по данной связи будет использоваться оператор INNER JOIN, который возвращает только совпадающие данные из двух объединяемых таблиц. В случае, когда обязательность связи не проставлена, используется оператор LEFT OUTER JOIN, который возвращаетвсе строки из внешней левой таблицы, даже если в правой таблице нет совпадений.
    • +
    • Связь только для сохранения означает, что связь будет использована только для сохранения данных, при подгрузке данных она будет игнорироваться. В случае выбора данного свойства, в Редакторе структуры сущностей стрелка,связывающая объекты, принимает вид
    • +
    • Условие или Группа условий - как и в случае с общей Структурой Графа сущностей и отдельной сущности, имеется возможность добавить к связи условия (фильтры), ограничивающие значения подгружаемых данных.После того, как условие будет задано, вредакторе сущностей элемент стрелка будет отображаться со знаком фильтра(рис.10).
    • +
    +

    На языке SQL-запросов заданное условие (рис.10) будет иметь вид: LEFT OUTER JOIN public. Конференции AS Конференции ON Список сотрудников.employee_id=Конференции.updated_employee_id AND Список сотрудников.legal_entity_id IS NOT NULL

    +

    +

    рис.8 Добавление связи между сущностями

    +

    +

    рис.9 Свойства элемента связи (стрелки)

    +

    +

    рис.10 Применение условия к элементу связи

    +

    Часто задаваемые вопросы

    + + + + + + + + + + + + + + + + + + + + + +
    Вопрос Ответ
    Чем отличается условие заданное через вкладку Структура на весь Граф сущностей и условие заданное на конкретную сущность во вкладке Элемент Заданные условия ничем не отличаются между собой, допустимо использование обоих вариантов указания условий, результат выполнения их будет одинаков.
    После сохранения Графа сущностей, одна из заданных в нём таблиц была удалена или переименована в базе данных. Как это повлияет на структуру сущностей? В данном случае, при открытии Редактора структуры сущностей будет выведено окно с предупреждением. Граф сущностей необходимо будет перерисовать в соответствии с новой структурой базы данных.
    В сохраненную базу данных была добавлена новая таблица, но она не отображается в Дереве БД Редактора структуры сущностей? После внесения изменений в структуру базы данных (новая таблица или представление, новая колонка в таблице) необходимо во вкладке База данных нажать на кнопку Обновить, дождаться завершения обновления, после чего внесенные изменения должны будут отобразиться.
    Для чего необходима Главная сущность? Для компонент, требующих задания структуры сущностей, в Графе сущностей обязательно должна быть выделена Главная сущность, с которой начинаетсяподгрузка и сохранение данных на странице. Например, при работе с Таблицейи привязанной к ней Кнопкой выбора записи, запоминается идентификатор записи Главной сущности.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Общие-стили.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Общие-стили.html new file mode 100644 index 00000000..30aeb0f9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Общие-стили.html @@ -0,0 +1,65 @@ + + + + + + + + Web-BPM Docs – + + + + + + +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + +
    Название класса css Описание
    pull-right прижать объект к правому краю (если что-то съехало относительно данного объекта, положите его в дополнительный контейнер)
    align-center выравнивание объекта по центру по горизонтали (если что-то съехало относительно данного объекта, положите его в дополнительный контейнер)
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Общие_свойства_компонент.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Общие_свойства_компонент.html new file mode 100644 index 00000000..67e40ddd --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Общие_свойства_компонент.html @@ -0,0 +1,177 @@ + + + + + + + + Web-BPM Docs – Общие свойства компонент + + + + + + +
    +
    + + + +
    +
    +

    Общие свойства компонент

    +

    Подраздел основных параметров: Расширенные настройки

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +

    +
    +
    + +
      + +
    • внутренний отступ (необходимо указывать единицы измерения)
    • + +
    • внешний отступ (необходимо указывать единицы измерения)
    • + +
    • граница (необходимо указывать единицы измерения)
    • + +
    • stretch: позволяет управлять возможностью автоматического расширения (растягивания) элемента на свободную область
    • +
    + +

    - значение не определено - по умолчанию

    + +

    - элемент будет автоматически занимать всю доступную область

    + +

    - элемент не будет автоматическизанимать всю доступную область

    + +
      + +
    • высота (необходимо указывать единицы измерения, например, 20px): позволяет указать высоту элемента
    • + +
    • ширина (необходимо указывать единицы измерения, например, 40px) : позволяет указать ширину элемента
    • + +
    • минимальная высота (необходимо указывать единицы измерения, например, 20px): позволяет указать минимальную высоту элемента
    • + +
    • минимальная ширина (необходимо указывать единицы измерения, например, 40px) : позволяет указать минимальную ширину элемента
    • + +
    • максимальная высота (необходимо указывать единицы измерения, например, 20px): позволяет указать максимальную высоту элемента
    • + +
    • максимальная ширина (необходимо указывать единицы измерения, например, 40px) : позволяет указать максимальную ширину элемента
    • +
    +

    +
    +
    + +

    +
    +

    позволяет указать список CSS-классов, которые необходимо применить к элементу

    +
    + +

    по умолчанию в ряде компонент указан CSS-класс long-value-input

    + +

    + +

    Данный CSS-класспозволяет сокращать отображаемое значение в поле тремя точками, если значение не умещается по ширине поля:

    + +


    +

    + +

    Если удалить данный CSS-класс в стилях элемента, то отображение значения, не соответствующего ширине поля, имеет следующий вид:

    +
    +
    + +

    +
    позволяет наследовать (или игнорировать наследование) свойства видимости, доступности, обязательности и возможности сохранения от компоненты-контейнера, внутри которого расположен элемент (родителя) +
    + +

    - значение не определено - по умолчанию

    + +

    - наследовать свойства от компоненты-контейнера, внутри которого расположен элемент

    + +

    - не наследовать свойства от компоненты-контейнера, внутри которого расположен элемент

    + +

    например, если перевестив состояниезначение данного свойства у элемента, находящегосявнутри контейнера, у которого включено свойство Недоступно для управления, то поле проигнорирует это свойство от родителя и будет доступно для управления на странице.

    +
    +
    + +
    +
    +

    Attachments:

    +
    + + +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_права_текущего_пользователя.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_права_текущего_пользователя.html new file mode 100644 index 00000000..6b7353d9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_права_текущего_пользователя.html @@ -0,0 +1,57 @@ + + + + + + + + Web-BPM Docs – Определить права текущего пользователя + + + + + + +
    +
    + + + +
    +
    +

    Определить права текущего пользователя

    +

    Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет проверить наличие интересующих прав (меток безопасности) у текущего пользователя при выполнении приложения.

    +

    Она относится к той группе функций, чья функциональность применяется и может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется несколько новых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ данные загружены на форму И (текущий пользователь имеет права (метку безопасности) “WRITE” ИЛИ текущий пользователь имеет права (метку безопасности) “LIST”) ТО кнопку “Сохранить” сделать видимой идоступной для нажатия’

    +

    +

    Рис.1 Активация функции

    +

    +

    Рис.2 Использование функции в компоненте Обработка Событий (появился новый метод “Обладает правами” у компоненты Форма).

    +

    Наименования прав (меток безопасности) в условиях сравнения в компоненте Обработка событий должны соответствовать меткам безопасности, существующим в платформе и отслеживаемым с использованием Инструмента администрирования платформы.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_роли_текущего_пользователя.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_роли_текущего_пользователя.html new file mode 100644 index 00000000..42d6e37d --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_роли_текущего_пользователя.html @@ -0,0 +1,57 @@ + + + + + + + + Web-BPM Docs – Определить роли текущего пользователя + + + + + + +
    +
    + + + +
    +
    +

    Определить роли текущего пользователя

    +

    Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет проверить наличие интересующей роли у текущего пользователя при выполнении приложения.

    +

    Она относится к той группе функций, чья функциональность применяется и может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется несколько новых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ данные загружены на форму И (текущий пользователь имеет роль “Администратор” ИЛИ текущий пользователь имеет роль “Руководитель”) ТО кнопку “Сохранить” сделать видимой идоступной для нажатия’

    +

    +

    Рис.1 Активация функции

    +

    +

    Рис.2 Использование функции в компоненте Обработка Событий (появился новый метод “Обладает ролью” у компоненты Форма)

    +

    Наименования ролей в условиях сравнения в компоненте Обработка событий должны соответствовать ролям, существующим в платформе и созданным с использованием Инструмента администрирования платформы.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_текущую_дату_и_сместить_её_вперед_или_назад_на_заданный_период.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_текущую_дату_и_сместить_её_вперед_или_назад_на_заданный_период.html new file mode 100644 index 00000000..8e8ae10a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Определить_текущую_дату_и_сместить_её_вперед_или_назад_на_заданный_период.html @@ -0,0 +1,104 @@ + + + + + + + + Web-BPM Docs – Определить текущую дату и сместить её вперед или назад на заданный период + + + + + + +
    +
    + + + +
    +
    +

    Определить текущую дату и сместить её вперед или назад на заданный период

    +

    Функция, которая в режиме исполнения приложения (runtime mode) определяет текущую дату хоста, на котором работает браузер пользователя, и выставляет ее значением для компоненты Дата. При соответствующих настройках, может на лету сдвигать текущую дату на указанный период (год, месяц, день) в будущее или прошлое и отображать в компоненте Дата уже не текущую дату, а дату, передвинутую на указанный период. Используется для выставления в полях экранного интерфейса значения текущей даты по умолчанию, либо сдвига даты на заранее известный период времени (например, дату открытия наследства). Может быть активирована только на компоненте Дата.

    +

    Особенности функции:

    +
      + +
    • в запущенном приложении исполняется явно (не требует использования компоненты “Обработка событий” и формирования алгоритма работы с задействованием вновь предоставлямых методов)
    • +
    • записывает текущую (или дату со сдвигом) в тот компонент Дата, в котором функция активирована
    • +
    • имеет параметры для настройки аналитиком
    • +
    +

    Рис. 1 Внешний вид активированной функции

    +

    Параметры функции (табл.1)

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Пример заполнения
    Количество лет, необязательный позволяет указать количество лет, на которые нужно сдвинуть текущую дату
    Количество месяцев, необязательный позволяет указать количество месяцев, на которые нужно сдвинуть текущую дату
    Количество дней, необязательный позволяет указать количество дней, на которые нужно сдвинуть текущую дату
    В будущее, необязательный позволяет указать направление сдвига заданного периода - в будущее или в прошлое +
      +
    • значение не определено - текущую дату никуда не сдвигать - по умолчанию
    • +
    • Активно - сдвинуть текущую дату на указанный период в будущее
    • +
    • Не активно - сдвинуть текущую дату на указанный период в прошлое
    +

    Пример настройки и применения

    +

    +

    Рис.1 Активация функции на компоненте Дата без сдвига на период

    +

    +

    Рис.2 Активация функции на компоненте Дата со сдвигом на период в прошлое

    +

    Рис.3 Активация функции на компоненте Дата со сдвигом на период в будущее

    +

    Результат работы функции с разными параметрами настройки

    +

    +

    Рис. 4 Открытие web - страницы работающего приложения с полем Дата мероприятия без сдвига

    +

    +

    Рис. 5 Открытие web - страницы работающего приложения с полем Дата мероприятия со сдвигом в прошлое

    +

    +

    Рис. 6 Открытие web - страницы работающего приложения с полем Дата мероприятия со сдвигом в будущее

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Подгрузка_данных.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Подгрузка_данных.html new file mode 100644 index 00000000..cd825339 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Подгрузка_данных.html @@ -0,0 +1,105 @@ + + + + + + + + Web-BPM Docs – Подгрузка данных + + + + + + +
    +
    + + + +
    +
    +

    Подгрузка данных

    +

    Назначение

    +

    Функция, которая исполняет сформированный пользователем визуально или явно SQL-запрос на базе данных для одной из операций: INSERT, UPDATE, SELECT. Является строго обязательным для настройки. Попытка сборки и запуска системы в несконфигурированномсостоянии функции приводит к ошибке.

    +

    Вид операции определяется либо инициализацией (открытием) самой web-страницы - тогда выполняется SELECT, либо событием управляющего воздействия пользователя на web-страницу (напр, нажатие кнопки “Сохранение”) - тогда выполняется INSERT или UPDATE.

    +

    Выполнение операции INSERT или UPDATE зависит от значения Переменной процесса с идентификатором: если переменная пуста, то выполняетсяINSERT - запрос, если содержит значение, то выполняется UPDATE - запрос.

    +

    Результатом воздействия запроса любого типа должна служить толькоединственная запись смысловой сущности создаваемого интерфейса (не касается связанных и\или линковых таблиц), в противном случае функция генерирует ошибку и не исполняется.

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование параметра Обязательность Назначение параметра Принимаемые значения
    Скрипт Обязательный позволяет указать один из вариантов реализации скрипта +
      +
    • FormServiceImpl - значение, выставляемое платформой по умолчанию. Обеспечивает сохранение и считывание значения любого визуального компонента, входящего в компоненту Форма, в/из базы данных.
    • +
    • VariableFormService - обеспечивает считывание и/или сохранение значения любого визуального компонента, входящего в компоненту Форма, только из/в переменную процесса (не из/в базу данных).
    Переменная процесса с идентификатором Обязательный позволяет выбрать из списка переменную процесса, содержащую в себе идентификатор смысловой единицы, которой посвящена компонента Форма (и web-страница приложения) Список формируется автоматически из всех переменных используемых в BPMN-процессе. Является ограничивающим значением запроса (в секции WHERE primary_id = ), построенного в визуальном конструкторе параметра Граф сущностей. Благодаря этому ограничению компонента Форма как источник данных выбирает атрибуты единственной смысловой сущности создаваемого интерфейса. Указанная переменная процесса может не содержать значения, и это означает, что web - страница открыта для создания новой записи в базе данных и после нажатия на кнопку сохранения будет выполнен оператор INSERT. Указанная переменная процесса может содержать значение идентификатора, и это означает, что web - страница открыта для отображения текущих атрибутов одной существующей записи, в нее могут быть внесены изменения, и после нажатия на кнопку сохранения будет выполнен оператор UPDATE.
    Источник данных. Скрипт Обязательный позволяет выбрать способ построения запроса - либо визуальный конструктор, либо кастомный SQL запрос +
      +
    • FormDaoImpl - Запрос формируется визуальным конструктором, значение по умолчанию
    • +
    • CustomSqlFormDao - запрос может быть сформирован вручную в отдельном окне
    • +
    • EditableOneToManyDaoImpl
    Граф сущностей Обязательный позволяет с помощью визуального конструктора сформировать набор объектов базы данных, указать взаимосвязи между ними и\или дополнительные условия, тем самым подготовить запрос в базу данных. При подгрузке данных сформированный запрос отрабатывает как Select-запрос, при сохранении новой информации как Insert-запрос, при внесении изменений как Update-запрос.
    Скрипты валидации формы Не обязательный Сценарии проверки валидности данных на форме, которые выполняются при сохранении формы (например, проверка уникальности сохраняемой улицы (что в базе ее действительно пока еще нет, или проверка правильности соотнесения значений сразу нескольких полей и т.п.).Если валидация не прошла, то выдается ошибка и сохранение формы прекращается. В базовой конфигурации сценарии не поставляются, они создаются дополнительно разработчиками под конкретные запросы пользователей. После подготовки программного кода такого скрипта и интеграции в платформу, его можно выбрать в этом пункте настроек по имени из выпадающего списка.
    Скрипты, выполняемые после сохранения формы Не обязательный Вызов обработчиков после сохранения данных. В качестве обработчиков могут выступать сценарии манипулирования данными на языке SQL с входными и выходными параметрами.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Подгрузка_данных_по_умолчанию.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Подгрузка_данных_по_умолчанию.html new file mode 100644 index 00000000..e06782cb --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Подгрузка_данных_по_умолчанию.html @@ -0,0 +1,105 @@ + + + + + + + + Web-BPM Docs – Подгрузка данных по умолчанию + + + + + + +
    +
    + + + +
    +
    +

    Подгрузка данных по умолчанию

    +

    Назначение

    +

    Функция, которая может быть активирована на любой компоненте-контейнере (как правило, на компоненте Форма), и которая исполняет сформированный пользователем визуально SQL-SELECT запрос на базе данных. Полученные в результате исполнения запроса значения могут быть переданы в дочерние визуальные компоненты текущего контейнера для заполнения этих визуальных компонентов значениями по умолчанию. Результатом запроса должна служить толькоединственная запись смысловой единицы создаваемого интерфейса , в противном случае скрипт генерирует ошибку и не исполняется.

    +

    Функция не является обязательной для настройки, но должна присутствовать на компонентах - контейнерах в любом случае (совсем удалять функцию с компоненты нельзя). Функция активирована по умолчанию на компонентах-контейнерах Форма и Набор фильтров.

    +

    Для остальных компонент - контейнеров требует активации вручную при необходимости. Активация происходит выставлением флажка рядом с наименованием функции:

    +

    - активированное состояние функции

    +

    - не активированное состояние функции

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование параметра Назначение параметра Принимаемые значения
    Скрипт Единственный возможный вариант, выставлен по умолчанию
    Источник данных. Скрипт предписывает использовать визуальный конструктор для построения запроса DefaultLoadDao - Запрос формируется визуальным конструктором.
    Граф сущностей Граф сущностей позволяет с помощью визуального конструктора сформировать набор объектов базы данных, указать взаимосвязи между ними и\или дополнительные условия, тем самым подготовить запрос в базу данных. При подгрузке данных сформированный запрос отрабатывает как Select-запрос.
    Переменная процесса с идентификатором позволяет выбрать из списка переменную процесса, содержащую в себе идентификатор смысловой единицы, для которой подгружаются ‘значения по умолчанию’ на web-странице приложения. Список формируется автоматически из всех переменных, используемых в BPMN-процессе. Является ограничивающим значением запроса (в секции WHERE primary_id = ), построенного в визуальном конструкторе параметра Граф сущностей. Благодаря этому ограничению источник данных выбирает атрибуты единственной смысловой единицы создаваемого интерфейса. указанная переменная процесса может не содержать в себе значения, и это означает, что никаких значений по умолчанию подгружено не будет.
    uniqueResult позволяет при выполнении запроса исключить повторяющиеся строки из результата.
    +

    Если одна компонента-контейнер вложена в другую (например, в компоненту Форма вложена компонента Горизонтальный контейнер, а в нее - Вертикальный контейнер), то следует учитывать особенности взаимодействия функций Подгрузка данных по умолчанию из компонент-контейнеров разных уровней:

    + + + + + + + + + + + + + + +
    Компонента ‘Форма 1’ - родительский контейнер Компонента ‘Горизонтальный контейнер ( а )’ является дочерней для компоненты ‘Форма 1’. Компонента ‘Вертикальный контейнер ( I )’ является дочерней для компоненты ‘Горизонтальный контейнер ( а )’.
    В нем активирована функция Подгрузка данных по умолчанию. Внутри расположен Горизонтальный контейнер и на одном уровне с ним - визуальные компоненты. Компоненты ‘Текстовое поле 1’ и ‘Числовое поле 1’, расположенные внутри компоненты ‘Форма 1’, могут получать ‘значения по умолчанию’ только из таблиц и колонок структуры сущности, заданной в функции Подгрузка данных по умолчанию компоненты ‘Форма 1’ Компонента ‘Горизонтальный контейнер ( а )’ является дочерней для компоненты ‘Форма 1’. В компоненте ‘Горизонтальный контейнер ( а )’ не активирована функция Подгрузка данных по умолчанию, но в родительской компоненте ‘Форма 1’ одноименная функция активирована. Внутри компоненты ‘Горизонтальный контейнер ( а )’ расположен Вертикальный контейнер и на одном уровне с ним - визуальные компоненты. Компоненты ‘Дата ( а )’ и ‘Статичный выпадающий список ( а )’, расположенные внутри компоненты ‘Горизонтальный контейнер ( а )’, могут получать ‘значения по умолчанию’ только из таблиц и колонок структуры сущности, заданной в функции Подгрузка данных по умолчанию компоненты ‘Форма 1’, поскольку у их прямого родительского компонента ‘Горизонтальный контейнер ( а )’ эта функция не активирована, но зато они являются наследниками компоненты-контейнера ‘Форма 1’. Таким образом, визуальные компоненты игнорируют те уровни, на которых функция не активирована и тянуться вверх по дереву до того уровня, пока не найдут первую настроенную и активированную функцию Подгрузка данных по умолчанию. Компонента ‘Вертикальный контейнер ( I )’ является дочерней для компоненты ‘Горизонтальный контейнер ( а )’. В компоненте ‘Вертикальный контейнер ( I )’ активирована функция Подгрузка данных по умолчанию. Внутри компоненты ‘Вертикальный контейнер ( I )’ расположены только визуальные компоненты. Компоненты ‘ФИАС ( I )’ и ‘Поле многострочного ввода ( I )’, расположенные внутри компоненты Вертикальный контейнер ( I )’, могут получать ‘значения по умолчанию’ только из таблиц и колонок структуры сущности, заданной в функции Подгрузка данных по умолчанию компоненты ‘Вертикальный контейнер ( I )’
    +

    Функция Подгрузка данных по умолчанию позволяет только сформировать и исполнить запрос для получения определенных сведений из базы данных, последующее указание аналитика платформе на то, каким значением из какой таблицы и какой визуальный компонент следует заполнить происходит в настройках функции Заполнить значением по умолчаниюлюбого визуального компонента (параметр Тип подгрузки - > Из колонки)

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Преобразование_текущей_даты.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Преобразование_текущей_даты.html new file mode 100644 index 00000000..753f8f22 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Преобразование_текущей_даты.html @@ -0,0 +1,104 @@ + + + + + + + + Web-BPM Docs – Определить текущую дату и сместить её вперед или назад на заданный период + + + + + + +
    +
    + + + +
    +
    +

    Определить текущую дату и сместить её вперед или назад на заданный период

    +

    Функция, которая в режиме исполнения приложения (runtime mode) определяет текущую дату хоста, на котором работает браузер пользователя, и выставляет ее значением для компоненты Дата. При соответствующих настройках, может на лету сдвигать текущую дату на указанный период (год, месяц, день) в будущее или прошлое и отображать в компоненте Дата уже не текущую дату, а дату, передвинутую на указанный период. Используется для выставления в полях экранного интерфейса значения текущей даты по умолчанию, либо сдвига даты на заранее известный период времени (например, дату открытия наследства). Может быть активирована только на компоненте Дата.

    +

    Особенности функции:

    +
      + +
    • в запущенном приложении исполняется явно (не требует использования компоненты “Обработка событий” и формирования алгоритма работы с задействованием вновь предоставлямых методов)
    • +
    • записывает текущую (или дату со сдвигом) в тот компонент Дата, в котором функция активирована
    • +
    • имеет параметры для настройки аналитиком
    • +
    +

    Рис. 1 Внешний вид активированной функции

    +

    Параметры функции (табл.1)

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Пример заполнения
    Количество лет, необязательный позволяет указать количество лет, на которые нужно сдвинуть текущую дату
    Количество месяцев, необязательный позволяет указать количество месяцев, на которые нужно сдвинуть текущую дату
    Количество дней, необязательный позволяет указать количество дней, на которые нужно сдвинуть текущую дату
    В будущее, необязательный позволяет указать направление сдвига заданного периода - в будущее или в прошлое +
      +
    • значение не определено - текущую дату никуда не сдвигать - по умолчанию
    • +
    • Активно - сдвинуть текущую дату на указанный период в будущее
    • +
    • Не активно - сдвинуть текущую дату на указанный период в прошлое
    +

    Пример настройки и применения

    +

    +

    Рис.1 Активация функции на компоненте Дата без сдвига на период

    +

    +

    Рис.2 Активация функции на компоненте Дата со сдвигом на период в прошлое

    +

    Рис.3 Активация функции на компоненте Дата со сдвигом на период в будущее

    +

    Результат работы функции с разными параметрами настройки

    +

    +

    Рис. 4 Открытие web - страницы работающего приложения с полем Дата мероприятия без сдвига

    +

    +

    Рис. 5 Открытие web - страницы работающего приложения с полем Дата мероприятия со сдвигом в прошлое

    +

    +

    Рис. 6 Открытие web - страницы работающего приложения с полем Дата мероприятия со сдвигом в будущее

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Преобразовать_в_колонки_со_значениями-переходами.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Преобразовать_в_колонки_со_значениями-переходами.html new file mode 100644 index 00000000..6da7a836 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Преобразовать_в_колонки_со_значениями-переходами.html @@ -0,0 +1,96 @@ + + + + + + + + Web-BPM Docs – Преобразовать в колонки со значениями-переходами + + + + + + +
    +
    + + + +
    +
    +

    Преобразовать в колонки со значениями-переходами

    +

    Назначение

    +
    + +

    Внимание: данный скрипт помечен как устаревший. Вместо него необходимо использовать либо NavigateOnGridCellOrRow (для всех таблиц, в т.ч. GridV2), либо ColumnNavigationRenderer (для таблиц GridV2, настройка без индексов).

    +
    +

    Функцию Преобразовать в колонки со значениями-переходами допустимо использовать при настройке компоненты Таблица (по кнопке Добавить функцию) и расширяет её базовые возможности. Добавление данного функционала в настройку компоненты Таблицы (рис.1) позволяет отображать значение в конкретной колонке (указанной в настройке функции) в виде гиперссылки, по нажатию на которую на странице приложения возможен следующий переходпо процессу (например, открытие страницы) по определённому значению переменной навигации.

    +

    +

    рис.1 Добавление функции Преобразовать в колонки со значениями-переходами

    +

    Настройка

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Сохранить идентификатор позволяет указать переменную процесса, в которую система сохранит идентификатор строки (значение идентификатора главной сущности в Графе сущностей компоненты Таблицы либо идентификатор из конкретной колонки)
    Значение для навигации позволяет задать значение, которое будет записано в переменную навигации данного процесса (по данному значению будет осуществляться переход при нажатие на колонку-гиперссылку)
    Переходить собственному позволяет указать колонку, значение из которой будет записано в переменную процесса, указанную в свойстве Сохранить идентификатор строки в Активно - будет взято значение самого идентификатора строки(значение идентификатора главной сущности в Графе сущностей компоненты). Не активно - позволяет указать порядковый номер колонки, содержащую в себе значение идентификатора, которое необходимо сохранить в переменную процесса
    Номер колонки позволяет указать номер колонки (в порядке следования в таблице), которая будет преобразована колонку перехода пример возможного значения: 3
    Номер колонки из которого позволяет указать номер колонки (в порядке следования в таблице) значение из которой будет взято для сохранения в переменную процесса, указанную в свойстве Сохранить идентификатор строки в (доступно для настройки при значении свойстваПереходить по собственному идентификатору) пример возможного значения: 6
    +

    Пример настройки

    +

    В настройке функции Преобразовать в колонки со значениями-переходами (рис.1) в качестве колонки-перехода укажем значение колонки Неделя (порядковый номер - 3), которая на странице приложения отображается как ссылка (рис.2), по нажатию на которую будет происходить дальнейший переход по процессу. Свойства функции настроены в соответствии с необходимой логикой.

    +

    +

    рис.1 Пример настройки функции

    +

    +

    рис.2 Отображение колонки-перехода на странице приложения

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Склеить_несколько_значений.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Склеить_несколько_значений.html new file mode 100644 index 00000000..0c61b893 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Склеить_несколько_значений.html @@ -0,0 +1,112 @@ + + + + + + + + Web-BPM Docs – Склеить несколько значений + + + + + + +
    +
    + + + +
    +
    +

    Склеить несколько значений

    +

    Функция, которая принимает на вход массив значений из любых визуальных компонентов, конвертирует эти значения на лету в строковый тип и на выходе формирует в значении отдельного компонента цельную единую строку, являющуюся результатом конкатенации значений компонент, принятых на входе. Может быть активирована на компонентах, работающих со строковыми типами данных: Текстовое поле, Текст, Поле многострочного ввода.

    +

    В отличие от функции “Добавить строку к значению в текущем поле”:

    +
      + +
    • в запущенном приложении исполняется явно (не требует использования компоненты “Обработка событий” и формирования алгоритма работы с задействованием вновь предоставлямых методов)
    • +
    • работает с неограниченным количеством визуальных компонент
    • +
    • позволяет задавать префиксы и постфиксы для соединяемых значений
    • +
    • не перезаписываетновообразованной строкой ранее находившееся в одной из склеиваемых компонент значение
    • +
    • имеет параметры для настройки аналитиком
    • +
    • работает с любыми типами данных и при необходимости может служить сама по себе конвертером значений любых типов из других компонент в строковый тип данных
    • +
    +

    +

    Рис. 1 Внешний вид активированной функции

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Массив склеиваемых значений Позволяет сформировать список компонент на странице, значения которых будут участвовать в конкатенации. Каждый последующий элемент списка добавляется с помощью кнопки
    Элемент, обязательный позволяет настроить один из элементов списка
    Префикс, необязательный позволяет задать набор символов, которые будут добавлены в результирующую строку перед фактическим значением склеиваемой компоненты
    Значение, обязательный позволяет указать компонент, значение которого будет склеиваться функцией
    Постфикс, необязательный позволяет задать набор символов, которые будут добавлены в результирующую строку после фактического значения склеиваемой компоненты
    Склеивать значения через подстроку, обязательный позволяет задать набор символов, который будет разделять склеиваемые значения разных компонент Чаще всего заполняется пробелом
    +

    Пример настройки и применения

    +

    +

    Рис.2 Активация функции на компоненте Многострочный ввод текста.

    + +

    Заполнение параметров Значениев массиве склеиваемых значений происходит путем перетаскивания манипулятором мышь соответствующих компонентов из дерева структуры страницы в окно параметра Значение каждого из элементов массива склеиваемых значений (как показано стрелками на скриншоте).

    + +

    Также существует удобная функциональность обратного быстрого перехода по дереву структуры страницы к задействованной компоненте посредством клика на параметреЗначение, когда есть необходимость уточнить, на какую именно компоненту в дереве ссылается интересующий параметр.

    + +

    +

    Рис. 3 Открытие web - страницы работающего приложения в момент когда склеиваемые поля еще не заполнены

    +

    +

    Рис.4 Работа с web страницей. Часть склеиваемых полей уже заполнено, отработали префиксы и постфиксы из настроек

    +

    +

    Рис.5 Завершение работы с группой полей, участвующих в объединении значений. В итогом поле получили соединенный текст с учетом префиксов и постфиксов соединяемых значений

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сконвертировать_значение_в_целочисленный_тип.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сконвертировать_значение_в_целочисленный_тип.html new file mode 100644 index 00000000..0610a3d4 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сконвертировать_значение_в_целочисленный_тип.html @@ -0,0 +1,65 @@ + + + + + + + + Web-BPM Docs – Сконвертировать значение в целочисленный тип + + + + + + +
    +
    + + + +
    +
    +

    Сконвертировать значение в целочисленный тип

    +

    Функция, которая не имеет настраиваемых аналитиком параметров, но будучи задействованной, позволяет осуществить преобразование значения в исходном компоненте из текущего типа (чаще всего, в компоненте Поле ввода с подбором значенияиз типа данных ANY) в целочисленный тип данных.

    +

    Она относится к той группе функций, чья функциональность применяется и может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется нескольконовых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ в компоненте Поле ввода с подбором значения выбрано(изменилось) значение, ТО в компоненту числовое поле вывести идентификатор(первичный ключ) этого значения’

    +

    +

    Рис.1 Активация функции на компоненте Поле ввода с подбором значения

    +

    +

    Рис.2 Числовое поле, в которое будем записывать идентификатор значения из компонента Поле ввода с подбором значения

    +

    +

    Рис. 3 Пример алгоритма заполнения числового поля идентификатором значения, выбранного в поле с Постановщиком задачи, при условии расширения функциональности исходной компоненты Поле ввода с подбором значения функцией “Сконвертировать значение в целочисленный тип” (появился новый метод “Сконвертировать в число” у исходной компоненты )

    +

    +

    Рис.4 Пример невозможности построения алгоритма из-за отсутствия необходимого метода “Сконвертировать в число”, вследствие удаления функции “Сконвертировать значение в целочисленный тип” из исходной компоненты Поле ввода с подбором значения “Постановщик задачи” (пропал метод “Сконвертировать в число” у исходной компоненты)

    +

    После запуска web-приложения (in runtime mode) выбираем в компоненте Список с поиском одно из значений (например, постановщика задачи с фамилией Дякин), после этого значение идентификатора (первичный ключ сотрудника по фамилии Дякин в справочнике) переносится в поле"Идентификатор постановщика", а в консоли браузера можно наблюдать сообщение о срабатывании компоненты Обработка событий, которое показывает выполненное функцией действие.

    +

    +

    Рис 5.Выбираем Постановщика задачи

    +

    +

    Рис.6 Функция заполняет числовое поле идентификатором

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сместить_дату_из_поля_на_период_вперед_или_назад.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сместить_дату_из_поля_на_период_вперед_или_назад.html new file mode 100644 index 00000000..a4517d31 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сместить_дату_из_поля_на_период_вперед_или_назад.html @@ -0,0 +1,97 @@ + + + + + + + + Web-BPM Docs – Сместить дату из поля на период вперед или назад + + + + + + +
    +
    + + + +
    +
    +

    Сместить дату из поля на период вперед или назад

    +

    Функция, которая в режиме исполнения приложения (runtime mode) может на лету считывать исходное значение даты из одной компоненты Дата и отображать в другой компоненте Дата исходное значение даты, смещенное на определенный период (или годы, или месяцы, или дни) в будущее или прошлое. Используется для выставления в полях экранного интерфейса значения даты со сдвигом на заранее заданный период времени. Может быть активирована только на компоненте Дата.

    +

    Она относится к той группе функций, чья функциональность применяется и может быть полезной не сразу после добавленияв исходную компоненту, а только при последующем использовании в компоненте “Обработка событий”, когда у исходной компоненты появляется нескольконовых доступных методов при конструировании алгоритма обработки событий на web-странице. Например, для такого паттерна обработки: ‘ЕСЛИ в исходном компоненте Дата выбрано(изменилось) значение, ТО в другую компоненту Дата вывести значение из исходного, но на заранее заданный период (или годы, или месяцы, или дни) в будущее или прошлое’.

    +

    Функция имеет параметры, позволяющие аналитику задать направление и величину сдвига во времени.

    +

    Параметры функции (табл.1)

    + + + + + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Величина периода, обязательный позволяет указать величину временных периодов, на которую будет смещена исходная дата Пример возможного занчения: 2
    Единица измерения периода, обязательный позволяет указать размерность временного периода, в которых измеряется сдвиг Дни, месяцы, годы
    +

    +

    Рис.1 Активация функции на поле “Исходная дата”

    +

    +

    Рис.2 Поле “Дата после применения функции”, в которое будем записывать значение исходной даты, сдвинутое на заданный промежуток времени - 2 года

    +

    +

    Рис. 3 Пример алгоритма заполнения поля “Дата после применения функции” значением поля “Исходная дата”, сдвинутым на 2 года в прошлое (появилось 2 новых метода “Сдвинуть на период в будущее”; и “Сдвинуть на период в прошлое” у компоненты Дата)

    +

    Для применения функции Сместить дату из поля на период вперед или назад следует использоваться связку методов компоненты Дата:

    +
      + +
    • + +

      Задать значение как дату для поля-приемника измененной даты

      +
    • +
    • + +

      Сдвинуть на период в прошлое (будущее) для источника исходной даты

      +
    • +
    +

    Использование в поле-приемнике похожего метода компоненты Дата “Задать значение” приведет к невозможности использования метода “Сдвинуть на период в прошлое (будущее)” для источника даты при формировании алгоритма обработки события.

    +

    После запуска web-приложения (in runtime mode) выбираем дату в компоненте Исходная Дата (например,01.03.2019), после этого значение даты в поле Дата после применения функции изменится на 01.03.2017 г., а в консоли браузера можно наблюдать сообщение о срабатывании компоненты Обработка событий, которое показывает выполненное функцией действие.

    +

    +

    Рис 5.Состояние интерфейса до изменения поля Исходная дата

    +

    +

    Рис.6 Функция заполняет поле Дата после применения функции

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сохранение_заголовка_выбранной_вкладки_в_переменную_процесса.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сохранение_заголовка_выбранной_вкладки_в_переменную_процесса.html new file mode 100644 index 00000000..0e3f1164 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сохранение_заголовка_выбранной_вкладки_в_переменную_процесса.html @@ -0,0 +1,54 @@ + + + + + + + + Web-BPM Docs – Сохранение заголовка выбранной вкладки в переменную процесса + + + + + + +
    +
    + + + +
    +
    +

    Сохранение заголовка выбранной вкладки в переменную процесса

    +

    Используется для возврата на нужную вкладку после выхода с формы.

    +

    На TabContainer ts\custom\tab\TabContainerState.ts, java\custom\tab\TabContainerStateRpcService.java и внутрь последнего java\custom\tab\TabContainerStateVariableService.java

    +

    Далее нужно в TabContainerStateVariableService выбрать переменную процесса (тип - строка), в которую будет сохраняться заголовок выбранного таба.

    +

    Если после каких-то манипуляций не нужно восстанавливать открытый таб, то нужно использовать обработчик, очищающий переменную.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сохранить_значение_в_переменную_процесса.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сохранить_значение_в_переменную_процесса.html new file mode 100644 index 00000000..e779164a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Сохранить_значение_в_переменную_процесса.html @@ -0,0 +1,58 @@ + + + + + + + + Web-BPM Docs – Сохранить значение в переменную процесса + + + + + + +
    +
    + + + +
    +
    +

    Сохранить значение в переменную процесса

    +

    Назначение

    +

    Сохранить значение в переменную процесса любого типа - эта функция позволяет задать переменную процесса, в которую будет сохраняться введенное значение, которое в последствии может передаваться на другие страницы приложения в зависимости от решаемой задачи.

    +

    Настройка

    +

    Для добавления функции в логику работы компоненты необходимо нажать на кнопку Добавить скрипт - Выбрать из спискафункцию, если она предусмотрена для использования с компонентой (рис.1) - Указать переменную, в которую будет сохраняться значение из поля (рис.2)

    +

    +

    рис.1. Добавление функции

    +

    +

    рис.2. Настройка функции

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Управление_навигацией.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Управление_навигацией.html new file mode 100644 index 00000000..a6a6bd46 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Управление_навигацией.html @@ -0,0 +1,72 @@ + + + + + + + + Web-BPM Docs – Управление навигацией + + + + + + +
    +
    + + + +
    +
    +

    Управление навигацией

    +

    Функция, которая в режиме исполнения приложения (runtime mode) закрывает текущую web-страницу (завершает пользовательскую BPMN задачу), сохраняет предопределенное в настройках функции значение в переменную процесса navigation и отправляет маркер процесса к следующему узлу схемы процесса (чаще всего, к исключающему шлюзу, в котором на основании значения переменной navigation осуществляется выбор одного из возможных дальнейших маршрутов).

    +

    Может быть активирована только на компонентах Кнопка сохранения, Кнопка Выбора, Кнопка Отмены семейства компонент Кнопка.

    +

    Параметры функции (табл.1)

    + + + + + + + + + + + + + + +
    Наименование свойства Назначение свойства Принимаемые значения
    Значение переменной навигации, обязательный позволяет указать значение, которое будет сохранено в переменную процесса navigation Возможное значение например: edit
    +

    Объявление навигационной переменной с именем navigation и типом String является обязательным требованием при создании любого BPMN процесса в редакторе бизнес процессов:

    +

    +

    Обычной практикой является оперирование этой переменной при определении условий в исключающих шлюзах при разработке бизнес-процессов и анализ значения этой переменной в компоненте Обработка событий на странице в редакторе интерфейса. Некоторая часть дополнительных функций визуальных компонентов по умолчанию ссылается в своих настройках на эту переменную.

    +

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Функции.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Функции.html new file mode 100644 index 00000000..973c17b0 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/component/Функции.html @@ -0,0 +1,77 @@ + + + + + + + + Web-BPM Docs – Функции + + + + + + +
    +
    + + + +
    +
    +

    Функции

    +

    Полный справочник функций, доступных для всех компонент:

    + +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/apache-maven-fluido-1.9.min.css b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/apache-maven-fluido-1.9.min.css new file mode 100644 index 00000000..0bafa301 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/apache-maven-fluido-1.9.min.css @@ -0,0 +1,17 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000 !important;text-shadow:none !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:gray}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none !important}.visible-tablet{display:none !important}.hidden-desktop{display:none !important}.visible-desktop{display:inherit !important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-tablet{display:inherit !important}.hidden-tablet{display:none !important}}@media(max-width:767px){.hidden-desktop{display:inherit !important}.visible-desktop{display:none !important}.visible-phone{display:inherit !important}.hidden-phone{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:inherit !important}.hidden-print{display:none !important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}.clear{clear:both;visibility:hidden}.clear hr{display:none}.section p,.section p,.section dt,.section dt{margin-right:7px;margin-left:7px}#ohloh{margin-bottom:10px}#poweredBy{text-align:center}a.externalLink{padding-right:18px}a.newWindow{background:url('../images/window-new.png') right center no-repeat;padding-right:18px}a.externalLink[href^=http]{background:url('../images/internet-web-browser.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".asc"]{background:url('../images/accessories-text-editor.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".jpg"],a.externalLink[href$=".jpeg"],a.externalLink[href$=".gif"],a.externalLink[href$=".png"]{background:url('../images/image-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".tar.gz"],a.externalLink[href$=".zip"]{background:url('../images/package-x-generic.png') right center no-repeat;padding-right:18px}a.externalLink[href$=".md5"],a.externalLink[href$=".sha1"]{background:url('../images/document-properties.png') right center no-repeat;padding-right:18px}a.externalLink[href^=https]{background:url('../images/application-certificate.png') right center no-repeat;padding-right:18px}a.externalLink[href^=file]{background:url('../images/drive-harddisk.png') right center no-repeat;padding-right:18px}a.externalLink[href^=ftp]{background:url('../images/network-server.png') right center no-repeat;padding-right:18px}a.externalLink[href^=mailto]{background:url('../images/contact-new.png') right center no-repeat;padding-right:18px}li.none{list-style:none}.search-query{background-image:url(https://cse.google.com/cse/images/google_custom_search_watermark.gif);background-attachment:initial;background-origin:initial;background-clip:initial;background-color:#fff;background-position:0 50%;background-repeat:no-repeat no-repeat;width:95%}body.topBarEnabled{padding-top:60px}body.topBarDisabled{padding-top:20px}.builtBy{display:block}img.builtBy{margin:10px auto}#search-form{margin-left:9px;margin-right:9px}.hero-unit h2{font-size:60px}tt{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:.9em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}li{color:#404040}table.zebra-striped{background-color:#FFF}.footer{background-color:#EEE}.sidebar-nav{padding-left:0;padding-right:0}.sidebar-nav .icon-chevron-right,.sidebar-nav .icon-chevron-down{margin-top:2px;margin-right:-6px;float:right;opacity:.25}li.pull-right{margin-left:3px;margin-right:3px}.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0;padding-left:15px}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/print.css b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/print.css new file mode 100644 index 00000000..cd19a8c5 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/print.css @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {display: none !important;} +#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important} diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/site.css b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/site.css new file mode 100644 index 00000000..055e7e28 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/css/site.css @@ -0,0 +1 @@ +/* You can override this file with your own styles */ \ No newline at end of file diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependencies.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependencies.html new file mode 100644 index 00000000..490ae354 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependencies.html @@ -0,0 +1,5824 @@ + + + + + + + + Web-BPM Docs – Project Dependencies + + + + + + +
    +
    + + + +
    +
    +
    +

    Project Dependencies

    +

    compile

    +

    The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

    + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    ru.cg.webbpm.packages.basebackend3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.packages.baseconverters3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.packages.basefrontend3.143.0-SNAPSHOTjar-
    +

    Project Transitive Dependencies

    +

    The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.

    +

    compile

    +

    The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    OAuth2EsiaOAuth2Esia1.1jar-
    ch.qos.logbacklogback-classic1.2.3jarEclipse Public License - v 1.0GNU Lesser General Public License
    ch.qos.logbacklogback-core1.2.3jarEclipse Public License - v 1.0GNU Lesser General Public License
    com.carrotsearchhppc0.8.1jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.corejackson-annotations2.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.corejackson-core2.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.corejackson-databind2.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.dataformatjackson-dataformat-cbor2.8.11jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.dataformatjackson-dataformat-smile2.8.11jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.dataformatjackson-dataformat-yaml2.8.11jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.datatypejackson-datatype-jsr3102.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.jaxrsjackson-jaxrs-base2.14.0jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.jaxrsjackson-jaxrs-json-provider2.14.0jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.modulejackson-module-jaxb-annotations2.14.0jarThe Apache Software License, Version 2.0
    com.github.ben-manes.caffeinecaffeine2.9.2jarApache License, Version 2.0
    com.github.spullara.mustache.javacompiler0.9.10jarApache License 2.0
    com.github.virtualdcurvesapi1.06jarBSD License
    com.google.code.findbugsjsr3051.3.9jarThe Apache Software License, Version 2.0
    com.google.code.gsongson2.3.1jarThe Apache Software License, Version 2.0
    com.google.errorproneerror_prone_annotations2.0.18jarApache 2.0
    com.google.guavaguava23.4-jrejarThe Apache Software License, Version 2.0
    com.google.j2objcj2objc-annotations1.1jarThe Apache Software License, Version 2.0
    com.h2databaseh21.4.199jarMPL 2.0 or EPL 1.0
    com.hazelcasthazelcast4.1.9jarThe Apache Software License, Version 2.0
    com.hazelcasthazelcast-spring4.1.4jarThe Apache Software License, Version 2.0
    com.sun.mailjavax.mail1.5.1jarCDDL/GPLv2+CE
    com.sun.xml.bindjaxb-impl2.3.3jarEclipse Distribution License - v 1.0
    com.tdunningt-digest3.2jarThe Apache Software License, Version 2.0
    com.zaxxerSparseBitSet1.2jarThe Apache Software License, Version 2.0
    commons-codeccommons-codec1.6jarThe Apache Software License, Version 2.0
    commons-iocommons-io2.4jarThe Apache Software License, Version 2.0
    commons-langcommons-lang2.6jarThe Apache Software License, Version 2.0
    commons-loggingcommons-logging1.1.1jarThe Apache Software License, Version 2.0
    io.jsonwebtokenjjwt-api0.10.5jarApache License, Version 2.0
    io.jsonwebtokenjjwt-jackson0.10.5jarApache License, Version 2.0
    io.nettynetty-buffer4.1.43.FinaljarApache License, Version 2.0
    io.nettynetty-codec4.1.43.FinaljarApache License, Version 2.0
    io.nettynetty-codec-http4.1.43.FinaljarApache License, Version 2.0
    io.nettynetty-common4.1.43.FinaljarApache License, Version 2.0
    io.nettynetty-handler4.1.43.FinaljarApache License, Version 2.0
    io.nettynetty-resolver4.1.43.FinaljarApache License, Version 2.0
    io.nettynetty-transport4.1.43.FinaljarApache License, Version 2.0
    jakarta.annotationjakarta.annotation-api1.3.5jarEPL 2.0GPL2 w/ CPE
    jakarta.validationjakarta.validation-api2.0.2jarApache License 2.0
    jakarta.ws.rsjakarta.ws.rs-api2.1.6jarEPL 2.0GPL2 w/ CPE
    javax.activationactivation1.1.1jarCOMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
    javax.activationjavax.activation-api1.2.0jarCDDL/GPLv2+CE
    javax.annotationjavax.annotation-api1.3.2jarCDDL + GPLv2 with classpath exception
    javax.mailjavax.mail-api1.5.4jarCDDL/GPLv2+CE
    javax.xml.bindjaxb-api2.3.1jarCDDL 1.1GPL2 w/ CPE
    joda-timejoda-time2.9.2jarApache 2
    net.java.dev.jnajna4.2.2jarLGPL, version 2.1ASL, version 2
    net.javacrumbs.shedlockshedlock-core0.18.2jarThe Apache Software License, Version 2.0
    net.javacrumbs.shedlockshedlock-provider-jdbc-internal0.18.2jarThe Apache Software License, Version 2.0
    net.javacrumbs.shedlockshedlock-provider-jdbc-template0.18.2jarThe Apache Software License, Version 2.0
    net.javacrumbs.shedlockshedlock-spring0.18.2jarThe Apache Software License, Version 2.0
    net.sf.jopt-simplejopt-simple5.0.2jarThe MIT License
    org.apache.commonscommons-collections44.1jarApache License, Version 2.0
    org.apache.commonscommons-compress1.19jarApache License, Version 2.0
    org.apache.commonscommons-csv1.9.0jarApache License, Version 2.0
    org.apache.commonscommons-lang33.6jarApache License, Version 2.0
    org.apache.commonscommons-math33.6.1jarApache License, Version 2.0
    org.apache.httpcomponentshttpasyncclient4.1.4jarApache License, Version 2.0
    org.apache.httpcomponentshttpclient4.5.1jarApache License, Version 2.0
    org.apache.httpcomponentshttpcore4.4.12jarApache License, Version 2.0
    org.apache.httpcomponentshttpcore-nio4.4.12jarApache License, Version 2.0
    org.apache.httpcomponentshttpmime4.5.13jarApache License, Version 2.0
    org.apache.logging.log4jlog4j-api2.11.1jarApache License, Version 2.0
    org.apache.lucenelucene-analyzers-common8.4.0jarApache 2
    org.apache.lucenelucene-backward-codecs8.4.0jarApache 2
    org.apache.lucenelucene-core8.4.0jarApache 2
    org.apache.lucenelucene-grouping8.4.0jarApache 2
    org.apache.lucenelucene-highlighter8.4.0jarApache 2
    org.apache.lucenelucene-join8.4.0jarApache 2
    org.apache.lucenelucene-memory8.4.0jarApache 2
    org.apache.lucenelucene-misc8.4.0jarApache 2
    org.apache.lucenelucene-queries8.4.0jarApache 2
    org.apache.lucenelucene-queryparser8.4.0jarApache 2
    org.apache.lucenelucene-sandbox8.4.0jarApache 2
    org.apache.lucenelucene-spatial8.4.0jarApache 2
    org.apache.lucenelucene-spatial-extras8.4.0jarApache 2
    org.apache.lucenelucene-spatial3d8.4.0jarApache 2
    org.apache.lucenelucene-suggest8.4.0jarApache 2
    org.apache.mavenmaven-model3.3.3jarApache License, Version 2.0
    org.apache.maven.sharedmaven-invoker3.0.1jarApache License, Version 2.0
    org.apache.maven.sharedmaven-shared-utils3.2.1jarApache License, Version 2.0
    org.apache.poipoi4.1.2jarApache License, Version 2.0
    org.apache.poipoi-ooxml4.1.2jarApache License, Version 2.0
    org.apache.poipoi-ooxml-schemas4.1.2jarApache License, Version 2.0
    org.apache.santuarioxmlsec1.5.7jarThe Apache Software License, Version 2.0
    org.apache.tikatika-core1.7jarThe Apache Software License, Version 2.0
    org.apache.xmlbeansxmlbeans3.1.0jarThe Apache Software License, Version 2.0
    org.aspectjaspectjweaver1.9.5jarEclipse Public License - v 1.0
    org.bouncycastlebcpkix-jdk15on1.60jarBouncy Castle Licence
    org.bouncycastlebcprov-jdk15on1.60jarBouncy Castle Licence
    org.checkerframeworkchecker-qual3.10.0jarThe MIT License
    org.codehaus.mojoanimal-sniffer-annotations1.14jarMIT license
    org.codehaus.plexusplexus-component-annotations1.7.1jarApache License, Version 2.0
    org.codehaus.plexusplexus-utils3.0.20jarThe Apache Software License, Version 2.0
    org.controlsfxcontrolsfx11.1.1jarThe 3-Clause BSD License
    org.easymockeasymock3.5.1jarApache 2
    org.elasticsearchelasticsearch7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchelasticsearch-cli7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchelasticsearch-core7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchelasticsearch-geo7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchelasticsearch-secure-sm7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchelasticsearch-ssl-config7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchelasticsearch-x-content7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearchjna4.5.1jarThe Apache Software License, Version 2.0
    org.elasticsearch.clientelasticsearch-rest-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.clientelasticsearch-rest-high-level-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.clienttransport7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginaggs-matrix-stats-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginlang-mustache-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginmapper-extras-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginparent-join-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginpercolator-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginrank-eval-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.pluginreindex-client7.6.2jarThe Apache Software License, Version 2.0
    org.elasticsearch.plugintransport-netty4-client7.6.2jarThe Apache Software License, Version 2.0
    org.glassfishjavax.json1.0.4jarDual license consisting of the CDDL v1.1 and GPL v2
    org.glassfish.grizzlygrizzly-framework2.4.4jarEPL-2.0
    org.glassfish.grizzlygrizzly-http2.4.4jarEPL-2.0
    org.glassfish.grizzlygrizzly-http-server2.4.4jarEPL-2.0
    org.glassfish.hk2hk2-api2.6.1jarEPL 2.0GPL2 w/ CPE
    org.glassfish.hk2hk2-locator2.6.1jarEPL 2.0GPL2 w/ CPE
    org.glassfish.hk2hk2-utils2.6.1jarEPL 2.0GPL2 w/ CPE
    org.glassfish.hk2osgi-resource-locator1.0.3jarEPL 2.0GPL2 w/ CPE
    org.glassfish.hk2.externalaopalliance-repackaged2.6.1jarEPL 2.0GPL2 w/ CPE
    org.glassfish.hk2.externaljakarta.inject2.6.1jarEPL 2.0GPL2 w/ CPE
    org.glassfish.jersey.containersjersey-container-grizzly2-http2.35jarEPL 2.0GPL2 w/ CPEEDL 1.0BSD 2-ClauseApache License, 2.0Public DomainModified BSDjQuery licenseMIT licenseW3C license
    org.glassfish.jersey.corejersey-client2.35jarEPL 2.0GPL2 w/ CPEEDL 1.0BSD 2-ClauseApache License, 2.0Public DomainModified BSDjQuery licenseMIT licenseW3C license
    org.glassfish.jersey.corejersey-common2.35jarEPL 2.0The GNU General Public License (GPL), Version 2, With Classpath ExceptionApache License, 2.0Public Domain
    org.glassfish.jersey.corejersey-server2.35jarEPL 2.0The GNU General Public License (GPL), Version 2, With Classpath ExceptionApache License, 2.0Modified BSD
    org.glassfish.jersey.extjersey-entity-filtering2.35jarEPL 2.0GPL2 w/ CPEEDL 1.0BSD 2-ClauseApache License, 2.0Public DomainModified BSDjQuery licenseMIT licenseW3C license
    org.glassfish.jersey.injectjersey-hk22.35jarEPL 2.0GPL2 w/ CPEEDL 1.0BSD 2-ClauseApache License, 2.0Public DomainModified BSDjQuery licenseMIT licenseW3C license
    org.glassfish.jersey.mediajersey-media-json-jackson2.35jarEPL 2.0The GNU General Public License (GPL), Version 2, With Classpath ExceptionApache License, 2.0
    org.hdrhistogramHdrHistogram2.1.9jarPublic Domain, per Creative Commons CC0
    org.hsqldbhsqldb2.5.2jarHSQLDB License, a BSD open source license
    org.javassistjavassist3.25.0-GAjarMPL 1.1LGPL 2.1Apache License 2.0
    org.jooqjooq3.14.15jarApache License, Version 2.0
    org.jooqjooq-meta3.14.15jarApache License, Version 2.0
    org.jooqjooq-meta-extensions3.14.15jarApache License, Version 2.0
    org.jooqjooq-meta-extensions-liquibase3.14.15jarApache License, Version 2.0
    org.jsonjson20220924jarPublic Domain
    org.liquibaseliquibase-core3.10.3jarApache License, Version 2.0
    org.mnode.ical4jical4j3.0.5jariCal4j - License
    org.objenesisobjenesis2.6jarApache 2
    org.reactivestreamsreactive-streams1.0.2jarCC0
    org.slf4jjul-to-slf4j1.7.10jarMIT License
    org.slf4jslf4j-api1.7.10jarMIT License
    org.springframeworkspring-aop5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-aspects5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-beans5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-context5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-context-support5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-core5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-expression5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-jcl5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-jdbc5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-tx5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-web5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-webmvc5.2.6.RELEASEjarApache License, Version 2.0
    org.springframework.dataspring-data-commons2.3.0.RELEASEjarApache License, Version 2.0
    org.springframework.dataspring-data-elasticsearch4.0.0.RELEASEjarApache License, Version 2.0
    org.springframework.ldapspring-ldap-core2.3.4.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-config5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-core5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-jwt1.0.9.RELEASEjarApache 2.0
    org.springframework.securityspring-security-web5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.security.kerberosspring-security-kerberos-core1.0.1.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.security.kerberosspring-security-kerberos-web1.0.1.RELEASEjarThe Apache Software License, Version 2.0
    org.telegramtelegrambots6.3.0jarMIT License
    org.telegramtelegrambots-meta6.3.0jarMIT License
    org.yamlsnakeyaml1.17jarApache License, Version 2.0
    org.zeroturnaroundzt-exec1.12jarThe Apache Software License, Version 2.0
    org.zeroturnaroundzt-process-killer1.10jarThe Apache Software License, Version 2.0
    org.zeroturnaroundzt-zip1.15jarThe Apache Software License, Version 2.0
    ru.cg.webbpm.modulesexpression3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modulesinject3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modulesstandard-annotations3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.moduleswebkit-annotations3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.moduleswebkit-base3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.moduleswebkit-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.moduleswebkit-rpc3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.bpmnbpmn-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.coreapp-info3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.coreerror-handling-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.coremetrics3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.databasedatabase-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.jndijndi-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.jndijndi-inject3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-adapter3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-db-synchronization-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-db-synchronization-ldap-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-esia3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studioresources3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.basecore-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.baseplatform-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.bpmnbpmn-core-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.bpmnwebbpm-process-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.databasedatabase-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.databasedatabase-models3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.page-designerserialized-page-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.script-editorserialized-object-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.scriptingcompile-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.scriptingmetadata-models3.143.0-SNAPSHOTjar-
    ru.fixaggregating-profiler1.4.7jarThe Apache License, Version 2.0
    ru.micord.fiasclient2.24.1jar-
    ru.micord.gargar-client2.6.0jar-
    ru.micord.gargar-core2.6.0jar-
    +

    runtime

    +

    The following is a list of runtime dependencies for this project. These dependencies are required to run the application:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    com.sun.activationjakarta.activation1.2.2jarEDL 1.0
    io.jsonwebtokenjjwt-impl0.10.5jarApache License, Version 2.0
    xercesxercesImpl2.11.0jarThe Apache Software License, Version 2.0
    xml-apisxml-apis1.4.01jarThe Apache Software License, Version 2.0The SAX LicenseThe W3C License
    +

    provided

    +

    The following is a list of provided dependencies for this project. These dependencies are required to compile the application, but should be provided by default when using the library:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicenses
    com.zaxxerHikariCP2.4.0jarThe Apache Software License, Version 2.0
    jakarta.xml.bindjakarta.xml.bind-api2.3.3jarEclipse Distribution License - v 1.0
    javaxjavaee-api7.0jarCDDL + GPLv2 with classpath exception
    org.postgresqlpostgresql42.5.2jarBSD-2-Clause
    org.xerialsqlite-jdbc3.34.0jarThe Apache Software License, Version 2.0
    ru.cg.webbpm.modules.corecore-runtime-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.databasedatabase-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.databasedatabase-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.resourcesresources-api3.143.0-SNAPSHOTjar-
    +

    Project Dependency Graph

    + +
    +

    Dependency Tree

    +
    +

    Licenses

    +

    MPL 2.0 or EPL 1.0: H2 Database Engine

    +

    Apache 2.0: Spring Security JWT Library, error-prone annotations

    +

    The Apache License, Version 2.0: ru.fix:aggregating-profiler

    +

    MIT License: JUL to SLF4J bridge, SLF4J API Module, Telegram Bots, Telegram Bots Meta

    +

    jQuery license: jersey-container-grizzly2-http, jersey-core-client, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    GPL2 w/ CPE: HK2 API module, HK2 Implementation Utilities, Jakarta Annotations API, OSGi resource locator, ServiceLocator Default Implementation, aopalliance version 1.0 repackaged as a module, jakarta.ws.rs-api, javax.inject:1 as OSGi bundle, jaxb-api, jersey-container-grizzly2-http, jersey-core-client, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    CDDL/GPLv2+CE: JavaBeans Activation Framework API jar, JavaMail API, JavaMail API jar

    +

    Apache 2: EasyMock, Joda-Time, Lucene Common Analyzers, Lucene Core, Lucene Grouping, Lucene Highlighter, Lucene Join, Lucene Memory, Lucene Miscellaneous, Lucene Queries, Lucene QueryParsers, Lucene Sandbox, Lucene Spatial, Lucene Spatial 3D, Lucene Spatial Extras, Lucene Suggest, Objenesis

    +

    CC0: reactive-streams

    +

    Unknown: OAuth2Esia, app-info, backend, bpmn-beans, bpmn-core-api, client, compile-api, converters, core-api, core-runtime-api, database-api, database-beans, database-impl, database-models, error-handling-api, expression, frontend, gar-client, gar-core, inject, jndi-beans, jndi-inject, metadata-models, metrics, platform-api, resources, resources-api, security-adapter, security-api, security-beans, security-db-synchronization-api, security-db-synchronization-ldap-impl, security-esia, serialized-object-api, serialized-page-api, standard-annotations, webbpm-process-api, webkit-annotations, webkit-base, webkit-beans, webkit-rpc

    +

    Public Domain, per Creative Commons CC0: HdrHistogram

    +

    Apache License 2.0: Jakarta Bean Validation API, Javassist, compiler

    +

    BSD License: curvesapi

    +

    The MIT License: Checker Qual, JOpt Simple

    +

    Apache License, Version 2.0: Apache Commons CSV, Apache Commons Collections, Apache Commons Compress, Apache Commons Lang, Apache Commons Math, Apache HttpAsyncClient, Apache HttpClient, Apache HttpClient Mime, Apache HttpCore, Apache HttpCore NIO, Apache Log4j API, Apache Maven Invoker, Apache Maven Shared Utils, Apache POI, Caffeine cache, JJWT :: API, JJWT :: Extensions :: Jackson, JJWT :: Impl, Liquibase, Maven Model, Netty/Buffer, Netty/Codec, Netty/Codec/HTTP, Netty/Common, Netty/Handler, Netty/Resolver, Netty/Transport, Plexus :: Component Annotations, SnakeYAML, Spring AOP, Spring Aspects, Spring Beans, Spring Commons Logging Bridge, Spring Context, Spring Context Support, Spring Core, Spring Data Core, Spring Data Elasticsearch, Spring Expression Language (SpEL), Spring JDBC, Spring Transaction, Spring Web, Spring Web MVC, jOOQ, jOOQ Meta, jOOQ Meta Extensions, jOOQ Meta Extensions Liquibase

    +

    COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0: JavaBeans(TM) Activation Framework

    +

    EPL 2.0: HK2 API module, HK2 Implementation Utilities, Jakarta Annotations API, OSGi resource locator, ServiceLocator Default Implementation, aopalliance version 1.0 repackaged as a module, jakarta.ws.rs-api, javax.inject:1 as OSGi bundle, jersey-container-grizzly2-http, jersey-core-client, jersey-core-common, jersey-core-server, jersey-ext-entity-filtering, jersey-inject-hk2, jersey-media-json-jackson

    +

    MIT license: Animal Sniffer Annotations, jersey-container-grizzly2-http, jersey-core-client, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    MPL 1.1: Javassist

    +

    LGPL, version 2.1: Java Native Access

    +

    BSD 2-Clause: jersey-container-grizzly2-http, jersey-core-client, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    Apache License, 2.0: jersey-container-grizzly2-http, jersey-core-client, jersey-core-common, jersey-core-server, jersey-ext-entity-filtering, jersey-inject-hk2, jersey-media-json-jackson

    +

    CDDL 1.1: jaxb-api

    +

    The SAX License: XML Commons External Components XML APIs

    +

    The 3-Clause BSD License: ControlsFX

    +

    HSQLDB License, a BSD open source license: HyperSQL Database

    +

    BSD-2-Clause: PostgreSQL JDBC Driver

    +

    The W3C License: XML Commons External Components XML APIs

    +

    Public Domain: JSON in Java, jersey-container-grizzly2-http, jersey-core-client, jersey-core-common, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    GNU Lesser General Public License: Logback Classic Module, Logback Core Module

    +

    Bouncy Castle Licence: Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs, Bouncy Castle Provider

    +

    W3C license: jersey-container-grizzly2-http, jersey-core-client, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    EDL 1.0: Jakarta Activation, jersey-container-grizzly2-http, jersey-core-client, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    iCal4j - License: ical4j

    +

    Modified BSD: jersey-container-grizzly2-http, jersey-core-client, jersey-core-server, jersey-ext-entity-filtering, jersey-inject-hk2

    +

    Eclipse Distribution License - v 1.0: Jakarta XML Binding API, Old JAXB Runtime

    +

    LGPL 2.1: Javassist

    +

    ASL, version 2: Java Native Access

    +

    CDDL + GPLv2 with classpath exception: Java(TM) EE 7 Specification APIs, javax.annotation API

    +

    Dual license consisting of the CDDL v1.1 and GPL v2: JSR 353 (JSON Processing) Default Provider

    +

    EPL-2.0: grizzly-framework, grizzly-http, grizzly-http-server

    +

    The Apache Software License, Version 2.0: Apache Tika core, Apache XML Security for Java, Commons Codec, Commons IO, Commons Lang, Commons Logging, Elastic JNA Distribution, FindBugs-jsr305, Gson, Guava: Google Core Libraries for Java, HPPC Collections, HikariCP, J2ObjC Annotations, Jackson dataformat: CBOR, Jackson dataformat: Smile, Jackson datatype: JSR310, Jackson module: Old JAXB Annotations (javax.xml.bind), Jackson-JAXRS: JSON, Jackson-JAXRS: base, Jackson-annotations, Jackson-core, Jackson-dataformat-YAML, Plexus Common Utilities, SQLite JDBC, SparseBitSet, Spring Security Kerberos Core, Spring Security Kerberos Web, T-Digest, XML Commons External Components XML APIs, Xerces2-j, XmlBeans, ZT Process Executor, ZT Process Killer, ZT Zip, aggs-matrix-stats, elasticsearch-cli, elasticsearch-core, elasticsearch-geo, elasticsearch-secure-sm, elasticsearch-ssl-config, elasticsearch-x-content, hazelcast, hazelcast-spring, jackson-databind, lang-mustache, mapper-extras, parent-join, percolator, rank-eval, reindex, rest, rest-high-level, server, shedlock-core, shedlock-provider-jdbc-internal, shedlock-provider-jdbc-template, shedlock-spring, spring-ldap-core, spring-security-config, spring-security-core, spring-security-web, transport, transport-netty4

    +

    Eclipse Public License - v 1.0: AspectJ weaver, Logback Classic Module, Logback Core Module

    +

    The GNU General Public License (GPL), Version 2, With Classpath Exception: jersey-core-common, jersey-core-server, jersey-media-json-jackson

    +

    Dependency File Details

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    FilenameSizeEntriesClassesPackagesJava VersionDebug InformationSealed
    OAuth2Esia-1.1.jar34.5 kB362431.5YesNo
    logback-classic-1.2.3.jar290.3 kB234175271.6YesNo
    logback-core-1.2.3.jar471.9 kB419373361.6YesNo
    hppc-0.8.1.jar1.2 MB96495051.7YesNo
    jackson-annotations-2.12.4.jar75.7 kB84722-YesNo
    jackson-core-2.12.4.jar365.2 kB15112513-YesNo
    jackson-databind-2.12.4.jar1.5 MB73770123-YesNo
    jackson-dataformat-cbor-2.8.11.jar50.7 kB23911.7YesNo
    jackson-dataformat-smile-2.8.11.jar73.9 kB321721.7YesNo
    jackson-dataformat-yaml-2.8.11.jar40.9 kB311321.7YesNo
    jackson-datatype-jsr310-2.12.4.jar120.4 kB79597-YesNo
    jackson-jaxrs-base-2.14.0.jar31.9 kB37195-YesNo
    jackson-jaxrs-json-provider-2.14.0.jar16.7 kB31113-YesNo
    jackson-module-jaxb-annotations-2.14.0.jar36.8 kB34144-YesNo
    caffeine-2.9.2.jar925.3 kB70369241.8YesNo
    compiler-0.9.10.jar111.5 kB1069071.8YesNo
    curvesapi-1.06.jar111.9 kB12010161.5YesNo
    jsr305-1.3.9.jar33 kB723531.5YesNo
    gson-2.3.1.jar210.9 kB17516561.5YesNo
    error_prone_annotations-2.0.18.jar12.1 kB311921.7NoNo
    guava-23.4-jre.jar2.7 MB19461916181.8YesNo
    j2objc-annotations-1.1.jar8.8 kB231211.5YesNo
    h2-1.4.199.jar2.2 MB87787244-YesNo
    hazelcast-4.1.9.jar11.6 MB752469834671.8YesNo
    hazelcast-spring-4.1.4.jar163.1 kB472851.8YesNo
    jakarta.activation-1.2.2.jar68.5 kB61434-YesNo
    javax.mail-1.5.1.jar545.4 kB342311141.5YesNo
    jaxb-impl-2.3.3.jar1.1 MB92372432-YesNo
    t-digest-3.2.jar51.2 kB291811.7YesNo
    HikariCP-2.4.0.jar125.4 kB897461.7YesNo
    SparseBitSet-1.2.jar24.5 kB251511.5YesNo
    commons-codec-1.6.jar232.8 kB2187661.5YesNo
    commons-io-2.4.jar185.1 kB12811061.6YesNo
    commons-lang-2.6.jar284.2 kB155133101.3YesNo
    commons-logging-1.1.1.jar60.7 kB422821.1YesNo
    jjwt-api-0.10.5.jar74.8 kB887641.7YesNo
    jjwt-impl-0.10.5.jar68 kB665341.7YesNo
    jjwt-jackson-0.10.5.jar4.7 kB12211.7YesNo
    netty-buffer-4.1.43.Final.jar277.4 kB13311711.6YesNo
    netty-codec-4.1.43.Final.jar318.4 kB220198101.6YesNo
    netty-codec-http-4.1.43.Final.jar594.7 kB38135591.6YesNo
    netty-common-4.1.43.Final.jar605.4 kB48845891.6YesNo
    netty-handler-4.1.43.Final.jar441.3 kB302275111.6YesNo
    netty-resolver-4.1.43.Final.jar32.8 kB382611.6YesNo
    netty-transport-4.1.43.Final.jar474 kB387359121.6YesNo
    jakarta.annotation-api-1.3.5.jar25.1 kB281531.8YesNo
    jakarta.validation-api-2.0.2.jar91.9 kB16014391.8YesNo
    jakarta.ws.rs-api-2.1.6.jar140.4 kB1551387-YesNo
    jakarta.xml.bind-api-2.3.3.jar115.6 kB1371117-YesNo
    javaee-api-7.0.jar1.9 MB238922381331.7YesNo
    activation-1.1.1.jar69.4 kB503831.4YesNo
    javax.activation-api-1.2.0.jar56.7 kB413111.5YesNo
    javax.annotation-api-1.3.2.jar26.6 kB291531.8YesNo
    javax.mail-api-1.5.4.jar194 kB14813451.5YesNo
    jaxb-api-2.3.1.jar128.1 kB1361117-YesNo
    joda-time-2.9.2.jar625.6 kB75224671.5YesNo
    jna-4.2.2.jar1.1 MB15410731.6YesNo
    shedlock-core-0.18.2.jar13.4 kB281621.8YesNo
    shedlock-provider-jdbc-internal-0.18.2.jar5.1 kB14111.8YesNo
    shedlock-provider-jdbc-template-0.18.2.jar4.3 kB14211.8YesNo
    shedlock-spring-0.18.2.jar13.3 kB211011.8YesNo
    jopt-simple-5.0.2.jar78.1 kB715931.7YesNo
    commons-collections4-4.1.jar751.2 kB548518181.6YesNo
    commons-compress-1.19.jar615.1 kB395354291.7YesNo
    commons-csv-1.9.0.jar51.3 kB301711.8YesNo
    commons-lang3-3.6.jar494.9 kB292267131.7YesNo
    commons-math3-3.6.1.jar2.2 MB14021301751.5YesNo
    httpasyncclient-4.1.4.jar180 kB1118681.6YesNo
    httpclient-4.5.1.jar732.8 kB502461241.6YesNo
    httpcore-4.4.12.jar328.3 kB283253171.6YesNo
    httpcore-nio-4.4.12.jar367.7 kB270241141.6YesNo
    httpmime-4.5.13.jar41.8 kB402321.6YesNo
    log4j-api-2.11.1.jar264.1 kB1941628-YesNo
    lucene-analyzers-common-8.4.0.jar1.7 MB693579631.8YesNo
    lucene-backward-codecs-8.4.0.jar139.4 kB1018641.8YesNo
    lucene-core-8.4.0.jar3.3 MB20751978271.8YesNo
    lucene-grouping-8.4.0.jar90.8 kB665711.8YesNo
    lucene-highlighter-8.4.0.jar209.2 kB14313231.8YesNo
    lucene-join-8.4.0.jar148.9 kB11210311.8YesNo
    lucene-memory-8.4.0.jar51.9 kB372011.8YesNo
    lucene-misc-8.4.0.jar99 kB805781.8YesNo
    lucene-queries-8.4.0.jar369.8 kB29828471.8YesNo
    lucene-queryparser-8.4.0.jar382.1 kB292254251.8YesNo
    lucene-sandbox-8.4.0.jar320.7 kB18716061.8YesNo
    lucene-spatial-8.4.0.jar14.5 kB13421.8YesNo
    lucene-spatial-extras-8.4.0.jar240.3 kB164147101.8YesNo
    lucene-spatial3d-8.4.0.jar306.8 kB15214321.8YesNo
    lucene-suggest-8.4.0.jar249.5 kB14913171.8YesNo
    maven-model-3.3.3.jar160.8 kB675031.7YesNo
    maven-invoker-3.0.1.jar33 kB341711.7YesNo
    maven-shared-utils-3.2.1.jar166.6 kB10984101.6YesNo
    poi-4.1.2.jar2.9 MB18431764661.8YesNo
    poi-ooxml-4.1.2.jar1.9 MB942878481.8YesNo
    poi-ooxml-schemas-4.1.2.jar7.9 MB75434261501.8NoNo
    xmlsec-1.5.7.jar656 kB484393321.5YesNo
    tika-core-1.7.jar526.2 kB294235171.6YesNo
    xmlbeans-3.1.0.jar2.6 MB20921373511.6YesNo
    aspectjweaver-1.9.5.jar2 MB1020968361.8YesNo
    bcpkix-jdk15on-1.60.jar796.5 kB723674421.5NoNo
    bcprov-jdk15on-1.60.jar4.2 MB349433301491.5NoNo
    checker-qual-3.10.0.jar207 kB396330291.8YesNo
    animal-sniffer-annotations-1.14.jar3.5 kB12111.5NoNo
    plexus-component-annotations-1.7.1.jar4.3 kB15311.6NoNo
    plexus-utils-3.0.20.jar243.1 kB12910491.5YesNo
    controlsfx-11.1.1.jar1.4 MB77065241-YesNo
    easymock-3.5.1.jar540.2 kB404375131.6YesNo
    elasticsearch-7.6.2.jar11.8 MB63846048286-YesNo
    elasticsearch-cli-7.6.2.jar17.1 kB16911.8YesNo
    elasticsearch-core-7.6.2.jar44.7 kB492310-YesNo
    elasticsearch-geo-7.6.2.jar45 kB312321.8YesNo
    elasticsearch-secure-sm-7.6.2.jar11 kB12511.8YesNo
    elasticsearch-ssl-config-7.6.2.jar66.6 kB413311.8YesNo
    elasticsearch-x-content-7.6.2.jar132.5 kB1028881.8YesNo
    jna-4.5.1.jar885.3 kB14010731.6YesNo
    elasticsearch-rest-client-7.6.2.jar63.6 kB494211.8YesNo
    elasticsearch-rest-high-level-client-7.6.2.jar1.5 MB824763491.8YesNo
    transport-7.6.2.jar7.6 kB9111.8YesNo
    aggs-matrix-stats-client-7.6.2.jar60.6 kB443051.8YesNo
    lang-mustache-client-7.6.2.jar62.7 kB423411.8YesNo
    mapper-extras-client-7.6.2.jar88.9 kB605121.8YesNo
    parent-join-client-7.6.2.jar82.8 kB544151.8YesNo
    percolator-client-7.6.2.jar74.8 kB332611.8YesNo
    rank-eval-client-7.6.2.jar77 kB382811.8YesNo
    reindex-client-7.6.2.jar116.7 kB554621.8YesNo
    transport-netty4-client-7.6.2.jar74.1 kB463541.8YesNo
    javax.json-1.0.4.jar85.1 kB887251.6YesNo
    grizzly-framework-2.4.4.jar852 kB619583231.8YesNo
    grizzly-http-2.4.4.jar349.5 kB17816331.8YesNo
    grizzly-http-server-2.4.4.jar312 kB19717781.8YesNo
    hk2-api-2.6.1.jar200.2 kB19717671.8YesNo
    hk2-locator-2.6.1.jar203.4 kB1179931.8YesNo
    hk2-utils-2.6.1.jar131.6 kB1028071.8YesNo
    osgi-resource-locator-1.0.3.jar19.5 kB231211.6YesNo
    aopalliance-repackaged-2.6.1.jar27 kB412641.8YesNo
    jakarta.inject-2.6.1.jar18.1 kB17611.8NoNo
    jersey-container-grizzly2-http-2.35.jar42.3 kB401821.8YesNo
    jersey-client-2.35.jar260.5 kB191162101.8YesNo
    jersey-common-2.35.jar1.2 MB92486923-YesNo
    jersey-server-2.35.jar948.9 kB666607271.8YesNo
    jersey-entity-filtering-2.35.jar84 kB765931.8YesNo
    jersey-hk2-2.35.jar78.4 kB684611.8YesNo
    jersey-media-json-jackson-2.35.jar75.9 kB654081.8YesNo
    HdrHistogram-2.1.9.jar114.2 kB685911.6YesNo
    hsqldb-2.5.2.jar1.6 MB754690221.8NoYes
    javassist-3.25.0-GA.jar780.3 kB449425171.7YesNo
    jooq-3.14.15.jar3.2 MB20652024211.8YesNo
    jooq-meta-3.14.15.jar683.6 kB381334341.8YesNo
    jooq-meta-extensions-3.14.15.jar11.2 kB18421.8YesNo
    jooq-meta-extensions-liquibase-3.14.15.jar6.4 kB15111.8YesNo
    json-20220924.jar70.3 kB362711.6YesNo
    liquibase-core-3.10.3.jar3.2 MB224319231171.8YesNo
    ical4j-3.0.5.jar1.3 MB1527531161.8YesNo
    objenesis-2.6.jar55.7 kB5943101.6YesNo
    postgresql-42.5.2.jar1 MB536469441.8YesNo
    reactive-streams-1.0.2.jar2.1 kB8411.6NoNo
    jul-to-slf4j-1.7.10.jar4.7 kB11111.5YesNo
    slf4j-api-1.7.10.jar32.1 kB392831.5YesNo
    spring-aop-5.2.6.RELEASE.jar372.3 kB306277171.8YesNo
    spring-aspects-5.2.6.RELEASE.jar47.4 kB472851.8YesNo
    spring-beans-5.2.6.RELEASE.jar686.5 kB413383131.8YesNo
    spring-context-5.2.6.RELEASE.jar1.2 MB964877641.8YesNo
    spring-context-support-5.2.6.RELEASE.jar182.4 kB140119111.8YesNo
    spring-core-5.2.6.RELEASE.jar1.4 MB1020962471.8YesNo
    spring-expression-5.2.6.RELEASE.jar282.2 kB16415061.8YesNo
    spring-jcl-5.2.6.RELEASE.jar24 kB281721.8YesNo
    spring-jdbc-5.2.6.RELEASE.jar407.2 kB315285171.8YesNo
    spring-tx-5.2.6.RELEASE.jar314.4 kB288254201.8YesNo
    spring-web-5.2.6.RELEASE.jar1.4 MB994924551.8YesNo
    spring-webmvc-5.2.6.RELEASE.jar955 kB586541281.8YesNo
    spring-data-commons-2.3.0.RELEASE.jar1.2 MB830759421.8YesNo
    spring-data-elasticsearch-4.0.0.RELEASE.jar557.9 kB370319251.8YesNo
    spring-ldap-core-2.3.4.RELEASE.jar378.4 kB340300271.6YesNo
    spring-security-config-5.2.6.RELEASE.jar862.2 kB382309351.8YesNo
    spring-security-core-5.2.6.RELEASE.jar445.7 kB410334491.8YesNo
    spring-security-jwt-1.0.9.RELEASE.jar37.2 kB412641.6YesNo
    spring-security-web-5.2.6.RELEASE.jar568 kB470401521.8YesNo
    spring-security-kerberos-core-1.0.1.RELEASE.jar20.6 kB231521.6YesNo
    spring-security-kerberos-web-1.0.1.RELEASE.jar7.1 kB11311.6YesNo
    telegrambots-6.3.0.jar58.2 kB442871.8YesNo
    telegrambots-meta-6.3.0.jar982.2 kB573510521.8YesNo
    sqlite-jdbc-3.34.0.jar7.3 MB16010471.8YesNo
    snakeyaml-1.17.jar273.6 kB242206191.5YesNo
    zt-exec-1.12.jar57.1 kB625261.6YesNo
    zt-process-killer-1.10.jar32.6 kB362931.7YesNo
    zt-zip-1.15.jar111.7 kB968651.6YesNo
    expression-3.143.0-SNAPSHOT.jar24.6 kB362131.8YesNo
    inject-3.143.0-SNAPSHOT.jar5.4 kB16311.8YesNo
    standard-annotations-3.143.0-SNAPSHOT.jar10.4 kB311531.8NoNo
    webkit-annotations-3.143.0-SNAPSHOT.jar4.9 kB19511.8NoNo
    webkit-base-3.143.0-SNAPSHOT.jar11.6 kB20621.8YesNo
    webkit-beans-3.143.0-SNAPSHOT.jar11.9 kB18411.8YesNo
    webkit-rpc-3.143.0-SNAPSHOT.jar17.1 kB301241.8YesNo
    bpmn-beans-3.143.0-SNAPSHOT.jar16.3 kB351741.8YesNo
    app-info-3.143.0-SNAPSHOT.jar4.8 kB18211.8YesNo
    core-runtime-api-3.143.0-SNAPSHOT.jar7 kB20511.8YesNo
    error-handling-api-3.143.0-SNAPSHOT.jar10.7 kB27821.8YesNo
    metrics-3.143.0-SNAPSHOT.jar5.1 kB16211.8YesNo
    database-api-3.143.0-SNAPSHOT.jar46.1 kB6739121.8YesNo
    database-beans-3.143.0-SNAPSHOT.jar46.6 kB543381.8YesNo
    database-impl-3.143.0-SNAPSHOT.jar69 kB6333131.8YesNo
    jndi-beans-3.143.0-SNAPSHOT.jar7.6 kB24521.8YesNo
    jndi-inject-3.143.0-SNAPSHOT.jar5.3 kB16111.8YesNo
    resources-api-3.143.0-SNAPSHOT.jar8.5 kB22811.8YesNo
    security-adapter-3.143.0-SNAPSHOT.jar5.5 kB17311.8YesNo
    security-api-3.143.0-SNAPSHOT.jar273.2 kB255116211.8YesNo
    security-beans-3.143.0-SNAPSHOT.jar5.2 kB17311.8YesNo
    security-db-synchronization-api-3.143.0-SNAPSHOT.jar18.7 kB311241.8YesNo
    security-db-synchronization-ldap-impl-3.143.0-SNAPSHOT.jar23.2 kB351541.8YesNo
    security-esia-3.143.0-SNAPSHOT.jar5.7 kB18321.8YesNo
    backend-3.143.0-SNAPSHOT.jar793.9 kB8126241241.8YesNo
    converters-3.143.0-SNAPSHOT.jar87.8 kB6935201.8YesNo
    frontend-3.143.0-SNAPSHOT.jar3.1 kB800-NoNo
    resources-3.143.0-SNAPSHOT.jar1.3 MB298624-YesNo
    core-api-3.143.0-SNAPSHOT.jar110.1 kB14611319-YesNo
    platform-api-3.143.0-SNAPSHOT.jar144.2 kB16513021-YesNo
    bpmn-core-api-3.143.0-SNAPSHOT.jar12.5 kB34145-YesNo
    webbpm-process-api-3.143.0-SNAPSHOT.jar19.4 kB41197-YesNo
    database-api-3.143.0-SNAPSHOT.jar15.9 kB34183-YesNo
    database-models-3.143.0-SNAPSHOT.jar5.1 kB1621-YesNo
    serialized-page-api-3.143.0-SNAPSHOT.jar67.1 kB714610-YesNo
    serialized-object-api-3.143.0-SNAPSHOT.jar44.7 kB59386-YesNo
    compile-api-3.143.0-SNAPSHOT.jar9.3 kB2591-YesNo
    metadata-models-3.143.0-SNAPSHOT.jar28.3 kB27141-YesNo
    aggregating-profiler-1.4.7.jar28.6 kB292221.8YesNo
    client-2.24.1.jar60 kB5836111.8YesNo
    gar-client-2.6.0.jar48.3 kB472771.8YesNo
    gar-core-2.6.0.jar67 kB836841.8YesNo
    xercesImpl-2.11.0.jar1.4 MB1035952401.3NoNo
    xml-apis-1.4.01.jar220.5 kB391346291.1NoNo
    TotalSizeEntriesClassesPackagesJava VersionDebug InformationSealed
    229130 MB855257208638521.82151
    compile: 216compile: 117.7 MBcompile: 80489compile: 67611compile: 3551-compile: 204compile: 1
    runtime: 4runtime: 1.7 MBruntime: 1553runtime: 1394runtime: 77-runtime: 2-
    provided: 9provided: 10.6 MBprovided: 3483provided: 3081provided: 224-provided: 9-
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-info.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-info.html new file mode 100644 index 00000000..b79c577c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-info.html @@ -0,0 +1,73 @@ + + + + + + + + Web-BPM Docs – Dependency Information + + + + + + +
    +
    + + + +
    +
    +
    +

    Dependency Information

    +

    Apache Maven

    +
    <dependency>
    +  <groupId>ru.cg.webbpm.packages.base</groupId>
    +  <artifactId>resources</artifactId>
    +  <version>3.143.0-SNAPSHOT</version>
    +</dependency>
    +

    Apache Buildr

    +
    'ru.cg.webbpm.packages.base:resources:jar:3.143.0-SNAPSHOT'
    +

    Apache Ivy

    +
    <dependency org="ru.cg.webbpm.packages.base" name="resources" rev="3.143.0-SNAPSHOT">
    +  <artifact name="resources" type="jar" />
    +</dependency>
    +

    Groovy Grape

    +
    @Grapes(
    +@Grab(group='ru.cg.webbpm.packages.base', module='resources', version='3.143.0-SNAPSHOT')
    +)
    +

    Gradle/Grails

    +
    compile 'ru.cg.webbpm.packages.base:resources:3.143.0-SNAPSHOT'
    +

    Scala SBT

    +
    libraryDependencies += "ru.cg.webbpm.packages.base" % "resources" % "3.143.0-SNAPSHOT"
    +

    Leiningen

    +
    [ru.cg.webbpm.packages.base/resources "3.143.0-SNAPSHOT"]
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-management.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-management.html new file mode 100644 index 00000000..17b9ab1c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/dependency-management.html @@ -0,0 +1,1167 @@ + + + + + + + + Web-BPM Docs – Project Dependency Management + + + + + + +
    +
    + + + +
    +
    +
    +

    Project Dependency Management

    +

    compile

    +

    The following is a list of compile dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile and run the submodule:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicense
    OAuth2EsiaOAuth2Esia1.1jar-
    com.fasterxml.jackson.corejackson-annotations2.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.corejackson-core2.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.corejackson-databind2.12.4jarThe Apache Software License, Version 2.0
    com.fasterxml.jackson.datatypejackson-datatype-jsr3102.12.4jarThe Apache Software License, Version 2.0
    com.github.spullara.mustache.javacompiler0.9.10jarApache License 2.0
    com.google.code.gsongson2.3.1jarThe Apache Software License, Version 2.0
    com.google.guavaguava23.4-jrejarThe Apache Software License, Version 2.0
    com.h2databaseh21.4.199jarMPL 2.0 or EPL 1.0
    com.jcabijcabi-aether0.10.1jarBSD
    com.sun.mailjavax.mail1.5.1jarCDDL/GPLv2+CE
    com.sun.xml.bindjaxb-impl2.3.3jarEclipse Distribution License - v 1.0
    commons-codeccommons-codec1.6jarThe Apache Software License, Version 2.0
    commons-configurationcommons-configuration1.10jarThe Apache Software License, Version 2.0
    commons-iocommons-io2.4jarThe Apache Software License, Version 2.0
    commons-langcommons-lang2.6jarThe Apache Software License, Version 2.0
    io.jsonwebtokenjjwt-api0.10.5jarApache License, Version 2.0
    io.jsonwebtokenjjwt-jackson0.10.5jarApache License, Version 2.0
    javax.activationactivation1.1.1jarCOMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
    javax.annotationjavax.annotation-api1.3.2jarCDDL + GPLv2 with classpath exception
    javax.mailmail1.4.7jarCDDL, GPLv2+CE
    joda-timejoda-time2.9.2jarApache 2
    mysqlmysql-connector-java8.0.25jarThe GNU General Public License, v2 with FOSS exception
    net.javacrumbs.shedlockshedlock-provider-jdbc-template0.18.2jarThe Apache Software License, Version 2.0
    net.javacrumbs.shedlockshedlock-spring0.18.2jarThe Apache Software License, Version 2.0
    org.apache.commonscommons-csv1.9.0jarApache License, Version 2.0
    org.apache.commonscommons-exec1.3jarApache License, Version 2.0
    org.apache.derbyderby10.11.1.1jarApache 2
    org.apache.mavenmaven-aether-provider3.3.9jarApache License, Version 2.0
    org.apache.poipoi4.1.2jarApache License, Version 2.0
    org.apache.poipoi-ooxml4.1.2jarApache License, Version 2.0
    org.apache.santuarioxmlsec1.5.7jarThe Apache Software License, Version 2.0
    org.apache.tikatika-core1.7jarThe Apache Software License, Version 2.0
    org.assertjassertj-core3.13.0jarApache License, Version 2.0
    org.bouncycastlebcpkix-jdk15on1.60jarBouncy Castle Licence
    org.bouncycastlebcprov-jdk15on1.60jarBouncy Castle Licence
    org.eclipse.aetheraether-api1.1.0jarEclipse Public License, Version 1.0
    org.eclipse.aetheraether-connector-basic1.1.0jarEclipse Public License, Version 1.0
    org.eclipse.aetheraether-transport-file1.1.0jarEclipse Public License, Version 1.0
    org.eclipse.aetheraether-transport-http1.1.0jarEclipse Public License, Version 1.0
    org.eclipse.jdt.core.compilerecj4.4.2jarEclipse Public License v1.0
    org.firebirdsql.jdbcjaybird4.0.3.java8jarGNU Lesser General Public License, Modified BSD (3-clause) License
    org.freemarkerfreemarker2.3.26-incubatingjarApache License, Version 2.0
    org.glassfishjavax.json1.0.4jarDual license consisting of the CDDL v1.1 and GPL v2
    org.hsqldbhsqldb2.5.2jarHSQLDB License, a BSD open source license
    org.jbossjboss-dmr1.5.0.FinaljarGNU Lesser General Public License v2.1 only, Apache License 2.0
    org.jboss.loggingjboss-logging3.3.1.FinaljarApache License, version 2.0
    org.jboss.logmanagerjboss-logmanager2.0.9.FinaljarApache License 2.0
    org.jboss.modulesjboss-modules1.5.4.Finaljarasl
    org.jboss.remotingjboss-remoting5.0.5.FinaljarApache License 2.0
    org.jboss.threadsjboss-threads2.3.1.FinaljarApache License 2.0
    org.jboss.xnioxnio-api3.6.2.FinaljarApache License 2.0
    org.jboss.xnioxnio-nio3.6.2.FinaljarApache License 2.0
    org.jbpmjbpm-bpmn27.58.0.Final-Micord-3jar-
    org.jbpmjbpm-flow7.58.0.Final-Micord-3jar-
    org.jooqjooq3.14.15jarApache License, Version 2.0
    org.jooqjooq-codegen3.14.15jarApache License, Version 2.0
    org.jooqjooq-meta3.14.15jarApache License, Version 2.0
    org.jooqjooq-meta-extensions3.14.15jarApache License, Version 2.0
    org.jooqjooq-meta-extensions-liquibase3.14.15jarApache License, Version 2.0
    org.liquibaseliquibase-core3.10.3jarApache License, Version 2.0
    org.mariadb.jdbcmariadb-java-client2.7.3jarLGPL-2.1
    org.mnode.ical4jical4j3.0.5jariCal4j - License
    org.ocpsoft.prettytimeprettytime4.0.0.FinaljarApache License
    org.postgresqlpostgresql42.5.2jarBSD-2-Clause
    org.slf4jjcl-over-slf4j1.7.10jarMIT License
    org.slf4jjul-to-slf4j1.7.10jarMIT License
    org.slf4jslf4j-api1.7.10jarMIT License
    org.slf4jslf4j-log4j121.7.10jarMIT License
    org.springframeworkspring-aop5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-aspects5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-beans5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-context5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-context-indexer5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-context-support5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-core5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-expression5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-instrument5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-jcl5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-jdbc5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-jms5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-messaging5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-orm5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-oxm5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-test5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-tx5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-web5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-webflux5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-webmvc5.2.6.RELEASEjarApache License, Version 2.0
    org.springframeworkspring-websocket5.2.6.RELEASEjarApache License, Version 2.0
    org.springframework.ldapspring-ldap-core2.3.4.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-acl5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-aspects5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-cas5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-config5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-core5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-crypto5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-data5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-jwt1.0.9.RELEASEjarApache 2.0
    org.springframework.securityspring-security-ldap5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-messaging5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-oauth2-client5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-oauth2-core5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-oauth2-jose5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-oauth2-resource-server5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-openid5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-remoting5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-rsocket5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-saml2-service-provider5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-taglibs5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-test5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.securityspring-security-web5.2.6.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.security.kerberosspring-security-kerberos-core1.0.1.RELEASEjarThe Apache Software License, Version 2.0
    org.springframework.security.kerberosspring-security-kerberos-web1.0.1.RELEASEjarThe Apache Software License, Version 2.0
    org.telegramtelegrambots6.3.0jarMIT License
    org.wildfly.clientwildfly-client-config1.0.1.FinaljarApache License 2.0
    org.wildfly.commonwildfly-common1.2.0.FinaljarApache License 2.0
    org.wildfly.corewildfly-controller-client4.0.0.FinaljarGNU Lesser General Public License v2.1 or later, Apache License 2.0
    org.wildfly.corewildfly-launcher4.0.0.FinaljarGNU Lesser General Public License v2.1 or later, Apache License 2.0
    org.wildfly.corewildfly-protocol4.0.0.FinaljarGNU Lesser General Public License v2.1 or later, Apache License 2.0
    org.wildfly.securitywildfly-elytron1.2.2.FinaljarApache License 2.0
    org.xerialsqlite-jdbc3.34.0jarThe Apache Software License, Version 2.0
    org.zeroturnaroundzt-zip1.15jarThe Apache Software License, Version 2.0
    ru.cg.webbpm.modulesstandard-annotations3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.moduleswebkit-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.moduleswebkit-rpc3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.bpmnbpmn-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.coreerror-handling-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.coremetrics3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.databasedatabase-test3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.jndijndi-beans3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.jndijndi-inject3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-adapter3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-db-synchronization-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-db-synchronization-ldap-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.securitysecurity-esia3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.packages.basebackend3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.packages.baseconverters3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.packages.basefrontend3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.basecore-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.bpmnwebbpm-process-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.databasedatabase-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.studio.subsystems.page-designerserialized-page-api3.143.0-SNAPSHOTjar-
    ru.micord.fiasclient2.24.1jar-
    ru.micord.gargar-client2.6.0jar-
    +

    runtime

    +

    The following is a list of runtime dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to run the submodule:

    + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicense
    io.jsonwebtokenjjwt-impl0.10.5jarApache License, Version 2.0
    xercesxercesImpl2.11.0jarThe Apache Software License, Version 2.0
    +

    test

    +

    The following is a list of test dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile and run unit tests for the submodule:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicense
    org.apache.commonscommons-email1.5jarApache License, Version 2.0
    org.hamcresthamcrest2.2jarBSD License 3
    org.junit.jupiterjunit-jupiter5.8.1jarEclipse Public License v2.0
    org.junit.platformjunit-platform-suite-engine1.8.1jarEclipse Public License v2.0
    org.mockitomockito-core3.8.0jarThe MIT License
    org.mockitomockito-inline3.8.0jarThe MIT License
    org.mockitomockito-junit-jupiter2.23.4jarThe MIT License
    org.powermockpowermock-api-mockito-common1.7.4jarThe Apache Software License, Version 2.0
    org.powermockpowermock-api-mockito22.0.9jarThe Apache Software License, Version 2.0
    org.powermockpowermock-module-junit42.0.9jarThe Apache Software License, Version 2.0
    org.springframeworkspring-mock2.0.8jarThe Apache Software License, Version 2.0
    +

    provided

    +

    The following is a list of provided dependencies in the DependencyManagement of this project. These dependencies can be included in the submodules to compile the submodule, but should be provided by default when using the library:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GroupIdArtifactIdVersionTypeLicense
    jakarta.xml.bindjakarta.xml.bind-api2.3.3jarEclipse Distribution License - v 1.0
    javaxjavaee-api7.0jarCDDL + GPLv2 with classpath exception
    javax.servletjavax.servlet-api3.1.0jarCDDL + GPLv2 with classpath exception
    ru.cg.webbpm.modules.bpmnbpmn-deploy3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.bpmnbpmn-variable-condition-adapter3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.bpmnbpmn-workflow-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.bpmnbpmn-workflow-jbpm3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.bpmnbpmn-workflow-jbpm-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.corecore-runtime-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.databasedatabase-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.databasedatabase-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reportingreporting-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reportingreporting-runtime-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reportingreporting-runtime-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reporting.reporting-jasperreporting-jasper-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reporting.reporting-jasperreporting-jasper-runtime-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reporting.reporting-xdocreporting-xdoc-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.reporting.reporting-xdocreporting-xdoc-runtime-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.resourcesresources-api3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.resourcesresources-impl3.143.0-SNAPSHOTjar-
    ru.cg.webbpm.modules.webkitactive-users-tracker3.143.0-SNAPSHOTjar-
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/distribution-management.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/distribution-management.html new file mode 100644 index 00000000..b89a9070 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/distribution-management.html @@ -0,0 +1,54 @@ + + + + + + + + Web-BPM Docs – Project Distribution Management + + + + + + +
    +
    + + + +
    +
    +
    +

    Overview

    +

    The following is the distribution management information used by this project.

    +

    Repository - micord

    https://repo.micord.ru/repository/packages-releases-local/
    +

    Snapshot Repository - snapshots

    https://repo.micord.ru/repository/packages-snapshots-local/
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.eot b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 00000000..af587a81 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.eot differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.svg b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 00000000..44694887 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.ttf b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 00000000..8681f1ec Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.ttf differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.woff b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 00000000..1e69f489 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/fonts/glyphicons-halflings-regular.woff differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/EmailHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/EmailHandler.html new file mode 100644 index 00000000..84be2eae --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/EmailHandler.html @@ -0,0 +1,105 @@ + + + + + + + + Web-BPM Docs – Назначение + + + + + + +
    +
    + + + +
    +
    +

    Назначение

    +

    Обработчик для отправки письма.

    +

    Свойства

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    smtpConfiguration Конфигурация SMTP-сервиса
    to Поле кому
    copy Поле копия
    hiddenCopy Поле скрытая копия
    subject Тема письма
    body Тело письма
    attachments Список прикрепленных файлов
    +
      + +
    1. В параметры (to, copy, hiddenCopy, subject, body) можно подставить выражение #{variableName}. Вместо данного выражения подставится значение указанное переменной. Например: в теле письма указано “Здравствуйте, #{user}. #{body}”. Созданы и заполнены переменные user=“Петров Дмитрий”, body=“На ваш счёт начислено 1 000 000 руб”. При запуске обработчика тело письма будет заменено на текст “Здравствуйте, Петров Дмитрий. На ваш счёт начислено 1 000 000 руб.”
    2. +
    3. Добавлена возможность выбора dao (стандартного графа - DefaultLoadDao, либо любого кастомного), это позволяет получить выборку нужной информации по письму, использовать полученную информацию в полях письма. Для этого: в параметры (to, copy, hiddenCopy, subject, body) подставляют выражение в виде @{table.column}, где table.column сущность и колонка из графа. Писем отправится столько, сколько будет получено в результате запроса строк. Каждой строке соответствует 1 письмо.
    4. +
    +

    Конфигурация SMTP-сервиса исходящей почты

    +

    Данная конфигурация задаётся в файле resources\src\main\resources\config\jndi-resources.xml

    +

    Для добавления новой конфигурации добавьте в тег jndi-resources строку вида:

    + +
    +
    <jndi-resource name="java:comp/env/webbpm/testResource" type="bpmn.handler.email_handler.SmtpConfiguration">
    +    {"host":"mail.cg.ru","port":587,"login":"iteco","password":"Qazar@375","from":"iteco@cg.ru","senderName":"Webbpm","isSecured":false}
    +</jndi-resource>
    +
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/JiraCreateIssueHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/JiraCreateIssueHandler.html new file mode 100644 index 00000000..62fbf766 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/JiraCreateIssueHandler.html @@ -0,0 +1,120 @@ + + + + + + + + Web-BPM Docs – Назначение + + + + + + +
    +
    + + + +
    +
    +

    Назначение

    +

    Обработчик для создания задачи в Jira.

    +

    Свойства, задаваемые аналитиком

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    projectKey Код проекта
    summary Название
    description Описание
    issueType Тип задачи
    assignee Исполнитель
    reporter Автор
    createdIssueId Переменная, в которую запишется идентификатор созданной задачи
    createdIssueKey Переменная, в которую запишется код созданной задачи
    +

    В параметры (summary, description, assignee, reporter) можно подставить выражение #{variableName}. Вместо данного выражения подставится значение указанное переменной.

    +

    Свойства, задаваемые на сервере приложений

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    webbpm.jira.url Jira REST API URL. Например - https://jira.micord.ru/rest/api/2/issue/
    webbpm.jira.username
    webbpm.jira.password
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/RESTHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/RESTHandler.html new file mode 100644 index 00000000..d135870c --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/RESTHandler.html @@ -0,0 +1,100 @@ + + + + + + + + Web-BPM Docs – Назначение + + + + + + +
    +
    + + + +
    +
    +

    Назначение

    +

    Обработчик для отправки REST запроса с помощью JSON.

    +

    Свойства

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    Authentication Type Тип аутентификации: NONE/BASIC
    URL URL запроса.
    Method Метод. Один из списка: GET, POST, PUT, DELETE
    Request body type Один из списка: OBJECT, ARRAY, MANUAL.
    OBJECT - в данном режиме можно заполнить массив значений в формате ключ/значение. Например {"A": 1, "B": 2, "C": 3}
    ARRAY - в данном режиме можно заполнить массив значений. Например {"A", "B", "C"}
    MANUAL - в данном режиме можно ввести произвольный JSON.
    Headers Заголовки запроса
    Cookies Cookies запроса.
    Result Результат запроса.
    Sub results Частичный результат. С помощью данного параметра можно сохранить из ответа значение параметра, указанное в качестве ключа.
    timeout Таймаут ожидания ответа в секундах
    +

    В параметры (URL, Headers, Cookies, Request body type) можно подставить выражение #{variableName}. Вместо данного выражения подставится значение указанное переменной.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SetVariableHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SetVariableHandler.html new file mode 100644 index 00000000..91418ab9 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SetVariableHandler.html @@ -0,0 +1,73 @@ + + + + + + + + Web-BPM Docs – SetVariableHandler + + + + + + +
    +
    + + + +
    +
    +

    SetVariableHandler

    +

    Назначение

    +

    Задание значения(ий) переменной(ым) процесса.

    +

    Свойства

    + + + + + + + + + + + + + + +
    Наименование Тип свойства Назначение
    mapping VariableWithValue[] список переменных процесса
    +

    Интерфейс пользователя

    +

    Значение переменной не пусто

    +

    non empty value

    +

    Значение не задано

    +

    null value

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SqlAttachmentsEmailHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SqlAttachmentsEmailHandler.html new file mode 100644 index 00000000..fa67fc65 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/SqlAttachmentsEmailHandler.html @@ -0,0 +1,75 @@ + + + + + + + + Web-BPM Docs – Назначение + + + + + + +
    +
    + + + +
    +
    +

    Назначение

    +

    Является наследником EmailHandler-а, с дополнительным функционалом: прикреплять файлы можно при помощи подгрузки из базы.

    +

    Свойства

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    dao DefaultLoadDao (граф сущности)
    fileNameColumn Колонка из графа сущности с именем файла
    fileContentColumn Колонка из графа сущности с содержимым файла
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/Telegram.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/Telegram.html new file mode 100644 index 00000000..b6b5b116 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/Telegram.html @@ -0,0 +1,96 @@ + + + + + + + + Web-BPM Docs – Назначение + + + + + + +
    +
    + + + +
    +
    +

    Назначение

    +

    Отправка сообщений в чат Telegram.

    +

    Свойства, задаваемые аналитиком

    + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    chatId Идентификатор чата
    message Сообщение
    +

    В параметр message можно подставить выражение #{variableName}. Вместо данного выражения подставится значение указанное переменной.

    +

    Свойства, задаваемые на сервере приложений

    + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Назначение Значение по умолчанию
    telegram.bot.token The token is a string, like 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw, which is required to authorize the bot and send requests to the Bot API. как создать Bot см. тут https://core.telegram.org/bots/features#creating-a-new-bot
    telegram.bot.name The username is a short name, used in search, mentions and t.me links. Usernames are 5-32 characters long and not case sensitive – but may only include Latin characters, numbers, and underscores. Your bot’s username must end in ’bot’, like ‘tetris_bot’ or ‘TetrisBot’.
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/UserAuthorityHandler.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/UserAuthorityHandler.html new file mode 100644 index 00000000..4974aa03 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/UserAuthorityHandler.html @@ -0,0 +1,119 @@ + + + + + + + + Web-BPM Docs – Назначение + + + + + + +
    +
    + + + +
    +
    +

    Назначение

    +

    Кастомный обработчик, который выбирается в Web-BPM Task. При выполнении этого обработчика происходит сохранение данных пользователя в переменные процесса, также в булавы переменные процесса могут быть сохранены значения, соответствующие наличию у пользователя тех или иных ролей/групп.

    +

    Свойства

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Наименование Тип свойства Тип значения переменной Назначение
    login BpmnVariable String переменная процесса, в которую будет сохранен логин пользователя
    userFio BpmnVariable String переменная процесса, в которую будет сохранено ФИО пользователя
    firstName BpmnVariable String переменная процесса, в которую будет сохранено имя пользователя
    lastName BpmnVariable String переменная процесса, в которую будет сохранена фамилия пользователя
    middleName BpmnVariable String переменная процесса, в которую будет сохранено отчество пользователя
    orgName BpmnVariable String переменная процесса, в которую будет сохранено наименование организации пользователя
    orgCode BpmnVariable String переменная процесса, в которую будет сохранено код организации пользователя
    userGroups BpmnVariable Collection<String> переменная процесса, в которую будет сохранен список групп пользователя
    userRoles BpmnVariable Collection<String> переменная процесса, в которую будет сохранен список ролей пользователя
    hasRoleVariables Collection<UserHasPropertyVariable> Boolean Тип UserHasPropertyVariable представляет собой объект, в котором есть свойства: variable - переменная процесса, в которую будет сохранено вычисленное булево значение valueForMatching - строка, которая будет использоваться для сравнения. Например, если список ролей/групп пользователя содержит в себе значение из поля ‘valueForMatching’, то в переменную, указанную в поле ‘variable’, будет сохранено true, иначе - false. Используется для проверки наличия ролей (hasRoleVariables) и групп (hasGroupVariables)
    hasGroupVariables Collection<UserHasPropertyVariable> Boolean
    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/index.html new file mode 100644 index 00000000..f4d65800 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/handlers/index.html @@ -0,0 +1,60 @@ + + + + + + + + Web-BPM Docs – Обработчики + + + + + + +
    +
    + + + +
    +
    +

    Обработчики

    + +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/accessories-text-editor.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/accessories-text-editor.png new file mode 100644 index 00000000..abc3366e Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/accessories-text-editor.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/add.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/add.gif new file mode 100644 index 00000000..1cb3dbf9 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/add.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/apache-maven-project-2.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/apache-maven-project-2.png new file mode 100644 index 00000000..a44db6ed Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/apache-maven-project-2.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/application-certificate.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/application-certificate.png new file mode 100644 index 00000000..cc6aff61 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/application-certificate.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/close.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/close.gif new file mode 100644 index 00000000..1c26bbc5 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/close.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/contact-new.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/contact-new.png new file mode 100644 index 00000000..ebc4316d Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/contact-new.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/document-properties.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/document-properties.png new file mode 100644 index 00000000..34c2409a Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/document-properties.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/drive-harddisk.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/drive-harddisk.png new file mode 100644 index 00000000..d7ce475f Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/drive-harddisk.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/fix.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/fix.gif new file mode 100644 index 00000000..b7eb3dc4 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/fix.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_error_sml.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_error_sml.gif new file mode 100644 index 00000000..12e9a01a Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_error_sml.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_help_sml.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_help_sml.gif new file mode 100644 index 00000000..aaf20e6e Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_help_sml.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_info_sml.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_info_sml.gif new file mode 100644 index 00000000..b7763267 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_info_sml.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_success_sml.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_success_sml.gif new file mode 100644 index 00000000..0a195279 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_success_sml.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_warning_sml.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_warning_sml.gif new file mode 100644 index 00000000..ac6ad6ad Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/icon_warning_sml.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/image-x-generic.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/image-x-generic.png new file mode 100644 index 00000000..ab49efb3 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/image-x-generic.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/internet-web-browser.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/internet-web-browser.png new file mode 100644 index 00000000..307d6aca Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/internet-web-browser.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-black.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-black.png new file mode 100644 index 00000000..919fd0f6 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-black.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-white.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-white.png new file mode 100644 index 00000000..7d44c9c2 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/build-by-maven-white.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/maven-feather.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/maven-feather.png new file mode 100644 index 00000000..b5ada836 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/logos/maven-feather.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/network-server.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/network-server.png new file mode 100644 index 00000000..1d12e193 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/network-server.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/package-x-generic.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/package-x-generic.png new file mode 100644 index 00000000..8b7e9e67 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/package-x-generic.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/pre-release.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/pre-release.png new file mode 100644 index 00000000..d448e850 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/pre-release.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/retired.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/retired.png new file mode 100644 index 00000000..f89f6a29 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/retired.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/sandbox.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/sandbox.png new file mode 100644 index 00000000..f88b3626 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/profiles/sandbox.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/remove.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/remove.gif new file mode 100644 index 00000000..fc65631c Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/remove.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/rss.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/rss.png new file mode 100644 index 00000000..a9850ee2 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/rss.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/update.gif b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/update.gif new file mode 100644 index 00000000..b2a6d0bf Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/update.gif differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/window-new.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/window-new.png new file mode 100644 index 00000000..0e12ef95 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/images/window-new.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings-white.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings-white.png new file mode 100644 index 00000000..3bf6484a Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings-white.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings.png b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings.png new file mode 100644 index 00000000..a9969993 Binary files /dev/null and b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/img/glyphicons-halflings.png differ diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/index.html b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/index.html new file mode 100644 index 00000000..286d602a --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/index.html @@ -0,0 +1,52 @@ + + + + + + + + Web-BPM Docs – About + + + + + + +
    +
    + + + +
    +
    +
    +

    About resources

    +

    There is currently no description associated with this project.

    +
    +
    +
    +
    +
    +
    +

    © 2023 +Micord +

    +
    +

    Built by Maven +

    +
    +
    + + diff --git a/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/js/apache-maven-fluido-1.9.min.js b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/js/apache-maven-fluido-1.9.min.js new file mode 100644 index 00000000..1324fb45 --- /dev/null +++ b/packages/ru.cg.webbpm.packages.base.resources/META-INF/components/docs/js/apache-maven-fluido-1.9.min.js @@ -0,0 +1,25 @@ +/*! + * jQuery JavaScript Library v1.11.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-17T15:27Z + */ +(function(b,a){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=b.document?a(b,true):function(c){if(!c.document){throw new Error("jQuery requires a window with a document")}return a(c)}}else{a(b)}}(typeof window!=="undefined"?window:this,function(a5,av){var aP=[];var P=aP.slice;var az=aP.concat;var x=aP.push;var bU=aP.indexOf;var ac={};var y=ac.toString;var K=ac.hasOwnProperty;var D={};var ai="1.11.2",bI=function(e,i){return new bI.fn.init(e,i)},E=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,bS=/^-ms-/,aW=/-([\da-z])/gi,O=function(e,i){return i.toUpperCase()};bI.fn=bI.prototype={jquery:ai,constructor:bI,selector:"",length:0,toArray:function(){return P.call(this)},get:function(e){return e!=null?(e<0?this[e+this.length]:this[e]):P.call(this)},pushStack:function(e){var i=bI.merge(this.constructor(),e);i.prevObject=this;i.context=this.context;return i},each:function(i,e){return bI.each(this,i,e)},map:function(e){return this.pushStack(bI.map(this,function(b7,b6){return e.call(b7,b6,b7)}))},slice:function(){return this.pushStack(P.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(b7){var e=this.length,b6=+b7+(b7<0?e:0);return this.pushStack(b6>=0&&b6=0},isEmptyObject:function(i){var e;for(e in i){return false}return true},isPlainObject:function(b7){var i;if(!b7||bI.type(b7)!=="object"||b7.nodeType||bI.isWindow(b7)){return false}try{if(b7.constructor&&!K.call(b7,"constructor")&&!K.call(b7.constructor.prototype,"isPrototypeOf")){return false}}catch(b6){return false}if(D.ownLast){for(i in b7){return K.call(b7,i)}}for(i in b7){}return i===undefined||K.call(b7,i)},type:function(e){if(e==null){return e+""}return typeof e==="object"||typeof e==="function"?ac[y.call(e)]||"object":typeof e},globalEval:function(e){if(e&&bI.trim(e)){(a5.execScript||function(i){a5["eval"].call(a5,i)})(e)}},camelCase:function(e){return e.replace(bS,"ms-").replace(aW,O)},nodeName:function(i,e){return i.nodeName&&i.nodeName.toLowerCase()===e.toLowerCase()},each:function(ca,cb,b6){var b9,b7=0,b8=ca.length,e=ad(ca);if(b6){if(e){for(;b70&&(i-1) in b6}var m= +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function(de){var cy,dh,cn,cH,cK,ci,cW,dg,dm,cI,cX,cZ,cC,co,c8,c3,df,ce,cF,da="sizzle"+1*new Date(),cJ=de.document,di=0,c4=0,b9=cA(),c9=cA(),cG=cA(),cE=function(i,e){if(i===e){cX=true}return 0},cQ=1<<31,cO=({}).hasOwnProperty,dc=[],dd=dc.pop,cM=dc.push,b7=dc.push,cm=dc.slice,cd=function(dq,dp){var dn=0,e=dq.length;for(;dn+~]|"+cp+")"+cp+"*"),ct=new RegExp("="+cp+"*([^\\]'\"]*?)"+cp+"*\\]","g"),cS=new RegExp(ck),cU=new RegExp("^"+cL+"$"),c2={ID:new RegExp("^#("+b6+")"),CLASS:new RegExp("^\\.("+b6+")"),TAG:new RegExp("^("+b6.replace("w","w*")+")"),ATTR:new RegExp("^"+c6),PSEUDO:new RegExp("^"+ck),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+cp+"*(even|odd|(([+-]|)(\\d*)n|)"+cp+"*(?:([+-]|)"+cp+"*(\\d+)|))"+cp+"*\\)|)","i"),bool:new RegExp("^(?:"+b8+")$","i"),needsContext:new RegExp("^"+cp+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+cp+"*((?:-\\d)?\\d*)"+cp+"*\\)|)(?=[^-]|$)","i")},cc=/^(?:input|select|textarea|button)$/i,cl=/^h\d$/i,cP=/^[^{]+\{\s*\[native \w/,cR=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,c1=/[+~]/,cN=/'|\\/g,cs=new RegExp("\\\\([\\da-f]{1,6}"+cp+"?|("+cp+")|.)","ig"),c5=function(e,dp,i){var dn="0x"+dp-65536;return dn!==dn||i?dp:dn<0?String.fromCharCode(dn+65536):String.fromCharCode(dn>>10|55296,dn&1023|56320)},dl=function(){cZ()};try{b7.apply((dc=cm.call(cJ.childNodes)),cJ.childNodes);dc[cJ.childNodes.length].nodeType}catch(cD){b7={apply:dc.length?function(i,e){cM.apply(i,cm.call(e))}:function(dq,dp){var e=dq.length,dn=0;while((dq[e++]=dp[dn++])){}dq.length=e-1}}}function cw(dv,dn,dz,dB){var dA,ds,dt,dx,dy,dr,dq,e,dp,dw;if((dn?dn.ownerDocument||dn:cJ)!==cC){cZ(dn)}dn=dn||cC;dz=dz||[];dx=dn.nodeType;if(typeof dv!=="string"||!dv||dx!==1&&dx!==9&&dx!==11){return dz}if(!dB&&c8){if(dx!==11&&(dA=cR.exec(dv))){if((dt=dA[1])){if(dx===9){ds=dn.getElementById(dt);if(ds&&ds.parentNode){if(ds.id===dt){dz.push(ds);return dz}}else{return dz}}else{if(dn.ownerDocument&&(ds=dn.ownerDocument.getElementById(dt))&&cF(dn,ds)&&ds.id===dt){dz.push(ds);return dz}}}else{if(dA[2]){b7.apply(dz,dn.getElementsByTagName(dv));return dz}else{if((dt=dA[3])&&dh.getElementsByClassName){b7.apply(dz,dn.getElementsByClassName(dt));return dz}}}}if(dh.qsa&&(!c3||!c3.test(dv))){e=dq=da;dp=dn;dw=dx!==1&&dv;if(dx===1&&dn.nodeName.toLowerCase()!=="object"){dr=ci(dv);if((dq=dn.getAttribute("id"))){e=dq.replace(cN,"\\$&")}else{dn.setAttribute("id",e)}e="[id='"+e+"'] ";dy=dr.length;while(dy--){dr[dy]=e+ch(dr[dy])}dp=c1.test(dv)&&cT(dn.parentNode)||dn;dw=dr.join(",")}if(dw){try{b7.apply(dz,dp.querySelectorAll(dw));return dz}catch(du){}finally{if(!dq){dn.removeAttribute("id")}}}}}return dg(dv.replace(cr,"$1"),dn,dz,dB)}function cA(){var i=[];function e(dn,dp){if(i.push(dn+" ")>cn.cacheLength){delete e[i.shift()]}return(e[dn+" "]=dp)}return e}function cj(e){e[da]=true;return e}function cf(i){var dp=cC.createElement("div");try{return !!i(dp)}catch(dn){return false}finally{if(dp.parentNode){dp.parentNode.removeChild(dp)}dp=null}}function dj(dn,dq){var e=dn.split("|"),dp=dn.length;while(dp--){cn.attrHandle[e[dp]]=dq}}function ca(i,e){var dp=e&&i,dn=dp&&i.nodeType===1&&e.nodeType===1&&(~e.sourceIndex||cQ)-(~i.sourceIndex||cQ);if(dn){return dn}if(dp){while((dp=dp.nextSibling)){if(dp===e){return -1}}}return i?1:-1}function cx(e){return function(dn){var i=dn.nodeName.toLowerCase();return i==="input"&&dn.type===e}}function cb(e){return function(dn){var i=dn.nodeName.toLowerCase();return(i==="input"||i==="button")&&dn.type===e}}function c7(e){return cj(function(i){i=+i;return cj(function(dn,ds){var dq,dp=e([],dn.length,i),dr=dp.length;while(dr--){if(dn[(dq=dp[dr])]){dn[dq]=!(ds[dq]=dn[dq])}}})})}function cT(e){return e&&typeof e.getElementsByTagName!=="undefined"&&e}dh=cw.support={};cK=cw.isXML=function(e){var i=e&&(e.ownerDocument||e).documentElement;return i?i.nodeName!=="HTML":false};cZ=cw.setDocument=function(dn){var e,i,dp=dn?dn.ownerDocument||dn:cJ;if(dp===cC||dp.nodeType!==9||!dp.documentElement){return cC}cC=dp;co=dp.documentElement;i=dp.defaultView;if(i&&i!==i.top){if(i.addEventListener){i.addEventListener("unload",dl,false)}else{if(i.attachEvent){i.attachEvent("onunload",dl)}}}c8=!cK(dp);dh.attributes=cf(function(dq){dq.className="i";return !dq.getAttribute("className")});dh.getElementsByTagName=cf(function(dq){dq.appendChild(dp.createComment(""));return !dq.getElementsByTagName("*").length});dh.getElementsByClassName=cP.test(dp.getElementsByClassName);dh.getById=cf(function(dq){co.appendChild(dq).id=da;return !dp.getElementsByName||!dp.getElementsByName(da).length});if(dh.getById){cn.find.ID=function(ds,dr){if(typeof dr.getElementById!=="undefined"&&c8){var dq=dr.getElementById(ds);return dq&&dq.parentNode?[dq]:[]}};cn.filter.ID=function(dr){var dq=dr.replace(cs,c5);return function(ds){return ds.getAttribute("id")===dq}}}else{delete cn.find.ID;cn.filter.ID=function(dr){var dq=dr.replace(cs,c5);return function(dt){var ds=typeof dt.getAttributeNode!=="undefined"&&dt.getAttributeNode("id");return ds&&ds.value===dq}}}cn.find.TAG=dh.getElementsByTagName?function(dq,dr){if(typeof dr.getElementsByTagName!=="undefined"){return dr.getElementsByTagName(dq)}else{if(dh.qsa){return dr.querySelectorAll(dq)}}}:function(dq,du){var dv,dt=[],ds=0,dr=du.getElementsByTagName(dq);if(dq==="*"){while((dv=dr[ds++])){if(dv.nodeType===1){dt.push(dv)}}return dt}return dr};cn.find.CLASS=dh.getElementsByClassName&&function(dr,dq){if(c8){return dq.getElementsByClassName(dr)}};df=[];c3=[];if((dh.qsa=cP.test(dp.querySelectorAll))){cf(function(dq){co.appendChild(dq).innerHTML="";if(dq.querySelectorAll("[msallowcapture^='']").length){c3.push("[*^$]="+cp+"*(?:''|\"\")")}if(!dq.querySelectorAll("[selected]").length){c3.push("\\["+cp+"*(?:value|"+b8+")")}if(!dq.querySelectorAll("[id~="+da+"-]").length){c3.push("~=")}if(!dq.querySelectorAll(":checked").length){c3.push(":checked")}if(!dq.querySelectorAll("a#"+da+"+*").length){c3.push(".#.+[+~]")}});cf(function(dr){var dq=dp.createElement("input");dq.setAttribute("type","hidden");dr.appendChild(dq).setAttribute("name","D");if(dr.querySelectorAll("[name=d]").length){c3.push("name"+cp+"*[*^$|!~]?=")}if(!dr.querySelectorAll(":enabled").length){c3.push(":enabled",":disabled")}dr.querySelectorAll("*,:x");c3.push(",.*:")})}if((dh.matchesSelector=cP.test((ce=co.matches||co.webkitMatchesSelector||co.mozMatchesSelector||co.oMatchesSelector||co.msMatchesSelector)))){cf(function(dq){dh.disconnectedMatch=ce.call(dq,"div");ce.call(dq,"[s!='']:x");df.push("!=",ck)})}c3=c3.length&&new RegExp(c3.join("|"));df=df.length&&new RegExp(df.join("|"));e=cP.test(co.compareDocumentPosition);cF=e||cP.test(co.contains)?function(dr,dq){var dt=dr.nodeType===9?dr.documentElement:dr,ds=dq&&dq.parentNode;return dr===ds||!!(ds&&ds.nodeType===1&&(dt.contains?dt.contains(ds):dr.compareDocumentPosition&&dr.compareDocumentPosition(ds)&16))}:function(dr,dq){if(dq){while((dq=dq.parentNode)){if(dq===dr){return true}}}return false};cE=e?function(dr,dq){if(dr===dq){cX=true;return 0}var ds=!dr.compareDocumentPosition-!dq.compareDocumentPosition;if(ds){return ds}ds=(dr.ownerDocument||dr)===(dq.ownerDocument||dq)?dr.compareDocumentPosition(dq):1;if(ds&1||(!dh.sortDetached&&dq.compareDocumentPosition(dr)===ds)){if(dr===dp||dr.ownerDocument===cJ&&cF(cJ,dr)){return -1}if(dq===dp||dq.ownerDocument===cJ&&cF(cJ,dq)){return 1}return cI?(cd(cI,dr)-cd(cI,dq)):0}return ds&4?-1:1}:function(dr,dq){if(dr===dq){cX=true;return 0}var dx,du=0,dw=dr.parentNode,dt=dq.parentNode,ds=[dr],dv=[dq];if(!dw||!dt){return dr===dp?-1:dq===dp?1:dw?-1:dt?1:cI?(cd(cI,dr)-cd(cI,dq)):0}else{if(dw===dt){return ca(dr,dq)}}dx=dr;while((dx=dx.parentNode)){ds.unshift(dx)}dx=dq;while((dx=dx.parentNode)){dv.unshift(dx)}while(ds[du]===dv[du]){du++}return du?ca(ds[du],dv[du]):ds[du]===cJ?-1:dv[du]===cJ?1:0};return dp};cw.matches=function(i,e){return cw(i,null,null,e)};cw.matchesSelector=function(dn,dq){if((dn.ownerDocument||dn)!==cC){cZ(dn)}dq=dq.replace(ct,"='$1']");if(dh.matchesSelector&&c8&&(!df||!df.test(dq))&&(!c3||!c3.test(dq))){try{var i=ce.call(dn,dq);if(i||dh.disconnectedMatch||dn.document&&dn.document.nodeType!==11){return i}}catch(dp){}}return cw(dq,cC,null,[dn]).length>0};cw.contains=function(e,i){if((e.ownerDocument||e)!==cC){cZ(e)}return cF(e,i)};cw.attr=function(dn,e){if((dn.ownerDocument||dn)!==cC){cZ(dn)}var i=cn.attrHandle[e.toLowerCase()],dp=i&&cO.call(cn.attrHandle,e.toLowerCase())?i(dn,e,!c8):undefined;return dp!==undefined?dp:dh.attributes||!c8?dn.getAttribute(e):(dp=dn.getAttributeNode(e))&&dp.specified?dp.value:null};cw.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};cw.uniqueSort=function(dp){var dq,dr=[],e=0,dn=0;cX=!dh.detectDuplicates;cI=!dh.sortStable&&dp.slice(0);dp.sort(cE);if(cX){while((dq=dp[dn++])){if(dq===dp[dn]){e=dr.push(dn)}}while(e--){dp.splice(dr[e],1)}}cI=null;return dp};cH=cw.getText=function(dr){var dq,dn="",dp=0,e=dr.nodeType;if(!e){while((dq=dr[dp++])){dn+=cH(dq)}}else{if(e===1||e===9||e===11){if(typeof dr.textContent==="string"){return dr.textContent}else{for(dr=dr.firstChild;dr;dr=dr.nextSibling){dn+=cH(dr)}}}else{if(e===3||e===4){return dr.nodeValue}}}return dn};cn=cw.selectors={cacheLength:50,createPseudo:cj,match:c2,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){e[1]=e[1].replace(cs,c5);e[3]=(e[3]||e[4]||e[5]||"").replace(cs,c5);if(e[2]==="~="){e[3]=" "+e[3]+" "}return e.slice(0,4)},CHILD:function(e){e[1]=e[1].toLowerCase();if(e[1].slice(0,3)==="nth"){if(!e[3]){cw.error(e[0])}e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd"));e[5]=+((e[7]+e[8])||e[3]==="odd")}else{if(e[3]){cw.error(e[0])}}return e},PSEUDO:function(i){var e,dn=!i[6]&&i[2];if(c2.CHILD.test(i[0])){return null}if(i[3]){i[2]=i[4]||i[5]||""}else{if(dn&&cS.test(dn)&&(e=ci(dn,true))&&(e=dn.indexOf(")",dn.length-e)-dn.length)){i[0]=i[0].slice(0,e);i[2]=dn.slice(0,e)}}return i.slice(0,3)}},filter:{TAG:function(i){var e=i.replace(cs,c5).toLowerCase();return i==="*"?function(){return true}:function(dn){return dn.nodeName&&dn.nodeName.toLowerCase()===e}},CLASS:function(e){var i=b9[e+" "];return i||(i=new RegExp("(^|"+cp+")"+e+"("+cp+"|$)"))&&b9(e,function(dn){return i.test(typeof dn.className==="string"&&dn.className||typeof dn.getAttribute!=="undefined"&&dn.getAttribute("class")||"")})},ATTR:function(dn,i,e){return function(dq){var dp=cw.attr(dq,dn);if(dp==null){return i==="!="}if(!i){return true}dp+="";return i==="="?dp===e:i==="!="?dp!==e:i==="^="?e&&dp.indexOf(e)===0:i==="*="?e&&dp.indexOf(e)>-1:i==="$="?e&&dp.slice(-e.length)===e:i==="~="?(" "+dp.replace(cu," ")+" ").indexOf(e)>-1:i==="|="?dp===e||dp.slice(0,e.length+1)===e+"-":false}},CHILD:function(i,dq,dp,dr,dn){var dt=i.slice(0,3)!=="nth",e=i.slice(-4)!=="last",ds=dq==="of-type";return dr===1&&dn===0?function(du){return !!du.parentNode}:function(dA,dy,dD){var du,dG,dB,dF,dC,dx,dz=dt!==e?"nextSibling":"previousSibling",dE=dA.parentNode,dw=ds&&dA.nodeName.toLowerCase(),dv=!dD&&!ds;if(dE){if(dt){while(dz){dB=dA;while((dB=dB[dz])){if(ds?dB.nodeName.toLowerCase()===dw:dB.nodeType===1){return false}}dx=dz=i==="only"&&!dx&&"nextSibling"}return true}dx=[e?dE.firstChild:dE.lastChild];if(e&&dv){dG=dE[da]||(dE[da]={});du=dG[i]||[];dC=du[0]===di&&du[1];dF=du[0]===di&&du[2];dB=dC&&dE.childNodes[dC];while((dB=++dC&&dB&&dB[dz]||(dF=dC=0)||dx.pop())){if(dB.nodeType===1&&++dF&&dB===dA){dG[i]=[di,dC,dF];break}}}else{if(dv&&(du=(dA[da]||(dA[da]={}))[i])&&du[0]===di){dF=du[1]}else{while((dB=++dC&&dB&&dB[dz]||(dF=dC=0)||dx.pop())){if((ds?dB.nodeName.toLowerCase()===dw:dB.nodeType===1)&&++dF){if(dv){(dB[da]||(dB[da]={}))[i]=[di,dF]}if(dB===dA){break}}}}}dF-=dn;return dF===dr||(dF%dr===0&&dF/dr>=0)}}},PSEUDO:function(dp,dn){var e,i=cn.pseudos[dp]||cn.setFilters[dp.toLowerCase()]||cw.error("unsupported pseudo: "+dp);if(i[da]){return i(dn)}if(i.length>1){e=[dp,dp,"",dn];return cn.setFilters.hasOwnProperty(dp.toLowerCase())?cj(function(ds,du){var dr,dq=i(ds,dn),dt=dq.length;while(dt--){dr=cd(ds,dq[dt]);ds[dr]=!(du[dr]=dq[dt])}}):function(dq){return i(dq,0,e)}}return i}},pseudos:{not:cj(function(e){var i=[],dn=[],dp=cW(e.replace(cr,"$1"));return dp[da]?cj(function(dr,dw,du,ds){var dv,dq=dp(dr,null,ds,[]),dt=dr.length;while(dt--){if((dv=dq[dt])){dr[dt]=!(dw[dt]=dv)}}}):function(ds,dr,dq){i[0]=ds;dp(i,null,dq,dn);i[0]=null;return !dn.pop()}}),has:cj(function(e){return function(i){return cw(e,i).length>0}}),contains:cj(function(e){e=e.replace(cs,c5);return function(i){return(i.textContent||i.innerText||cH(i)).indexOf(e)>-1}}),lang:cj(function(e){if(!cU.test(e||"")){cw.error("unsupported lang: "+e)}e=e.replace(cs,c5).toLowerCase();return function(dn){var i;do{if((i=c8?dn.lang:dn.getAttribute("xml:lang")||dn.getAttribute("lang"))){i=i.toLowerCase();return i===e||i.indexOf(e+"-")===0}}while((dn=dn.parentNode)&&dn.nodeType===1);return false}}),target:function(e){var i=de.location&&de.location.hash;return i&&i.slice(1)===e.id},root:function(e){return e===co},focus:function(e){return e===cC.activeElement&&(!cC.hasFocus||cC.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===false},disabled:function(e){return e.disabled===true},checked:function(e){var i=e.nodeName.toLowerCase();return(i==="input"&&!!e.checked)||(i==="option"&&!!e.selected)},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling){if(e.nodeType<6){return false}}return true},parent:function(e){return !cn.pseudos.empty(e)},header:function(e){return cl.test(e.nodeName)},input:function(e){return cc.test(e.nodeName)},button:function(i){var e=i.nodeName.toLowerCase();return e==="input"&&i.type==="button"||e==="button"},text:function(i){var e;return i.nodeName.toLowerCase()==="input"&&i.type==="text"&&((e=i.getAttribute("type"))==null||e.toLowerCase()==="text")},first:c7(function(){return[0]}),last:c7(function(e,i){return[i-1]}),eq:c7(function(e,dn,i){return[i<0?i+dn:i]}),even:c7(function(e,dp){var dn=0;for(;dn=0;){e.push(dn)}return e}),gt:c7(function(e,dq,dp){var dn=dp<0?dp+dq:dp;for(;++dn1?function(dr,dq,dn){var dp=e.length;while(dp--){if(!e[dp](dr,dq,dn)){return false}}return true}:e[0]}function cz(dn,dr,dq){var dp=0,e=dr.length;for(;dp-1){dC[dE]=!(dz[dE]=dw)}}}}else{dy=c0(dy===dz?dy.splice(dt,dy.length):dy);if(dr){dr(null,dz,dy,dB)}else{b7.apply(dz,dy)}}})}function db(dt){var dn,dr,dp,ds=dt.length,dw=cn.relative[dt[0].type],dx=dw||cn.relative[" "],dq=dw?1:0,du=cq(function(i){return i===dn},dx,true),dv=cq(function(i){return cd(dn,i)>-1},dx,true),e=[function(dA,dz,dy){var i=(!dw&&(dy||dz!==dm))||((dn=dz).nodeType?du(dA,dz,dy):dv(dA,dz,dy));dn=null;return i}];for(;dq1&&dk(e),dq>1&&ch(dt.slice(0,dq-1).concat({value:dt[dq-2].type===" "?"*":""})).replace(cr,"$1"),dr,dq0,dq=dp.length>0,i=function(dA,du,dz,dy,dD){var dv,dw,dB,dF=0,dx="0",dr=dA&&[],dG=[],dE=dm,dt=dA||dq&&cn.find.TAG("*",dD),ds=(di+=dE==null?1:Math.random()||0.1),dC=dt.length;if(dD){dm=du!==cC&&du}for(;dx!==dC&&(dv=dt[dx])!=null;dx++){if(dq&&dv){dw=0;while((dB=dp[dw++])){if(dB(dv,du,dz)){dy.push(dv);break}}if(dD){di=ds}}if(e){if((dv=!dB&&dv)){dF--}if(dA){dr.push(dv)}}}dF+=dx;if(e&&dx!==dF){dw=0;while((dB=dn[dw++])){dB(dr,dG,du,dz)}if(dA){if(dF>0){while(dx--){if(!(dr[dx]||dG[dx])){dG[dx]=dd.call(dy)}}}dG=c0(dG)}b7.apply(dy,dG);if(dD&&!dA&&dG.length>0&&(dF+dn.length)>1){cw.uniqueSort(dy)}}if(dD){di=ds;dm=dE}return dr};return e?cj(i):i}cW=cw.compile=function(e,dp){var dq,dn=[],ds=[],dr=cG[e+" "];if(!dr){if(!dp){dp=ci(e)}dq=dp.length;while(dq--){dr=db(dp[dq]);if(dr[da]){dn.push(dr)}else{ds.push(dr)}}dr=cG(e,cY(ds,dn));dr.selector=e}return dr};dg=cw.select=function(dp,e,dq,dt){var dr,dw,dn,dx,du,dv=typeof dp==="function"&&dp,ds=!dt&&ci((dp=dv.selector||dp));dq=dq||[];if(ds.length===1){dw=ds[0]=ds[0].slice(0);if(dw.length>2&&(dn=dw[0]).type==="ID"&&dh.getById&&e.nodeType===9&&c8&&cn.relative[dw[1].type]){e=(cn.find.ID(dn.matches[0].replace(cs,c5),e)||[])[0];if(!e){return dq}else{if(dv){e=e.parentNode}}dp=dp.slice(dw.shift().value.length)}dr=c2.needsContext.test(dp)?0:dw.length;while(dr--){dn=dw[dr];if(cn.relative[(dx=dn.type)]){break}if((du=cn.find[dx])){if((dt=du(dn.matches[0].replace(cs,c5),c1.test(dw[0].type)&&cT(e.parentNode)||e))){dw.splice(dr,1);dp=dt.length&&ch(dw);if(!dp){b7.apply(dq,dt);return dq}break}}}}(dv||cW(dp,ds))(dt,e,!c8,dq,c1.test(dp)&&cT(e.parentNode)||e);return dq};dh.sortStable=da.split("").sort(cE).join("")===da;dh.detectDuplicates=!!cX;cZ();dh.sortDetached=cf(function(e){return e.compareDocumentPosition(cC.createElement("div"))&1});if(!cf(function(e){e.innerHTML="";return e.firstChild.getAttribute("href")==="#"})){dj("type|href|height|width",function(i,e,dn){if(!dn){return i.getAttribute(e,e.toLowerCase()==="type"?1:2)}})}if(!dh.attributes||!cf(function(e){e.innerHTML="";e.firstChild.setAttribute("value","");return e.firstChild.getAttribute("value")===""})){dj("value",function(i,e,dn){if(!dn&&i.nodeName.toLowerCase()==="input"){return i.defaultValue}})}if(!cf(function(e){return e.getAttribute("disabled")==null})){dj(b8,function(i,e,dp){var dn;if(!dp){return i[e]===true?e.toLowerCase():(dn=i.getAttributeNode(e))&&dn.specified?dn.value:null}})}return cw})(a5);bI.find=m;bI.expr=m.selectors;bI.expr[":"]=bI.expr.pseudos;bI.unique=m.uniqueSort;bI.text=m.getText;bI.isXMLDoc=m.isXML;bI.contains=m.contains;var A=bI.expr.match.needsContext;var a=(/^<(\w+)\s*\/?>(?:<\/\1>|)$/);var aL=/^.[^:#\[\.,]*$/;function aR(b6,e,i){if(bI.isFunction(e)){return bI.grep(b6,function(b8,b7){return !!e.call(b8,b7,b8)!==i})}if(e.nodeType){return bI.grep(b6,function(b7){return(b7===e)!==i})}if(typeof e==="string"){if(aL.test(e)){return bI.filter(e,b6,i)}e=bI.filter(e,b6)}return bI.grep(b6,function(b7){return(bI.inArray(b7,e)>=0)!==i})}bI.filter=function(b7,e,b6){var i=e[0];if(b6){b7=":not("+b7+")"}return e.length===1&&i.nodeType===1?bI.find.matchesSelector(i,b7)?[i]:[]:bI.find.matches(b7,bI.grep(e,function(b8){return b8.nodeType===1}))};bI.fn.extend({find:function(b6){var b9,b8=[],b7=this,e=b7.length;if(typeof b6!=="string"){return this.pushStack(bI(b6).filter(function(){for(b9=0;b91?bI.unique(b8):b8);b8.selector=this.selector?this.selector+" "+b6:b6;return b8},filter:function(e){return this.pushStack(aR(this,e||[],false))},not:function(e){return this.pushStack(aR(this,e||[],true))},is:function(e){return !!aR(this,typeof e==="string"&&A.test(e)?bI(e):e||[],false).length}});var z,n=a5.document,bt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,bV=bI.fn.init=function(e,b6){var i,b7;if(!e){return this}if(typeof e==="string"){if(e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3){i=[null,e,null]}else{i=bt.exec(e)}if(i&&(i[1]||!b6)){if(i[1]){b6=b6 instanceof bI?b6[0]:b6;bI.merge(this,bI.parseHTML(i[1],b6&&b6.nodeType?b6.ownerDocument||b6:n,true));if(a.test(i[1])&&bI.isPlainObject(b6)){for(i in b6){if(bI.isFunction(this[i])){this[i](b6[i])}else{this.attr(i,b6[i])}}}return this}else{b7=n.getElementById(i[2]);if(b7&&b7.parentNode){if(b7.id!==i[2]){return z.find(e)}this.length=1;this[0]=b7}this.context=n;this.selector=e;return this}}else{if(!b6||b6.jquery){return(b6||z).find(e)}else{return this.constructor(b6).find(e)}}}else{if(e.nodeType){this.context=this[0]=e;this.length=1;return this}else{if(bI.isFunction(e)){return typeof z.ready!=="undefined"?z.ready(e):e(bI)}}}if(e.selector!==undefined){this.selector=e.selector;this.context=e.context}return bI.makeArray(e,this)};bV.prototype=bI.fn;z=bI(n);var bv=/^(?:parents|prev(?:Until|All))/,bz={children:true,contents:true,next:true,prev:true};bI.extend({dir:function(b6,i,b8){var e=[],b7=b6[i];while(b7&&b7.nodeType!==9&&(b8===undefined||b7.nodeType!==1||!bI(b7).is(b8))){if(b7.nodeType===1){e.push(b7)}b7=b7[i]}return e},sibling:function(b6,i){var e=[];for(;b6;b6=b6.nextSibling){if(b6.nodeType===1&&b6!==i){e.push(b6)}}return e}});bI.fn.extend({has:function(b8){var b7,b6=bI(b8,this),e=b6.length;return this.filter(function(){for(b7=0;b7-1:ca.nodeType===1&&bI.find.matchesSelector(ca,b9))){e.push(ca);break}}}return this.pushStack(e.length>1?bI.unique(e):e)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1}if(typeof e==="string"){return bI.inArray(this[0],bI(e))}return bI.inArray(e.jquery?e[0]:e,this)},add:function(e,i){return this.pushStack(bI.unique(bI.merge(this.get(),bI(e,i))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});function aY(i,e){do{i=i[e]}while(i&&i.nodeType!==1);return i}bI.each({parent:function(i){var e=i.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return bI.dir(e,"parentNode")},parentsUntil:function(b6,e,b7){return bI.dir(b6,"parentNode",b7)},next:function(e){return aY(e,"nextSibling")},prev:function(e){return aY(e,"previousSibling")},nextAll:function(e){return bI.dir(e,"nextSibling")},prevAll:function(e){return bI.dir(e,"previousSibling")},nextUntil:function(b6,e,b7){return bI.dir(b6,"nextSibling",b7)},prevUntil:function(b6,e,b7){return bI.dir(b6,"previousSibling",b7)},siblings:function(e){return bI.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return bI.sibling(e.firstChild)},contents:function(e){return bI.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:bI.merge([],e.childNodes)}},function(e,i){bI.fn[e]=function(b8,b6){var b7=bI.map(this,i,b8);if(e.slice(-5)!=="Until"){b6=b8}if(b6&&typeof b6==="string"){b7=bI.filter(b6,b7)}if(this.length>1){if(!bz[e]){b7=bI.unique(b7)}if(bv.test(e)){b7=b7.reverse()}}return this.pushStack(b7)}});var aF=(/\S+/g);var b2={};function af(i){var e=b2[i]={};bI.each(i.match(aF)||[],function(b7,b6){e[b6]=true});return e}bI.Callbacks=function(ce){ce=typeof ce==="string"?(b2[ce]||af(ce)):bI.extend({},ce);var b8,b7,e,b9,ca,b6,cb=[],cc=!ce.once&&[],i=function(cf){b7=ce.memory&&cf;e=true;ca=b6||0;b6=0;b9=cb.length;b8=true;for(;cb&&ca-1){cb.splice(cg,1);if(b8){if(cg<=b9){b9--}if(cg<=ca){ca--}}}})}return this},has:function(cf){return cf?bI.inArray(cf,cb)>-1:!!(cb&&cb.length)},empty:function(){cb=[];b9=0;return this},disable:function(){cb=cc=b7=undefined;return this},disabled:function(){return !cb},lock:function(){cc=undefined;if(!b7){cd.disable()}return this},locked:function(){return !cc},fireWith:function(cg,cf){if(cb&&(!e||cc)){cf=cf||[];cf=[cg,cf.slice?cf.slice():cf];if(b8){cc.push(cf)}else{i(cf)}}return this},fire:function(){cd.fireWith(this,arguments);return this},fired:function(){return !!e}};return cd};bI.extend({Deferred:function(b6){var i=[["resolve","done",bI.Callbacks("once memory"),"resolved"],["reject","fail",bI.Callbacks("once memory"),"rejected"],["notify","progress",bI.Callbacks("memory")]],b7="pending",b8={state:function(){return b7},always:function(){e.done(arguments).fail(arguments);return this},then:function(){var b9=arguments;return bI.Deferred(function(ca){bI.each(i,function(cc,cb){var cd=bI.isFunction(b9[cc])&&b9[cc];e[cb[1]](function(){var ce=cd&&cd.apply(this,arguments);if(ce&&bI.isFunction(ce.promise)){ce.promise().done(ca.resolve).fail(ca.reject).progress(ca.notify)}else{ca[cb[0]+"With"](this===b8?ca.promise():this,cd?[ce]:arguments)}})});b9=null}).promise()},promise:function(b9){return b9!=null?bI.extend(b9,b8):b8}},e={};b8.pipe=b8.then;bI.each(i,function(ca,b9){var cc=b9[2],cb=b9[3];b8[b9[1]]=cc.add;if(cb){cc.add(function(){b7=cb},i[ca^1][2].disable,i[2][2].lock)}e[b9[0]]=function(){e[b9[0]+"With"](this===e?b8:this,arguments);return this};e[b9[0]+"With"]=cc.fireWith});b8.promise(e);if(b6){b6.call(e,e)}return e},when:function(b9){var b7=0,cb=P.call(arguments),e=cb.length,b6=e!==1||(b9&&bI.isFunction(b9.promise))?e:0,ce=b6===1?b9:bI.Deferred(),b8=function(cg,ch,cf){return function(i){ch[cg]=this;cf[cg]=arguments.length>1?P.call(arguments):i;if(cf===cd){ce.notifyWith(ch,cf)}else{if(!(--b6)){ce.resolveWith(ch,cf)}}}},cd,ca,cc;if(e>1){cd=new Array(e);ca=new Array(e);cc=new Array(e);for(;b70){return}ak.resolveWith(n,[bI]);if(bI.fn.triggerHandler){bI(n).triggerHandler("ready");bI(n).off("ready")}}});function bm(){if(n.addEventListener){n.removeEventListener("DOMContentLoaded",bZ,false);a5.removeEventListener("load",bZ,false)}else{n.detachEvent("onreadystatechange",bZ);a5.detachEvent("onload",bZ)}}function bZ(){if(n.addEventListener||event.type==="load"||n.readyState==="complete"){bm();bI.ready()}}bI.ready.promise=function(b8){if(!ak){ak=bI.Deferred();if(n.readyState==="complete"){setTimeout(bI.ready)}else{if(n.addEventListener){n.addEventListener("DOMContentLoaded",bZ,false);a5.addEventListener("load",bZ,false)}else{n.attachEvent("onreadystatechange",bZ);a5.attachEvent("onload",bZ);var b7=false;try{b7=a5.frameElement==null&&n.documentElement}catch(b6){}if(b7&&b7.doScroll){(function i(){if(!bI.isReady){try{b7.doScroll("left")}catch(b9){return setTimeout(i,50)}bm();bI.ready()}})()}}}}return ak.promise(b8)};var aC=typeof undefined;var bh;for(bh in bI(D)){break}D.ownLast=bh!=="0";D.inlineBlockNeedsLayout=false;bI(function(){var b6,b7,e,i;e=n.getElementsByTagName("body")[0];if(!e||!e.style){return}b7=n.createElement("div");i=n.createElement("div");i.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";e.appendChild(i).appendChild(b7);if(typeof b7.style.zoom!==aC){b7.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";D.inlineBlockNeedsLayout=b6=b7.offsetWidth===3;if(b6){e.style.zoom=1}}e.removeChild(i)});(function(){var b6=n.createElement("div");if(D.deleteExpando==null){D.deleteExpando=true;try{delete b6.test}catch(i){D.deleteExpando=false}}b6=null})();bI.acceptData=function(b6){var i=bI.noData[(b6.nodeName+" ").toLowerCase()],e=+b6.nodeType||1;return e!==1&&e!==9?false:!i||i!==true&&b6.getAttribute("classid")===i};var by=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,aQ=/([A-Z])/g;function bA(b7,b6,b8){if(b8===undefined&&b7.nodeType===1){var i="data-"+b6.replace(aQ,"-$1").toLowerCase();b8=b7.getAttribute(i);if(typeof b8==="string"){try{b8=b8==="true"?true:b8==="false"?false:b8==="null"?null:+b8+""===b8?+b8:by.test(b8)?bI.parseJSON(b8):b8}catch(b9){}bI.data(b7,b6,b8)}else{b8=undefined}}return b8}function Q(i){var e;for(e in i){if(e==="data"&&bI.isEmptyObject(i[e])){continue}if(e!=="toJSON"){return false}}return true}function bc(b7,i,b9,b8){if(!bI.acceptData(b7)){return}var cb,ca,cc=bI.expando,cd=b7.nodeType,e=cd?bI.cache:b7,b6=cd?b7[cc]:b7[cc]&&cc;if((!b6||!e[b6]||(!b8&&!e[b6].data))&&b9===undefined&&typeof i==="string"){return}if(!b6){if(cd){b6=b7[cc]=aP.pop()||bI.guid++}else{b6=cc}}if(!e[b6]){e[b6]=cd?{}:{toJSON:bI.noop}}if(typeof i==="object"||typeof i==="function"){if(b8){e[b6]=bI.extend(e[b6],i)}else{e[b6].data=bI.extend(e[b6].data,i)}}ca=e[b6];if(!b8){if(!ca.data){ca.data={}}ca=ca.data}if(b9!==undefined){ca[bI.camelCase(i)]=b9}if(typeof i==="string"){cb=ca[i];if(cb==null){cb=ca[bI.camelCase(i)]}}else{cb=ca}return cb}function ab(b9,b7,e){if(!bI.acceptData(b9)){return}var cb,b8,ca=b9.nodeType,b6=ca?bI.cache:b9,cc=ca?b9[bI.expando]:bI.expando;if(!b6[cc]){return}if(b7){cb=e?b6[cc]:b6[cc].data;if(cb){if(!bI.isArray(b7)){if(b7 in cb){b7=[b7]}else{b7=bI.camelCase(b7);if(b7 in cb){b7=[b7]}else{b7=b7.split(" ")}}}else{b7=b7.concat(bI.map(b7,bI.camelCase))}b8=b7.length;while(b8--){delete cb[b7[b8]]}if(e?!Q(cb):!bI.isEmptyObject(cb)){return}}}if(!e){delete b6[cc].data;if(!Q(b6[cc])){return}}if(ca){bI.cleanData([b9],true)}else{if(D.deleteExpando||b6!=b6.window){delete b6[cc]}else{b6[cc]=null}}}bI.extend({cache:{},noData:{"applet ":true,"embed ":true,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){e=e.nodeType?bI.cache[e[bI.expando]]:e[bI.expando];return !!e&&!Q(e)},data:function(i,e,b6){return bc(i,e,b6)},removeData:function(i,e){return ab(i,e)},_data:function(i,e,b6){return bc(i,e,b6,true)},_removeData:function(i,e){return ab(i,e,true)}});bI.fn.extend({data:function(b8,cb){var b7,b6,ca,b9=this[0],e=b9&&b9.attributes;if(b8===undefined){if(this.length){ca=bI.data(b9);if(b9.nodeType===1&&!bI._data(b9,"parsedAttrs")){b7=e.length;while(b7--){if(e[b7]){b6=e[b7].name;if(b6.indexOf("data-")===0){b6=bI.camelCase(b6.slice(5));bA(b9,b6,ca[b6])}}}bI._data(b9,"parsedAttrs",true)}}return ca}if(typeof b8==="object"){return this.each(function(){bI.data(this,b8)})}return arguments.length>1?this.each(function(){bI.data(this,b8,cb)}):b9?bA(b9,b8,bI.data(b9,b8)):undefined},removeData:function(e){return this.each(function(){bI.removeData(this,e)})}});bI.extend({queue:function(b6,i,b7){var e;if(b6){i=(i||"fx")+"queue";e=bI._data(b6,i);if(b7){if(!e||bI.isArray(b7)){e=bI._data(b6,i,bI.makeArray(b7))}else{e.push(b7)}}return e||[]}},dequeue:function(b9,b8){b8=b8||"fx";var i=bI.queue(b9,b8),ca=i.length,b7=i.shift(),e=bI._queueHooks(b9,b8),b6=function(){bI.dequeue(b9,b8)};if(b7==="inprogress"){b7=i.shift();ca--}if(b7){if(b8==="fx"){i.unshift("inprogress")}delete e.stop;b7.call(b9,b6,e)}if(!ca&&e){e.empty.fire()}},_queueHooks:function(b6,i){var e=i+"queueHooks";return bI._data(b6,e)||bI._data(b6,e,{empty:bI.Callbacks("once memory").add(function(){bI._removeData(b6,i+"queue");bI._removeData(b6,e)})})}});bI.fn.extend({queue:function(e,i){var b6=2;if(typeof e!=="string"){i=e;e="fx";b6--}if(arguments.length
    a";D.leadingWhitespace=b8.firstChild.nodeType===3;D.tbody=!b8.getElementsByTagName("tbody").length;D.htmlSerialize=!!b8.getElementsByTagName("link").length;D.html5Clone=n.createElement("nav").cloneNode(true).outerHTML!=="<:nav>";i.type="checkbox";i.checked=true;b6.appendChild(i);D.appendChecked=i.checked;b8.innerHTML="";D.noCloneChecked=!!b8.cloneNode(true).lastChild.defaultValue;b6.appendChild(b8);b8.innerHTML="";D.checkClone=b8.cloneNode(true).cloneNode(true).lastChild.checked;D.noCloneEvent=true;if(b8.attachEvent){b8.attachEvent("onclick",function(){D.noCloneEvent=false});b8.cloneNode(true).click()}if(D.deleteExpando==null){D.deleteExpando=true;try{delete b8.test}catch(b7){D.deleteExpando=false}}})();(function(){var b6,e,b7=n.createElement("div");for(b6 in {submit:true,change:true,focusin:true}){e="on"+b6;if(!(D[b6+"Bubbles"]=e in a5)){b7.setAttribute(e,"t");D[b6+"Bubbles"]=b7.attributes[e].expando===false}}b7=null})();var bG=/^(?:input|select|textarea)$/i,a6=/^key/,bM=/^(?:mouse|pointer|contextmenu)|click/,bC=/^(?:focusinfocus|focusoutblur)$/,bx=/^([^.]*)(?:\.(.+)|)$/;function U(){return true}function Z(){return false}function am(){try{return n.activeElement}catch(e){}}bI.event={global:{},add:function(b8,cd,ci,ca,b9){var cb,cj,ck,b6,cf,cc,ch,b7,cg,e,i,ce=bI._data(b8);if(!ce){return}if(ci.handler){b6=ci;ci=b6.handler;b9=b6.selector}if(!ci.guid){ci.guid=bI.guid++}if(!(cj=ce.events)){cj=ce.events={}}if(!(cc=ce.handle)){cc=ce.handle=function(cl){return typeof bI!==aC&&(!cl||bI.event.triggered!==cl.type)?bI.event.dispatch.apply(cc.elem,arguments):undefined};cc.elem=b8}cd=(cd||"").match(aF)||[""];ck=cd.length;while(ck--){cb=bx.exec(cd[ck])||[];cg=i=cb[1];e=(cb[2]||"").split(".").sort();if(!cg){continue}cf=bI.event.special[cg]||{};cg=(b9?cf.delegateType:cf.bindType)||cg;cf=bI.event.special[cg]||{};ch=bI.extend({type:cg,origType:i,data:ca,handler:ci,guid:ci.guid,selector:b9,needsContext:b9&&bI.expr.match.needsContext.test(b9),namespace:e.join(".")},b6);if(!(b7=cj[cg])){b7=cj[cg]=[];b7.delegateCount=0;if(!cf.setup||cf.setup.call(b8,ca,e,cc)===false){if(b8.addEventListener){b8.addEventListener(cg,cc,false)}else{if(b8.attachEvent){b8.attachEvent("on"+cg,cc)}}}}if(cf.add){cf.add.call(b8,ch);if(!ch.handler.guid){ch.handler.guid=ci.guid}}if(b9){b7.splice(b7.delegateCount++,0,ch)}else{b7.push(ch)}bI.event.global[cg]=true}b8=null},remove:function(b7,cd,ck,b8,cc){var ca,ch,cb,b9,cj,ci,cf,b6,cg,e,i,ce=bI.hasData(b7)&&bI._data(b7);if(!ce||!(ci=ce.events)){return}cd=(cd||"").match(aF)||[""];cj=cd.length;while(cj--){cb=bx.exec(cd[cj])||[];cg=i=cb[1];e=(cb[2]||"").split(".").sort();if(!cg){for(cg in ci){bI.event.remove(b7,cg+cd[cj],ck,b8,true)}continue}cf=bI.event.special[cg]||{};cg=(b8?cf.delegateType:cf.bindType)||cg;b6=ci[cg]||[];cb=cb[2]&&new RegExp("(^|\\.)"+e.join("\\.(?:.*\\.|)")+"(\\.|$)");b9=ca=b6.length;while(ca--){ch=b6[ca];if((cc||i===ch.origType)&&(!ck||ck.guid===ch.guid)&&(!cb||cb.test(ch.namespace))&&(!b8||b8===ch.selector||b8==="**"&&ch.selector)){b6.splice(ca,1);if(ch.selector){b6.delegateCount--}if(cf.remove){cf.remove.call(b7,ch)}}}if(b9&&!b6.length){if(!cf.teardown||cf.teardown.call(b7,e,ce.handle)===false){bI.removeEvent(b7,cg,ce.handle)}delete ci[cg]}}if(bI.isEmptyObject(ci)){delete ce.handle;bI._removeData(b7,"events")}},trigger:function(b6,cd,b9,ck){var ce,b8,ci,cj,cg,cc,cb,ca=[b9||n],ch=K.call(b6,"type")?b6.type:b6,b7=K.call(b6,"namespace")?b6.namespace.split("."):[];ci=cc=b9=b9||n;if(b9.nodeType===3||b9.nodeType===8){return}if(bC.test(ch+bI.event.triggered)){return}if(ch.indexOf(".")>=0){b7=ch.split(".");ch=b7.shift();b7.sort()}b8=ch.indexOf(":")<0&&"on"+ch;b6=b6[bI.expando]?b6:new bI.Event(ch,typeof b6==="object"&&b6);b6.isTrigger=ck?2:3;b6.namespace=b7.join(".");b6.namespace_re=b6.namespace?new RegExp("(^|\\.)"+b7.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;b6.result=undefined;if(!b6.target){b6.target=b9}cd=cd==null?[b6]:bI.makeArray(cd,[b6]);cg=bI.event.special[ch]||{};if(!ck&&cg.trigger&&cg.trigger.apply(b9,cd)===false){return}if(!ck&&!cg.noBubble&&!bI.isWindow(b9)){cj=cg.delegateType||ch;if(!bC.test(cj+ch)){ci=ci.parentNode}for(;ci;ci=ci.parentNode){ca.push(ci);cc=ci}if(cc===(b9.ownerDocument||n)){ca.push(cc.defaultView||cc.parentWindow||a5)}}cb=0;while((ci=ca[cb++])&&!b6.isPropagationStopped()){b6.type=cb>1?cj:cg.bindType||ch;ce=(bI._data(ci,"events")||{})[b6.type]&&bI._data(ci,"handle");if(ce){ce.apply(ci,cd)}ce=b8&&ci[b8];if(ce&&ce.apply&&bI.acceptData(ci)){b6.result=ce.apply(ci,cd);if(b6.result===false){b6.preventDefault()}}}b6.type=ch;if(!ck&&!b6.isDefaultPrevented()){if((!cg._default||cg._default.apply(ca.pop(),cd)===false)&&bI.acceptData(b9)){if(b8&&b9[ch]&&!bI.isWindow(b9)){cc=b9[b8];if(cc){b9[b8]=null}bI.event.triggered=ch;try{b9[ch]()}catch(cf){}bI.event.triggered=undefined;if(cc){b9[b8]=cc}}}}return b6.result},dispatch:function(e){e=bI.event.fix(e);var b9,ca,ce,b6,b8,cd=[],cc=P.call(arguments),b7=(bI._data(this,"events")||{})[e.type]||[],cb=bI.event.special[e.type]||{};cc[0]=e;e.delegateTarget=this;if(cb.preDispatch&&cb.preDispatch.call(this,e)===false){return}cd=bI.event.handlers.call(this,e,b7);b9=0;while((b6=cd[b9++])&&!e.isPropagationStopped()){e.currentTarget=b6.elem;b8=0;while((ce=b6.handlers[b8++])&&!e.isImmediatePropagationStopped()){if(!e.namespace_re||e.namespace_re.test(ce.namespace)){e.handleObj=ce;e.data=ce.data;ca=((bI.event.special[ce.origType]||{}).handle||ce.handler).apply(b6.elem,cc);if(ca!==undefined){if((e.result=ca)===false){e.preventDefault();e.stopPropagation()}}}}}if(cb.postDispatch){cb.postDispatch.call(this,e)}return e.result},handlers:function(e,b7){var b6,cc,ca,b9,cb=[],b8=b7.delegateCount,cd=e.target;if(b8&&cd.nodeType&&(!e.button||e.type!=="click")){for(;cd!=this;cd=cd.parentNode||this){if(cd.nodeType===1&&(cd.disabled!==true||e.type!=="click")){ca=[];for(b9=0;b9=0:bI.find(b6,this,null,[cd]).length}if(ca[b6]){ca.push(cc)}}if(ca.length){cb.push({elem:cd,handlers:ca})}}}}if(b8]","i"),b5=/^\s+/,aH=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,o=/<([\w:]+)/,b0=/\s*$/g,W={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:D.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},aT=B(n),k=aT.appendChild(n.createElement("div"));W.optgroup=W.option;W.tbody=W.tfoot=W.colgroup=W.caption=W.thead;W.th=W.td;function l(b8,e){var b6,b9,b7=0,ca=typeof b8.getElementsByTagName!==aC?b8.getElementsByTagName(e||"*"):typeof b8.querySelectorAll!==aC?b8.querySelectorAll(e||"*"):undefined;if(!ca){for(ca=[],b6=b8.childNodes||b8;(b9=b6[b7])!=null;b7++){if(!e||bI.nodeName(b9,e)){ca.push(b9)}else{bI.merge(ca,l(b9,e))}}}return e===undefined||e&&bI.nodeName(b8,e)?bI.merge([b8],ca):ca}function bY(e){if(aM.test(e.type)){e.defaultChecked=e.checked}}function a3(i,e){return bI.nodeName(i,"table")&&bI.nodeName(e.nodeType!==11?e:e.firstChild,"tr")?i.getElementsByTagName("tbody")[0]||i.appendChild(i.ownerDocument.createElement("tbody")):i}function u(e){e.type=(bI.find.attr(e,"type")!==null)+"/"+e.type;return e}function bf(i){var e=ar.exec(i.type);if(e){i.type=e[1]}else{i.removeAttribute("type")}return i}function bu(e,b7){var b8,b6=0;for(;(b8=e[b6])!=null;b6++){bI._data(b8,"globalEval",!b7||bI._data(b7[b6],"globalEval"))}}function at(cc,b6){if(b6.nodeType!==1||!bI.hasData(cc)){return}var b9,b8,e,cb=bI._data(cc),ca=bI._data(b6,cb),b7=cb.events;if(b7){delete ca.handle;ca.events={};for(b9 in b7){for(b8=0,e=b7[b9].length;b8")){cd=b6.cloneNode(true)}else{k.innerHTML=b6.outerHTML;k.removeChild(cd=k.firstChild)}if((!D.noCloneEvent||!D.noCloneChecked)&&(b6.nodeType===1||b6.nodeType===11)&&!bI.isXMLDoc(b6)){ca=l(cd);cb=l(b6);for(b9=0;(b7=cb[b9])!=null;++b9){if(ca[b9]){T(b7,ca[b9])}}}if(b8){if(e){cb=cb||l(b6);ca=ca||l(cd);for(b9=0;(b7=cb[b9])!=null;b9++){at(b7,ca[b9])}}else{at(b6,cd)}}ca=l(cd,"script");if(ca.length>0){bu(ca,!cc&&l(b6,"script"))}ca=cb=b7=null;return cd},buildFragment:function(b6,b8,cd,ci){var ce,ca,cc,ch,cj,cg,b7,cb=b6.length,b9=B(b8),e=[],cf=0;for(;cf")+b7[2];ce=b7[0];while(ce--){ch=ch.lastChild}if(!D.leadingWhitespace&&b5.test(ca)){e.push(b8.createTextNode(b5.exec(ca)[0]))}if(!D.tbody){ca=cj==="table"&&!b0.test(ca)?ch.firstChild:b7[1]===""&&!b0.test(ca)?ch:0;ce=ca&&ca.childNodes.length;while(ce--){if(bI.nodeName((cg=ca.childNodes[ce]),"tbody")&&!cg.childNodes.length){ca.removeChild(cg)}}}bI.merge(e,ch.childNodes);ch.textContent="";while(ch.firstChild){ch.removeChild(ch.firstChild)}ch=b9.lastChild}}}}if(ch){b9.removeChild(ch)}if(!D.appendChecked){bI.grep(l(e,"input"),bY)}cf=0;while((ca=e[cf++])){if(ci&&bI.inArray(ca,ci)!==-1){continue}cc=bI.contains(ca.ownerDocument,ca);ch=l(b9.appendChild(ca),"script");if(cc){bu(ch)}if(cd){ce=0;while((ca=ch[ce++])){if(bB.test(ca.type||"")){cd.push(ca)}}}}ch=null;return b9},cleanData:function(b6,ce){var b8,cd,b7,b9,ca=0,cf=bI.expando,e=bI.cache,cb=D.deleteExpando,cc=bI.event.special;for(;(b8=b6[ca])!=null;ca++){if(ce||bI.acceptData(b8)){b7=b8[cf];b9=b7&&e[b7];if(b9){if(b9.events){for(cd in b9.events){if(cc[cd]){bI.event.remove(b8,cd)}else{bI.removeEvent(b8,cd,b9.handle)}}}if(e[b7]){delete e[b7];if(cb){delete b8[cf]}else{if(typeof b8.removeAttribute!==aC){b8.removeAttribute(cf)}else{b8[cf]=null}}aP.push(b7)}}}}}});bI.fn.extend({text:function(e){return aB(this,function(i){return i===undefined?bI.text(this):this.empty().append((this[0]&&this[0].ownerDocument||n).createTextNode(i))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var i=a3(this,e);i.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var i=a3(this,e);i.insertBefore(e,i.firstChild)}})},before:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this)}})},after:function(){return this.domManip(arguments,function(e){if(this.parentNode){this.parentNode.insertBefore(e,this.nextSibling)}})},remove:function(e,b9){var b8,b6=e?bI.filter(e,this):this,b7=0;for(;(b8=b6[b7])!=null;b7++){if(!b9&&b8.nodeType===1){bI.cleanData(l(b8))}if(b8.parentNode){if(b9&&bI.contains(b8.ownerDocument,b8)){bu(l(b8,"script"))}b8.parentNode.removeChild(b8)}}return this},empty:function(){var b6,e=0;for(;(b6=this[e])!=null;e++){if(b6.nodeType===1){bI.cleanData(l(b6,false))}while(b6.firstChild){b6.removeChild(b6.firstChild)}if(b6.options&&bI.nodeName(b6,"select")){b6.options.length=0}}return this},clone:function(i,e){i=i==null?false:i;e=e==null?i:e;return this.map(function(){return bI.clone(this,i,e)})},html:function(e){return aB(this,function(b9){var b8=this[0]||{},b7=0,b6=this.length;if(b9===undefined){return b8.nodeType===1?b8.innerHTML.replace(aD,""):undefined}if(typeof b9==="string"&&!an.test(b9)&&(D.htmlSerialize||!M.test(b9))&&(D.leadingWhitespace||!b5.test(b9))&&!W[(o.exec(b9)||["",""])[1].toLowerCase()]){b9=b9.replace(aH,"<$1>");try{for(;b71&&typeof ce==="string"&&!D.checkClone&&bW.test(ce))){return this.each(function(cj){var i=cf.eq(cj);if(b6){cd[0]=ce.call(this,cj,i.html())}i.domManip(cd,ci)})}if(b8){cc=bI.buildFragment(cd,this[0].ownerDocument,false,this);cb=cc.firstChild;if(cc.childNodes.length===1){cc=cb}if(cb){b9=bI.map(l(cc,"script"),u);e=b9.length;for(;ca")).appendTo(i.documentElement);i=(aI[0].contentWindow||aI[0].contentDocument).document;i.write();i.close();e=a4(b6,i);aI.detach()}bl[b6]=e}return e}(function(){var e;D.shrinkWrapBlocks=function(){if(e!=null){return e}e=false;var b7,i,b6;i=n.getElementsByTagName("body")[0];if(!i||!i.style){return}b7=n.createElement("div");b6=n.createElement("div");b6.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";i.appendChild(b6).appendChild(b7);if(typeof b7.style.zoom!==aC){b7.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1";b7.appendChild(n.createElement("div")).style.width="5px";e=b7.offsetWidth!==3}i.removeChild(b6);return e}})();var aZ=(/^margin/);var Y=new RegExp("^("+aE+")(?!px)[a-z%]+$","i");var bq,G,bo=/^(top|right|bottom|left)$/;if(a5.getComputedStyle){bq=function(e){if(e.ownerDocument.defaultView.opener){return e.ownerDocument.defaultView.getComputedStyle(e,null)}return a5.getComputedStyle(e,null)};G=function(cb,i,ca){var b8,b7,b9,e,b6=cb.style;ca=ca||bq(cb);e=ca?ca.getPropertyValue(i)||ca[i]:undefined;if(ca){if(e===""&&!bI.contains(cb.ownerDocument,cb)){e=bI.style(cb,i)}if(Y.test(e)&&aZ.test(i)){b8=b6.width;b7=b6.minWidth;b9=b6.maxWidth;b6.minWidth=b6.maxWidth=b6.width=e;e=ca.width;b6.width=b8;b6.minWidth=b7;b6.maxWidth=b9}}return e===undefined?e:e+""}}else{if(n.documentElement.currentStyle){bq=function(e){return e.currentStyle};G=function(ca,b7,b9){var cb,i,e,b6,b8=ca.style;b9=b9||bq(ca);b6=b9?b9[b7]:undefined;if(b6==null&&b8&&b8[b7]){b6=b8[b7]}if(Y.test(b6)&&!bo.test(b7)){cb=b8.left;i=ca.runtimeStyle;e=i&&i.left;if(e){i.left=ca.currentStyle.left}b8.left=b7==="fontSize"?"1em":b6;b6=b8.pixelLeft+"px";b8.left=cb;if(e){i.left=e}}return b6===undefined?b6:b6+""||"auto"}}}function a7(e,i){return{get:function(){var b6=e();if(b6==null){return}if(b6){delete this.get;return}return(this.get=i).apply(this,arguments)}}}(function(){var cb,b9,b7,ca,b6,b8,i;cb=n.createElement("div");cb.innerHTML="
    a";b7=cb.getElementsByTagName("a")[0];b9=b7&&b7.style;if(!b9){return}b9.cssText="float:left;opacity:.5";D.opacity=b9.opacity==="0.5";D.cssFloat=!!b9.cssFloat;cb.style.backgroundClip="content-box";cb.cloneNode(true).style.backgroundClip="";D.clearCloneStyle=cb.style.backgroundClip==="content-box";D.boxSizing=b9.boxSizing===""||b9.MozBoxSizing===""||b9.WebkitBoxSizing==="";bI.extend(D,{reliableHiddenOffsets:function(){if(b8==null){e()}return b8},boxSizingReliable:function(){if(b6==null){e()}return b6},pixelPosition:function(){if(ca==null){e()}return ca},reliableMarginRight:function(){if(i==null){e()}return i}});function e(){var cf,cc,cd,ce;cc=n.getElementsByTagName("body")[0];if(!cc||!cc.style){return}cf=n.createElement("div");cd=n.createElement("div");cd.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";cc.appendChild(cd).appendChild(cf);cf.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute";ca=b6=false;i=true;if(a5.getComputedStyle){ca=(a5.getComputedStyle(cf,null)||{}).top!=="1%";b6=(a5.getComputedStyle(cf,null)||{width:"4px"}).width==="4px";ce=cf.appendChild(n.createElement("div"));ce.style.cssText=cf.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0";ce.style.marginRight=ce.style.width="0";cf.style.width="1px";i=!parseFloat((a5.getComputedStyle(ce,null)||{}).marginRight);cf.removeChild(ce)}cf.innerHTML="
    t
    ";ce=cf.getElementsByTagName("td");ce[0].style.cssText="margin:0;border:0;padding:0;display:none";b8=ce[0].offsetHeight===0;if(b8){ce[0].style.display="";ce[1].style.display="none";b8=ce[0].offsetHeight===0}cc.removeChild(cd)}})();bI.swap=function(b9,b8,ca,b7){var b6,i,e={};for(i in b8){e[i]=b9.style[i];b9.style[i]=b8[i]}b6=ca.apply(b9,b7||[]);for(i in b8){b9.style[i]=e[i]}return b6};var bj=/alpha\([^)]*\)/i,aU=/opacity\s*=\s*([^)]*)/,H=/^(none|table(?!-c[ea]).+)/,bb=new RegExp("^("+aE+")(.*)$","i"),V=new RegExp("^([+-])=("+aE+")","i"),be={position:"absolute",visibility:"hidden",display:"block"},bD={letterSpacing:"0",fontWeight:"400"},aw=["Webkit","O","Moz","ms"];function c(b8,b6){if(b6 in b8){return b6}var b9=b6.charAt(0).toUpperCase()+b6.slice(1),e=b6,b7=aw.length;while(b7--){b6=aw[b7]+b9;if(b6 in b8){return b6}}return e}function s(ca,e){var cb,b8,b9,i=[],b6=0,b7=ca.length;for(;b6=1||b9==="")&&bI.trim(b6.replace(bj,""))===""&&b7.removeAttribute){b7.removeAttribute("filter");if(b9===""||i&&!i.filter){return}}b7.filter=bj.test(b6)?b6.replace(bj,e):b6+" "+e}}}bI.cssHooks.marginRight=a7(D.reliableMarginRight,function(i,e){if(e){return bI.swap(i,{display:"inline-block"},G,[i,"marginRight"])}});bI.each({margin:"",padding:"",border:"Width"},function(e,i){bI.cssHooks[e+i]={expand:function(b8){var b7=0,b6={},b9=typeof b8==="string"?b8.split(" "):[b8];for(;b7<4;b7++){b6[e+bT[b7]+i]=b9[b7]||b9[b7-2]||b9[0]}return b6}};if(!aZ.test(e)){bI.cssHooks[e+i].set=aN}});bI.fn.extend({css:function(e,i){return aB(this,function(ca,b7,cb){var b9,b6,cc={},b8=0;if(bI.isArray(b7)){b9=bq(ca);b6=b7.length;for(;b81)},show:function(){return s(this,true)},hide:function(){return s(this)},toggle:function(e){if(typeof e==="boolean"){return e?this.show():this.hide()}return this.each(function(){if(S(this)){bI(this).show()}else{bI(this).hide()}})}});function J(b6,i,b8,e,b7){return new J.prototype.init(b6,i,b8,e,b7)}bI.Tween=J;J.prototype={constructor:J,init:function(b7,i,b9,e,b8,b6){this.elem=b7;this.prop=b9;this.easing=b8||"swing";this.options=i;this.start=this.now=this.cur();this.end=e;this.unit=b6||(bI.cssNumber[b9]?"":"px")},cur:function(){var e=J.propHooks[this.prop];return e&&e.get?e.get(this):J.propHooks._default.get(this)},run:function(b6){var i,e=J.propHooks[this.prop];if(this.options.duration){this.pos=i=bI.easing[this.easing](b6,this.options.duration*b6,0,1,this.options.duration)}else{this.pos=i=b6}this.now=(this.end-this.start)*i+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(e&&e.set){e.set(this)}else{J.propHooks._default.set(this)}return this}};J.prototype.init.prototype=J.prototype;J.propHooks={_default:{get:function(i){var e;if(i.elem[i.prop]!=null&&(!i.elem.style||i.elem.style[i.prop]==null)){return i.elem[i.prop]}e=bI.css(i.elem,i.prop,"");return !e||e==="auto"?0:e},set:function(e){if(bI.fx.step[e.prop]){bI.fx.step[e.prop](e)}else{if(e.elem.style&&(e.elem.style[bI.cssProps[e.prop]]!=null||bI.cssHooks[e.prop])){bI.style(e.elem,e.prop,e.now+e.unit)}else{e.elem[e.prop]=e.now}}}}};J.propHooks.scrollTop=J.propHooks.scrollLeft={set:function(e){if(e.elem.nodeType&&e.elem.parentNode){e.elem[e.prop]=e.now}}};bI.easing={linear:function(e){return e},swing:function(e){return 0.5-Math.cos(e*Math.PI)/2}};bI.fx=J.prototype.init;bI.fx.step={};var N,ae,bR=/^(?:toggle|show|hide)$/,bJ=new RegExp("^(?:([+-])=|)("+aE+")([a-z%]*)$","i"),bP=/queueHooks$/,aG=[h],a2={"*":[function(e,ca){var cc=this.createTween(e,ca),b8=cc.cur(),b7=bJ.exec(ca),cb=b7&&b7[3]||(bI.cssNumber[e]?"":"px"),i=(bI.cssNumber[e]||cb!=="px"&&+b8)&&bJ.exec(bI.css(cc.elem,e)),b6=1,b9=20;if(i&&i[3]!==cb){cb=cb||i[3];b7=b7||[];i=+b8||1;do{b6=b6||".5";i=i/b6;bI.style(cc.elem,e,i+cb)}while(b6!==(b6=cc.cur()/b8)&&b6!==1&&--b9)}if(b7){i=cc.start=+i||+b8||0;cc.unit=cb;cc.end=b7[1]?i+(b7[1]+1)*b7[2]:+b7[2]}return cc}]};function bn(){setTimeout(function(){N=undefined});return(N=bI.now())}function bH(b7,b9){var b8,e={height:b7},b6=0;b9=b9?1:0;for(;b6<4;b6+=2-b9){b8=bT[b6];e["margin"+b8]=e["padding"+b8]=b7}if(b9){e.opacity=e.width=b7}return e}function bd(b8,ca,b7){var i,b9=(a2[ca]||[]).concat(a2["*"]),e=0,b6=b9.length;for(;e
    a";i=b8.getElementsByTagName("a")[0];e=n.createElement("select");b7=e.appendChild(n.createElement("option"));b6=b8.getElementsByTagName("input")[0];i.style.cssText="top:1px";D.getSetAttribute=b8.className!=="t";D.style=/top/.test(i.getAttribute("style"));D.hrefNormalized=i.getAttribute("href")==="/a";D.checkOn=!!b6.value;D.optSelected=b7.selected;D.enctype=!!n.createElement("form").enctype;e.disabled=true;D.optDisabled=!b7.disabled;b6=n.createElement("input");b6.setAttribute("value","");D.input=b6.getAttribute("value")==="";b6.value="t";b6.setAttribute("type","radio");D.radioValue=b6.value==="t"})();var al=/\r/g;bI.fn.extend({val:function(b7){var e,i,b8,b6=this[0];if(!arguments.length){if(b6){e=bI.valHooks[b6.type]||bI.valHooks[b6.nodeName.toLowerCase()];if(e&&"get" in e&&(i=e.get(b6,"value"))!==undefined){return i}i=b6.value;return typeof i==="string"?i.replace(al,""):i==null?"":i}return}b8=bI.isFunction(b7);return this.each(function(b9){var ca;if(this.nodeType!==1){return}if(b8){ca=b7.call(this,b9,bI(this).val())}else{ca=b7}if(ca==null){ca=""}else{if(typeof ca==="number"){ca+=""}else{if(bI.isArray(ca)){ca=bI.map(ca,function(cb){return cb==null?"":cb+""})}}}e=bI.valHooks[this.type]||bI.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,ca,"value")===undefined){this.value=ca}})}});bI.extend({valHooks:{option:{get:function(e){var i=bI.find.attr(e,"value");return i!=null?i:bI.trim(bI.text(e))}},select:{get:function(e){var cb,b7,cd=e.options,b9=e.selectedIndex,b8=e.type==="select-one"||b9<0,cc=b8?null:[],ca=b8?b9+1:cd.length,b6=b9<0?ca:b8?b9:0;for(;b6=0){try{b9.selected=cc=true}catch(b6){b9.scrollHeight}}else{b9.selected=false}}if(!cc){ca.selectedIndex=-1}return b7}}}});bI.each(["radio","checkbox"],function(){bI.valHooks[this]={set:function(e,i){if(bI.isArray(i)){return(e.checked=bI.inArray(bI(e).val(),i)>=0)}}};if(!D.checkOn){bI.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value}}});var ba,b3,bO=bI.expr.attrHandle,aq=/^(?:checked|selected)$/i,bN=D.getSetAttribute,bF=D.input;bI.fn.extend({attr:function(e,i){return aB(this,bI.attr,e,i,arguments.length>1)},removeAttr:function(e){return this.each(function(){bI.removeAttr(this,e)})}});bI.extend({attr:function(b8,b7,b9){var e,b6,i=b8.nodeType;if(!b8||i===3||i===8||i===2){return}if(typeof b8.getAttribute===aC){return bI.prop(b8,b7,b9)}if(i!==1||!bI.isXMLDoc(b8)){b7=b7.toLowerCase();e=bI.attrHooks[b7]||(bI.expr.match.bool.test(b7)?b3:ba)}if(b9!==undefined){if(b9===null){bI.removeAttr(b8,b7)}else{if(e&&"set" in e&&(b6=e.set(b8,b9,b7))!==undefined){return b6}else{b8.setAttribute(b7,b9+"");return b9}}}else{if(e&&"get" in e&&(b6=e.get(b8,b7))!==null){return b6}else{b6=bI.find.attr(b8,b7);return b6==null?undefined:b6}}},removeAttr:function(b7,b9){var e,b8,b6=0,ca=b9&&b9.match(aF);if(ca&&b7.nodeType===1){while((e=ca[b6++])){b8=bI.propFix[e]||e;if(bI.expr.match.bool.test(e)){if(bF&&bN||!aq.test(e)){b7[b8]=false}else{b7[bI.camelCase("default-"+e)]=b7[b8]=false}}else{bI.attr(b7,e,"")}b7.removeAttribute(bN?e:b8)}}},attrHooks:{type:{set:function(e,i){if(!D.radioValue&&i==="radio"&&bI.nodeName(e,"input")){var b6=e.value;e.setAttribute("type",i);if(b6){e.value=b6}return i}}}}});b3={set:function(i,b6,e){if(b6===false){bI.removeAttr(i,e)}else{if(bF&&bN||!aq.test(e)){i.setAttribute(!bN&&bI.propFix[e]||e,e)}else{i[bI.camelCase("default-"+e)]=i[e]=true}}return e}};bI.each(bI.expr.match.bool.source.match(/\w+/g),function(b7,b6){var e=bO[b6]||bI.find.attr;bO[b6]=bF&&bN||!aq.test(b6)?function(b9,b8,cb){var i,ca;if(!cb){ca=bO[b8];bO[b8]=i;i=e(b9,b8,cb)!=null?b8.toLowerCase():null;bO[b8]=ca}return i}:function(b8,i,b9){if(!b9){return b8[bI.camelCase("default-"+i)]?i.toLowerCase():null}}});if(!bF||!bN){bI.attrHooks.value={set:function(i,b6,e){if(bI.nodeName(i,"input")){i.defaultValue=b6}else{return ba&&ba.set(i,b6,e)}}}}if(!bN){ba={set:function(b6,b7,i){var e=b6.getAttributeNode(i);if(!e){b6.setAttributeNode((e=b6.ownerDocument.createAttribute(i)))}e.value=b7+="";if(i==="value"||b7===b6.getAttribute(i)){return b7}}};bO.id=bO.name=bO.coords=function(b6,i,b7){var e;if(!b7){return(e=b6.getAttributeNode(i))&&e.value!==""?e.value:null}};bI.valHooks.button={get:function(b6,i){var e=b6.getAttributeNode(i);if(e&&e.specified){return e.value}},set:ba.set};bI.attrHooks.contenteditable={set:function(i,b6,e){ba.set(i,b6===""?false:b6,e)}};bI.each(["width","height"],function(b6,e){bI.attrHooks[e]={set:function(i,b7){if(b7===""){i.setAttribute(e,"auto");return b7}}}})}if(!D.style){bI.attrHooks.style={get:function(e){return e.style.cssText||undefined},set:function(e,i){return(e.style.cssText=i+"")}}}var aJ=/^(?:input|select|textarea|button|object)$/i,F=/^(?:a|area)$/i;bI.fn.extend({prop:function(e,i){return aB(this,bI.prop,e,i,arguments.length>1)},removeProp:function(e){e=bI.propFix[e]||e;return this.each(function(){try{this[e]=undefined;delete this[e]}catch(i){}})}});bI.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(b9,b7,ca){var b6,e,b8,i=b9.nodeType;if(!b9||i===3||i===8||i===2){return}b8=i!==1||!bI.isXMLDoc(b9);if(b8){b7=bI.propFix[b7]||b7;e=bI.propHooks[b7]}if(ca!==undefined){return e&&"set" in e&&(b6=e.set(b9,ca,b7))!==undefined?b6:(b9[b7]=ca)}else{return e&&"get" in e&&(b6=e.get(b9,b7))!==null?b6:b9[b7]}},propHooks:{tabIndex:{get:function(i){var e=bI.find.attr(i,"tabindex");return e?parseInt(e,10):aJ.test(i.nodeName)||F.test(i.nodeName)&&i.href?0:-1}}}});if(!D.hrefNormalized){bI.each(["href","src"],function(b6,e){bI.propHooks[e]={get:function(i){return i.getAttribute(e,4)}}})}if(!D.optSelected){bI.propHooks.selected={get:function(i){var e=i.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}}}bI.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){bI.propFix[this.toLowerCase()]=this});if(!D.enctype){bI.propFix.enctype="encoding"}var bL=/[\t\r\n\f]/g;bI.fn.extend({addClass:function(cd){var b7,b6,ce,cb,b8,e,b9=0,ca=this.length,cc=typeof cd==="string"&&cd;if(bI.isFunction(cd)){return this.each(function(i){bI(this).addClass(cd.call(this,i,this.className))})}if(cc){b7=(cd||"").match(aF)||[];for(;b9=0){ce=ce.replace(" "+cb+" "," ")}}e=cd?bI.trim(ce):"";if(b6.className!==e){b6.className=e}}}}return this},toggleClass:function(b6,e){var i=typeof b6;if(typeof e==="boolean"&&i==="string"){return e?this.addClass(b6):this.removeClass(b6)}if(bI.isFunction(b6)){return this.each(function(b7){bI(this).toggleClass(b6.call(this,b7,this.className,e),e)})}return this.each(function(){if(i==="string"){var b9,b8=0,b7=bI(this),ca=b6.match(aF)||[];while((b9=ca[b8++])){if(b7.hasClass(b9)){b7.removeClass(b9)}else{b7.addClass(b9)}}}else{if(i===aC||i==="boolean"){if(this.className){bI._data(this,"__className__",this.className)}this.className=this.className||b6===false?"":bI._data(this,"__className__")||""}}})},hasClass:function(e){var b8=" "+e+" ",b7=0,b6=this.length;for(;b7=0){return true}}return false}});bI.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(b6,e){bI.fn[e]=function(b7,i){return arguments.length>0?this.on(e,null,b7,i):this.trigger(e)}});bI.fn.extend({hover:function(e,i){return this.mouseenter(e).mouseleave(i||e)},bind:function(e,b6,i){return this.on(e,null,b6,i)},unbind:function(e,i){return this.off(e,null,i)},delegate:function(e,i,b7,b6){return this.on(i,e,b7,b6)},undelegate:function(e,i,b6){return arguments.length===1?this.off(e,"**"):this.off(i,e||"**",b6)}});var bp=bI.now();var bQ=(/\?/);var a1=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;bI.parseJSON=function(e){if(a5.JSON&&a5.JSON.parse){return a5.JSON.parse(e+"")}var b7,b6=null,i=bI.trim(e+"");return i&&!bI.trim(i.replace(a1,function(ca,b8,b9,cb){if(b7&&b8){b6=0}if(b6===0){return ca}b7=b9||b8;b6+=!cb-!b9;return""}))?(Function("return "+i))():bI.error("Invalid JSON: "+e)};bI.parseXML=function(b7){var i,b6;if(!b7||typeof b7!=="string"){return null}try{if(a5.DOMParser){b6=new DOMParser();i=b6.parseFromString(b7,"text/xml")}else{i=new ActiveXObject("Microsoft.XMLDOM");i.async="false";i.loadXML(b7)}}catch(b8){i=undefined}if(!i||!i.documentElement||i.getElementsByTagName("parsererror").length){bI.error("Invalid XML: "+b7)}return i};var b4,aa,ap=/#.*$/,R=/([?&])_=[^&]*/,ah=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,C=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,r=/^(?:GET|HEAD)$/,aK=/^\/\//,aV=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,w={},a9={},aX="*/".concat("*");try{aa=location.href}catch(bi){aa=n.createElement("a");aa.href="";aa=aa.href}b4=aV.exec(aa.toLowerCase())||[];function bK(e){return function(b9,ca){if(typeof b9!=="string"){ca=b9;b9="*"}var b6,b7=0,b8=b9.toLowerCase().match(aF)||[];if(bI.isFunction(ca)){while((b6=b8[b7++])){if(b6.charAt(0)==="+"){b6=b6.slice(1)||"*";(e[b6]=e[b6]||[]).unshift(ca)}else{(e[b6]=e[b6]||[]).push(ca)}}}}}function p(e,b6,ca,b7){var i={},b8=(e===a9);function b9(cb){var cc;i[cb]=true;bI.each(e[cb]||[],function(ce,cd){var cf=cd(b6,ca,b7);if(typeof cf==="string"&&!b8&&!i[cf]){b6.dataTypes.unshift(cf);b9(cf);return false}else{if(b8){return !(cc=cf)}}});return cc}return b9(b6.dataTypes[0])||!i["*"]&&b9("*")}function t(b6,b7){var e,i,b8=bI.ajaxSettings.flatOptions||{};for(i in b7){if(b7[i]!==undefined){(b8[i]?b6:(e||(e={})))[i]=b7[i]}}if(e){bI.extend(true,b6,e)}return b6}function g(cc,cb,b8){var e,b7,b6,b9,i=cc.contents,ca=cc.dataTypes;while(ca[0]==="*"){ca.shift();if(b7===undefined){b7=cc.mimeType||cb.getResponseHeader("Content-Type")}}if(b7){for(b9 in i){if(i[b9]&&i[b9].test(b7)){ca.unshift(b9);break}}}if(ca[0] in b8){b6=ca[0]}else{for(b9 in b8){if(!ca[0]||cc.converters[b9+" "+ca[0]]){b6=b9;break}if(!e){e=b9}}b6=b6||e}if(b6){if(b6!==ca[0]){ca.unshift(b6)}return b8[b6]}}function ag(cg,b8,cd,b6){var i,cb,ce,b9,b7,cf={},cc=cg.dataTypes.slice();if(cc[1]){for(ce in cg.converters){cf[ce.toLowerCase()]=cg.converters[ce]}}cb=cc.shift();while(cb){if(cg.responseFields[cb]){cd[cg.responseFields[cb]]=b8}if(!b7&&b6&&cg.dataFilter){b8=cg.dataFilter(b8,cg.dataType)}b7=cb;cb=cc.shift();if(cb){if(cb==="*"){cb=b7}else{if(b7!=="*"&&b7!==cb){ce=cf[b7+" "+cb]||cf["* "+cb];if(!ce){for(i in cf){b9=i.split(" ");if(b9[1]===cb){ce=cf[b7+" "+b9[0]]||cf["* "+b9[0]];if(ce){if(ce===true){ce=cf[i]}else{if(cf[i]!==true){cb=b9[0];cc.unshift(b9[1])}}break}}}}if(ce!==true){if(ce&&cg["throws"]){b8=ce(b8)}else{try{b8=ce(b8)}catch(ca){return{state:"parsererror",error:ce?ca:"No conversion from "+b7+" to "+cb}}}}}}}}return{state:"success",data:b8}}bI.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:aa,type:"GET",isLocal:C.test(b4[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":aX,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":bI.parseJSON,"text xml":bI.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(i,e){return e?t(t(i,bI.ajaxSettings),e):t(bI.ajaxSettings,i)},ajaxPrefilter:bK(w),ajaxTransport:bK(a9),ajax:function(ca,b7){if(typeof ca==="object"){b7=ca;ca=undefined}b7=b7||{};var cj,cl,cb,cq,cf,b6,cm,b8,ce=bI.ajaxSetup({},b7),cs=ce.context||ce,ch=ce.context&&(cs.nodeType||cs.jquery)?bI(cs):bI.event,cr=bI.Deferred(),co=bI.Callbacks("once memory"),cc=ce.statusCode||{},ci={},cp={},b9=0,cd="canceled",ck={readyState:0,getResponseHeader:function(i){var e;if(b9===2){if(!b8){b8={};while((e=ah.exec(cq))){b8[e[1].toLowerCase()]=e[2]}}e=b8[i.toLowerCase()]}return e==null?null:e},getAllResponseHeaders:function(){return b9===2?cq:null},setRequestHeader:function(i,ct){var e=i.toLowerCase();if(!b9){i=cp[e]=cp[e]||i;ci[i]=ct}return this},overrideMimeType:function(e){if(!b9){ce.mimeType=e}return this},statusCode:function(i){var e;if(i){if(b9<2){for(e in i){cc[e]=[cc[e],i[e]]}}else{ck.always(i[ck.status])}}return this},abort:function(i){var e=i||cd;if(cm){cm.abort(e)}cg(0,e);return this}};cr.promise(ck).complete=co.add;ck.success=ck.done;ck.error=ck.fail;ce.url=((ca||ce.url||aa)+"").replace(ap,"").replace(aK,b4[1]+"//");ce.type=b7.method||b7.type||ce.method||ce.type;ce.dataTypes=bI.trim(ce.dataType||"*").toLowerCase().match(aF)||[""];if(ce.crossDomain==null){cj=aV.exec(ce.url.toLowerCase());ce.crossDomain=!!(cj&&(cj[1]!==b4[1]||cj[2]!==b4[2]||(cj[3]||(cj[1]==="http:"?"80":"443"))!==(b4[3]||(b4[1]==="http:"?"80":"443"))))}if(ce.data&&ce.processData&&typeof ce.data!=="string"){ce.data=bI.param(ce.data,ce.traditional)}p(w,ce,b7,ck);if(b9===2){return ck}b6=bI.event&&ce.global;if(b6&&bI.active++===0){bI.event.trigger("ajaxStart")}ce.type=ce.type.toUpperCase();ce.hasContent=!r.test(ce.type);cb=ce.url;if(!ce.hasContent){if(ce.data){cb=(ce.url+=(bQ.test(cb)?"&":"?")+ce.data);delete ce.data}if(ce.cache===false){ce.url=R.test(cb)?cb.replace(R,"$1_="+bp++):cb+(bQ.test(cb)?"&":"?")+"_="+bp++}}if(ce.ifModified){if(bI.lastModified[cb]){ck.setRequestHeader("If-Modified-Since",bI.lastModified[cb])}if(bI.etag[cb]){ck.setRequestHeader("If-None-Match",bI.etag[cb])}}if(ce.data&&ce.hasContent&&ce.contentType!==false||b7.contentType){ck.setRequestHeader("Content-Type",ce.contentType)}ck.setRequestHeader("Accept",ce.dataTypes[0]&&ce.accepts[ce.dataTypes[0]]?ce.accepts[ce.dataTypes[0]]+(ce.dataTypes[0]!=="*"?", "+aX+"; q=0.01":""):ce.accepts["*"]);for(cl in ce.headers){ck.setRequestHeader(cl,ce.headers[cl])}if(ce.beforeSend&&(ce.beforeSend.call(cs,ck,ce)===false||b9===2)){return ck.abort()}cd="abort";for(cl in {success:1,error:1,complete:1}){ck[cl](ce[cl])}cm=p(a9,ce,b7,ck);if(!cm){cg(-1,"No Transport")}else{ck.readyState=1;if(b6){ch.trigger("ajaxSend",[ck,ce])}if(ce.async&&ce.timeout>0){cf=setTimeout(function(){ck.abort("timeout")},ce.timeout)}try{b9=1;cm.send(ci,cg)}catch(cn){if(b9<2){cg(-1,cn)}else{throw cn}}}function cg(cw,i,cx,cu){var e,cA,cy,cv,cz,ct=i;if(b9===2){return}b9=2;if(cf){clearTimeout(cf)}cm=undefined;cq=cu||"";ck.readyState=cw>0?4:0;e=cw>=200&&cw<300||cw===304;if(cx){cv=g(ce,ck,cx)}cv=ag(ce,cv,ck,e);if(e){if(ce.ifModified){cz=ck.getResponseHeader("Last-Modified");if(cz){bI.lastModified[cb]=cz}cz=ck.getResponseHeader("etag");if(cz){bI.etag[cb]=cz}}if(cw===204||ce.type==="HEAD"){ct="nocontent"}else{if(cw===304){ct="notmodified"}else{ct=cv.state;cA=cv.data;cy=cv.error;e=!cy}}}else{cy=ct;if(cw||!ct){ct="error";if(cw<0){cw=0}}}ck.status=cw;ck.statusText=(i||ct)+"";if(e){cr.resolveWith(cs,[cA,ct,ck])}else{cr.rejectWith(cs,[ck,ct,cy])}ck.statusCode(cc);cc=undefined;if(b6){ch.trigger(e?"ajaxSuccess":"ajaxError",[ck,ce,e?cA:cy])}co.fireWith(cs,[ck,ct]);if(b6){ch.trigger("ajaxComplete",[ck,ce]);if(!(--bI.active)){bI.event.trigger("ajaxStop")}}}return ck},getJSON:function(e,i,b6){return bI.get(e,i,b6,"json")},getScript:function(e,i){return bI.get(e,undefined,i,"script")}});bI.each(["get","post"],function(e,b6){bI[b6]=function(i,b8,b9,b7){if(bI.isFunction(b8)){b7=b7||b9;b9=b8;b8=undefined}return bI.ajax({url:i,type:b6,dataType:b7,data:b8,success:b9})}});bI._evalUrl=function(e){return bI.ajax({url:e,type:"GET",dataType:"script",async:false,global:false,"throws":true})};bI.fn.extend({wrapAll:function(e){if(bI.isFunction(e)){return this.each(function(b6){bI(this).wrapAll(e.call(this,b6))})}if(this[0]){var i=bI(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){i.insertBefore(this[0])}i.map(function(){var b6=this;while(b6.firstChild&&b6.firstChild.nodeType===1){b6=b6.firstChild}return b6}).append(this)}return this},wrapInner:function(e){if(bI.isFunction(e)){return this.each(function(b6){bI(this).wrapInner(e.call(this,b6))})}return this.each(function(){var i=bI(this),b6=i.contents();if(b6.length){b6.wrapAll(e)}else{i.append(e)}})},wrap:function(e){var i=bI.isFunction(e);return this.each(function(b6){bI(this).wrapAll(i?e.call(this,b6):e)})},unwrap:function(){return this.parent().each(function(){if(!bI.nodeName(this,"body")){bI(this).replaceWith(this.childNodes)}}).end()}});bI.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||(!D.reliableHiddenOffsets()&&((e.style&&e.style.display)||bI.css(e,"display"))==="none")};bI.expr.filters.visible=function(e){return !bI.expr.filters.hidden(e)};var bw=/%20/g,aS=/\[\]$/,X=/\r?\n/g,b=/^(?:submit|button|image|reset|file)$/i,au=/^(?:input|select|textarea|keygen)/i;function j(b6,b8,i,b7){var e;if(bI.isArray(b8)){bI.each(b8,function(ca,b9){if(i||aS.test(b6)){b7(b6,b9)}else{j(b6+"["+(typeof b9==="object"?ca:"")+"]",b9,i,b7)}})}else{if(!i&&bI.type(b8)==="object"){for(e in b8){j(b6+"["+e+"]",b8[e],i,b7)}}else{b7(b6,b8)}}}bI.param=function(e,b6){var b7,i=[],b8=function(b9,ca){ca=bI.isFunction(ca)?ca():(ca==null?"":ca);i[i.length]=encodeURIComponent(b9)+"="+encodeURIComponent(ca)};if(b6===undefined){b6=bI.ajaxSettings&&bI.ajaxSettings.traditional}if(bI.isArray(e)||(e.jquery&&!bI.isPlainObject(e))){bI.each(e,function(){b8(this.name,this.value)})}else{for(b7 in e){j(b7,e[b7],b6,b8)}}return i.join("&").replace(bw,"+")};bI.fn.extend({serialize:function(){return bI.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=bI.prop(this,"elements");return e?bI.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!bI(this).is(":disabled")&&au.test(this.nodeName)&&!b.test(e)&&(this.checked||!aM.test(e))}).map(function(e,b6){var b7=bI(this).val();return b7==null?null:bI.isArray(b7)?bI.map(b7,function(i){return{name:b6.name,value:i.replace(X,"\r\n")}}):{name:b6.name,value:b7.replace(X,"\r\n")}}).get()}});bI.ajaxSettings.xhr=a5.ActiveXObject!==undefined?function(){return !this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&bE()||bg()}:bE;var aA=0,aj={},ay=bI.ajaxSettings.xhr();if(a5.attachEvent){a5.attachEvent("onunload",function(){for(var e in aj){aj[e](undefined,true)}})}D.cors=!!ay&&("withCredentials" in ay);ay=D.ajax=!!ay;if(ay){bI.ajaxTransport(function(e){if(!e.crossDomain||D.cors){var i;return{send:function(b9,b6){var b7,b8=e.xhr(),ca=++aA;b8.open(e.type,e.url,e.async,e.username,e.password);if(e.xhrFields){for(b7 in e.xhrFields){b8[b7]=e.xhrFields[b7]}}if(e.mimeType&&b8.overrideMimeType){b8.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!b9["X-Requested-With"]){b9["X-Requested-With"]="XMLHttpRequest"}for(b7 in b9){if(b9[b7]!==undefined){b8.setRequestHeader(b7,b9[b7]+"")}}b8.send((e.hasContent&&e.data)||null);i=function(cd,cc){var cb,cg,ce;if(i&&(cc||b8.readyState===4)){delete aj[ca];i=undefined;b8.onreadystatechange=bI.noop;if(cc){if(b8.readyState!==4){b8.abort()}}else{ce={};cb=b8.status;if(typeof b8.responseText==="string"){ce.text=b8.responseText}try{cg=b8.statusText}catch(cf){cg=""}if(!cb&&e.isLocal&&!e.crossDomain){cb=ce.text?200:404}else{if(cb===1223){cb=204}}}}if(ce){b6(cb,cg,ce,b8.getAllResponseHeaders())}};if(!e.async){i()}else{if(b8.readyState===4){setTimeout(i)}else{b8.onreadystatechange=aj[ca]=i}}},abort:function(){if(i){i(undefined,true)}}}}})}function bE(){try{return new a5.XMLHttpRequest()}catch(i){}}function bg(){try{return new a5.ActiveXObject("Microsoft.XMLHTTP")}catch(i){}}bI.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){bI.globalEval(e);return e}}});bI.ajaxPrefilter("script",function(e){if(e.cache===undefined){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});bI.ajaxTransport("script",function(b6){if(b6.crossDomain){var e,i=n.head||bI("head")[0]||n.documentElement;return{send:function(b7,b8){e=n.createElement("script");e.async=true;if(b6.scriptCharset){e.charset=b6.scriptCharset}e.src=b6.url;e.onload=e.onreadystatechange=function(ca,b9){if(b9||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(e.parentNode){e.parentNode.removeChild(e)}e=null;if(!b9){b8(200,"success")}}};i.insertBefore(e,i.firstChild)},abort:function(){if(e){e.onload(undefined,true)}}}}});var bs=[],a8=/(=)\?(?=&|$)|\?\?/;bI.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=bs.pop()||(bI.expando+"_"+(bp++));this[e]=true;return e}});bI.ajaxPrefilter("json jsonp",function(b7,e,b8){var ca,i,b6,b9=b7.jsonp!==false&&(a8.test(b7.url)?"url":typeof b7.data==="string"&&!(b7.contentType||"").indexOf("application/x-www-form-urlencoded")&&a8.test(b7.data)&&"data");if(b9||b7.dataTypes[0]==="jsonp"){ca=b7.jsonpCallback=bI.isFunction(b7.jsonpCallback)?b7.jsonpCallback():b7.jsonpCallback;if(b9){b7[b9]=b7[b9].replace(a8,"$1"+ca)}else{if(b7.jsonp!==false){b7.url+=(bQ.test(b7.url)?"&":"?")+b7.jsonp+"="+ca}}b7.converters["script json"]=function(){if(!b6){bI.error(ca+" was not called")}return b6[0]};b7.dataTypes[0]="json";i=a5[ca];a5[ca]=function(){b6=arguments};b8.always(function(){a5[ca]=i;if(b7[ca]){b7.jsonpCallback=e.jsonpCallback;bs.push(ca)}if(b6&&bI.isFunction(i)){i(b6[0])}b6=i=undefined});return"script"}});bI.parseHTML=function(b8,b6,b7){if(!b8||typeof b8!=="string"){return null}if(typeof b6==="boolean"){b7=b6;b6=false}b6=b6||n;var i=a.exec(b8),e=!b7&&[];if(i){return[b6.createElement(i[1])]}i=bI.buildFragment([b8],b6,e);if(e&&e.length){bI(e).remove()}return bI.merge([],i.childNodes)};var b1=bI.fn.load;bI.fn.load=function(b7,ca,cb){if(typeof b7!=="string"&&b1){return b1.apply(this,arguments)}var e,b6,b8,i=this,b9=b7.indexOf(" ");if(b9>=0){e=bI.trim(b7.slice(b9,b7.length));b7=b7.slice(0,b9)}if(bI.isFunction(ca)){cb=ca;ca=undefined}else{if(ca&&typeof ca==="object"){b8="POST"}}if(i.length>0){bI.ajax({url:b7,type:b8,dataType:"html",data:ca}).done(function(cc){b6=arguments;i.html(e?bI("
    ").append(bI.parseHTML(cc)).find(e):cc)}).complete(cb&&function(cd,cc){i.each(cb,b6||[cd.responseText,cc,cd])})}return this};bI.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,b6){bI.fn[b6]=function(i){return this.on(b6,i)}});bI.expr.filters.animated=function(e){return bI.grep(bI.timers,function(i){return e===i.elem}).length};var bX=a5.document.documentElement;function br(e){return bI.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}bI.offset={setOffset:function(b7,ch,cb){var cd,ca,e,b8,b6,cf,cg,cc=bI.css(b7,"position"),b9=bI(b7),ce={};if(cc==="static"){b7.style.position="relative"}b6=b9.offset();e=bI.css(b7,"top");cf=bI.css(b7,"left");cg=(cc==="absolute"||cc==="fixed")&&bI.inArray("auto",[e,cf])>-1;if(cg){cd=b9.position();b8=cd.top;ca=cd.left}else{b8=parseFloat(e)||0;ca=parseFloat(cf)||0}if(bI.isFunction(ch)){ch=ch.call(b7,cb,b6)}if(ch.top!=null){ce.top=(ch.top-b6.top)+b8}if(ch.left!=null){ce.left=(ch.left-b6.left)+ca}if("using" in ch){ch.using.call(b7,ce)}else{b9.css(ce)}}};bI.fn.extend({offset:function(i){if(arguments.length){return i===undefined?this:this.each(function(ca){bI.offset.setOffset(this,i,ca)})}var e,b9,b7={top:0,left:0},b6=this[0],b8=b6&&b6.ownerDocument;if(!b8){return}e=b8.documentElement;if(!bI.contains(e,b6)){return b7}if(typeof b6.getBoundingClientRect!==aC){b7=b6.getBoundingClientRect()}b9=br(b8);return{top:b7.top+(b9.pageYOffset||e.scrollTop)-(e.clientTop||0),left:b7.left+(b9.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}},position:function(){if(!this[0]){return}var b6,b7,e={top:0,left:0},i=this[0];if(bI.css(i,"position")==="fixed"){b7=i.getBoundingClientRect()}else{b6=this.offsetParent();b7=this.offset();if(!bI.nodeName(b6[0],"html")){e=b6.offset()}e.top+=bI.css(b6[0],"borderTopWidth",true);e.left+=bI.css(b6[0],"borderLeftWidth",true)}return{top:b7.top-e.top-bI.css(i,"marginTop",true),left:b7.left-e.left-bI.css(i,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||bX;while(e&&(!bI.nodeName(e,"html")&&bI.css(e,"position")==="static")){e=e.offsetParent}return e||bX})}});bI.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b6,i){var e=/Y/.test(i);bI.fn[b6]=function(b7){return aB(this,function(b8,cb,ca){var b9=br(b8);if(ca===undefined){return b9?(i in b9)?b9[i]:b9.document.documentElement[cb]:b8[cb]}if(b9){b9.scrollTo(!e?ca:bI(b9).scrollLeft(),e?ca:bI(b9).scrollTop())}else{b8[cb]=ca}},b6,b7,arguments.length,null)}});bI.each(["top","left"],function(e,b6){bI.cssHooks[b6]=a7(D.pixelPosition,function(b7,i){if(i){i=G(b7,b6);return Y.test(i)?bI(b7).position()[b6]+"px":i}})});bI.each({Height:"height",Width:"width"},function(e,i){bI.each({padding:"inner"+e,content:i,"":"outer"+e},function(b6,b7){bI.fn[b7]=function(cb,ca){var b9=arguments.length&&(b6||typeof cb!=="boolean"),b8=b6||(cb===true||ca===true?"margin":"border");return aB(this,function(cd,cc,ce){var cf;if(bI.isWindow(cd)){return cd.document.documentElement["client"+e]}if(cd.nodeType===9){cf=cd.documentElement;return Math.max(cd.body["scroll"+e],cf["scroll"+e],cd.body["offset"+e],cf["offset"+e],cf["client"+e])}return ce===undefined?bI.css(cd,cc,b8):bI.style(cd,cc,ce,b8)},i,b9?cb:undefined,b9,null)}})});bI.fn.size=function(){return this.length};bI.fn.andSelf=bI.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return bI})}var bk=a5.jQuery,I=a5.$;bI.noConflict=function(e){if(a5.$===bI){a5.$=I}if(e&&a5.jQuery===bI){a5.jQuery=bk}return bI};if(typeof av===aC){a5.jQuery=a5.$=bI}return bI}));!function(a){a(function(){a.support.transition=(function(){var b=(function(){var e=document.createElement("bootstrap"),d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in d){if(e.style[c]!==undefined){return d[c]}}}());return b&&{end:b}})()})}(window.jQuery);!function(d){var c='[data-dismiss="alert"]',b=function(e){d(e).on("click",c,this.close)};b.prototype.close=function(j){var i=d(this),g=i.attr("data-target"),h;if(!g){g=i.attr("href");g=g&&g.replace(/.*(?=#[^\s]*$)/,"")}h=d(g);j&&j.preventDefault();h.length||(h=i.hasClass("alert")?i:i.parent());h.trigger(j=d.Event("close"));if(j.isDefaultPrevented()){return}h.removeClass("in");function f(){h.trigger("closed").remove()}d.support.transition&&h.hasClass("fade")?h.on(d.support.transition.end,f):f()};var a=d.fn.alert;d.fn.alert=function(e){return this.each(function(){var g=d(this),f=g.data("alert");if(!f){g.data("alert",(f=new b(this)))}if(typeof e=="string"){f[e].call(g)}})};d.fn.alert.Constructor=b;d.fn.alert.noConflict=function(){d.fn.alert=a;return this};d(document).on("click.alert.data-api",c,b.prototype.close)}(window.jQuery);!function(c){var b=function(e,d){this.$element=c(e);this.options=c.extend({},c.fn.button.defaults,d)};b.prototype.setState=function(g){var i="disabled",e=this.$element,f=e.data(),h=e.is("input")?"val":"html";g=g+"Text";f.resetText||e.data("resetText",e[h]());e[h](f[g]||this.options[g]);setTimeout(function(){g=="loadingText"?e.addClass(i).attr(i,i):e.removeClass(i).removeAttr(i)},0)};b.prototype.toggle=function(){var d=this.$element.closest('[data-toggle="buttons-radio"]');d&&d.find(".active").removeClass("active");this.$element.toggleClass("active")};var a=c.fn.button;c.fn.button=function(d){return this.each(function(){var g=c(this),f=g.data("button"),e=typeof d=="object"&&d;if(!f){g.data("button",(f=new b(this,e)))}if(d=="toggle"){f.toggle()}else{if(d){f.setState(d)}}})};c.fn.button.defaults={loadingText:"loading..."};c.fn.button.Constructor=b;c.fn.button.noConflict=function(){c.fn.button=a;return this};c(document).on("click.button.data-api","[data-toggle^=button]",function(f){var d=c(f.target);if(!d.hasClass("btn")){d=d.closest(".btn")}d.button("toggle")})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.$indicators=this.$element.find(".carousel-indicators");this.options=d;this.options.pause=="hover"&&this.$element.on("mouseenter",b.proxy(this.pause,this)).on("mouseleave",b.proxy(this.cycle,this))};c.prototype={cycle:function(d){if(!d){this.paused=false}if(this.interval){clearInterval(this.interval)}this.options.interval&&!this.paused&&(this.interval=setInterval(b.proxy(this.next,this),this.options.interval));return this},getActiveIndex:function(){this.$active=this.$element.find(".item.active");this.$items=this.$active.parent().children();return this.$items.index(this.$active)},to:function(f){var d=this.getActiveIndex(),e=this;if(f>(this.$items.length-1)||f<0){return}if(this.sliding){return this.$element.one("slid",function(){e.to(f)})}if(d==f){return this.pause().cycle()}return this.slide(f>d?"next":"prev",b(this.$items[f]))},pause:function(d){if(!d){this.paused=true}if(this.$element.find(".next, .prev").length&&b.support.transition.end){this.$element.trigger(b.support.transition.end);this.cycle(true)}clearInterval(this.interval);this.interval=null;return this},next:function(){if(this.sliding){return}return this.slide("next")},prev:function(){if(this.sliding){return}return this.slide("prev")},slide:function(k,f){var m=this.$element.find(".item.active"),d=f||m[k](),j=this.interval,l=k=="next"?"left":"right",g=k=="next"?"first":"last",h=this,i;this.sliding=true;j&&this.pause();d=d.length?d:this.$element.find(".item")[g]();i=b.Event("slide",{relatedTarget:d[0],direction:l});if(d.hasClass("active")){return}if(this.$indicators.length){this.$indicators.find(".active").removeClass("active");this.$element.one("slid",function(){var e=b(h.$indicators.children()[h.getActiveIndex()]);e&&e.addClass("active")})}if(b.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(i);if(i.isDefaultPrevented()){return}d.addClass(k);d[0].offsetWidth;m.addClass(l);d.addClass(l);this.$element.one(b.support.transition.end,function(){d.removeClass([k,l].join(" ")).addClass("active");m.removeClass(["active",l].join(" "));h.sliding=false;setTimeout(function(){h.$element.trigger("slid")},0)})}else{this.$element.trigger(i);if(i.isDefaultPrevented()){return}m.removeClass("active");d.addClass("active");this.sliding=false;this.$element.trigger("slid")}j&&this.cycle();return this}};var a=b.fn.carousel;b.fn.carousel=function(d){return this.each(function(){var h=b(this),g=h.data("carousel"),e=b.extend({},b.fn.carousel.defaults,typeof d=="object"&&d),f=typeof d=="string"?d:e.slide;if(!g){h.data("carousel",(g=new c(this,e)))}if(typeof d=="number"){g.to(d)}else{if(f){g[f]()}else{if(e.interval){g.pause().cycle()}}}})};b.fn.carousel.defaults={interval:5000,pause:"hover"};b.fn.carousel.Constructor=c;b.fn.carousel.noConflict=function(){b.fn.carousel=a;return this};b(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(j){var i=b(this),f,d=b(i.attr("data-target")||(f=i.attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")),g=b.extend({},d.data(),i.data()),h;d.carousel(g);if(h=i.attr("data-slide-to")){d.data("carousel").pause().to(h).cycle()}j.preventDefault()})}(window.jQuery);!function(b){var c=function(e,d){this.$element=b(e);this.options=b.extend({},b.fn.collapse.defaults,d);if(this.options.parent){this.$parent=b(this.options.parent)}this.options.toggle&&this.toggle()};c.prototype={constructor:c,dimension:function(){var d=this.$element.hasClass("width");return d?"width":"height"},show:function(){var g,d,f,e;if(this.transitioning||this.$element.hasClass("in")){return}g=this.dimension();d=b.camelCase(["scroll",g].join("-"));f=this.$parent&&this.$parent.find("> .accordion-group > .in");if(f&&f.length){e=f.data("collapse");if(e&&e.transitioning){return}f.collapse("hide");e||f.data("collapse",null)}this.$element[g](0);this.transition("addClass",b.Event("show"),"shown");b.support.transition&&this.$element[g](this.$element[0][d])},hide:function(){var d;if(this.transitioning||!this.$element.hasClass("in")){return}d=this.dimension();this.reset(this.$element[d]());this.transition("removeClass",b.Event("hide"),"hidden");this.$element[d](0)},reset:function(d){var e=this.dimension();this.$element.removeClass("collapse")[e](d||"auto")[0].offsetWidth;this.$element[d!==null?"addClass":"removeClass"]("collapse");return this},transition:function(h,e,f){var g=this,d=function(){if(e.type=="show"){g.reset()}g.transitioning=0;g.$element.trigger(f)};this.$element.trigger(e);if(e.isDefaultPrevented()){return}this.transitioning=1;this.$element[h]("in");b.support.transition&&this.$element.hasClass("collapse")?this.$element.one(b.support.transition.end,d):d()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var a=b.fn.collapse;b.fn.collapse=function(d){return this.each(function(){var g=b(this),f=g.data("collapse"),e=b.extend({},b.fn.collapse.defaults,g.data(),typeof d=="object"&&d);if(!f){g.data("collapse",(f=new c(this,e)))}if(typeof d=="string"){f[d]()}})};b.fn.collapse.defaults={toggle:true};b.fn.collapse.Constructor=c;b.fn.collapse.noConflict=function(){b.fn.collapse=a;return this};b(document).on("click.collapse.data-api","[data-toggle=collapse]",function(i){var h=b(this),d,g=h.attr("data-target")||i.preventDefault()||(d=h.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=b(g).data("collapse")?"toggle":h.data();h[b(g).hasClass("in")?"addClass":"removeClass"]("collapsed");b(g).collapse(f)})}(window.jQuery);!function(f){var b="[data-toggle=dropdown]",a=function(h){var g=f(h).on("click.dropdown.data-api",this.toggle);f("html").on("click.dropdown.data-api",function(){g.parent().removeClass("open")})};a.prototype={constructor:a,toggle:function(j){var i=f(this),h,g;if(i.is(".disabled, :disabled")){return}h=e(i);g=h.hasClass("open");d();if(!g){if("ontouchstart" in document.documentElement){f('