From 17b3974ca95b9be58a0823281472573c5c9a76e6 Mon Sep 17 00:00:00 2001 From: cazenave <cazenave@cines.fr> Date: Fri, 27 Nov 2020 17:07:16 +0100 Subject: [PATCH] ajout du code pastis back et front --- .../config/iam-internal-application-dev.yml | 2 +- deployment/ansible.cfg | 3 + .../mongod/1.0.0/03_application_ref.js.j2 | 32 + pom.xml | 6 + tools/docker/mongo/ansible.cfg | 3 +- .../mongo/database_scripts_templater.yml | 4 +- ui/pom.xml | 1 + ui/ui-frontend/angular.json | 122 + ui/ui-frontend/package-lock.json | 817 +- ui/ui-frontend/package.json | 25 +- ui/ui-frontend/projects/pastis/README.md | 27 + ui/ui-frontend/projects/pastis/browserslist | 12 + .../projects/pastis/e2e/class/async-utils.ts | 70 + .../features/export-default-profile.feature | 5 + .../pastis/e2e/features/navigation.feature | 75 + .../projects/pastis/e2e/features/spec.feature | 5 + .../projects/pastis/e2e/package-lock.json | 1816 ++ .../projects/pastis/e2e/package.json | 20 + .../projects/pastis/e2e/pages/attribute.po.ts | 75 + .../pastis/e2e/pages/attributes-popup.po.ts | 54 + .../e2e/pages/attributes-table-body.po.ts | 60 + .../e2e/pages/attributes-table-header.po.ts | 50 + .../pastis/e2e/pages/bread-crumb.po.ts | 46 + .../pastis/e2e/pages/button-menu.po.ts | 50 + .../pastis/e2e/pages/field-cardinalite.po.ts | 58 + .../pastis/e2e/pages/field-commentaire.po.ts | 54 + .../pastis/e2e/pages/field-valeur-fixe.po.ts | 62 + .../projects/pastis/e2e/pages/field.po.ts | 51 + .../pastis/e2e/pages/file-tree-node.po.ts | 59 + .../pastis/e2e/pages/file-tree-tab-body.po.ts | 52 + .../pastis/e2e/pages/file-tree-tab.po.ts | 55 + .../pastis/e2e/pages/left-panel.po.ts | 58 + .../pastis/e2e/pages/metadata-menu.po.ts | 56 + .../pastis/e2e/pages/metadata-popup.po.ts | 55 + .../pastis/e2e/pages/metadata-search.po.ts | 54 + .../e2e/pages/metadata-table-body.po.ts | 53 + .../e2e/pages/metadata-table-header.po.ts | 46 + .../pastis/e2e/pages/metadata-table.po.ts | 56 + .../projects/pastis/e2e/pages/metadata.po.ts | 86 + .../projects/pastis/e2e/pages/pastis.po.ts | 111 + .../projects/pastis/e2e/pages/popup.ts | 62 + .../pastis/e2e/protractor.base.conf.cjs | 135 + .../pastis/e2e/protractor_chrome.conf.cjs | 67 + .../pastis/e2e/protractor_ci.conf.cjs | 80 + .../pastis/e2e/protractor_firefox.conf.cjs | 62 + .../projects/pastis/e2e/specs/spec.spec.ts | 236 + .../projects/pastis/e2e/tsconfig.json | 73 + ui/ui-frontend/projects/pastis/karma.conf.js | 32 + ui/ui-frontend/projects/pastis/pom.xml | 144 + ui/ui-frontend/projects/pastis/proxy.json | 7 + .../pastis/sassdoc/assets/css/main.css | 1 + .../pastis/sassdoc/assets/images/favicon.png | Bin 0 -> 17676 bytes .../assets/images/logo_full_compact.svg | 1 + .../assets/images/logo_full_inline.svg | 1 + .../assets/images/logo_light_compact.svg | 1 + .../assets/images/logo_light_inline.svg | 1 + .../projects/pastis/sassdoc/assets/js/main.js | 56 + .../pastis/sassdoc/assets/js/main.min.js | 1 + .../pastis/sassdoc/assets/js/search.js | 146 + .../pastis/sassdoc/assets/js/sidebar.js | 163 + .../sassdoc/assets/js/vendor/fuse.min.js | 20 + .../sassdoc/assets/js/vendor/jquery.min.js | 4 + .../sassdoc/assets/js/vendor/prism.min.js | 9 + .../projects/pastis/sassdoc/index.html | 81 + .../pastis/src/app/app-routing.module.ts | 60 + .../pastis/src/app/app.component.html | 1 + .../pastis/src/app/app.component.scss | 0 .../pastis/src/app/app.component.spec.ts | 68 + .../projects/pastis/src/app/app.component.ts | 50 + .../projects/pastis/src/app/app.module.ts | 136 + .../pastis/src/app/core/classes/icons.ts | 50 + .../pastis/src/app/core/classes/models.ts | 51 + .../app/core/classes/pastis-configuration.ts | 28 + .../src/app/core/classes/pastis-route-api.ts | 76 + .../pastis/src/app/core/core.module.ts | 109 + .../projects/pastis/src/app/core/index.ts | 39 + .../app/core/services/api.pastis.service.ts | 80 + .../src/app/core/services/api.service.spec.ts | 49 + .../app/core/services/file.service.spec.ts | 49 + .../src/app/core/services/file.service.ts | 401 + .../pastis/src/app/core/services/index.ts | 39 + .../app/core/services/notification.service.ts | 92 + .../app/core/services/popup.service.spec.ts | 49 + .../src/app/core/services/popup.service.ts | 73 + .../app/core/services/profile.service.spec.ts | 49 + .../src/app/core/services/profile.service.ts | 98 + .../services/register-icons.service.spec.ts | 49 + .../core/services/register-icons.service.ts | 62 + .../app/core/services/seda.service.spec.ts | 49 + .../src/app/core/services/seda.service.ts | 222 + .../services/toggle-sidenav.service.spec.ts | 49 + .../core/services/toggle-sidenav.service.ts | 57 + .../src/app/file-tree/classes/file-node.ts | 119 + .../app/file-tree/classes/metadata-matcher.ts | 53 + .../file-tree/classes/metadata-validator.ts | 52 + .../src/app/file-tree/classes/seda-data.ts | 86 + .../edit-attributes.component.html | 75 + .../edit-attributes.component.scss | 103 + .../edit-attributes.component.spec.ts | 62 + .../edit-attributes.component.ts | 280 + .../edit-attributes.service.spec.ts | 49 + .../edit-attributes.service.ts | 46 + .../models/edit-attribute-models.ts | 54 + .../file-tree-metadata.component.html | 192 + .../file-tree-metadata.component.scss | 458 + .../file-tree-metadata.component.spec.ts | 62 + .../file-tree-metadata.component.ts | 411 + .../file-tree-metadata.service.spec.ts | 49 + .../file-tree-metadata.service.ts | 238 + .../app/file-tree/file-tree.component.html | 80 + .../app/file-tree/file-tree.component.scss | 219 + .../app/file-tree/file-tree.component.spec.ts | 62 + .../src/app/file-tree/file-tree.component.ts | 573 + .../src/app/file-tree/file-tree.module.ts | 92 + .../pipes/filetree-filter.pipe.spec.ts | 45 + .../file-tree/pipes/filetree-filter.pipe.ts | 49 + .../pastis/src/app/home/home.component.html | 30 + .../pastis/src/app/home/home.component.scss | 162 + .../src/app/home/home.component.spec.ts | 62 + .../pastis/src/app/home/home.component.ts | 84 + .../pastis/src/app/material.module.ts | 98 + .../profile-visualizer.component.html | 1 + .../profile-visualizer.component.scss | 28 + .../profile-visualizer.component.spec.ts | 62 + .../profile-visualizer.component.ts | 230 + .../create-profile.component.html | 1 + .../create-profile.component.scss | 0 .../create-profile.component.spec.ts | 62 + .../create-profile.component.ts | 52 + .../edit-profile/edit-profile.component.html | 95 + .../edit-profile/edit-profile.component.scss | 167 + .../edit-profile.component.spec.ts | 62 + .../edit-profile/edit-profile.component.ts | 225 + .../list-profile/list-profile.component.html | 1 + .../list-profile/list-profile.component.scss | 0 .../list-profile.component.spec.ts | 62 + .../list-profile/list-profile.component.ts | 52 + .../src/app/profile/profile.component.html | 1 + .../src/app/profile/profile.component.scss | 0 .../src/app/profile/profile.component.spec.ts | 62 + .../src/app/profile/profile.component.ts | 52 + .../pastis/src/app/profile/profile.module.ts | 71 + .../seda-visualizer.component.html | 11 + .../seda-visualizer.component.scss | 9 + .../seda-visualizer.component.spec.ts | 62 + .../seda-visualizer.component.ts | 295 + .../classes/pastis-dialog-data.ts | 52 + .../pastis-dialog-confirm.component.html | 29 + .../pastis-dialog-confirm.component.scss | 95 + .../pastis-dialog-confirm.component.spec.ts | 62 + .../pastis-dialog-confirm.component.ts | 105 + .../pastis-spinner-interceptor.ts | 87 + .../pastis-spinner.component.css | 0 .../pastis-spinner.component.html | 10 + .../pastis-spinner.component.scss | 89 + .../pastis-spinner.component.spec.ts | 62 + .../pastis-spinner.component.ts | 64 + .../pastis-toggle-button.component.html | 22 + .../pastis-toggle-button.component.scss | 176 + .../pastis-toggle-button.component.spec.ts | 25 + .../pastis-toggle-button.component.ts | 29 + .../pastis-toogle-button.service.spec.ts | 12 + .../services/pastis-toogle-button.service.ts | 20 + .../pastis-under-construction.component.html | 11 + .../pastis-under-construction.component.scss | 32 + ...astis-under-construction.component.spec.ts | 62 + .../pastis-under-construction.component.ts | 52 + .../pastis/src/app/shared/shared.module.ts | 72 + .../user-action-add-metadata.component.html | 52 + .../user-action-add-metadata.component.scss | 112 + ...user-action-add-metadata.component.spec.ts | 62 + .../user-action-add-metadata.component.ts | 174 + ...user-action-remove-metadata.component.html | 0 ...user-action-remove-metadata.component.scss | 0 ...r-action-remove-metadata.component.spec.ts | 62 + .../user-action-remove-metadata.component.ts | 62 + .../user-action-save-profile.component.html | 5 + .../user-action-save-profile.component.scss | 21 + ...user-action-save-profile.component.spec.ts | 62 + .../user-action-save-profile.component.ts | 95 + .../user-action-upload.component.html | 9 + .../user-action-upload.component.scss | 63 + .../user-action-upload.component.spec.ts | 62 + .../user-action-upload.component.ts | 85 + .../user-actions/user-actions.component.html | 0 .../user-actions/user-actions.component.scss | 0 .../user-actions.component.spec.ts | 62 + .../user-actions/user-actions.component.ts | 55 + .../app/user-actions/user-actions.module.ts | 61 + .../projects/pastis/src/assets/.gitkeep | 0 .../pastis/src/assets/config/config.json | 7 + .../pastis/src/assets/css/_buttons.scss | 145 + .../pastis/src/assets/css/_colors.scss | 42 + .../pastis/src/assets/css/_dropdown.scss | 138 + .../projects/pastis/src/assets/css/_font.scss | 246 + .../pastis/src/assets/css/_input.scss | 23 + .../pastis/src/assets/css/_layout.scss | 374 + .../pastis/src/assets/css/_mixins.scss | 188 + .../pastis/src/assets/css/_toaster.scss | 207 + .../pastis/src/assets/css/_variables.scss | 3 + .../src/assets/css/angular-material.min.css | 6 + .../pastis/src/assets/css/bootstrap.css | 6834 ++++++ .../pastis/src/assets/css/bootstrap.min.css | 6 + .../src/assets/css/bootstrap.min.css.map | 1 + .../pastis/src/assets/js/class-diagram.js | 468 + .../projects/pastis/src/assets/js/d3.min.js | 5 + .../pastis/src/assets/js/multiline-text.js | 172 + .../src/assets/lib/angular-route.min.js | 15 + .../src/assets/lib/angular-route.min.js.map | 8 + .../pastis/src/assets/pastis-logo7.png | Bin 0 -> 37754 bytes .../pastis/src/assets/pastis-marseille.jpg | Bin 0 -> 212907 bytes .../src/assets/pastis-marseille_blue_crop.jpg | Bin 0 -> 72118 bytes .../projects/pastis/src/assets/pastis7.png | Bin 0 -> 30400 bytes .../pastis/src/assets/profile_background.png | Bin 0 -> 160003 bytes .../projects/pastis/src/assets/seda.json | 12985 ++++++++++ .../pastis/src/assets/seda_lower.json | 13676 +++++++++++ .../src/assets/svg/icons/attribute_icon.png | Bin 0 -> 10753 bytes .../pastis/src/assets/svg/icons/check.svg | 1 + .../src/assets/svg/icons/close-popup.svg | 4 + .../src/assets/svg/icons/close-sidenav.svg | 17 + .../svg/icons/complex-element-white.svg | 6 + .../svg/icons/complex-element-white2.svg | 10 + .../src/assets/svg/icons/complex-element.png | Bin 0 -> 338 bytes .../src/assets/svg/icons/complex-element.svg | 6 + .../src/assets/svg/icons/complex_icon.png | Bin 0 -> 15079 bytes .../src/assets/svg/icons/drop-box-arrow.svg | 1 + .../src/assets/svg/icons/info-black.svg | 1 + .../src/assets/svg/icons/info-white.svg | 1 + .../assets/svg/icons/pastis-picto-retour.svg | 4 + .../pastis/src/assets/svg/icons/plus-blue.svg | 3 + .../pastis/src/assets/svg/icons/plus-grey.svg | 3 + .../pastis/src/assets/svg/icons/save.svg | 5 + .../pastis/src/assets/svg/icons/setting.svg | 4 + .../src/assets/svg/icons/simple_icon.png | Bin 0 -> 15644 bytes .../pastis/src/environments/IEnvironment.ts | 41 + .../src/environments/environment.dev.ts | 43 + .../src/environments/environment.rec.ts | 43 + .../src/environments/environment.rpm.ts | 44 + .../pastis/src/environments/environment.ts | 56 + .../projects/pastis/src/favicon.ico | Bin 0 -> 766 bytes .../projects/pastis/src/favicon_old.ico | Bin 0 -> 5430 bytes ui/ui-frontend/projects/pastis/src/index.html | 28 + ui/ui-frontend/projects/pastis/src/main.ts | 50 + .../projects/pastis/src/polyfills.ts | 101 + .../projects/pastis/src/styles.scss | 15 + ui/ui-frontend/projects/pastis/src/test.ts | 57 + ui/ui-frontend/projects/pastis/src/theme.scss | 25 + ui/ui-frontend/projects/pastis/stylemark.yml | 65 + .../projects/pastis/tsconfig.app.json | 14 + .../projects/pastis/tsconfig.spec.json | 18 + ui/ui-frontend/projects/pastis/tslint.json | 92 + .../pastis/zalenium/docker-compose.yml | 25 + ui/ui-frontend/tsconfig.json | 11 +- ui/ui-pastis/.gitignore | 173 + ui/ui-pastis/META-INF/MANIFEST.MF | 13 + ui/ui-pastis/build.properties | 9 + ui/ui-pastis/plugin.properties | 4 + ui/ui-pastis/plugin.xml | 9 + ui/ui-pastis/pom.xml | 247 + ui/ui-pastis/question.xml | 962 + .../vitamui/pastis/PastisRestApplication.java | 57 + .../vitamui/pastis/configuration/.gitkeep | 0 .../configuration/PastisConfiguration.java | 63 + .../pastis/controller/ProfileController.java | 176 + .../pastis/model/ElementProperties.java | 229 + .../gouv/vitamui/pastis/model/ElementRNG.java | 226 + .../vitamui/pastis/model/JsonFromRng.java | 176 + .../vitamui/pastis/model/OntologyDSL.java | 133 + .../model/factory/AbstractTagFactory.java | 50 + .../pastis/model/factory/AnnotationTag.java | 56 + .../pastis/model/factory/AttributeTag.java | 46 + .../pastis/model/factory/CardinalityTag.java | 46 + .../model/factory/CardinalityTagFactory.java | 83 + .../pastis/model/factory/ChoiceTag.java | 45 + .../vitamui/pastis/model/factory/DataTag.java | 55 + .../pastis/model/factory/DataTagFactory.java | 74 + .../model/factory/DocumentationTag.java | 55 + .../pastis/model/factory/ElementTag.java | 46 + .../pastis/model/factory/GrammarTag.java | 60 + .../pastis/model/factory/GroupTag.java | 45 + .../pastis/model/factory/OneOrMoreTag.java | 46 + .../pastis/model/factory/OptionalTag.java | 45 + .../factory/PastisFactoryTagProvider.java | 60 + .../vitamui/pastis/model/factory/RngTag.java | 96 + .../pastis/model/factory/RngTagFactory.java | 234 + .../pastis/model/factory/StartTag.java | 46 + .../vitamui/pastis/model/factory/Tag.java | 75 + .../pastis/model/factory/ValueTag.java | 77 + .../pastis/model/factory/ValueTagFactory.java | 55 + .../pastis/model/factory/ZeroOrMoreTag.java | 45 + .../pastis/model/factory/package-info.java | 54 + .../pastis/model/jaxb/AnnotationXML.java | 61 + .../pastis/model/jaxb/AttributeXML.java | 61 + .../vitamui/pastis/model/jaxb/BaliseXML.java | 346 + .../vitamui/pastis/model/jaxb/ChoiceXml.java | 46 + .../vitamui/pastis/model/jaxb/DataXML.java | 57 + .../pastis/model/jaxb/DocumentationXML.java | 67 + .../vitamui/pastis/model/jaxb/ElementXML.java | 59 + .../vitamui/pastis/model/jaxb/GrammarXML.java | 68 + .../vitamui/pastis/model/jaxb/GroupXML.java | 45 + .../pastis/model/jaxb/OneOrMoreXML.java | 49 + .../pastis/model/jaxb/OptionalXML.java | 49 + .../vitamui/pastis/model/jaxb/StartXML.java | 45 + .../vitamui/pastis/model/jaxb/ValueXML.java | 81 + .../pastis/model/jaxb/ZeroOrMoreXML.java | 50 + .../pastis/model/jaxb/package-info.java | 54 + .../pastis/model/rng/ArchiveTransfer.java | 19567 ++++++++++++++++ .../pastis/model/rng/ObjectFactory.java | 1181 + .../vitamui/pastis/model/rng/jaxb.properties | 1 + .../pastis/util/ManifestValidator.java | 110 + .../PastisCustomCharacterEscapeHandler.java | 94 + .../pastis/util/PastisGetXmlJsonTree.java | 147 + .../vitamui/pastis/util/PastisMarshaller.java | 81 + .../pastis/util/PastisSAX2Handler.java | 155 + .../vitamui/pastis/util/PropertiesUtils.java | 118 + .../vitamui/pastis/util/RNGConstants.java | 396 + .../pastis/util/RNGProfileValidator.java | 98 + .../pastis/util/XMLInputFactoryUtils.java | 51 + .../src/main/resources/application.properties | 16 + .../src/main/resources/build.properties | 3 + .../src/main/resources/log4j.properties | 28 + ui/ui-pastis/src/main/resources/log4j2.xml | 41 + .../rng/Profil_CINES_complet_2-1_v3.rng | 870 + .../rng/Profil_CINES_complet_2.1_final.rng | 831 + .../rng/Profil_CINES_complet_2.1_v2.rng | 851 + .../resources/rng/Profil_seda_pastis_mvp.rng | 107 + .../src/main/resources/rng/ProfileJson.json | 3125 +++ ui/ui-pastis/src/main/resources/xsd/full.xsd | 188 + .../src/main/resources/xsd/full_last.xsd | 187 + .../src/main/resources/xsd/full_test.xsd | 214 + .../src/main/resources/xsd/relaxng2.xsd | 356 + .../src/main/resources/xsd/rng_cines.xsd | 456 + ui/ui-pastis/src/main/resources/xsd/vitam.xsd | 1516 ++ .../main/resources/xsd_validation/catalog.xml | 7 + .../main/resources/xsd_validation/xlink.xsd | 277 + .../src/main/resources/xsd_validation/xml.xsd | 315 + ui/ui-pastis/src/main/webapp/WEB-INF/web.xml | 15 + ui/ui-pastis/src/main/webapp/index.html | 13 + .../vitamui/pastis/ManifestValidatorTest.java | 117 + .../fr/gouv/vitamui/pastis/PastisTest.java | 117 + .../pastis/RNGProfileValidatorTest.java | 129 + .../src/test/resources/application.properties | 4 + .../test/resources/manifests/jsonProfile.json | 4541 ++++ .../test/resources/manifests/manifestNOK.xml | 1050 + .../test/resources/manifests/manifestOK.xml | 1052 + .../test/resources/manifests/rngProfile.rng | 846 + .../test/resources/profiles/profile_nok.rng | 861 + .../test/resources/profiles/profile_ok.rng | 870 + 348 files changed, 98122 insertions(+), 76 deletions(-) create mode 100644 ui/ui-frontend/projects/pastis/README.md create mode 100644 ui/ui-frontend/projects/pastis/browserslist create mode 100644 ui/ui-frontend/projects/pastis/e2e/class/async-utils.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/features/export-default-profile.feature create mode 100644 ui/ui-frontend/projects/pastis/e2e/features/navigation.feature create mode 100644 ui/ui-frontend/projects/pastis/e2e/features/spec.feature create mode 100644 ui/ui-frontend/projects/pastis/e2e/package-lock.json create mode 100644 ui/ui-frontend/projects/pastis/e2e/package.json create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/attribute.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/attributes-popup.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-body.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-header.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/bread-crumb.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/button-menu.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/field-cardinalite.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/field-commentaire.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/field-valeur-fixe.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/field.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/file-tree-node.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab-body.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/left-panel.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata-menu.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata-popup.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata-search.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-body.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-header.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata-table.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/metadata.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/pastis.po.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/pages/popup.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/protractor.base.conf.cjs create mode 100644 ui/ui-frontend/projects/pastis/e2e/protractor_chrome.conf.cjs create mode 100644 ui/ui-frontend/projects/pastis/e2e/protractor_ci.conf.cjs create mode 100644 ui/ui-frontend/projects/pastis/e2e/protractor_firefox.conf.cjs create mode 100644 ui/ui-frontend/projects/pastis/e2e/specs/spec.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/e2e/tsconfig.json create mode 100644 ui/ui-frontend/projects/pastis/karma.conf.js create mode 100644 ui/ui-frontend/projects/pastis/pom.xml create mode 100644 ui/ui-frontend/projects/pastis/proxy.json create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/css/main.css create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/images/favicon.png create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_compact.svg create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_inline.svg create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_compact.svg create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_inline.svg create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.min.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/search.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/sidebar.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/fuse.min.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/jquery.min.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/prism.min.js create mode 100644 ui/ui-frontend/projects/pastis/sassdoc/index.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/app-routing.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/app.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/app.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/app.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/app.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/app.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/classes/icons.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/classes/models.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-configuration.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-route-api.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/core.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/index.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/api.pastis.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/api.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/file.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/index.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/notification.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/classes/file-node.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-matcher.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-validator.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/classes/seda-data.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/models/edit-attribute-models.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/home/home.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/home/home.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/home/home.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/home/home.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/material.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/profile.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/profile.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/profile.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/profile.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/profile/profile.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/classes/pastis-dialog-data.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner-interceptor.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.css create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.html create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.scss create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.spec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.ts create mode 100644 ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.module.ts create mode 100644 ui/ui-frontend/projects/pastis/src/assets/.gitkeep create mode 100644 ui/ui-frontend/projects/pastis/src/assets/config/config.json create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_buttons.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_colors.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_dropdown.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_font.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_input.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_layout.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_mixins.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_toaster.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/_variables.scss create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/angular-material.min.css create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.css create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css create mode 100644 ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css.map create mode 100644 ui/ui-frontend/projects/pastis/src/assets/js/class-diagram.js create mode 100644 ui/ui-frontend/projects/pastis/src/assets/js/d3.min.js create mode 100644 ui/ui-frontend/projects/pastis/src/assets/js/multiline-text.js create mode 100644 ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js create mode 100644 ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js.map create mode 100644 ui/ui-frontend/projects/pastis/src/assets/pastis-logo7.png create mode 100644 ui/ui-frontend/projects/pastis/src/assets/pastis-marseille.jpg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/pastis-marseille_blue_crop.jpg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/pastis7.png create mode 100644 ui/ui-frontend/projects/pastis/src/assets/profile_background.png create mode 100644 ui/ui-frontend/projects/pastis/src/assets/seda.json create mode 100644 ui/ui-frontend/projects/pastis/src/assets/seda_lower.json create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/attribute_icon.png create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/check.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-popup.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-sidenav.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white2.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.png create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex_icon.png create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/drop-box-arrow.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-black.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-white.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/pastis-picto-retour.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-blue.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-grey.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/save.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/setting.svg create mode 100644 ui/ui-frontend/projects/pastis/src/assets/svg/icons/simple_icon.png create mode 100644 ui/ui-frontend/projects/pastis/src/environments/IEnvironment.ts create mode 100644 ui/ui-frontend/projects/pastis/src/environments/environment.dev.ts create mode 100644 ui/ui-frontend/projects/pastis/src/environments/environment.rec.ts create mode 100644 ui/ui-frontend/projects/pastis/src/environments/environment.rpm.ts create mode 100644 ui/ui-frontend/projects/pastis/src/environments/environment.ts create mode 100644 ui/ui-frontend/projects/pastis/src/favicon.ico create mode 100644 ui/ui-frontend/projects/pastis/src/favicon_old.ico create mode 100644 ui/ui-frontend/projects/pastis/src/index.html create mode 100644 ui/ui-frontend/projects/pastis/src/main.ts create mode 100644 ui/ui-frontend/projects/pastis/src/polyfills.ts create mode 100644 ui/ui-frontend/projects/pastis/src/styles.scss create mode 100644 ui/ui-frontend/projects/pastis/src/test.ts create mode 100644 ui/ui-frontend/projects/pastis/src/theme.scss create mode 100644 ui/ui-frontend/projects/pastis/stylemark.yml create mode 100644 ui/ui-frontend/projects/pastis/tsconfig.app.json create mode 100644 ui/ui-frontend/projects/pastis/tsconfig.spec.json create mode 100644 ui/ui-frontend/projects/pastis/tslint.json create mode 100644 ui/ui-frontend/projects/pastis/zalenium/docker-compose.yml create mode 100644 ui/ui-pastis/.gitignore create mode 100644 ui/ui-pastis/META-INF/MANIFEST.MF create mode 100644 ui/ui-pastis/build.properties create mode 100644 ui/ui-pastis/plugin.properties create mode 100644 ui/ui-pastis/plugin.xml create mode 100644 ui/ui-pastis/pom.xml create mode 100644 ui/ui-pastis/question.xml create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/PastisRestApplication.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/.gitkeep create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/PastisConfiguration.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/controller/ProfileController.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementProperties.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementRNG.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/JsonFromRng.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/OntologyDSL.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AbstractTagFactory.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AnnotationTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AttributeTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTagFactory.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ChoiceTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTagFactory.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DocumentationTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ElementTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GrammarTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GroupTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OneOrMoreTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OptionalTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/PastisFactoryTagProvider.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTagFactory.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/StartTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/Tag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTagFactory.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ZeroOrMoreTag.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/package-info.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AnnotationXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AttributeXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/BaliseXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ChoiceXml.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DataXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DocumentationXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ElementXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GrammarXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GroupXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OneOrMoreXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OptionalXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/StartXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ValueXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ZeroOrMoreXML.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/package-info.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ArchiveTransfer.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ObjectFactory.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/jaxb.properties create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/ManifestValidator.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisCustomCharacterEscapeHandler.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisGetXmlJsonTree.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisMarshaller.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisSAX2Handler.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PropertiesUtils.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGConstants.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGProfileValidator.java create mode 100644 ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/XMLInputFactoryUtils.java create mode 100644 ui/ui-pastis/src/main/resources/application.properties create mode 100644 ui/ui-pastis/src/main/resources/build.properties create mode 100644 ui/ui-pastis/src/main/resources/log4j.properties create mode 100644 ui/ui-pastis/src/main/resources/log4j2.xml create mode 100644 ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2-1_v3.rng create mode 100644 ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_final.rng create mode 100644 ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_v2.rng create mode 100644 ui/ui-pastis/src/main/resources/rng/Profil_seda_pastis_mvp.rng create mode 100644 ui/ui-pastis/src/main/resources/rng/ProfileJson.json create mode 100644 ui/ui-pastis/src/main/resources/xsd/full.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd/full_last.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd/full_test.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd/relaxng2.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd/rng_cines.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd/vitam.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd_validation/catalog.xml create mode 100644 ui/ui-pastis/src/main/resources/xsd_validation/xlink.xsd create mode 100644 ui/ui-pastis/src/main/resources/xsd_validation/xml.xsd create mode 100644 ui/ui-pastis/src/main/webapp/WEB-INF/web.xml create mode 100644 ui/ui-pastis/src/main/webapp/index.html create mode 100644 ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/ManifestValidatorTest.java create mode 100644 ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/PastisTest.java create mode 100644 ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/RNGProfileValidatorTest.java create mode 100644 ui/ui-pastis/src/test/resources/application.properties create mode 100644 ui/ui-pastis/src/test/resources/manifests/jsonProfile.json create mode 100644 ui/ui-pastis/src/test/resources/manifests/manifestNOK.xml create mode 100644 ui/ui-pastis/src/test/resources/manifests/manifestOK.xml create mode 100644 ui/ui-pastis/src/test/resources/manifests/rngProfile.rng create mode 100644 ui/ui-pastis/src/test/resources/profiles/profile_nok.rng create mode 100644 ui/ui-pastis/src/test/resources/profiles/profile_ok.rng diff --git a/api/api-iam/iam-internal/src/main/config/iam-internal-application-dev.yml b/api/api-iam/iam-internal/src/main/config/iam-internal-application-dev.yml index f6a54104..324b1ba3 100644 --- a/api/api-iam/iam-internal/src/main/config/iam-internal-application-dev.yml +++ b/api/api-iam/iam-internal/src/main/config/iam-internal-application-dev.yml @@ -12,7 +12,7 @@ spring: register: false data: mongodb: - uri: mongodb://mongod_dbuser_iam:mongod_dbpwd_iam@localhost:27018/iam?connectTimeoutMS=2000 + uri: mongodb://mongod_dbuser_iam:mongod_dbpwd_iam@dev.vitamui.com:27018/iam?connectTimeoutMS=2000 server-identity: identityName: vitamui-dev diff --git a/deployment/ansible.cfg b/deployment/ansible.cfg index 7ed4eebb..e79d18b9 100644 --- a/deployment/ansible.cfg +++ b/deployment/ansible.cfg @@ -9,6 +9,9 @@ filter_plugins = ./filter_plugins/ # This is 2 hours fact_caching_timeout = 7200 +gather_subset = !all +gather_timeout = 20 + # Mitogen host_key_checking = False strategy_plugins = ./lib/mitogen-0.2.9/ansible_mitogen/plugins/strategy diff --git a/deployment/scripts/mongod/1.0.0/03_application_ref.js.j2 b/deployment/scripts/mongod/1.0.0/03_application_ref.js.j2 index aa107c49..13a4dcc9 100644 --- a/deployment/scripts/mongod/1.0.0/03_application_ref.js.j2 +++ b/deployment/scripts/mongod/1.0.0/03_application_ref.js.j2 @@ -123,3 +123,35 @@ db.applications.insert({ "tooltip": "Consulter mes informations, Choisir la langue de l'interface", "target": "_self" }); + +// -------- PASTIS ----- + +db.applications.insert({ + "identifier" : "PASTIS_APP", + "url" : "https://{{ vitamui_services.ui_pastis.server_name }}", + "icon" : "vitamui-icon vitamui-icon-ontologie", + "name" : "PASTIS", + "category" : "referential", + "position" : NumberInt(51), + "hasCustomerList" : false, + "hasTenantList" : true, + "hasHighlight" : false, + "tooltip" : "Accéder, créer et modifier les profils d'archivage", + "target" : "_self" +}); + + +db.applications.insert({ + "_id" : ObjectId("5f02f30ed792810b68782526"), + "identifier" : "SEDA_APP", + "url" : "https://{{ vitamui_services.ui_pastis.server_name }}/sedaview", + "icon" : "vitamui-icon vitamui-icon-ontologie", + "name" : "SEDA View poste de DEV", + "category" : "referential", + "position" : NumberInt(51), + "hasCustomerList" : false, + "hasTenantList" : true, + "hasHighlight" : false, + "tooltip" : "Visualisation du SEDA en graph", + "target" : "_self" +}); diff --git a/pom.xml b/pom.xml index db1e2f1e..1617e6ec 100644 --- a/pom.xml +++ b/pom.xml @@ -1353,6 +1353,12 @@ <angular.build.profile>:dev</angular.build.profile> <angular.test.profile>:conf-ci</angular.test.profile> </properties> + <repositories> + <repository> + <id>vitam</id> + <url>http://download.programmevitam.fr/vitam_repository/${vitam.version}/mvn_repo/</url> + </repository> + </repositories> <build> <resources> <resource> diff --git a/tools/docker/mongo/ansible.cfg b/tools/docker/mongo/ansible.cfg index 9e9c5f41..71aba452 100644 --- a/tools/docker/mongo/ansible.cfg +++ b/tools/docker/mongo/ansible.cfg @@ -8,6 +8,7 @@ filter_plugins = ./../../../deployment/filter_plugins/ # The timeout is defined in seconds # This is 2 hours fact_caching_timeout = 7200 - +gather_subset = !all +gather_timeout = 20 [ssh_connection] pipelining = True diff --git a/tools/docker/mongo/database_scripts_templater.yml b/tools/docker/mongo/database_scripts_templater.yml index 5f8e6ed9..68e605b5 100644 --- a/tools/docker/mongo/database_scripts_templater.yml +++ b/tools/docker/mongo/database_scripts_templater.yml @@ -5,8 +5,8 @@ - hosts: localhost gather_facts: true roles: - - { - role: mongo_init, + - { + role: mongo_init, mongod_source_template_dir: "{{lookup('env','PWD')}}/../../../deployment/scripts/mongod/" } diff --git a/ui/pom.xml b/ui/pom.xml index 19495344..d941d402 100644 --- a/ui/pom.xml +++ b/ui/pom.xml @@ -19,6 +19,7 @@ <module>ui-portal</module> <module>ui-identity</module> <module>ui-referential</module> + <module>ui-pastis</module> </modules> </project> diff --git a/ui/ui-frontend/angular.json b/ui/ui-frontend/angular.json index 417341c0..66c5fff4 100644 --- a/ui/ui-frontend/angular.json +++ b/ui/ui-frontend/angular.json @@ -498,6 +498,128 @@ } } } + }, + "pastis": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "sass" + } + }, + "root": "projects/pastis", + "sourceRoot": "projects/pastis/src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/pastis", + "index": "projects/pastis/src/index.html", + "main": "projects/pastis/src/main.ts", + "polyfills": "projects/pastis/src/polyfills.ts", + "tsConfig": "projects/pastis/tsconfig.app.json", + "aot": false, + "assets": [ + "projects/pastis/src/favicon.ico", + "projects/pastis/src/assets" + ], + "styles": [ + "projects/pastis/src/styles.scss" + ], + "scripts": [ + "projects/pastis/src/assets/js/class-diagram.js", + "projects/pastis/src/assets/js/multiline-text.js" + ] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "projects/pastis/src/environments/environment.ts", + "with": "projects/pastis/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "pastis:build", + "host": "dev.vitamui.com", + "port": 4251 + }, + "configurations": { + "production": { + "browserTarget": "pastis:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "pastis:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "projects/pastis/src/test.ts", + "polyfills": "projects/pastis/src/polyfills.ts", + "tsConfig": "projects/pastis/tsconfig.spec.json", + "karmaConfig": "projects/pastis/karma.conf.js", + "assets": [ + "projects/pastis/src/assets", + "projects/pastis/src/favicon.ico" + ], + "styles": [ + "projects/pastis/src/assets/css/styles.scss" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "projects/pastis/tsconfig.app.json", + "projects/pastis/tsconfig.spec.json", + "projects/pastis/e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "projects/pastis/e2e/protractor.conf.js", + "devServerTarget": "pastis:serve" + }, + "configurations": { + "production": { + "devServerTarget": "pastis:serve:production" + } + } + } + } } }, "defaultProject": "portal", diff --git a/ui/ui-frontend/package-lock.json b/ui/ui-frontend/package-lock.json index 11d01dd6..9fa87cf5 100644 --- a/ui/ui-frontend/package-lock.json +++ b/ui/ui-frontend/package-lock.json @@ -101,6 +101,21 @@ "uri-js": "^4.2.2" } }, + "autoprefixer": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "dev": true, + "requires": { + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" + } + }, "cacache": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", @@ -843,7 +858,7 @@ }, "@angular/material-moment-adapter": { "version": "8.2.3", - "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/@angular/material-moment-adapter/-/material-moment-adapter-8.2.3.tgz", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-8.2.3.tgz", "integrity": "sha512-x0WE9MyQajqzGPYKm8eHcDmWWlwiobOX9rZ+V5uqY80fsvm2czk6TYnc1drFYcPAHIaIcx7je7NYOULPF1rTpw==", "requires": { "tslib": "^1.7.1" @@ -886,7 +901,6 @@ "version": "7.9.6", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz", "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==", - "dev": true, "requires": { "browserslist": "^4.11.1", "invariant": "^2.2.4", @@ -897,7 +911,6 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30001043", "electron-to-chromium": "^1.3.413", @@ -908,8 +921,7 @@ "caniuse-lite": { "version": "1.0.30001066", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==", - "dev": true + "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" } } }, @@ -1798,6 +1810,24 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, "@babel/template": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", @@ -2004,6 +2034,11 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/d3": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.44.tgz", + "integrity": "sha512-hFEcf03YGJ2uQoDYEp3nFD5mXWxly5kf6KOstuOQFEs9sUCN7kNlKhcYkpZ3gK6PiHz4XRLkoHa80NVCJNeLBw==" + }, "@types/estree": { "version": "0.0.39", "resolved": "https://nexus.teamdlab.com/repository/npm/@types/estree/-/estree-0.0.39.tgz", @@ -2489,11 +2524,16 @@ "version": "3.2.1", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", @@ -2684,6 +2724,25 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, + "assertion-error-formatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz", + "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==", + "dev": true, + "requires": { + "diff": "^4.0.1", + "pad-right": "^0.2.2", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, "assign-symbols": { "version": "1.0.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -2742,18 +2801,74 @@ "dev": true }, "autoprefixer": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", - "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", - "dev": true, + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "requires": { - "browserslist": "^4.6.3", - "caniuse-lite": "^1.0.30000980", - "chalk": "^2.4.2", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.17", - "postcss-value-parser": "^4.0.0" + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "browserslist": { + "version": "4.14.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", + "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "requires": { + "caniuse-lite": "^1.0.30001157", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.591", + "escalade": "^3.1.1", + "node-releases": "^1.1.66" + } + }, + "caniuse-lite": { + "version": "1.0.30001161", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz", + "integrity": "sha512-JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g==" + }, + "electron-to-chromium": { + "version": "1.3.609", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.609.tgz", + "integrity": "sha512-kcmRWmlHsUKKLfsSKSf7VqeTX4takM5ndjVTM3et3qpDCceITYI1DixvIfSDIngALoaTnpoMXD3SXSMpzHkYKA==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "aws-sign2": { @@ -2924,6 +3039,12 @@ "tweetnacl": "^0.14.3" } }, + "becke-ch--regex--s0-0-v1--base--pl--lib": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", + "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", + "dev": true + }, "better-assert": { "version": "1.0.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/better-assert/-/better-assert-1.0.2.tgz", @@ -3574,11 +3695,18 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "chainsaw": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", + "integrity": "sha1-EaBRAtHEx4W20EFdM21aOhYSkT4=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/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", @@ -3589,7 +3717,6 @@ "version": "5.5.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -3732,6 +3859,50 @@ "restore-cursor": "^3.1.0" } }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/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" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", @@ -3860,7 +4031,6 @@ "version": "1.9.3", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -3868,14 +4038,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colorette": { "version": "1.2.1", "resolved": "https://nexus.teamdlab.com/repository/npm/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" }, "colors": { "version": "1.1.2", @@ -3895,8 +4063,7 @@ "commander": { "version": "2.20.3", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "commondir": { "version": "1.0.1", @@ -4170,6 +4337,12 @@ "yallist": "^3.0.2" } }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -4201,6 +4374,12 @@ } } }, + "core-js-pure": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.0.tgz", + "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/core-util-is/-/core-util-is-1.0.2.tgz", @@ -4564,6 +4743,83 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "cucumber": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-6.0.5.tgz", + "integrity": "sha512-x+W9Fwk6TvcapQsYMxwFU5AsQJDOIJVGrPKmH15OC7jzb9/Dk7Hb0ZAyw4WcpaDcUDRc8bi2k2yJejDp5eTRlg==", + "dev": true, + "requires": { + "assertion-error-formatter": "^3.0.0", + "bluebird": "^3.4.1", + "cli-table3": "^0.5.1", + "colors": "^1.1.2", + "commander": "^3.0.1", + "cucumber-expressions": "^8.1.0", + "cucumber-tag-expressions": "^2.0.2", + "duration": "^0.2.1", + "escape-string-regexp": "^2.0.0", + "figures": "^3.0.0", + "gherkin": "5.0.0", + "glob": "^7.1.3", + "indent-string": "^4.0.0", + "is-generator": "^1.0.2", + "is-stream": "^2.0.0", + "knuth-shuffle-seeded": "^1.0.6", + "lodash": "^4.17.14", + "mz": "^2.4.0", + "progress": "^2.0.0", + "resolve": "^1.3.3", + "serialize-error": "^4.1.0", + "stack-chain": "^2.0.0", + "stacktrace-js": "^2.0.0", + "string-argv": "^0.3.0", + "title-case": "^2.1.1", + "util-arity": "^1.0.2", + "verror": "^1.9.0" + }, + "dependencies": { + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + } + } + }, + "cucumber-expressions": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-8.3.0.tgz", + "integrity": "sha512-cP2ya0EiorwXBC7Ll7Cj7NELYbasNv9Ty42L4u7sso9KruWemWG1ZiTq4PMqir3SNDSrbykoqI5wZgMbLEDjLQ==", + "dev": true, + "requires": { + "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.4.0", + "xregexp": "^4.2.4" + } + }, + "cucumber-tag-expressions": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/cucumber-tag-expressions/-/cucumber-tag-expressions-2.0.3.tgz", + "integrity": "sha512-+x5j1IfZrBtbvYHuoUX0rl4nUGxaey6Do9sM0CABmZfDCcWXuuRm1fQeCaklIYQgOFHQ6xOHvDSdkMHHpni6tQ==", + "dev": true + }, "cuint": { "version": "0.2.2", "resolved": "https://nexus.teamdlab.com/repository/npm/cuint/-/cuint-0.2.2.tgz", @@ -4591,6 +4847,26 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "d3": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", + "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" + }, + "d3-svg-legend": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/d3-svg-legend/-/d3-svg-legend-1.13.0.tgz", + "integrity": "sha1-YhdHjJrdnWLLMzYX4ZYTEaQaTbM=" + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -4984,6 +5260,16 @@ "stream-shift": "^1.0.0" } }, + "duration": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", + "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.46" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -5009,8 +5295,7 @@ "electron-to-chromium": { "version": "1.3.452", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.452.tgz", - "integrity": "sha512-IdbjgCEqDvcU/1kUQa6C49I2NZOY3SBmU9Eus7mdFdJJBqn0Lg1Epfi/T4nqVcxTNBEGhcjwMhY1EysMBsXZrw==", - "dev": true + "integrity": "sha512-IdbjgCEqDvcU/1kUQa6C49I2NZOY3SBmU9Eus7mdFdJJBqn0Lg1Epfi/T4nqVcxTNBEGhcjwMhY1EysMBsXZrw==" }, "elliptic": { "version": "6.5.2", @@ -5213,6 +5498,15 @@ "is-arrayish": "^0.2.1" } }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, "es-abstract": { "version": "1.17.5", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", @@ -5243,6 +5537,28 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/es6-promise/-/es6-promise-4.2.8.tgz", @@ -5258,6 +5574,16 @@ "es6-promise": "^4.0.3" } }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "escalade": { "version": "3.0.2", "resolved": "https://nexus.teamdlab.com/repository/npm/escalade/-/escalade-3.0.2.tgz", @@ -5279,8 +5605,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint-scope": { "version": "4.0.3", @@ -5485,6 +5810,23 @@ } } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/extend/-/extend-3.0.2.tgz", @@ -6028,6 +6370,15 @@ "globule": "^1.0.0" } }, + "generate-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/generate-schema/-/generate-schema-2.6.0.tgz", + "integrity": "sha512-EUBKfJNzT8f91xUk5X5gKtnbdejZeE065UAJ3BCzE8VEbvwKI9Pm5jaWmqVeK1MYc1g5weAVFDTSJzN7ymtTqA==", + "requires": { + "commander": "^2.9.0", + "type-of-is": "^3.4.0" + } + }, "genfun": { "version": "5.0.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/genfun/-/genfun-5.0.0.tgz", @@ -6076,6 +6427,12 @@ "assert-plus": "^1.0.0" } }, + "gherkin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.0.0.tgz", + "integrity": "sha1-lt70EZjsOQgli1Ea909lWidk0qE=", + "dev": true + }, "glob": { "version": "7.1.3", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/glob/-/glob-7.1.3.tgz", @@ -6273,8 +6630,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { "version": "1.0.1", @@ -6386,6 +6742,14 @@ "minimalistic-assert": "^1.0.1" } }, + "hashish": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", + "integrity": "sha1-bWC8b/r3Ebav1g5CbQd5iAFOZVQ=", + "requires": { + "traverse": ">=0.2.4" + } + }, "he": { "version": "1.2.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/he/-/he-1.2.0.tgz", @@ -6826,7 +7190,6 @@ "version": "2.2.4", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -7001,6 +7364,12 @@ "number-is-nan": "^1.0.0" } }, + "is-generator": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-generator/-/is-generator-1.0.3.tgz", + "integrity": "sha1-wUwhBX7TbjKNuANHlmxpP4hjifM=", + "dev": true + }, "is-glob": { "version": "4.0.1", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/is-glob/-/is-glob-4.0.1.tgz", @@ -7432,8 +7801,7 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { "version": "3.13.1", @@ -7844,6 +8212,15 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "knuth-shuffle-seeded": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", + "integrity": "sha1-AfG2VzOqdUDuCNiwF0Fk0iCB5OE=", + "dev": true, + "requires": { + "seed-random": "~2.2.0" + } + }, "latest-version": { "version": "5.1.0", "resolved": "https://nexus.teamdlab.com/repository/npm/latest-version/-/latest-version-5.1.0.tgz", @@ -8046,7 +8423,6 @@ "version": "1.4.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -8061,6 +8437,12 @@ "signal-exit": "^3.0.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://nexus.teamdlab.com/repository/npm/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -8595,6 +8977,17 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nan": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", @@ -8639,6 +9032,12 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "ng-packagr": { "version": "9.1.5", "resolved": "https://nexus.teamdlab.com/repository/npm/ng-packagr/-/ng-packagr-9.1.5.tgz", @@ -9031,6 +9430,59 @@ } } }, + "ng2-date-picker": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ng2-date-picker/-/ng2-date-picker-8.0.0.tgz", + "integrity": "sha512-JSYeyk5YoQOCYRheAA8yykZBCwgb0p/Y8vqaV8bsNIpZr8cOw5gIksu8IDt3VqJHwQlzSAB5t2c+yzLyPmMJ2Q==", + "requires": { + "moment": "^2.24.0", + "tslib": "^1.9.0" + } + }, + "ng2-file-upload": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.4.0.tgz", + "integrity": "sha512-3J/KPU/tyh/ad6TFeUbrxX+SihUj0iOEt2Zsg4EX7mB3GFiQscXOfcUOxCkBtPWWWaqt3azrYbVGzsYa3/7NzQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ng2-nvd3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ng2-nvd3/-/ng2-nvd3-2.0.0.tgz", + "integrity": "sha512-QVpqYdtu4GAXhst4M3NQvLc5PL2BnBpgHyjnwdMkci1XmYTK7dUlzkmBLYCERHg0SMcUI9tdML/R9kGE2BHSUg==", + "requires": { + "d3": "^3.5.15", + "nvd3": "^1.8.5", + "reflect-metadata": "^0.1.10", + "rxjs": "5.2.0" + }, + "dependencies": { + "rxjs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.2.0.tgz", + "integrity": "sha1-21N96HZ8BfpzchWHop4AhTB9MYs=", + "requires": { + "symbol-observable": "^1.0.1" + } + } + } + }, + "ng2-tooltip-directive": { + "version": "2.9.22", + "resolved": "https://registry.npmjs.org/ng2-tooltip-directive/-/ng2-tooltip-directive-2.9.22.tgz", + "integrity": "sha512-y54rP/AHKkcS/+lZPGil9uirbfWrbhS8vE1GWswB08sVfT4ztu2h6SmIf7cJM1YenTaWYvYfKth9oZQJljXV5Q==", + "requires": { + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + } + } + }, "ngx-color-picker": { "version": "9.1.0", "resolved": "https://nexus.teamdlab.com/repository/npm/ngx-color-picker/-/ngx-color-picker-9.1.0.tgz", @@ -9084,12 +9536,45 @@ "tslib": "^1.9.0" } }, + "ngx-spinner": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ngx-spinner/-/ngx-spinner-8.1.0.tgz", + "integrity": "sha512-VtIcKsxe+cNj9zCelNesSJZ/xarjxKL86GQG9h4JM++/Hf7HUJtPDBWXZ6lBk0CpgWdJ4++XX3aeOntI92ApEw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ngx-toastr": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-11.3.3.tgz", + "integrity": "sha512-DbLFkSZHsVPuuIIrsY1ziEhdkFUQ0V1yG1N0+1nKXGI5QBVesEDxLUVtntjzxJcWw/uUV+bKApo//tGHHORabQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ngx-ui-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ngx-ui-loader/-/ngx-ui-loader-8.0.0.tgz", + "integrity": "sha512-yD4Vc3NjMs9N3vCFTdGMoAfcDML5ns0cXYVvR9/0WAQt6/AhN86wZcrNA0/2kj23ozy8o8SVftWEaMS9tEP8Kw==", + "requires": { + "tslib": "^1.9.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, "node-fetch-npm": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", @@ -9182,8 +9667,7 @@ "node-releases": { "version": "1.1.56", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.56.tgz", - "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==", - "dev": true + "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==" }, "node-sass": { "version": "4.14.1", @@ -9270,8 +9754,7 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, "normalize-url": { "version": "1.9.1", @@ -9402,8 +9885,7 @@ "num2fraction": { "version": "1.2.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" }, "number-is-nan": { "version": "1.0.1", @@ -9411,6 +9893,11 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, + "nvd3": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/nvd3/-/nvd3-1.8.6.tgz", + "integrity": "sha1-LT66dL8zNjtRAevx0JPFmlOuc8Q=" + }, "oauth-sign": { "version": "0.9.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -9795,6 +10282,15 @@ } } }, + "pad-right": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", + "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", + "dev": true, + "requires": { + "repeat-string": "^1.5.2" + } + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -10009,7 +10505,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, "requires": { "find-up": "^2.1.0" }, @@ -10018,7 +10513,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -10027,7 +10521,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -10037,7 +10530,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, "requires": { "p-try": "^1.0.0" } @@ -10046,7 +10538,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -10054,14 +10545,12 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, @@ -10198,8 +10687,7 @@ "postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "prepend-http": { "version": "1.0.4", @@ -10583,6 +11071,41 @@ } } }, + "protractor-cucumber-framework": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/protractor-cucumber-framework/-/protractor-cucumber-framework-6.2.1.tgz", + "integrity": "sha512-ZKOvX0Yoq2aL1nrlX5RzeHB9jtWGGiuaqqTPUvPXpyAFbrs3wfDAmMwrdWjg8m62wEhamZMVQIYqSPMPd9obMw==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "glob": "^7.1.2", + "q": "^1.5.1", + "tmp": "^0.0.33" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + } + } + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -10785,7 +11308,6 @@ "version": "2.1.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -10981,8 +11503,7 @@ "reflect-metadata": { "version": "0.1.13", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" }, "regenerate": { "version": "1.4.0", @@ -11090,6 +11611,14 @@ } } }, + "remove": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/remove/-/remove-0.1.5.tgz", + "integrity": "sha1-CV/9gn1lyfQa2X0z5BanWBEHmVU=", + "requires": { + "seq": ">= 0.3.5" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -11314,8 +11843,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -11410,6 +11938,12 @@ "source-map": "^0.4.2" } }, + "seed-random": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", + "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=", + "dev": true + }, "select-hose": { "version": "2.0.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/select-hose/-/select-hose-2.0.0.tgz", @@ -11451,8 +11985,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", @@ -11518,11 +12051,39 @@ } } }, + "seq": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", + "integrity": "sha1-rgKvOkJHk9jMvyEtaRdODFTf/jg=", + "requires": { + "chainsaw": ">=0.0.7 <0.1", + "hashish": ">=0.0.2 <0.1" + } + }, + "serialize-error": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-4.1.0.tgz", + "integrity": "sha512-5j9GgyGsP9vV9Uj1S0lDCvlsd+gc2LEPVK7HHHte7IyPwOD4lVQFeaX143gx3U5AnoCi+wbcb3mvaxVysjpxEw==", + "dev": true, + "requires": { + "type-fest": "^0.3.0" + }, + "dependencies": { + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "requires": { + "randombytes": "^2.1.0" + } }, "serve-index": { "version": "1.9.1", @@ -12265,6 +12826,56 @@ "figgy-pudding": "^3.5.1" } }, + "stack-chain": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-2.0.0.tgz", + "integrity": "sha512-GGrHXePi305aW7XQweYZZwiRwR7Js3MWoK/EHzzB9ROdc75nCnjSJVi21rdAGxFl+yCx2L2qdfl5y7NO4lTyqg==", + "dev": true + }, + "stack-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz", + "integrity": "sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, + "stacktrace-gps": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz", + "integrity": "sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==", + "dev": true, + "requires": { + "source-map": "0.5.6", + "stackframe": "^1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "dev": true, + "requires": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/static-extend/-/static-extend-0.1.2.tgz", @@ -12391,6 +13002,12 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -12591,8 +13208,7 @@ "symbol-observable": { "version": "1.2.0", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" }, "tapable": { "version": "1.1.3", @@ -12664,6 +13280,12 @@ "pkg-dir": "^3.0.0" } }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/source-map/-/source-map-0.6.1.tgz", @@ -12672,6 +13294,24 @@ } } }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "through": { "version": "2.3.8", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/through/-/through-2.3.8.tgz", @@ -12703,6 +13343,16 @@ "setimmediate": "^1.0.4" } }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/tmp/-/tmp-0.0.33.tgz", @@ -12807,6 +13457,11 @@ } } }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -12919,6 +13574,12 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", @@ -12935,6 +13596,11 @@ "mime-types": "~2.1.24" } }, + "type-of-is": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/type-of-is/-/type-of-is-3.5.1.tgz", + "integrity": "sha1-7sL8ibgo2/mQDrZBbu4w9P4PzTE=" + }, "typedarray": { "version": "0.0.6", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/typedarray/-/typedarray-0.0.6.tgz", @@ -12964,7 +13630,7 @@ }, "ui-frontend-common": { "version": "file:../ui-frontend-common/ui-frontend-common-0.1.0.tgz", - "integrity": "sha512-wY+WkyoMe7RllQ8gIdculWTweuSgnMwhdTzrKMyqOxprLTObj2FBRLm95va/3JNMgAuWf5/d7VlSObjjgjnusg==", + "integrity": "sha512-haSdmXRV7+qyN3XBNgRVbnh7TBKdfr1g5rkz4W5qvr5eQAEM8zybQVmPUPmWCEtTbMteuE/h0SJjPD9I9EAKTQ==", "requires": { "@angular/animations": "8.2.14", "@angular/cdk": "^8.2.3", @@ -13232,6 +13898,12 @@ } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/uri-js/-/uri-js-4.2.2.tgz", @@ -13323,6 +13995,12 @@ } } }, + "util-arity": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", + "integrity": "sha1-WdAa8f2z/t4KxOYysKtfbOl8kzA=", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -14363,6 +15041,15 @@ "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", "dev": true }, + "xregexp": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.4.0.tgz", + "integrity": "sha512-83y4aa8o8o4NZe+L+46wpa+F1cWR/wCGOWI3tzqUso0w3/KAvXy0+Di7Oe/cbNMixDR4Jmi7NEybWU6ps25Wkg==", + "dev": true, + "requires": { + "@babel/runtime-corejs3": "^7.12.1" + } + }, "xtend": { "version": "4.0.2", "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/xtend/-/xtend-4.0.2.tgz", diff --git a/ui/ui-frontend/package.json b/ui/ui-frontend/package.json index 21e85869..9ddd337a 100644 --- a/ui/ui-frontend/package.json +++ b/ui/ui-frontend/package.json @@ -15,6 +15,7 @@ "start:portal": "ng serve portal --proxy-config proxy.conf.json --disable-host-check --ssl --ssl-key $npm_package_pki_path/$npm_package_pki_asset.key --ssl-cert $npm_package_pki_path/$npm_package_pki_asset.crt", "start:identity": "ng serve identity --proxy-config proxy.conf.json --disable-host-check --ssl --ssl-key $npm_package_pki_path/$npm_package_pki_asset.key --ssl-cert $npm_package_pki_path/$npm_package_pki_asset.crt", "start:referential": "ng serve referential --proxy-config proxy.conf.json --disable-host-check --ssl --ssl-key $npm_package_pki_path/$npm_package_pki_asset.key --ssl-cert $npm_package_pki_path/$npm_package_pki_asset.crt", + "start:pastis": "ng serve pastis --proxy-config proxy.conf.json --disable-host-check --ssl --ssl-key dev-ssl/server.key --ssl-cert dev-ssl/server.crt", "build": "ng build --prod --i18n-locale fr --build-optimizer=false --optimization=false", "postinstall": "npm run build:vitamui-library", "build:prod": "export NODE_OPTIONS=--max_old_space_size=4096; ng build --prod --i18n-locale fr --output-path ../../../target/www", @@ -26,6 +27,7 @@ "build:portal": "export NODE_OPTIONS=--max_old_space_size=4096; ng build portal --prod --i18n-locale fr", "build:identity": "export NODE_OPTIONS=--max_old_space_size=4096; ng build identity --prod --i18n-locale fr", "build:referential": "export NODE_OPTIONS=--max_old_space_size=4096; ng build referential --prod --i18n-locale fr", + "build:pastis": "export NODE_OPTIONS=--max_old_space_size=4096 ; ng build pastis --prod --i18n-locale fr ", "analyze-portal": "ng build portal --stats-json --prod --i18n-locale fr ; webpack-bundle-analyzer dist/portal/stats-es2015.json", "analyze-identity": "ng build identity --stats-json --prod --i18n-locale fr ; webpack-bundle-analyzer dist/identity/stats-es2015.json", "analyze-referential": "ng build referential --stats-json --prod --i18n-locale fr ; webpack-bundle-analyzer dist/referential/stats-es2015.json", @@ -88,7 +90,22 @@ "utf-8-validate": "^5.0.2", "uuid": "^7.0.2", "web-animations-js": "^2.3.2", - "zone.js": "~0.9.1" + "zone.js": "~0.9.1", + "ng2-date-picker": "^8.0.0", + "ng2-file-upload": "^1.4.0", + "ng2-nvd3": "^2.0.0", + "ng2-tooltip-directive": "^2.9.20", + "ngx-spinner": "8.1.0", + "ngx-toastr": "^11.3.3", + "ngx-ui-loader": "^8.0.0", + "d3": "^3.5.17", + "d3-svg-legend": "^1.13.0", + "generate-schema": "^2.6.0", + "serialize-javascript": "^5.0.1", + "remove": "^0.1.5", + "@babel/compat-data": "^7.8.0", + "@types/d3": "^3.5.43", + "autoprefixer": "^9.7.5" }, "devDependencies": { "@angular-devkit/build-angular": "^0.803.26", @@ -113,12 +130,14 @@ "ng-packagr": "^9.0.0", "ngx-i18nsupport": "^0.17.1", "node-sass": "^4.14.1", - "protractor": "^7.0.0", + "protractor": "7.0.0", "puppeteer": "^1.2.0", "ts-node": "~7.0.1", "tsickle": "^0.37.0", "tslint": "~5.11.0", "typescript": "~3.5.3", - "webpack-bundle-analyzer": "^3.8.0" + "webpack-bundle-analyzer": "^3.8.0", + "cucumber": "^6.0.5", + "protractor-cucumber-framework": "^6.2.1" } } diff --git a/ui/ui-frontend/projects/pastis/README.md b/ui/ui-frontend/projects/pastis/README.md new file mode 100644 index 00000000..9edc8ea5 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/README.md @@ -0,0 +1,27 @@ +# LocationLayout + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.0.4. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/ui/ui-frontend/projects/pastis/browserslist b/ui/ui-frontend/projects/pastis/browserslist new file mode 100644 index 00000000..80848532 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/browserslist @@ -0,0 +1,12 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/class/async-utils.ts b/ui/ui-frontend/projects/pastis/e2e/class/async-utils.ts new file mode 100644 index 00000000..b459fecb --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/class/async-utils.ts @@ -0,0 +1,70 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +export default class AsyncUtils { + public static map<T1, T2>( + array: T1[], + callback: (value: T1, index: number, array: T1[]) => Promise<T2>, + ): Promise<T2[]> { + return Promise.all(array.map(callback)); + } + + public static async forEach<T>( + array: T[], + callback: (value: T, index: number, array: T[]) => void, + ) { + await Promise.all(array.map(callback)); + } + + public static async filter<T>( + array: T[], + callback: (value: T, index: number, array: T[]) => Promise<boolean>, + ): Promise<T[]> { + const filterMap = await AsyncUtils.map(array, callback); + return array.filter((_, index) => filterMap[index]); + } + + public static async find<T>( + array: T[], + callback: (value: T, index: number, array: T[]) => Promise<boolean>, + ): Promise<T> { + const results = await AsyncUtils.map(array,callback); + const index = results.findIndex(result => result); + return array[index]; + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/features/export-default-profile.feature b/ui/ui-frontend/projects/pastis/e2e/features/export-default-profile.feature new file mode 100644 index 00000000..03517490 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/features/export-default-profile.feature @@ -0,0 +1,5 @@ +Feature: Export profile + Scenario: Open Pastis and Export default profile + Given The user goes to the homepage + Then The user clicks on the export button + Then The RNG file is downloaded \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/features/navigation.feature b/ui/ui-frontend/projects/pastis/e2e/features/navigation.feature new file mode 100644 index 00000000..3ea462e7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/features/navigation.feature @@ -0,0 +1,75 @@ +Feature: Navigate Profile + Scenario: Open Pastis and Click stuff around.. + Given The user goes to the homepage + Then The user clicks on "ARBORESCENCE" tab + Then The user navigates to "ArchiveUnit,Content" + Then The user writes "YAHOOO" in the field "valeurFixe" of the metadata "Title" + Then The user writes "Fonds" in the field "valeurFixe" of the metadata "DescriptionLevel" + Then The user writes "1" in the field "cardinalite" of the metadata "DescriptionLevel" + Then Verify that the value of the field "valeurFixe" of the metadata "Title" is "YAHOOO" + Then Verify that the value of the field "cardinalite" of the metadata "DescriptionLevel" is "1" + Then Verify that the list of options of the field "valeurFixe" of the metadata "DescriptionLevel" is ",Fonds,Subfonds,Class,Collection,Series,Subseries,RecordGrp,SubGrp,File,Item,OtherLevel" + Then The user clicks on "ENTÊTE" tab + Then The user navigates to "ArchivalAgency,Identifier" + Then The user writes "Super commentaire" in the field "commentaire" of the metadata "Identifier" + Then The user navigates to "ArchivalAgency" + Then The user clicks on Ajouter une métadonnée + Then The user adds the metadata "OrganizationDescriptiveMetadata" + Then The user validates the popup + Then Verify that the list of nodes of "ArchivalAgency" is "Identifier,OrganizationDescriptiveMetadata" + Then The user clicks on "OBJETS" tab + Then The user navigates to "DataObjectGroup" + Then The user clicks on Ajouter une métadonnée + Then The user adds the metadata "PhysicalDataObject" + Then The user validates the popup + Then The user navigates to "DataObjectGroup,PhysicalDataObject" + Then The user clicks on Ajouter une métadonnée + Then The user adds the metadata "PhysicalDimensions" + Then The user validates the popup + Then The user navigates to "DataObjectGroup,PhysicalDataObject,PhysicalDimensions" + Then The user clicks on Ajouter une métadonnée + Then The user adds the metadata "Width" + Then The user adds the metadata "Height" + Then The user adds the metadata "Depth" + Then The user validates the popup + Then Verify that the list of nodes of "DataObjectGroup,PhysicalDataObject,PhysicalDimensions" is "Width,Height,Depth" + Then Open the menu of the metadata "Width" + Then Verify that the list of options in the context menu of the metadata "Width" is "Dupliquer,Attributs de métadonnée,Supprimer" + Then The user clicks on the item "Attributs de métadonnée" of the context menu + Then Verify that the list of options of the field "valeurFixe" of the attribute "unit" is ",micrometre,4H,millimetre,MMT,centimetre,CMT,metre,inch,INH,foot,FOT" + Then The user writes "metre" in the field "valeurFixe" of the attribute "unit" + Then The user writes "Yahoo" in the field "commentaire" of the attribute "unit" + Then The user selects the attributes "unit" + Then The user validates the popup + Then Open the menu of the metadata "Width" + Then The user clicks on the item "Attributs de métadonnée" of the context menu + Then Verify that the list of attributes is "unit" + Then Verify that the selected attributes are "unit" + Then Verify that the value of the field "valeurFixe" of the attribute "unit" is "metre" + Then Verify that the value of the field "commentaire" of the attribute "unit" is "Yahoo" + Then Close the popup + Then The user clicks on "ENTÊTE" tab + Then Open the menu of the metadata "MessageIdentifier" + Then Verify that the list of options in the context menu of the metadata "MessageIdentifier" is "Dupliquer,Attributs de métadonnée" + Then The user clicks on the item "Attributs de métadonnée" of the context menu + Then Verify that the list of attributes is "schemeID,schemeName,schemeAgencyID,schemeAgencyName,schemeVersionID,schemeDataURI,schemeURI" + Then Verify that the selected attributes are "" + Then The user selects the attributes "schemeID" + Then The user writes "YAHOOO" in the field "valeurFixe" of the attribute "schemeID" + Then Verify that the value of the field "valeurFixe" of the attribute "schemeID" is "YAHOOO" + Then Verify that the selected attributes are "schemeID" + Then The user clicks on Tout sélectionner + Then Verify that the selected attributes are "schemeID,schemeName,schemeAgencyID,schemeAgencyName,schemeVersionID,schemeDataURI,schemeURI" + Then The user validates the popup + Then Open the menu of the metadata "MessageIdentifier" + Then The user clicks on the item "Attributs de métadonnée" of the context menu + Then Verify that the list of attributes is "schemeID,schemeName,schemeAgencyID,schemeAgencyName,schemeVersionID,schemeDataURI,schemeURI" + Then Verify that the selected attributes are "schemeID,schemeName,schemeAgencyID,schemeAgencyName,schemeVersionID,schemeDataURI,schemeURI" + Then The user clicks on Tout sélectionner + Then The user selects the attributes "schemeName" + Then Verify that the selected attributes are "schemeName" + Then The user validates the popup + Then Open the menu of the metadata "MessageIdentifier" + Then The user clicks on the item "Attributs de métadonnée" of the context menu + Then Verify that the selected attributes are "schemeName" + Then Close the popup \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/features/spec.feature b/ui/ui-frontend/projects/pastis/e2e/features/spec.feature new file mode 100644 index 00000000..dea0abc6 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/features/spec.feature @@ -0,0 +1,5 @@ +Feature: TEST POC + Scenario: Pastis 51 + Given The user goes to the homepage + Then The user clicks on "Arborescence" tab + Then The user should see the "Arborescence" tab diff --git a/ui/ui-frontend/projects/pastis/e2e/package-lock.json b/ui/ui-frontend/projects/pastis/e2e/package-lock.json new file mode 100644 index 00000000..2c39f95c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/package-lock.json @@ -0,0 +1,1816 @@ +{ + "name": "protractor", + "version": "0.0.0-development", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/runtime-corejs3": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.1.tgz", + "integrity": "sha512-umhPIcMrlBZ2aTWlWjUseW9LjQKxi1dpFlQS8DzsxB//5K+u6GLTC/JliPKHsd5kJVPIU6X/Hy0YvWOYPcMxBw==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@types/chai": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz", + "integrity": "sha512-G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ==", + "dev": true + }, + "@types/chai-as-promised": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.3.tgz", + "integrity": "sha512-FQnh1ohPXJELpKhzjuDkPLR2BZCAqed+a6xV4MI/T3XzHfd2FlarfUGUdZYgqYe8oxkYn0fchHEeHfHqdZ96sg==", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/cucumber": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cucumber/-/cucumber-6.0.1.tgz", + "integrity": "sha512-+GZV6xfN0MeN9shDCdny8GbC8N0+U6uca8cjyaJndcwmrUhwS6qOU2vmYn0d71EOwJF568/v3SxJ8VKxuZNYRw==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "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" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assertion-error-formatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz", + "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==", + "dev": true, + "requires": { + "diff": "^4.0.1", + "pad-right": "^0.2.2", + "repeat-string": "^1.6.1" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "becke-ch--regex--s0-0-v1--base--pl--lib": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", + "integrity": "sha1-Qpzuu/pffpNueNc/vcfacWKyDiA=", + "dev": true + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/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" + } + }, + "browserstack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/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" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cucumber": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-6.0.5.tgz", + "integrity": "sha512-x+W9Fwk6TvcapQsYMxwFU5AsQJDOIJVGrPKmH15OC7jzb9/Dk7Hb0ZAyw4WcpaDcUDRc8bi2k2yJejDp5eTRlg==", + "dev": true, + "requires": { + "assertion-error-formatter": "^3.0.0", + "bluebird": "^3.4.1", + "cli-table3": "^0.5.1", + "colors": "^1.1.2", + "commander": "^3.0.1", + "cucumber-expressions": "^8.1.0", + "cucumber-tag-expressions": "^2.0.2", + "duration": "^0.2.1", + "escape-string-regexp": "^2.0.0", + "figures": "^3.0.0", + "gherkin": "5.0.0", + "glob": "^7.1.3", + "indent-string": "^4.0.0", + "is-generator": "^1.0.2", + "is-stream": "^2.0.0", + "knuth-shuffle-seeded": "^1.0.6", + "lodash": "^4.17.14", + "mz": "^2.4.0", + "progress": "^2.0.0", + "resolve": "^1.3.3", + "serialize-error": "^4.1.0", + "stack-chain": "^2.0.0", + "stacktrace-js": "^2.0.0", + "string-argv": "^0.3.0", + "title-case": "^2.1.1", + "util-arity": "^1.0.2", + "verror": "^1.9.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "cucumber-expressions": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-8.3.0.tgz", + "integrity": "sha512-cP2ya0EiorwXBC7Ll7Cj7NELYbasNv9Ty42L4u7sso9KruWemWG1ZiTq4PMqir3SNDSrbykoqI5wZgMbLEDjLQ==", + "dev": true, + "requires": { + "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.4.0", + "xregexp": "^4.2.4" + } + }, + "cucumber-tag-expressions": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/cucumber-tag-expressions/-/cucumber-tag-expressions-2.0.3.tgz", + "integrity": "sha512-+x5j1IfZrBtbvYHuoUX0rl4nUGxaey6Do9sM0CABmZfDCcWXuuRm1fQeCaklIYQgOFHQ6xOHvDSdkMHHpni6tQ==", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "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" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "duration": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", + "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.46" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/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" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gherkin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.0.0.tgz", + "integrity": "sha1-lt70EZjsOQgli1Ea909lWidk0qE=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "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" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/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" + } + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-generator/-/is-generator-1.0.3.tgz", + "integrity": "sha1-wUwhBX7TbjKNuANHlmxpP4hjifM=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + } + }, + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "knuth-shuffle-seeded": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", + "integrity": "sha1-AfG2VzOqdUDuCNiwF0Fk0iCB5OE=", + "dev": true, + "requires": { + "seed-random": "~2.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/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://registry.npmjs.org/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://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pad-right": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", + "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", + "dev": true, + "requires": { + "repeat-string": "^1.5.2" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + } + } + }, + "protractor-cucumber-framework": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/protractor-cucumber-framework/-/protractor-cucumber-framework-6.2.1.tgz", + "integrity": "sha512-ZKOvX0Yoq2aL1nrlX5RzeHB9jtWGGiuaqqTPUvPXpyAFbrs3wfDAmMwrdWjg8m62wEhamZMVQIYqSPMPd9obMw==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "glob": "^7.1.2", + "q": "^1.5.1", + "tmp": "^0.0.33" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + } + } + }, + "protractor-firefox-support": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/protractor-firefox-support/-/protractor-firefox-support-1.5.0.tgz", + "integrity": "sha512-cSZa7+Wy7km7G71fe9XFT/rpNsNi7w+eh/8v3i+Pa9GQcMJDEgIgM+Ce0iaMG+ArZ3dxC0wFURtK9PESOY7+PA==", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "seed-random": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", + "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "serialize-error": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-4.1.0.tgz", + "integrity": "sha512-5j9GgyGsP9vV9Uj1S0lDCvlsd+gc2LEPVK7HHHte7IyPwOD4lVQFeaX143gx3U5AnoCi+wbcb3mvaxVysjpxEw==", + "dev": true, + "requires": { + "type-fest": "^0.3.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-chain": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-2.0.0.tgz", + "integrity": "sha512-GGrHXePi305aW7XQweYZZwiRwR7Js3MWoK/EHzzB9ROdc75nCnjSJVi21rdAGxFl+yCx2L2qdfl5y7NO4lTyqg==", + "dev": true + }, + "stack-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz", + "integrity": "sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, + "stacktrace-gps": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz", + "integrity": "sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==", + "dev": true, + "requires": { + "source-map": "0.5.6", + "stackframe": "^1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "dev": true, + "requires": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/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": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-arity": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", + "integrity": "sha1-WdAa8f2z/t4KxOYysKtfbOl8kzA=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xregexp": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", + "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", + "dev": true, + "requires": { + "@babel/runtime-corejs3": "^7.8.3" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/ui/ui-frontend/projects/pastis/e2e/package.json b/ui/ui-frontend/projects/pastis/e2e/package.json new file mode 100644 index 00000000..26836daf --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/package.json @@ -0,0 +1,20 @@ +{ + "name": "protractor", + "version": "0.0.0-development", + "private": true, + "type": "module", + "devDependencies": { + "chai": "^4.2.0", + "chai-as-promised": "7.1.1", + "@types/chai": "^4.2.14", + "@types/chai-as-promised": "^7.1.3", + "@types/cucumber": "^6.0.1", + "@types/node": "^8.10.59", + "cucumber": "^6.0.5", + "protractor": "7.0.0", + "protractor-cucumber-framework": "^6.2.1", + "protractor-firefox-support": "1.5.0", + "ts-node": "^9.0.0", + "typescript": "~3.4.3" + } +} diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/attribute.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/attribute.po.ts new file mode 100644 index 00000000..63a4ec6f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/attribute.po.ts @@ -0,0 +1,75 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; +import { AttributesTableHeader } from './attributes-table-header.po'; +import { Field, FieldsName } from './field.po'; +import { FieldValeurFixe } from './field-valeur-fixe.po'; +import { FieldCardinalite } from './field-cardinalite.po'; +import { FieldCommentaire } from './field-commentaire.po'; + +export class Attribute { + constructor(public container: ElementFinder){} + + public async getName(): Promise<string> { + return await this.container.element(by.css('td.mat-column-nomDuChamp')).getText(); + } + + public get valeurFixe(): Field { + return new FieldValeurFixe(this.container.element(by.css('td.mat-column-valeurFixe > :first-child'))); + } + + public get cardinalite(): Field { + return new FieldCardinalite(this.container.element(by.css('td.mat-column-cardinalite > :first-child'))); + } + + public get commentaire(): Field { + return new FieldCommentaire(this.container.element(by.css('td.mat-column-commentaire > :first-child'))); + } + + public getfieldByName(name: string): Field{ + switch(name){ + case FieldsName.valeurFixe: return this.valeurFixe; + case FieldsName.cardinalite: return this.cardinalite; + case FieldsName.commentaire: return this.commentaire; + } + } + + public get checkbox(): ElementFinder { + return this.container.element(by.css('mat-checkbox')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/attributes-popup.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/attributes-popup.po.ts new file mode 100644 index 00000000..338a1177 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/attributes-popup.po.ts @@ -0,0 +1,54 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; +import { AttributesTableBody } from './attributes-table-body.po'; +import { AttributesTableHeader } from './attributes-table-header.po'; + +export class AttributesPopup { + constructor(public container: ElementFinder){} + + public get attributesTableHeader(): AttributesTableHeader { + return new AttributesTableHeader(this.container.element(by.css('pastis-edit-attributes > .table-container > table > thead'))); + } + + public get attributesTableBody(): AttributesTableBody { + return new AttributesTableBody(this.container.element(by.css('pastis-edit-attributes > .table-container > table > tbody'))); + } + + +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-body.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-body.po.ts new file mode 100644 index 00000000..5899be88 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-body.po.ts @@ -0,0 +1,60 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +import { ElementFinder, element, by, browser, ElementArrayFinder } from 'protractor'; +import AsyncUtils from '../class/async-utils'; +import { Attribute } from './attribute.po'; + +export class AttributesTableBody { + constructor(public container: ElementFinder){} + + public async getAttributes(): Promise<Attribute[]> { + let attributeElement: ElementFinder[] = await this.container.all(by.css('tr')); + return attributeElement.map(a=>{return new Attribute(a)}); + } + + public async getSelectedAttributes(): Promise<Attribute[]> { + return (await AsyncUtils.filter(await this.container.all(by.css('tr')), async a => {return await a.element(by.css(('mat-checkbox.mat-checkbox-checked'))).isPresent()})) + .map(a=>{return new Attribute(a)}); + } + + public async getAttributeByName(attributeName:string): Promise<Attribute> { + let tr: ElementFinder[] = await this.container.all(by.css('tr')); + return new Attribute(await AsyncUtils.find(tr, async m=>{return await m.element(by.cssContainingText('td:first-child > span',attributeName)).isPresent()})); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-header.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-header.po.ts new file mode 100644 index 00000000..db26f9ae --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/attributes-table-header.po.ts @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, ElementArrayFinder } from 'protractor'; + +export class AttributesTableHeader { + constructor(public container: ElementFinder){} + + public get headers(): ElementArrayFinder { + return this.container.all(by.css('tr > th')); + } + + public get selectAllCheckbox(): ElementFinder { + return this.container.element(by.css('tr > th:last-child > mat-checkbox')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/bread-crumb.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/bread-crumb.po.ts new file mode 100644 index 00000000..857f14c2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/bread-crumb.po.ts @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; + +export class BreadCrumb { + constructor(public container: ElementFinder){} + + public get metadataName(): ElementFinder { + return this.container.element(by.css('.pastis-entete-1-text-titre')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/button-menu.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/button-menu.po.ts new file mode 100644 index 00000000..5a093205 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/button-menu.po.ts @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; + +export class ButtonMenu { + constructor(public container: ElementFinder){} + + public get ImportProfileButton(): ElementFinder { + return this.container.element(by.css('pastis-user-action-upload')); + } + + public get ExportProfileButton(): ElementFinder { + return this.container.element(by.css('pastis-user-action-save-profile')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/field-cardinalite.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/field-cardinalite.po.ts new file mode 100644 index 00000000..255506cd --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/field-cardinalite.po.ts @@ -0,0 +1,58 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, promise, protractor } from 'protractor'; +import { Field } from './field.po'; + +export class FieldCardinalite extends Field { + + constructor(public container: ElementFinder){ + super(container); + } + + public async getValue(): Promise<string> { + return await this.container.getText(); + } + + public async getOptions(): Promise<string[]> { + await this.container.click(); + let result: string[] = []; + await element.all(by.css('div.mat-select-panel-wrap > div > mat-option > span.mat-option-text')).each(async e=>result.push(await e.getText())); + await this.container.sendKeys(protractor.Key.ESCAPE); + return result; + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/field-commentaire.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/field-commentaire.po.ts new file mode 100644 index 00000000..eedecd0c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/field-commentaire.po.ts @@ -0,0 +1,54 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, promise, protractor } from 'protractor'; +import { Field } from './field.po'; + +export class FieldCommentaire extends Field { + + constructor(public container: ElementFinder){ + super(container); + } + + public async getValue(): Promise<string> { + return await this.container.getAttribute('value'); + } + + getOptions(): Promise<string[]> { + throw new Error('Method not implemented.'); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/field-valeur-fixe.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/field-valeur-fixe.po.ts new file mode 100644 index 00000000..53fbfbcf --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/field-valeur-fixe.po.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, promise, protractor } from 'protractor'; +import { Field } from './field.po'; + +export class FieldValeurFixe extends Field { + + constructor(public container: ElementFinder){ + super(container); + } + + public async getValue(): Promise<string> { + if (await this.container.getTagName()=='mat-select'){ + return await this.container.getText(); + } else { + return await this.container.getAttribute('value'); + } + } + + public async getOptions(): Promise<string[]> { + await this.container.click(); + let result: string[] = []; + await element.all(by.css('div.mat-select-panel-wrap > div > mat-option > span.mat-option-text')).each(async e=>result.push(await e.getText())); + await this.container.sendKeys(protractor.Key.ESCAPE); + return result; + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/field.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/field.po.ts new file mode 100644 index 00000000..9c1f8d0f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/field.po.ts @@ -0,0 +1,51 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, promise, protractor } from 'protractor'; + +export enum FieldsName { + valeurFixe = 'valeurFixe', + cardinalite = 'cardinalite', + commentaire = 'commentaire' +} + +export abstract class Field { + + constructor(public container: ElementFinder){} + abstract getValue(): Promise<string>; + abstract getOptions(): Promise<string[]>; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-node.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-node.po.ts new file mode 100644 index 00000000..09a3c1f4 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-node.po.ts @@ -0,0 +1,59 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; + +export class FileTreeNode { + constructor(public container: ElementFinder){} + + public async getName(): Promise<string> { + return await this.container.element(by.css('span > span:first-child')).getText(); + } + + public get addUAButton(): ElementFinder { + return this.container.element(by.css('span > span button.pastis-btn-rounded-ua')); + } + + public async isComplex(): Promise<boolean> { + return await this.container.element(by.css('span > button.pastis-chevron-icon')).isPresent(); + } + + public async getChildren(): Promise<FileTreeNode[]> { + let childrenElements : ElementFinder[] = (await this.container.all(by.xpath('../ul/mat-nested-tree-node/mat-list-item'))); + return childrenElements.map(node=>{return new FileTreeNode(node)}); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab-body.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab-body.po.ts new file mode 100644 index 00000000..dfdf7385 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab-body.po.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; +import { FileTreeNode } from './file-tree-node.po'; + +export class FileTreeTabBody { + constructor(public container: ElementFinder){} + + public async getTitle(): Promise<string> { + return await this.container.element(by.css('span.pastis-tree-node-root-name > span:first-child')).getText(); + } + + public getFileTreeNodes(): FileTreeNode { + return new FileTreeNode(element(by.css('pastis-file-tree > mat-tree > mat-nested-tree-node > mat-list-item'))); + } + +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab.po.ts new file mode 100644 index 00000000..886d64f8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/file-tree-tab.po.ts @@ -0,0 +1,55 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, ElementArrayFinder } from 'protractor'; + +export class FileTreeTab { + constructor(public container: ElementFinder){} + + public get activeTab(): ElementFinder { + return this.container.element(by.css('.mat-tab-label-active')); + } + + public get tabList(): ElementArrayFinder { + return this.container.all(by.css('div.mat-tab-labels > div.mat-tab-label')); + } + + public getTabByName(name:string): ElementFinder { + return this.container.element(by.cssContainingText('div.mat-tab-labels > div.mat-tab-label',name)); + // return await this.tabList.filter(async (onglet: ElementFinder)=> {return await onglet.getText() == name}); + } +} diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/left-panel.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/left-panel.po.ts new file mode 100644 index 00000000..ef615b95 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/left-panel.po.ts @@ -0,0 +1,58 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; +import { FileTreeTabBody } from './file-tree-tab-body.po'; +import { FileTreeTab } from './file-tree-tab.po'; + +export class LeftPanel { + constructor(public container: ElementFinder){} + + public get closePanelButton(): ElementFinder { + return this.container.element(by.css('div.pastis-edit-profile-header > mat-icon.pastis-ico-close-sidenav')); + } + + public get FileTreeTab(): FileTreeTab { + return new FileTreeTab(this.container.element(by.css('mat-tab-header.mat-tab-header'))); + } + + public get FileTreeTabBody(): FileTreeTabBody { + return new FileTreeTabBody(this.container.element(by.css('mat-tab-body.mat-tab-body-active'))); + } + + +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata-menu.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-menu.po.ts new file mode 100644 index 00000000..5ee7ce59 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-menu.po.ts @@ -0,0 +1,56 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, promise, protractor, ElementArrayFinder } from 'protractor'; +import AsyncUtils from '../class/async-utils'; + +export class MetadataContextMenu { + + constructor(public container: ElementFinder){} + + public async getMenuLabelList(): Promise<string[]> { + return AsyncUtils.map(await this.menuOptionsList.all(by.css('span.pastis-item-menu-text')), async e=>{return await e.getText()}); + } + + public get menuOptionsList(): ElementArrayFinder { + return this.container.all(by.css('.mat-menu-content > button.mat-menu-item')); + } + + public getMenuOptionByLabel(label: string): ElementFinder { + return this.container.element(by.cssContainingText('.mat-menu-content > button.mat-menu-item > span.pastis-item-menu-text', label)) + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata-popup.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-popup.po.ts new file mode 100644 index 00000000..aed98eb2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-popup.po.ts @@ -0,0 +1,55 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; +import { MetadataSearch } from './metadata-search.po'; +import { Popup } from './popup'; + +export class MetadataPopup extends Popup { + constructor(public container: ElementFinder){ + super(container); + } + + public get searchMetadataBar(): ElementFinder { + return this.container.element(by.css('pastis-user-action-add-metadata > div > div > input.filter-input-text')); + } + + public async getMetadataSearch(): Promise<MetadataSearch[]> { + let metadatasearchs: ElementFinder[] = (await this.container.all(by.css('mat-list > mat-selection-list > mat-list.list-item'))) + return metadatasearchs.map(metadata => {return new MetadataSearch(metadata)}); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata-search.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-search.po.ts new file mode 100644 index 00000000..7d164b37 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-search.po.ts @@ -0,0 +1,54 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; + +export class MetadataSearch { + constructor(public container: ElementFinder){} + + public async getName(): Promise<string> { + return await this.container.element(by.css('span.list-box-content > span')).getText(); + } + + public async isComplex():Promise<boolean> { + return await this.container.element(by.css('span.list-box-content > mat-icon.pastis-ico-complex-element')).isPresent(); + } + + public get addButton(): ElementFinder { + return this.container.element(by.css('span.ajouter')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-body.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-body.po.ts new file mode 100644 index 00000000..86f4fe3e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-body.po.ts @@ -0,0 +1,53 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, ElementArrayFinder } from 'protractor'; +import AsyncUtils from '../class/async-utils'; +import { Metadata } from './metadata.po'; + +export class MetadataTableBody { + constructor(public container: ElementFinder){} + + public async getMetadataList(): Promise<Metadata[]> { + return await this.container.all(by.css('tr')).map(metadata => {return new Metadata(metadata)}); + } + + public async getMetadataByName(metadataName: string): Promise<Metadata> { + let tr: ElementFinder[] = await this.container.all(by.css('tr')); + return new Metadata(await AsyncUtils.find(tr,async m=>{return await m.element(by.cssContainingText('td:first-child > span',metadataName)).isPresent()})); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-header.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-header.po.ts new file mode 100644 index 00000000..a5857c18 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table-header.po.ts @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, ElementArrayFinder } from 'protractor'; + +export class MetadataTableHeader { + constructor(public container: ElementFinder){} + + public get headerList(): ElementArrayFinder { + return this.container.all(by.css('tr > th')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table.po.ts new file mode 100644 index 00000000..e77eb48b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata-table.po.ts @@ -0,0 +1,56 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; +import { MetadataTableBody } from './metadata-table-body.po'; +import { MetadataTableHeader } from './metadata-table-header.po'; + +export class MetadataTable { + constructor(public container: ElementFinder){} + + public get metadataTableHeader(): MetadataTableHeader { + return new MetadataTableHeader(this.container.element(by.css('thead'))); + } + + public get metadataTableBody(): MetadataTableBody { + return new MetadataTableBody(this.container.element(by.css('tbody'))); + } + + public get addMetadataButton(): ElementFinder { + return element(by.css('button.pastis-btn-add-tag')); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/metadata.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/metadata.po.ts new file mode 100644 index 00000000..c62113eb --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/metadata.po.ts @@ -0,0 +1,86 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser, protractor } from 'protractor'; +import { Field, FieldsName } from './field.po'; +import { MetadataContextMenu } from './metadata-menu.po'; +import { FieldValeurFixe } from './field-valeur-fixe.po'; +import { FieldCardinalite } from './field-cardinalite.po'; +import { FieldCommentaire } from './field-commentaire.po'; + +export class Metadata { + constructor(public container: ElementFinder){} + + public async getName(): Promise<string> { + return await this.container.element(by.css('td.mat-column-nomDuChamp')).getText(); + } + + public async isComplex():Promise<boolean> { + return await this.container.element(by.css('td.mat-column-nomDuChamp > span > mat-icon.pastis-ico-complex-element')).isPresent(); + } + + public get valeurFixe(): Field { + return new FieldValeurFixe(this.container.element(by.css('td.mat-column-valeurFixe > :first-child'))); + } + + public get cardinalite(): Field { + return new FieldCardinalite(this.container.element(by.css('td.mat-column-cardinalite > :first-child'))); + } + + public get commentaire(): Field { + return new FieldCommentaire(this.container.element(by.css('td.mat-column-commentaire > :first-child'))); + } + + public getfieldByName(name: string): Field{ + switch(name){ + case FieldsName.valeurFixe: return this.valeurFixe; + case FieldsName.cardinalite: return this.cardinalite; + case FieldsName.commentaire: return this.commentaire; + } + } + + public async openContextMenu() { + // browser.actions().* doesn't work on Firefox within Zalenium + await (browser.actions().mouseMove(this.container)).perform(); + await this.container.element(by.css('button#menuBtn')).click(); + } + + public async closeContextMenu() { + await this.container.sendKeys(protractor.Key.ESCAPE); + } + +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/pastis.po.ts b/ui/ui-frontend/projects/pastis/e2e/pages/pastis.po.ts new file mode 100644 index 00000000..36c08219 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/pastis.po.ts @@ -0,0 +1,111 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +import { ElementFinder, element, by, browser } from 'protractor'; +import { BreadCrumb } from './bread-crumb.po'; +import { ButtonMenu } from './button-menu.po'; +import { LeftPanel } from './left-panel.po'; +import { MetadataTable } from './metadata-table.po'; +import * as fs from 'fs'; +import { MetadataPopup } from './metadata-popup.po'; +import { Popup } from './popup'; +import { MetadataContextMenu } from './metadata-menu.po'; +import { AttributesPopup } from './attributes-popup.po'; + +export class PastisPage { + + constructor() {} + + public get leftPanel(): LeftPanel { + return new LeftPanel(element(by.css('mat-sidenav.pastis-side-nav'))); + } + + public get breadCrumb(): BreadCrumb { + return new BreadCrumb(element(by.css('div.pastis-metadata-option-entete-1'))); + } + + public get buttonMenu(): ButtonMenu { + return new ButtonMenu(element(by.css('div.pastis-metadata-option-entete-2'))); + } + + public get metadataTable(): MetadataTable { + return new MetadataTable(element(by.css('div.pastis-table-container > table'))); + } + + public get currentOpenedPopup(): Popup { + return new Popup(element(by.css('mat-dialog-container'))); + } + + public get metadataPopup(): MetadataPopup { + return new MetadataPopup(element(by.css('mat-dialog-container'))); + } + + public async navigateTo(url:string) { + await browser.get(url); + } + + public async waitForSpinner() { + browser.wait(function() { + return element(by.css('body > app-root > app-home > ngx-ui-loader > div.ngx-overlay')).isDisplayed().then(function(result){return !result}); + }, 20000); + } + + public deleteAlreadyDownloadedFiles() { + var filename = browser.params.downloadsPath + 'pastis_profile.rng'; + if (fs.existsSync(filename)) + { + // delete if there is any existing file with same name + fs.unlinkSync(filename); + } + } + + public verifyFileDownload() { + var filename = browser.params.downloadsPath + 'pastis_profile.rng'; + return browser.wait(function() { + return fs.existsSync(filename); + }, 30000); + } + + public get metadataContextMenu(): MetadataContextMenu { + return new MetadataContextMenu(element(by.css('.cdk-overlay-container .mat-menu-panel'))); + } + + public get attributesPopup(): AttributesPopup { + return new AttributesPopup(element(by.css('mat-dialog-container'))); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/pages/popup.ts b/ui/ui-frontend/projects/pastis/e2e/pages/popup.ts new file mode 100644 index 00000000..ce1485a9 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/pages/popup.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { ElementFinder, element, by, browser } from 'protractor'; + +export class Popup { + constructor(public container: ElementFinder){} + + public async getTitle(): Promise<string> { + return await this.container.element(by.css('p.pastis-dialog-subtitle')).getText(); + } + + public async getSubTitle(): Promise<string> { + return await this.container.element(by.css('p.pastis-dialog-title')).getText(); + } + + public async validate() { + return await this.container.element(by.css('mat-dialog-actions.pastis-dialog-confirm-buttons > button.pastis-btn-oui-dialog-confirm')).click(); + } + + public async cancel() { + return await this.container.element(by.css('mat-dialog-actions.pastis-dialog-confirm-buttons > button.pastis-btn-non-dialog-confirm')).click(); + } + + public async close() { + return await this.container.element(by.css('.barre-et-croix > mat-icon.pastis-close-popup')).click(); + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/protractor.base.conf.cjs b/ui/ui-frontend/projects/pastis/e2e/protractor.base.conf.cjs new file mode 100644 index 00000000..83a583df --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/protractor.base.conf.cjs @@ -0,0 +1,135 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + + +/* +Basic configuration to run your cucumber +feature files and step definitions with protractor. +**/ +// global.downloadsPath = 'c:\\zaledownload\\'; +//global.downloadsPath = '/tmp/zaledownload/'; + +exports.config = { + params: { + downloadsPath: 'c:\\zaledownload\\' + }, + SELENIUM_PROMISE_MANAGER: false, + /** + * The timeout in milliseconds for each script run on the browser. This + * should be longer than the maximum time your application needs to + * stabilize between tasks. + */ + allScriptsTimeout: 25000, + defaultTimeoutInterval: 30000, + + /** + * Test framework to use. This may be one of: jasmine, mocha or custom. + * Default value is 'jasmine' + * + * When the framework is set to "custom" you'll need to additionally + * set frameworkPath with the path relative to the config file or absolute: + * + * framework: 'custom', + * frameworkPath: './frameworks/my_custom_jasmine.js', + * + * See github.com/angular/protractor/blob/master/lib/frameworks/README.md + * to comply with the interface details of your custom implementation. + * + * Jasmine is fully supported as test and assertion frameworks. + * Mocha has limited support. You will need to include your + * own assertion framework (such as Chai) if working with Mocha. + */ + framework: 'custom', // set to "custom" instead of cucumber. + frameworkPath: require.resolve('protractor-cucumber-framework'), // path relative to the current config file + + specs: [ + //'./features/*.feature' // Specs here are the cucumber feature files, + //'./features/export-default-profile.feature', + './features/navigation.feature', + // './features/spec.feature' + ], + // cucumber command line options + cucumberOpts: { + require: [ + './specs/*.ts', + ], // require step definition files before executing features + tags: [], // <string[]> (expression) only execute the features or scenarios with tags matching the expression + strict: true, // <boolean> fail if there are any undefined or pending steps + 'dry-run': false, // <boolean> invoke formatters without executing steps + compiler: [], // <string[]> ("extension:module") require files with the given EXTENSION after requiring MODULE (repeatable) + }, + /** + * A callback function called once protractor is ready and available, and + * before the specs are executed. If multiple capabilities are being run, + * this will run once per capability. + * + * You can specify a file containing code to run by setting onPrepare to + * the filename string. onPrepare can optionally return a promise, which + * Protractor will wait for before continuing execution. This can be used if + * the preparation involves any asynchronous calls, e.g. interacting with + * the browser. Otherwise Protractor cannot guarantee order of execution + * and may start the tests before preparation finishes. + * + * At this point, global variable 'protractor' object will be set up, and + * globals from the test framework will be available. For example, if you + * are using Jasmine, you can add a reporter with: + * + * jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter( + * 'outputdir/', true, true)); + * + * If you need access back to the current configuration object, + * use a pattern like the following: + * + * return browser.getProcessedConfig().then(function(config) { + * // config.capabilities is the CURRENT capability being run, if + * // you are using multiCapabilities. + * console.log('Executing capability', config.capabilities); + * }); + */ + onPrepare: function () { + const { Given, Then, When, Before, After } = require('cucumber'); + global.Given = Given; + global.When = When; + global.Then = Then; + global.Before = Before; + global.After = After; + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + } +}; diff --git a/ui/ui-frontend/projects/pastis/e2e/protractor_chrome.conf.cjs b/ui/ui-frontend/projects/pastis/e2e/protractor_chrome.conf.cjs new file mode 100644 index 00000000..2655dac7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/protractor_chrome.conf.cjs @@ -0,0 +1,67 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + + +/* +Basic configuration to run your cucumber +feature files and step definitions with protractor. +**/ +protractor = require('./protractor.base.conf.cjs'); +var config = protractor.config; + +config.baseUrl= 'http://localhost:4200'; +config.seleniumAddress= 'http://localhost:4444/wd/hub'; + +config.multiCapabilities = [ +{ + browserName: 'chrome', + name: 'CI - Chrome', + 'goog:chromeOptions': { + w3c: false + }, + chromeOptions: { + w3c: false, + prefs: { + download: { + default_directory: global.downloadsPath + } + } + } +}]; + +exports.config = config; \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/protractor_ci.conf.cjs b/ui/ui-frontend/projects/pastis/e2e/protractor_ci.conf.cjs new file mode 100644 index 00000000..d090bdaa --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/protractor_ci.conf.cjs @@ -0,0 +1,80 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + + +/* +Basic configuration to run your cucumber +feature files and step definitions with protractor. +**/ +protractor = require('./protractor.base.conf.cjs'); +var config = protractor.config; + +config.baseUrl= 'http://10.100.129.51'; +config.seleniumAddress= 'http://sandbox33.cines.fr:4444/wd/hub'; + +config.multiCapabilities = [ + // { + // browserName: 'firefox', + // name: 'CI - Firefox', + // 'moz:firefoxOptions': { + // prefs: { + // 'browser.download.folderList': 2, + // 'browser.download.dir': global.downloadsPath, + // 'browser.helperApps.neverAsk.saveToDisk': 'application/xml' + // } + // } + // }, + { + browserName: 'chrome', + name: 'CI - Chrome', + 'goog:chromeOptions': { + w3c: false // To enable use of browser.actions() + }, + chromeOptions: { + w3c: false, // To enable use of browser.actions() + prefs: { + download: { + default_directory: global.downloadsPath + } + } + } + }, + ]; + + +exports.config = config; \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/protractor_firefox.conf.cjs b/ui/ui-frontend/projects/pastis/e2e/protractor_firefox.conf.cjs new file mode 100644 index 00000000..5ef335d8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/protractor_firefox.conf.cjs @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + + +/* +Basic configuration to run your cucumber +feature files and step definitions with protractor. +**/ +protractor = require('./protractor.base.conf.cjs'); +var config = protractor.config; + +config.baseUrl= 'http://localhost:4200'; +config.seleniumAddress= 'http://localhost:4444/wd/hub'; + +config.multiCapabilities = [ +{ + browserName: 'firefox', + 'moz:firefoxOptions': { + prefs: { + 'browser.download.folderList': 2, + 'browser.download.dir': global.downloadsPath, + 'browser.helperApps.neverAsk.saveToDisk': 'application/xml' + } + } +}]; + +exports.config = config; \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/specs/spec.spec.ts b/ui/ui-frontend/projects/pastis/e2e/specs/spec.spec.ts new file mode 100644 index 00000000..843933c2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/specs/spec.spec.ts @@ -0,0 +1,236 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +import { Given, When, Then, Before, After, setDefaultTimeout } from 'cucumber'; +import { PastisPage } from '../pages/pastis.po'; +import * as chai from 'chai'; +import chaiAsPromised = require('chai-as-promised'); +import { browser, element, ElementFinder } from 'protractor'; +import { FileTreeNode } from '../pages/file-tree-node.po'; +import { Metadata } from '../pages/metadata.po'; +import AsyncUtils from '../class/async-utils'; + +const pastis = new PastisPage(); +const expect = chai.expect; +const assert = chai.assert; + +Before(() => { + chai.use(chaiAsPromised); + browser.manage().window().maximize(); +}); + +// Timeout assez long, permettant de debug le code sans 'cramer' les promises qui attendent. +setDefaultTimeout(60 * 80085); + + +Given('The user goes to the homepage', async function () { + console.log('===The user goes to the homepage'); + await pastis.navigateTo(""); + await pastis.waitForSpinner(); +}); + +Then('The user clicks on {string} tab', async function (string) { + console.log('===The user clicks on ' + string +' tab'); + await pastis.leftPanel.FileTreeTab.getTabByName(string).click(); +}); + +Then('The user should see the {string} tab', async function (tabName) { + console.log('===The user should see the ' + tabName +' tab'); + let title: string = ''; + switch(tabName){ + case 'ENTÊTE': title = 'Entête';break; + case 'RÈGLES': title = 'Règles';break; + case 'ARBORESCENCE': title = "Unités d'archives";break; + case 'OBJETS': title = 'Objets';break; + } + expect(await pastis.leftPanel.FileTreeTabBody.getTitle()==title).to.be.true; +}); + +When('The user clicks on the export button', async function () { + console.log('===The user clicks on the export button'); + pastis.deleteAlreadyDownloadedFiles(); + await pastis.buttonMenu.ExportProfileButton.click(); +}); + +Then('The RNG file is downloaded', async function () { + console.log('===The RNG file is downloaded'); + expect(await pastis.verifyFileDownload()).to.be.true; +}); + +Then('The user navigates to {string}', async function (nodesName) { + console.log('===The user navigates to ' + nodesName); + let node:FileTreeNode = pastis.leftPanel.FileTreeTabBody.getFileTreeNodes(); + let names: string[] = nodesName.split(',') + let parent:FileTreeNode; + for(let i = 0; i<names.length; i++) { + if (!parent){ + parent = node; + } + parent = (await AsyncUtils.find(await parent.getChildren(), async (f)=>(await f.getName())==names[i])); + await parent.container.click(); + } +}); + +Then('The user writes {string} in the field {string} of the metadata {string}', async function (text, fieldName, metadataName) { + console.log('===The user writes ' + text + ' in the field ' + fieldName + ' of the metadata ' + metadataName); + let metadata: Metadata = await pastis.metadataTable.metadataTableBody.getMetadataByName(metadataName); + let field: ElementFinder; + switch(fieldName){ + case 'valeurFixe': field = metadata.valeurFixe.container;break; + case 'cardinalite': field = metadata.cardinalite.container;break; + case 'commentaire': field = metadata.commentaire.container;break; + } + await field.sendKeys(text); +}); + +Then('The user clicks on Ajouter une métadonnée', async function () { + console.log('===The user clicks on Ajouter une métadonnée'); + await pastis.metadataTable.addMetadataButton.click(); +}); + +Then('The user adds the metadata {string}', async function(metadataName){ + console.log('===The user adds the metadata ' + metadataName); + await (await AsyncUtils.find(await pastis.metadataPopup.getMetadataSearch(), async (m)=>{return await m.getName()==metadataName})).addButton.click(); +}); + +Then('The user validates the popup', async function(){ + console.log('===The user validates the popup'); + await pastis.metadataPopup.validate(); +}); + +Then('The user cancels the popup', async function(){ + console.log('===The user cancels the popup'); + await pastis.metadataPopup.cancel(); +}); + +Then('Verify that the list of nodes of {string} is {string}', async function(nodesName, values){ + console.log('===Verify that the list of nodes of ' + nodesName + ' is ' + values); + let node:FileTreeNode = pastis.leftPanel.FileTreeTabBody.getFileTreeNodes(); + let names: string[] = nodesName.split(',') + let parent:FileTreeNode; + for(let i = 0; i<names.length; i++) { + if (!parent){ + parent = node; + } + parent = await AsyncUtils.find(await parent.getChildren(), async c=>{return await c.getName()==names[i]}); + } + let nodesNames: string[] = await AsyncUtils.map(await parent.getChildren(), async c=>{return await c.getName()}); + assert.deepEqual(nodesNames.sort(), values.split(',').sort()); +}); + +Then('Verify that the value of the field {string} of the metadata {string} is {string}', async function (field, metadataName, value) { + console.log('===Verify that the value of the field ' + field + ' of the metadata ' + metadataName + ' is ' + value); + let nodeValue:string = await (await pastis.metadataTable.metadataTableBody.getMetadataByName(metadataName)).getfieldByName(field).getValue(); + expect(nodeValue).to.equals(value); +}); + +Then('Verify that the list of options of the field {string} of the metadata {string} is {string}', async function (field, metadataName, values) { + console.log('===Verify that the list of options of the field ' + field + ' of the metadata ' + metadataName + ' is ' + values); + let nodeValue: string[] = await (await pastis.metadataTable.metadataTableBody.getMetadataByName(metadataName)).getfieldByName(field).getOptions(); + assert.deepEqual(nodeValue.sort(), values.split(',').sort()); +}); + +Then('Open the menu of the metadata {string}', async function (metadataName){ + console.log('===Open the menu of the metadata ' + metadataName); + await (await pastis.metadataTable.metadataTableBody.getMetadataByName(metadataName)).openContextMenu(); +}); + +Then('Close the popup', async function (){ + console.log('===Close the popup'); + await pastis.currentOpenedPopup.close() +}); + +Then('Verify that the list of options in the context menu of the metadata {string} is {string}', async function (metadataName, values){ + console.log('===Verify that the list of options in the context menu of the metadata ' + metadataName + ' is ' + values); + let labels: string[] = await pastis.metadataContextMenu.getMenuLabelList(); + assert.deepEqual(labels.sort(), values.split(',').sort()); +}); + +Then('The user clicks on the item {string} of the context menu', async function (item:string){ + console.log('===The user clicks on the item ' + item + ' of the context menu'); + await (await pastis.metadataContextMenu.getMenuOptionByLabel(item)).click(); +}); + +Then('Verify that the list of attributes is {string}', async function(attributes){ + console.log('===Verify that the list of attributes is ' + attributes); + let attributs: string[] = await AsyncUtils.map(await pastis.attributesPopup.attributesTableBody.getAttributes(), async a =>{return await a.getName()}); + assert.deepEqual(attributs.sort(), attributes.split(',').sort()); +}); + +Then('The user writes {string} in the field {string} of the attribute {string}', async function(text,fieldName,attributeName){ + console.log('===The user writes ' + text + ' in the field ' + fieldName + ' of the attribute ' + attributeName); + let field = (await pastis.attributesPopup.attributesTableBody.getAttributeByName(attributeName)).getfieldByName(fieldName); + await field.container.sendKeys(text); +}); + +Then('Verify that the value of the field {string} of the attribute {string} is {string}', async function(fieldName,attributeName,text){ + console.log('===Verify that the value of the field ' + fieldName + ' of the attribute ' + attributeName + ' is ' + text); + let field = (await pastis.attributesPopup.attributesTableBody.getAttributeByName(attributeName)).getfieldByName(fieldName); + assert.deepEqual(await field.getValue(),text); +}); + +Then('The user clicks on Tout sélectionner', async function(){ + console.log('===The user clicks on Tout sélectionner'); + await pastis.attributesPopup.attributesTableHeader.selectAllCheckbox.click(); +}); + +Then('The user selects the attributes {string}', async function(attributes:string){ + console.log('===The user selects the attributes ' + attributes); + await AsyncUtils.forEach(attributes.split(','),async (attr:string) => {(await pastis.attributesPopup.attributesTableBody.getAttributeByName(attr)).checkbox.click();}); +}); + +Then('Verify that the selected attributes are {string}', async function (expectedAttributes){ + console.log('===Verify that the selected attributes are ' + expectedAttributes); + let attributselected: string[] = await AsyncUtils.map(await pastis.attributesPopup.attributesTableBody.getSelectedAttributes(), async attr=>{return await attr.getName()}); + let atts = []; + if (expectedAttributes != ''){ + atts = expectedAttributes.split(','); + } + expect(attributselected).to.deep.equal(atts); +}); + +Then('Verify that the list of options of the field {string} of the attribute {string} is {string}', async function(fieldName,attributeName,options){ + console.log('===Verify that the list of options of the field ' + fieldName + ' of the attribute ' + attributeName + ' is ' + options); + let field = (await pastis.attributesPopup.attributesTableBody.getAttributeByName(attributeName)).getfieldByName(fieldName); + assert.deepEqual((await field.getOptions()).sort(), options.split(',').sort()); +}); + +After(function (test) { + // Todo catch these *** exceptions + browser.manage().addCookie({ name: 'zaleniumTestPassed', value: test.result.status == 'failed' ? 'false' : 'true' }); +}) \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/e2e/tsconfig.json b/ui/ui-frontend/projects/pastis/e2e/tsconfig.json new file mode 100644 index 00000000..7452aa04 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/e2e/tsconfig.json @@ -0,0 +1,73 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + "lib": ["es2015","dom"], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": false, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + "typeRoots": [ + "./node_modules/@types", + "./types" + ], + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true, /* Skip type checking of declaration files. */ + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } +} diff --git a/ui/ui-frontend/projects/pastis/karma.conf.js b/ui/ui-frontend/projects/pastis/karma.conf.js new file mode 100644 index 00000000..a0e746b2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, './coverage/pastis-front'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/ui/ui-frontend/projects/pastis/pom.xml b/ui/ui-frontend/projects/pastis/pom.xml new file mode 100644 index 00000000..abfb6095 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/pom.xml @@ -0,0 +1,144 @@ +<?xml version="1.0"?> +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <artifactId>webapp</artifactId> + <name>PASTIS-WEBAPP</name> + <parent> + <groupId>fr.cines.vitam</groupId> + <artifactId>pastis</artifactId> + <version>0.0.1-SNAPSHOT</version> + </parent> + + <properties> + <nodeInstall>${node.install}</nodeInstall> + <ngServe>${ng.serve}</ngServe> + <ngPort>${ng.port}</ngPort> + </properties> + + <!-- 1. Read build.properties --> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>properties-maven-plugin</artifactId> + <version>1.0-alpha-2</version> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>read-project-properties</goal> + </goals> + <configuration> + <files> + <file>${basedir}/../build.properties</file> + </files> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <!-- 2. Declare profiles --> + <profiles> + <!-- 2.1. Profile with node install + npm install + npm run build --> + <profile> + <id>installNode</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <build> + <plugins> + <plugin> + <groupId>com.github.eirslett</groupId> + <artifactId>frontend-maven-plugin</artifactId> + <version>1.3</version> + <configuration> + <!-- Where to install npm --> + <installDirectory>node_install</installDirectory> + </configuration> + <executions> + <!-- 2.1.1. Download and install node and npm --> + <execution> + <id>install-node-and-npm</id> + <goals> + <goal>install-node-and-npm</goal> + </goals> + <configuration> + <nodeVersion>v${node.version}</nodeVersion> + <npmVersion>${npm.version}</npmVersion> + </configuration> + </execution> + <!-- 2.1.2 Install project dependencies --> + <execution> + <id>npm install</id> + <goals> + <goal>npm</goal> + </goals> + <phase>generate-resources</phase> + <configuration> + <arguments>install</arguments> + </configuration> + </execution> + <!-- 2.1.3. Build dependencies --> + <execution> + <id>npm run build</id> + <goals> + <goal>npm</goal> + </goals> + <configuration> + <arguments>run build</arguments> + </configuration> + </execution> + <!-- 2.1.4. Start server with host 0.0.0.0 (check angular.json)--> +<!-- <execution> --> +<!-- <id>npm start</id> --> +<!-- <goals> --> +<!-- <goal>npm</goal> --> +<!-- </goals> --> +<!-- <configuration> --> +<!-- <arguments>run-script prod</arguments> --> +<!-- </configuration> --> +<!-- </execution> --> + </executions> + </plugin> + </plugins> + </build> + </profile> + <!-- 2.2. Profile with normal build --> + <profile> + <id>normalBuild</id> + <activation> + <property> + <name>isFull</name> + <value>!${node.install}</value> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>com.github.eirslett</groupId> + <artifactId>frontend-maven-plugin</artifactId> + <version>1.3</version> + <executions> + <execution> + <id>npm run build</id> + <goals> + <goal>npm</goal> + </goals> + <configuration> + <installDirectory>node_install</installDirectory> + <arguments>run build</arguments> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> + diff --git a/ui/ui-frontend/projects/pastis/proxy.json b/ui/ui-frontend/projects/pastis/proxy.json new file mode 100644 index 00000000..7ffdcdf1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/proxy.json @@ -0,0 +1,7 @@ +{ + "/pastis-rest-api/rest/packages/*": { + "target": "http://localhost:8051", + "secure": false, + "logLevel": "debug" + } + } diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/css/main.css b/ui/ui-frontend/projects/pastis/sassdoc/assets/css/main.css new file mode 100644 index 00000000..c8fe8e7d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/css/main.css @@ -0,0 +1 @@ +.container:after,.header:after,.searchbar:after{content:"";display:table;clear:both}.visually-hidden{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.sidebar__title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}code[class*='language-'],pre[class*='language-']{color:black;text-shadow:0 1px white;font-family:Consolas, Monaco, 'Andale Mono', monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*='language-']::-moz-selection,pre[class*='language-'] ::-moz-selection,code[class*='language-']::-moz-selection,code[class*='language-'] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*='language-']::selection,pre[class*='language-'] ::selection,code[class*='language-']::selection,code[class*='language-'] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*='language-'],pre[class*='language-']{text-shadow:none}}pre[class*='language-']{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*='language-'],pre[class*='language-']{background:white}:not(pre)>code[class*='language-']{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol{color:#905}.token.selector,.token.attr-name,.token.string,.token.builtin{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#a67f59;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.regex,.token.important{color:#e90}.token.important{font-weight:bold}.token.entity{cursor:help}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*::after,*::before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{font:1em/1.35 "Open Sans","Helvetica Neue Light","Helvetica Neue","Helvetica","Arial",sans-serif;overflow:auto;margin:0}a{transition:0.15s;text-decoration:none;color:#dd5a6f}a:hover,a:hover code{color:#333}table p{margin:0 0 .5rem}:not(pre)>code{color:#dd5a6f;white-space:nowrap;font-weight:normal}@media (max-width: 800px){table,tbody,tr,td,th{display:block}thead{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}tr{padding-bottom:1em;margin-bottom:1em;border-bottom:2px solid #ddd}td::before,th::before{content:attr(data-label) ": ";text-transform:capitalize;font-weight:bold}td p,th p{display:inline}}.layout-toggle{display:none}@media (min-width: 801px){.layout-toggle{position:absolute;top:8px;left:20px;font-size:2em;cursor:pointer;color:white;display:block}}@media (min-width: 801px){.sidebar-closed .sidebar{-webkit-transform:translateX(-280px);-ms-transform:translateX(-280px);transform:translateX(-280px)}.sidebar-closed .main{padding-left:0}.sidebar-closed .header{left:0}}.list-unstyled{padding-left:0;list-style:none;line-height:1.5;margin-top:0;margin-bottom:1.5rem}.list-inline li{display:inline-block}.container{max-width:100%;width:1170px;margin:0 auto;padding:0 2rem}.relative{position:relative}.clear{clear:both}.header{position:fixed;top:0;right:0;left:280px;box-shadow:0 2px 5px rgba(0,0,0,0.26);padding:1em 0;background:#dd5a6f;color:#e0e0e0;z-index:4000}@media (max-width: 800px){.header{left:0}}@media (min-width: 801px){.header{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}.header__title{font-weight:500;text-align:center;margin:0 0 0.5em 0}.header__title a{color:#e0e0e0}@media (min-width: 801px){.header__title{float:left;font-size:1em;margin-top:.25em;margin-bottom:0}}.searchbar{display:inline-block;float:right}@media (max-width: 800px){.searchbar{display:block;float:none}}.searchbar__form{float:right;position:relative}@media (max-width: 800px){.searchbar__form{float:none}}@media (min-width: 801px){.searchbar__form{min-width:15em}}.searchbar__field{border:none;padding:0.5em;font-size:1em;margin:0;width:100%;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0}.searchbar__suggestions{position:absolute;top:100%;right:0;left:0;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;background:white;padding:0;margin:0;list-style:none;z-index:2}.searchbar__suggestions:empty{display:none}.searchbar__suggestions .selected{background:#ddd}.searchbar__suggestions li{border-bottom:1px solid #e0e0e0}.searchbar__suggestions li:last-of-type{border:none}.searchbar__suggestions a{display:block;padding:0.5em;font-size:0.9em}.searchbar__suggestions a:hover,.searchbar__suggestions a:active,.searchbar__suggestions a:focus{background:#e0e0e0}.searchbar__suggestions code{margin-right:.5em}@media (min-width: 801px){.sidebar{position:fixed;top:0;bottom:0;left:0;overflow:auto;box-shadow:1px 0 1.5px rgba(0,0,0,0.12);width:280px;z-index:2;border-right:1px solid #e0e0e0;transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}@media (max-width: 800px){.sidebar{margin-top:4em}}.sidebar__annotation{color:#5c4863}.sidebar__item{font-size:0.9em}.sidebar__item a{padding:0.5em 4.5em;display:block;text-decoration:none;color:#333}.sidebar__item:hover,.sidebar__item:active,.sidebar__item:focus{background:#e0e0e0}.sidebar__item.is-collapsed+*{display:none}.sidebar__item--heading{padding:1em 1.5em}.sidebar__item--heading a{font-weight:bold}.sidebar__item--sub-heading{padding:0.5em 2.5em}.sidebar__item--sub-heading a{color:#888}.sidebar__item--heading,.sidebar__item--sub-heading{position:relative}.sidebar__item--heading:after,.sidebar__item--sub-heading:after{position:absolute;top:50%;right:2em;content:'\25BC';margin-top:-0.5em;color:#ddd;font-size:0.7em}.sidebar__item--heading.is-collapsed:after,.sidebar__item--sub-heading.is-collapsed:after{content:'\25B6'}.sidebar__item--heading a,.sidebar__item--sub-heading a{padding:0;display:inline}.sidebar__description{color:#e0e0e0;padding-right:2em}.sidebar__header{border-bottom:1px solid #e0e0e0}.sidebar__title{font-size:1em;margin:0;padding:1.45em}.btn-toggle{background:#EFEFEF;border:none;border-bottom:1px solid #e0e0e0;display:block;padding:1em;width:100%;cursor:pointer;color:#999;font-weight:bold;margin:0;transition:0.15s ease-out}.btn-toggle:hover,.btn-toggle:active,.btn-toggle:focus{background:#DFDFDF}.main{background:#f9f9f9;position:relative}@media (min-width: 801px){.main{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1);padding-left:280px;padding-top:4em;min-height:45em}}.main__section{margin-top:5em;border-top:5px solid rgba(92,72,99,0.2)}.header+.main__section{margin-top:0;border-top:none}.main__heading,.main__heading--secondary{padding:1em 0;margin-top:0}@media (min-width: 801px){.main__heading,.main__heading--secondary{padding:2em 0 0}}.main__heading{color:#5c4863;font-size:3.5em;text-align:center;border-bottom:5px solid rgba(92,72,99,0.2);padding-bottom:.5em;margin-bottom:1em;background:rgba(92,72,99,0.1)}.main__heading--secondary{font-size:3em;color:#dd5a6f;text-transform:uppercase;font-weight:bold;padding-top:0;margin-bottom:-3rem;position:relative}.main__heading--secondary .container{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.main__heading--secondary::before{content:'';position:absolute;left:0;right:0;bottom:0.15em;height:0.2em;background-color:#dd5a6f}.main__description{margin-bottom:1.5rem}.footer{background:#e0e0e0;padding:1em 0}.footer .container{position:relative}.footer__project-info{float:left}.footer__watermark{position:absolute;right:0;top:-0.7em}.footer__watermark img{display:block;max-width:7em}.project-info__name,.project-info__version,.project-info__license{display:inline-block}.project-info__version,.project-info__license{color:#555}.project-info__license{text-indent:-0.25em}.main__section{margin-bottom:4.5rem}.item__heading{color:#333;margin:4.5rem 0 1.5rem 0;position:relative;font-size:2em;font-weight:300;float:left}.item__name{color:#dd5a6f}.item__example{margin-bottom:1.5rem}.item__example,.item__code{box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;word-wrap:break-word;line-height:1.42}.item__code{padding-right:7em;clear:both;cursor:pointer}.item__code--togglable::after{position:absolute;right:0;bottom:-2.5em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;color:#c4c4c4;font-size:0.8em;transition:0.2s ease-out}.item__code--togglable:hover::after,.item__code--togglable:active::after,.item__code--togglable:focus::after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.item__code--togglable[data-current-state='expanded']::after{content:'Click to collapse.'}.item__code--togglable[data-current-state='collapsed']::after{content:'Click to expand.'}.example__description{padding:1em;background:#EFEFEF}.example__description p{margin:0}.example__code[class*='language-']{margin:0}.item__anchor{font-size:0.6em;color:#eeafb9}@media (min-width: 801px){.item__anchor{position:absolute;right:101%;bottom:.25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0}.item:hover .item__anchor{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}}.item__deprecated{display:inline-block;overflow:hidden;margin-top:5.5em;margin-left:1em}.item__deprecated strong{float:left;color:#c00;text-transform:uppercase}.item__deprecated p{float:left;margin:0;padding-left:0.5em}.item__type{color:#ddd;text-transform:capitalize;font-size:0.75em}.item__alias,.item__aliased{color:#ddd;font-size:0.8em}.item__sub-heading{color:#333;margin-top:0;margin-bottom:1.5rem;font-size:1.2em}.item__parameters{width:100%;margin-bottom:1em;border-collapse:collapse}.item__parameters thead th{vertical-align:bottom;border-bottom:2px solid #ddd;border-top:none;text-align:left;color:#707070}.item__parameters tbody th{text-align:left}.item__parameters td,.item__parameters th{padding:0.5em 0.5em 0.5em 0;vertical-align:top}@media (min-width: 801px){tbody>.item__parameter:first-of-type>td{border-top:none}.item__parameters td,.item__parameters th{border-top:1px solid #ddd}}.item__access{text-transform:capitalize;color:#5c4863;font-size:0.8em}.item__since{float:right;padding-top:0.9em;color:#c4c4c4;margin-bottom:1em}.item__source-link{position:absolute;top:1px;right:1px;background:white;padding:1em;z-index:2;color:#c4c4c4}.item__cross-type{color:#4d4d4d;font-family:'Consolas', 'Monaco', 'Andale Mono', monospace;font-size:0.8em}.item__description{margin-bottom:1.5rem}li.item__description{margin-bottom:0}.item__description--inline>*{display:inline-block;margin:0}.item__code-wrapper{position:relative;clear:both;margin-bottom:1.5rem}.color-preview--inline{padding:2px 4px;border:1px solid rgba(0,0,0,0.1);border-radius:3px}.color-preview--block{width:2em;height:2em;position:absolute;top:140%;right:0;top:calc(100% + 20px);border:1px solid rgba(0,0,0,0.1);border-radius:3px} diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/images/favicon.png b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..585fb531409ea89d65ea605a31ac22e6b58886d5 GIT binary patch literal 17676 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 literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_compact.svg b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_compact.svg new file mode 100644 index 00000000..0f590c9a --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_compact.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="431.5" height="431.5" viewBox="0 0 431.5 431.5"><path fill="#DD5A6F" d="M40 0h351.5c22.092 0 40 17.908 40 40v351.5c0 22.092-17.908 40-40 40h-351.5c-22.091 0-40-17.908-40-40v-351.5c0-22.092 17.909-40 40-40z"/><path fill="#fff" d="M57.265 158.555c-.387 1.16-.822 2.32-1.305 3.48s-1.04 2.175-1.668 3.045-1.33 1.521-2.102 1.957c-.773.436-1.595.508-2.465.218-1.16-.193-1.812-1.04-1.958-2.537-.145-1.5.025-2.973.508-4.423.677-2.32 1.667-5.39 2.973-9.207 1.305-3.82 2.803-8 4.495-12.543 1.69-4.543 3.48-9.256 5.364-14.137 1.886-4.882 3.698-9.546 5.438-13.993 1.74-4.447 3.335-8.482 4.785-12.108 1.45-3.625 2.562-6.452 3.335-8.481.29-.58.725-1.063 1.305-1.45s1.184-.58 1.813-.58c.628 0 1.256.193 1.885.58.628.387 1.135 1.015 1.522 1.885.773 2.03.822 4.013.145 5.945-.677 1.547-1.643 3.939-2.9 7.177-1.257 3.24-2.682 6.888-4.278 10.948-1.595 4.06-3.262 8.362-5.002 12.905-1.74 4.543-3.383 8.87-4.93 12.978-1.547 4.108-2.948 7.805-4.205 11.092s-2.175 5.702-2.755 7.249zm77.285-36.395c-1.933-1.45-4.036-2.997-6.308-4.641-2.27-1.643-4.664-3.335-7.177-5.074 1.643 5.896 3.383 11.503 5.22 16.819.29 1.16.17 2.176-.362 3.045-.532.87-1.185 1.306-1.958 1.306-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.682-3.48-.387-.869-.87-2.271-1.45-4.204-.58-1.934-1.257-4.205-2.03-6.815-1.643 2.417-3.166 4.785-4.567 7.105-1.402 2.319-2.73 4.543-3.988 6.67-.773 1.062-1.643 1.667-2.61 1.812-.967.146-1.692-.073-2.175-.653-.677-1.062-1.087-2.439-1.233-4.132-.145-1.691.12-3.118.798-4.277.483-.773 1.353-2.176 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.03.483-4.012.99-5.945 1.522-1.933.531-3.867 1.04-5.8 1.522-1.16.193-2.175 0-3.045-.58s-1.257-1.257-1.16-2.029c.29-1.258.942-2.393 1.957-3.407 1.016-1.017 2.2-1.716 3.553-2.104.967-.29 2.537-.699 4.712-1.232 2.176-.53 4.665-1.135 7.468-1.812-1.933-1.16-3.842-2.344-5.727-3.552-1.886-1.21-3.795-2.345-5.728-3.408-1.063-.677-1.667-1.547-1.813-2.609-.145-1.063.073-1.837.653-2.32 1.063-.677 2.344-.99 3.843-.942 1.498.048 2.827.46 3.987 1.232.967.482 2.32 1.305 4.06 2.465-.29-1.643-.532-3.214-.725-4.712-.193-1.5-.338-2.925-.435-4.278-.097-1.062.145-1.981.725-2.755.58-.772 1.257-1.208 2.03-1.305.677-.193 1.498.023 2.465.653.967.628 1.692 1.812 2.175 3.552.387 1.837.822 3.722 1.305 5.654.483 1.934.967 4.013 1.45 6.235 1.933-2.61 3.818-5.075 5.655-7.395 1.837-2.32 3.577-4.303 5.22-5.945.773-.773 1.643-1.208 2.61-1.305.967-.098 1.74.145 2.32.725.483.387.846 1.16 1.088 2.32.24 1.16-.17 2.465-1.233 3.915-1.063 1.449-2.272 3.069-3.625 4.857s-2.755 3.697-4.205 5.728c2.513-.483 4.978-.847 7.395-1.088 2.417-.24 4.688-.41 6.815-.508 1.063 0 1.982.193 2.755.58.773.388 1.208.968 1.305 1.74.097.677-.193 1.498-.87 2.465-.677.968-1.885 1.596-3.625 1.886-1.643.289-3.407.579-5.292.869-1.886.29-3.795.628-5.728 1.016 2.223 1.643 4.302 3.262 6.235 4.857 1.933 1.596 3.722 3.117 5.365 4.567.773.773 1.28 1.57 1.523 2.392.24.822.12 1.57-.363 2.248-.483.483-1.305.822-2.465 1.016-1.16.192-2.417-.194-3.77-1.161zm58.87 0c-1.933-1.45-4.036-2.997-6.307-4.641-2.272-1.643-4.665-3.335-7.178-5.074 1.643 5.896 3.383 11.503 5.22 16.819.29 1.16.17 2.176-.363 3.045-.53.87-1.184 1.306-1.957 1.306-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.682-3.48-.387-.869-.87-2.271-1.45-4.204-.58-1.934-1.257-4.205-2.03-6.815-1.643 2.417-3.166 4.785-4.568 7.105-1.4 2.319-2.73 4.543-3.987 6.67-.773 1.062-1.643 1.667-2.61 1.812s-1.692-.073-2.175-.653c-.677-1.062-1.087-2.439-1.233-4.132-.145-1.691.12-3.118.798-4.277.483-.773 1.353-2.176 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.03.483-4.012.99-5.945 1.522-1.933.531-3.867 1.04-5.8 1.522-1.16.193-2.175 0-3.045-.58-.87-.58-1.257-1.257-1.16-2.029.29-1.258.942-2.393 1.958-3.407 1.015-1.017 2.2-1.716 3.552-2.104.967-.29 2.537-.699 4.712-1.232 2.176-.53 4.665-1.135 7.468-1.812-1.933-1.16-3.842-2.344-5.727-3.552-1.886-1.21-3.795-2.345-5.728-3.408-1.063-.677-1.667-1.547-1.813-2.609-.145-1.063.073-1.837.653-2.32 1.063-.677 2.344-.99 3.843-.942 1.498.048 2.827.46 3.987 1.232.967.482 2.32 1.305 4.06 2.465-.29-1.643-.532-3.214-.725-4.712-.193-1.5-.338-2.925-.435-4.278-.097-1.062.145-1.981.725-2.755.58-.772 1.257-1.208 2.03-1.305.677-.193 1.498.023 2.465.653.967.628 1.692 1.812 2.175 3.552.387 1.837.822 3.722 1.305 5.654.483 1.934.967 4.013 1.45 6.235 1.933-2.61 3.818-5.075 5.655-7.395 1.837-2.32 3.577-4.303 5.22-5.945.773-.773 1.643-1.208 2.61-1.305.967-.098 1.74.145 2.32.725.483.387.846 1.16 1.087 2.32.242 1.16-.17 2.465-1.232 3.915-1.062 1.449-2.271 3.069-3.625 4.857-1.353 1.788-2.755 3.697-4.205 5.728 2.513-.483 4.978-.847 7.395-1.088 2.417-.24 4.688-.41 6.815-.508 1.063 0 1.982.193 2.755.58.773.388 1.208.968 1.305 1.74.097.677-.193 1.498-.87 2.465-.677.968-1.885 1.596-3.625 1.886-1.643.289-3.407.579-5.292.869-1.886.29-3.795.628-5.728 1.016 2.223 1.643 4.302 3.262 6.235 4.857s3.722 3.117 5.365 4.567c.773.773 1.28 1.57 1.523 2.392.24.822.12 1.57-.363 2.248-.483.483-1.305.822-2.465 1.016-1.16.192-2.417-.194-3.77-1.161zm-70.79 224.59c28.288 0 48.008-17.952 48.008-45.424 0-27.2-19.72-45.288-48.144-45.288h-35.768v90.712h35.904zm-.136-17h-16.456v-56.712h16.592c18.496 0 28.288 12.376 28.288 28.288 0 15.504-10.472 28.424-28.424 28.424zm104.992 18.632c27.336 0 47.328-19.584 47.328-46.92s-19.992-46.92-47.328-46.92c-27.472 0-47.464 19.584-47.464 46.92s19.992 46.92 47.464 46.92zm0-17.136c-16.864 0-27.608-12.92-27.608-29.784 0-17 10.744-29.784 27.608-29.784 16.728 0 27.472 12.784 27.472 29.784 0 16.864-10.744 29.784-27.472 29.784zm104.992 17.136c19.856 0 31.416-11.016 37.809-22.304l-16.592-8.024c-3.809 7.345-11.969 13.192-21.217 13.192-16.592 0-28.56-12.648-28.56-29.784s11.968-29.784 28.56-29.784c9.248 0 17.408 5.849 21.217 13.192l16.592-8.16c-6.393-11.424-17.952-22.168-37.808-22.168-27.337 0-48.416 18.904-48.416 46.92-.001 27.88 21.079 46.92 48.415 46.92zm-220.628-109.76c18.876 0 28.236-9.984 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.729 18.72-13.729 9.984 0 18.096 4.057 22.464 9.984l4.524-5.771c-5.46-6.084-14.04-11.076-26.988-11.076-17.004 0-26.832 9.359-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.488 8.424 16.848 12.012 29.016 12.012zm105.144-1.872v-53.04c0-16.848-12.168-24.18-27.456-24.18-12.48 0-21.216 4.212-29.016 12.636l4.524 5.616c6.864-7.8 14.196-11.076 23.712-11.076 11.076 0 20.124 6.084 20.124 17.316v15.287c-6.552-7.332-15.132-10.764-25.584-10.764-13.104 0-26.364 8.58-26.364 24.96 0 16.225 13.416 25.116 26.364 25.116 10.452 0 18.876-3.432 25.584-10.764v8.893h8.112zm-30.888-4.524c-12.324 0-20.592-7.956-20.592-18.563 0-10.764 8.268-18.72 20.592-18.72 9.048 0 17.472 3.432 22.776 10.451v16.536c-5.304 6.864-13.728 10.296-22.776 10.296zm78.624 6.396c18.876 0 28.235-9.984 28.235-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.021-13.729 18.72-13.729 9.984 0 18.097 4.057 22.464 9.984l4.524-5.771c-5.46-6.084-14.04-11.076-26.988-11.076-17.004 0-26.832 9.359-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.607 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.489 8.424 16.849 12.012 29.017 12.012zm71.604 0c18.876 0 28.236-9.984 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.729 18.72-13.729 9.983 0 18.096 4.057 22.464 9.984l4.523-5.771c-5.46-6.084-14.039-11.076-26.987-11.076-17.004 0-26.832 9.359-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.488 8.424 16.848 12.012 29.016 12.012z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_inline.svg b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_inline.svg new file mode 100644 index 00000000..68b01030 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_full_inline.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="792" height="296.75" viewBox="0 0 792 296.75"><path fill="#DD5A6F" d="M40 0h712c22.092 0 40 17.908 40 40v216.75c0 22.092-17.908 40-40 40h-712c-22.092 0-40-17.908-40-40v-216.75c0-22.092 17.908-40 40-40z"/><path fill="#fff" d="M159.85 217.372c18.876 0 28.236-9.984 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.729 18.72-13.729 9.984 0 18.097 4.057 22.464 9.984l4.524-5.771c-5.46-6.084-14.04-11.076-26.988-11.076-17.004 0-26.832 9.359-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.607 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.488 8.424 16.848 12.012 29.016 12.012zm105.144-1.872v-53.04c0-16.848-12.168-24.18-27.456-24.18-12.48 0-21.216 4.212-29.016 12.636l4.523 5.616c6.864-7.8 14.196-11.076 23.712-11.076 11.076 0 20.124 6.084 20.124 17.316v15.287c-6.552-7.332-15.132-10.764-25.584-10.764-13.104 0-26.364 8.58-26.364 24.96 0 16.225 13.416 25.116 26.364 25.116 10.452 0 18.876-3.432 25.584-10.764v8.892h8.113v.001zm-30.888-4.524c-12.324 0-20.593-7.956-20.593-18.563 0-10.764 8.269-18.72 20.593-18.72 9.048 0 17.472 3.432 22.775 10.451v16.536c-5.303 6.864-13.727 10.296-22.775 10.296zm78.624 6.396c18.875 0 28.235-9.984 28.235-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.021-13.729 18.72-13.729 9.984 0 18.097 4.057 22.464 9.984l4.524-5.771c-5.46-6.084-14.04-11.076-26.988-11.076-17.004 0-26.832 9.359-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.607 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.489 8.424 16.849 12.012 29.017 12.012zm71.604 0c18.876 0 28.236-9.984 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.729 18.72-13.729 9.983 0 18.096 4.057 22.464 9.984l4.523-5.771c-5.459-6.084-14.039-11.076-26.987-11.076-17.004 0-26.832 9.359-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.488 8.424 16.848 12.012 29.016 12.012zm-279.07-79.067c-.386 1.16-.819 2.32-1.304 3.48-.483 1.16-1.04 2.175-1.667 3.045-.63.87-1.33 1.521-2.103 1.957-.773.436-1.596.508-2.466.218-1.159-.193-1.812-1.04-1.957-2.537-.146-1.5.024-2.973.508-4.423.677-2.32 1.667-5.39 2.972-9.207 1.306-3.82 2.804-8 4.496-12.543 1.689-4.543 3.479-9.256 5.365-14.138 1.885-4.88 3.696-9.545 5.437-13.992s3.335-8.482 4.785-12.108c1.45-3.625 2.562-6.451 3.335-8.481.29-.58.725-1.063 1.305-1.45s1.185-.58 1.813-.58c.628 0 1.256.193 1.885.58.628.387 1.135 1.015 1.522 1.885.772 2.03.821 4.013.145 5.945-.677 1.547-1.643 3.939-2.9 7.177-1.257 3.24-2.682 6.888-4.277 10.948-1.595 4.06-3.263 8.362-5.002 12.905-1.74 4.543-3.383 8.87-4.931 12.978-1.547 4.108-2.947 7.805-4.205 11.092-1.257 3.286-2.175 5.702-2.756 7.249zm77.286-36.395c-1.933-1.45-4.036-2.997-6.308-4.641-2.271-1.643-4.664-3.335-7.177-5.074 1.643 5.896 3.383 11.503 5.22 16.819.29 1.16.17 2.176-.362 3.045-.532.87-1.185 1.306-1.958 1.306-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.682-3.48-.388-.869-.87-2.271-1.45-4.204-.58-1.934-1.257-4.205-2.03-6.815-1.643 2.417-3.166 4.785-4.567 7.105-1.401 2.319-2.729 4.543-3.987 6.67-.773 1.062-1.644 1.667-2.61 1.812s-1.691-.073-2.175-.653c-.677-1.062-1.087-2.439-1.233-4.133-.145-1.689.12-3.117.798-4.276.483-.773 1.354-2.176 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.029.483-4.012.99-5.944 1.522-1.934.531-3.867 1.04-5.8 1.522-1.16.193-2.176 0-3.046-.58-.869-.58-1.257-1.257-1.159-2.029.29-1.258.941-2.393 1.957-3.407 1.016-1.017 2.199-1.716 3.553-2.104.967-.29 2.537-.699 4.713-1.232 2.175-.53 4.664-1.135 7.467-1.812-1.933-1.16-3.842-2.344-5.728-3.552-1.885-1.21-3.794-2.345-5.728-3.408-1.062-.677-1.667-1.547-1.812-2.609-.146-1.063.073-1.837.652-2.32 1.063-.677 2.345-.99 3.844-.942 1.498.048 2.827.46 3.986 1.232.968.482 2.32 1.305 4.061 2.465-.29-1.643-.532-3.214-.726-4.712-.192-1.5-.338-2.925-.435-4.278-.097-1.062.145-1.981.725-2.755.58-.772 1.257-1.208 2.03-1.305.677-.193 1.498.023 2.465.653.967.628 1.692 1.812 2.175 3.552.388 1.837.822 3.722 1.306 5.654.482 1.934.967 4.013 1.449 6.235 1.934-2.61 3.818-5.075 5.655-7.395 1.837-2.32 3.577-4.303 5.22-5.945.773-.773 1.644-1.208 2.61-1.305.967-.098 1.74.145 2.32.725.482.387.846 1.16 1.088 2.32.24 1.16-.17 2.465-1.233 3.915-1.062 1.449-2.271 3.069-3.625 4.857-1.353 1.788-2.755 3.697-4.205 5.728 2.514-.483 4.979-.847 7.396-1.088 2.417-.24 4.688-.41 6.815-.508 1.062 0 1.981.193 2.755.58.772.388 1.208.968 1.305 1.74.097.677-.193 1.498-.87 2.465s-1.885 1.596-3.625 1.886c-1.643.289-3.407.579-5.292.869-1.886.29-3.795.628-5.728 1.016 2.223 1.643 4.302 3.262 6.234 4.857 1.934 1.596 3.723 3.117 5.365 4.567.773.773 1.28 1.57 1.523 2.392.239.822.119 1.57-.363 2.248-.483.483-1.305.822-2.465 1.016-1.161.192-2.418-.194-3.771-1.161zm58.87 0c-1.933-1.45-4.036-2.997-6.307-4.641-2.272-1.643-4.665-3.335-7.179-5.074 1.644 5.896 3.384 11.503 5.221 16.819.29 1.16.17 2.176-.363 3.045-.53.87-1.184 1.306-1.957 1.306-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.683-3.48-.387-.869-.869-2.271-1.449-4.204-.58-1.934-1.257-4.205-2.03-6.815-1.643 2.417-3.166 4.785-4.568 7.105-1.399 2.319-2.729 4.543-3.986 6.67-.773 1.062-1.644 1.667-2.61 1.812s-1.692-.073-2.175-.653c-.678-1.062-1.087-2.439-1.233-4.133-.145-1.689.12-3.117.798-4.276.483-.773 1.354-2.176 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.029.483-4.012.99-5.944 1.522-1.934.531-3.867 1.04-5.801 1.522-1.159.193-2.175 0-3.045-.58s-1.257-1.257-1.159-2.029c.289-1.258.941-2.393 1.957-3.407 1.016-1.017 2.2-1.716 3.553-2.104.967-.29 2.537-.699 4.712-1.232 2.176-.53 4.665-1.135 7.468-1.812-1.933-1.16-3.842-2.344-5.727-3.552-1.887-1.21-3.795-2.345-5.729-3.408-1.062-.677-1.667-1.547-1.812-2.609-.146-1.063.072-1.837.652-2.32 1.063-.677 2.345-.99 3.844-.942 1.498.048 2.826.46 3.986 1.232.967.482 2.32 1.305 4.061 2.465-.29-1.643-.532-3.214-.726-4.712-.192-1.5-.338-2.925-.435-4.278-.098-1.062.145-1.981.725-2.755.58-.772 1.257-1.208 2.03-1.305.677-.193 1.498.023 2.465.653.967.628 1.692 1.812 2.175 3.552.388 1.837.822 3.722 1.306 5.654.482 1.934.967 4.013 1.449 6.235 1.934-2.61 3.818-5.075 5.655-7.395 1.837-2.32 3.577-4.303 5.22-5.945.773-.773 1.644-1.208 2.61-1.305.967-.098 1.74.145 2.32.725.482.387.846 1.16 1.087 2.32.242 1.16-.17 2.465-1.232 3.915-1.062 1.449-2.271 3.069-3.625 4.857-1.353 1.788-2.755 3.697-4.205 5.728 2.514-.483 4.979-.847 7.396-1.088 2.417-.24 4.688-.41 6.814-.508 1.063 0 1.982.193 2.756.58.772.388 1.207.968 1.305 1.74.097.677-.193 1.498-.87 2.465s-1.885 1.596-3.625 1.886c-1.644.289-3.407.579-5.292.869-1.886.29-3.795.628-5.729 1.016 2.224 1.643 4.303 3.262 6.235 4.857s3.722 3.117 5.365 4.567c.772.773 1.28 1.57 1.522 2.392.24.822.12 1.57-.362 2.248-.483.483-1.306.822-2.465 1.016-1.161.192-2.418-.194-3.771-1.161zm221.59 116.59c25.376 0 43.066-16.104 43.066-40.748 0-24.4-17.69-40.626-43.188-40.626h-32.086v81.374h32.208zm-.122-15.25h-14.762v-50.874h14.884c16.592 0 25.376 11.102 25.376 25.376 0 13.908-9.394 25.498-25.498 25.498zm94.184 16.714c24.521 0 42.456-17.567 42.456-42.09s-17.935-42.09-42.456-42.09c-24.645 0-42.578 17.567-42.578 42.09s17.934 42.09 42.578 42.09zm0-15.372c-15.128 0-24.767-11.59-24.767-26.718 0-15.25 9.639-26.718 24.767-26.718 15.006 0 24.644 11.468 24.644 26.718 0 15.128-9.638 26.718-24.644 26.718zm94.184 15.372c17.812 0 28.182-9.882 33.916-20.008l-14.884-7.198c-3.416 6.588-10.736 11.834-19.032 11.834-14.884 0-25.62-11.346-25.62-26.718s10.736-26.718 25.62-26.718c8.296 0 15.616 5.246 19.032 11.834l14.884-7.32c-5.734-10.248-16.104-19.886-33.916-19.886-24.521 0-43.432 16.958-43.432 42.09 0 25.01 18.91 42.09 43.432 42.09z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_compact.svg b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_compact.svg new file mode 100644 index 00000000..7f9ef801 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_compact.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="431.5" height="431.5" viewBox="0 0 431.5 431.5"><path fill="#5C4863" d="M112.1 231.372c18.876 0 28.236-9.983 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.728 18.72-13.728 9.984 0 18.096 4.056 22.464 9.984l4.524-5.772c-5.46-6.084-14.04-11.076-26.988-11.076-17.004 0-26.832 9.36-26.832 20.904 0 27.144 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.836 5.928c7.488 8.424 16.848 12.012 29.016 12.012zm105.144-1.872v-53.04c0-16.848-12.168-24.18-27.456-24.18-12.48 0-21.216 4.212-29.016 12.636l4.524 5.616c6.864-7.8 14.196-11.076 23.712-11.076 11.076 0 20.124 6.084 20.124 17.316v15.288c-6.552-7.332-15.132-10.764-25.584-10.764-13.104 0-26.364 8.58-26.364 24.96 0 16.225 13.416 25.116 26.364 25.116 10.452 0 18.876-3.433 25.584-10.765v8.893h8.112zm-30.888-4.523c-12.324 0-20.592-7.957-20.592-18.564 0-10.764 8.268-18.72 20.592-18.72 9.048 0 17.472 3.432 22.776 10.452v16.536c-5.304 6.863-13.728 10.296-22.776 10.296zm78.624 6.395c18.876 0 28.235-9.983 28.235-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.728 18.72-13.728 9.984 0 18.097 4.056 22.464 9.984l4.524-5.772c-5.46-6.084-14.04-11.076-26.988-11.076-17.004 0-26.832 9.36-26.832 20.904 0 27.144 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.607 0-19.5-4.992-24.336-11.076l-4.836 5.928c7.489 8.424 16.849 12.012 29.017 12.012zm71.604 0c18.876 0 28.236-9.983 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.728 18.72-13.728 9.983 0 18.096 4.056 22.464 9.984l4.523-5.772c-5.46-6.084-14.039-11.076-26.987-11.076-17.004 0-26.832 9.36-26.832 20.904 0 27.144 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.836 5.928c7.488 8.424 16.848 12.012 29.016 12.012zm-213.704 115.128c28.288 0 48.008-17.952 48.008-45.424 0-27.2-19.72-45.288-48.144-45.288h-35.768v90.712h35.904zm-.136-17h-16.456v-56.712h16.592c18.496 0 28.288 12.376 28.288 28.288 0 15.504-10.472 28.424-28.424 28.424zm104.992 18.632c27.336 0 47.328-19.584 47.328-46.92s-19.992-46.92-47.328-46.92c-27.472 0-47.464 19.584-47.464 46.92s19.992 46.92 47.464 46.92zm0-17.136c-16.864 0-27.608-12.92-27.608-29.784 0-17 10.744-29.784 27.608-29.784 16.728 0 27.472 12.784 27.472 29.784 0 16.864-10.744 29.784-27.472 29.784zm104.993 17.136c19.855 0 31.416-11.016 37.808-22.304l-16.592-8.024c-3.809 7.345-11.969 13.192-21.216 13.192-16.593 0-28.561-12.648-28.561-29.784s11.968-29.784 28.561-29.784c9.247 0 17.407 5.848 21.216 13.192l16.592-8.16c-6.393-11.424-17.952-22.168-37.808-22.168-27.337 0-48.416 18.903-48.416 46.92-.001 27.88 21.079 46.92 48.416 46.92z"/><path fill="#DD5A6F" d="M57.515 152.305c-.387 1.16-.822 2.32-1.305 3.48-.483 1.16-1.04 2.175-1.668 3.045s-1.33 1.522-2.102 1.957c-.773.436-1.595.508-2.465.218-1.16-.193-1.812-1.04-1.958-2.538-.145-1.498.025-2.972.508-4.422.677-2.32 1.667-5.39 2.972-9.208 1.306-3.818 2.804-8 4.495-12.542 1.692-4.543 3.48-9.256 5.365-14.138 1.886-4.88 3.698-9.545 5.438-13.992 1.74-4.447 3.335-8.482 4.785-12.108 1.45-3.625 2.562-6.452 3.335-8.482.29-.58.725-1.063 1.305-1.45s1.184-.58 1.813-.58c.628 0 1.256.193 1.885.58.628.387 1.135 1.015 1.522 1.885.773 2.03.822 4.012.145 5.945-.677 1.547-1.643 3.94-2.9 7.177-1.257 3.24-2.682 6.888-4.277 10.948-1.596 4.06-3.263 8.362-5.003 12.905-1.74 4.543-3.383 8.87-4.93 12.977-1.547 4.11-2.948 7.806-4.205 11.093-1.257 3.287-2.175 5.703-2.755 7.25zm77.285-36.395c-1.933-1.45-4.036-2.997-6.308-4.64-2.27-1.643-4.664-3.335-7.177-5.075 1.643 5.897 3.383 11.503 5.22 16.82.29 1.16.17 2.175-.363 3.045-.53.87-1.184 1.305-1.957 1.305-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.682-3.48-.387-.87-.87-2.272-1.45-4.205-.58-1.933-1.257-4.205-2.03-6.815-1.643 2.417-3.166 4.785-4.568 7.105-1.4 2.32-2.73 4.543-3.987 6.67-.773 1.063-1.643 1.667-2.61 1.812-.967.146-1.692-.072-2.175-.652-.677-1.063-1.087-2.44-1.233-4.133-.145-1.69.12-3.117.798-4.277.483-.773 1.353-2.175 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.03.483-4.012.99-5.945 1.522-1.933.532-3.867 1.04-5.8 1.523-1.16.193-2.175 0-3.045-.58-.87-.58-1.257-1.257-1.16-2.03.29-1.257.942-2.392 1.957-3.407 1.016-1.016 2.2-1.716 3.553-2.103.967-.29 2.537-.7 4.712-1.232 2.176-.532 4.665-1.136 7.468-1.813-1.933-1.16-3.842-2.344-5.728-3.552-1.885-1.21-3.794-2.345-5.727-3.408-1.063-.677-1.667-1.547-1.813-2.61-.145-1.063.073-1.837.653-2.32 1.063-.677 2.344-.99 3.842-.942 1.5.048 2.828.46 3.988 1.232.967.483 2.32 1.305 4.06 2.465-.29-1.643-.532-3.214-.725-4.712-.193-1.5-.338-2.925-.435-4.278-.097-1.063.145-1.982.725-2.755s1.257-1.208 2.03-1.305c.677-.193 1.498.024 2.465.653.967.628 1.692 1.812 2.175 3.552.387 1.837.822 3.722 1.305 5.655.483 1.933.967 4.012 1.45 6.235 1.933-2.61 3.818-5.075 5.655-7.395 1.837-2.32 3.577-4.302 5.22-5.945.773-.773 1.643-1.208 2.61-1.305.967-.097 1.74.145 2.32.725.483.387.846 1.16 1.087 2.32.242 1.16-.17 2.465-1.232 3.915-1.063 1.45-2.272 3.07-3.625 4.858-1.353 1.788-2.755 3.697-4.205 5.727 2.513-.483 4.978-.846 7.395-1.087 2.417-.242 4.688-.41 6.815-.508 1.063 0 1.982.193 2.755.58.773.387 1.208.967 1.305 1.74.097.677-.193 1.498-.87 2.465-.677.967-1.885 1.595-3.625 1.885-1.643.29-3.407.58-5.293.87-1.885.29-3.794.628-5.727 1.015 2.223 1.643 4.302 3.262 6.235 4.858 1.933 1.595 3.722 3.117 5.365 4.567.773.773 1.28 1.57 1.522 2.393.242.82.12 1.57-.362 2.247-.483.483-1.305.822-2.465 1.015-1.16.193-2.417-.193-3.77-1.16zm58.87 0c-1.933-1.45-4.036-2.997-6.308-4.64-2.27-1.643-4.664-3.335-7.177-5.075 1.643 5.897 3.383 11.503 5.22 16.82.29 1.16.17 2.175-.363 3.045-.53.87-1.184 1.305-1.957 1.305-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.682-3.48-.387-.87-.87-2.272-1.45-4.205s-1.257-4.205-2.03-6.815c-1.643 2.417-3.166 4.785-4.568 7.105-1.4 2.32-2.73 4.543-3.987 6.67-.773 1.063-1.643 1.667-2.61 1.812-.967.146-1.692-.072-2.175-.652-.677-1.063-1.087-2.44-1.233-4.133-.145-1.69.12-3.117.798-4.277.483-.773 1.353-2.175 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.03.483-4.012.99-5.945 1.522-1.933.532-3.867 1.04-5.8 1.523-1.16.193-2.175 0-3.045-.58-.87-.58-1.257-1.257-1.16-2.03.29-1.257.942-2.392 1.957-3.407 1.016-1.016 2.2-1.716 3.553-2.103.967-.29 2.537-.7 4.712-1.232 2.176-.532 4.665-1.136 7.468-1.813-1.933-1.16-3.842-2.344-5.728-3.552-1.885-1.21-3.794-2.345-5.727-3.408-1.063-.677-1.667-1.547-1.813-2.61-.145-1.063.073-1.837.653-2.32 1.063-.677 2.344-.99 3.842-.942 1.5.048 2.828.46 3.988 1.232.967.483 2.32 1.305 4.06 2.465-.29-1.643-.532-3.214-.725-4.712-.193-1.5-.338-2.925-.435-4.278-.097-1.063.145-1.982.725-2.755.58-.773 1.257-1.208 2.03-1.305.677-.193 1.498.024 2.465.653.967.628 1.692 1.812 2.175 3.552.387 1.837.822 3.722 1.305 5.655s.967 4.012 1.45 6.235c1.933-2.61 3.818-5.075 5.655-7.395 1.837-2.32 3.577-4.302 5.22-5.945.773-.773 1.643-1.208 2.61-1.305.967-.097 1.74.145 2.32.725.483.387.846 1.16 1.087 2.32.242 1.16-.17 2.465-1.232 3.915-1.063 1.45-2.272 3.07-3.625 4.858-1.353 1.788-2.755 3.697-4.205 5.727 2.513-.483 4.978-.846 7.395-1.087 2.417-.242 4.688-.41 6.815-.508 1.063 0 1.982.193 2.755.58.773.387 1.208.967 1.305 1.74.097.677-.193 1.498-.87 2.465-.677.967-1.885 1.595-3.625 1.885-1.643.29-3.407.58-5.293.87-1.885.29-3.794.628-5.727 1.015 2.223 1.643 4.302 3.262 6.235 4.858 1.933 1.595 3.722 3.117 5.365 4.567.773.773 1.28 1.57 1.522 2.393.242.82.12 1.57-.362 2.247-.483.483-1.305.822-2.465 1.015-1.16.193-2.417-.193-3.77-1.16z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_inline.svg b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_inline.svg new file mode 100644 index 00000000..120ffd2d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/images/logo_light_inline.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="792" height="296.75" viewBox="0 0 792 296.75"><path fill="#5C4863" d="M160.1 217.372c18.876 0 28.236-9.984 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.728 18.72-13.728 9.984 0 18.096 4.056 22.464 9.983l4.524-5.772c-5.46-6.084-14.04-11.075-26.988-11.075-17.004 0-26.832 9.36-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.607 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.488 8.424 16.848 12.012 29.016 12.012zm105.144-1.872v-53.04c0-16.849-12.168-24.18-27.456-24.18-12.48 0-21.216 4.212-29.017 12.636l4.524 5.616c6.864-7.8 14.196-11.076 23.712-11.076 11.076 0 20.124 6.084 20.124 17.315v15.288c-6.552-7.332-15.132-10.764-25.584-10.764-13.104 0-26.364 8.58-26.364 24.96 0 16.225 13.416 25.116 26.364 25.116 10.452 0 18.876-3.432 25.584-10.764v8.892h8.113v.001zm-30.889-4.524c-12.323 0-20.592-7.956-20.592-18.563 0-10.764 8.269-18.72 20.592-18.72 9.049 0 17.473 3.432 22.776 10.451v16.536c-5.303 6.864-13.727 10.296-22.776 10.296zm78.625 6.396c18.875 0 28.235-9.984 28.235-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.021-13.728 18.72-13.728 9.984 0 18.096 4.056 22.464 9.983l4.524-5.772c-5.46-6.084-14.04-11.075-26.988-11.075-17.004 0-26.832 9.36-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.836 5.929c7.489 8.424 16.849 12.012 29.017 12.012zm71.604 0c18.876 0 28.236-9.984 28.236-22.152 0-29.016-47.424-17.472-47.424-36.348 0-7.8 7.02-13.728 18.72-13.728 9.983 0 18.096 4.056 22.464 9.983l4.523-5.772c-5.459-6.084-14.039-11.075-26.987-11.075-17.004 0-26.832 9.36-26.832 20.903 0 27.145 47.58 15.444 47.58 36.036 0 8.736-7.488 15.288-20.124 15.288-10.608 0-19.5-4.992-24.336-11.076l-4.837 5.929c7.489 8.424 16.849 12.012 29.017 12.012zm78.676 1.128c25.376 0 43.066-16.104 43.066-40.748 0-24.4-17.69-40.626-43.188-40.626h-32.086v81.374h32.208zm-.122-15.25h-14.762v-50.874h14.884c16.593 0 25.376 11.103 25.376 25.376 0 13.908-9.394 25.498-25.498 25.498zm94.184 16.714c24.521 0 42.456-17.567 42.456-42.09s-17.935-42.09-42.456-42.09c-24.645 0-42.578 17.567-42.578 42.09s17.934 42.09 42.578 42.09zm0-15.372c-15.128 0-24.767-11.59-24.767-26.718 0-15.25 9.639-26.718 24.767-26.718 15.006 0 24.644 11.468 24.644 26.718 0 15.128-9.638 26.718-24.644 26.718zm94.184 15.372c17.812 0 28.182-9.882 33.916-20.008l-14.884-7.198c-3.416 6.588-10.736 11.834-19.032 11.834-14.884 0-25.62-11.346-25.62-26.718s10.736-26.718 25.62-26.718c8.296 0 15.616 5.246 19.032 11.834l14.884-7.32c-5.734-10.248-16.104-19.886-33.916-19.886-24.521 0-43.432 16.958-43.432 42.09 0 25.01 18.91 42.09 43.432 42.09z"/><path fill="#DD5A6F" d="M105.515 138.305c-.387 1.16-.821 2.32-1.305 3.48s-1.04 2.175-1.668 3.045-1.33 1.521-2.102 1.957c-.773.436-1.596.508-2.466.218-1.159-.192-1.812-1.04-1.958-2.537-.145-1.5.025-2.973.509-4.423.677-2.32 1.667-5.39 2.973-9.208 1.305-3.818 2.803-8 4.495-12.542 1.689-4.543 3.479-9.256 5.365-14.138 1.885-4.88 3.696-9.545 5.437-13.992 1.74-4.447 3.335-8.482 4.785-12.108 1.45-3.625 2.562-6.452 3.335-8.482.29-.58.725-1.063 1.305-1.45s1.185-.58 1.813-.58c.628 0 1.256.193 1.885.58.628.387 1.135 1.015 1.521 1.885.773 2.03.822 4.012.146 5.945-.677 1.547-1.643 3.94-2.9 7.177-1.257 3.24-2.682 6.888-4.276 10.948-1.597 4.06-3.264 8.362-5.003 12.905-1.74 4.543-3.384 8.87-4.931 12.977-1.547 4.11-2.947 7.806-4.205 11.093-1.257 3.287-2.175 5.703-2.755 7.25zm77.285-36.395c-1.933-1.45-4.036-2.997-6.307-4.64-2.272-1.643-4.665-3.335-7.178-5.075 1.643 5.897 3.383 11.503 5.22 16.82.29 1.16.17 2.175-.362 3.045s-1.185 1.305-1.958 1.305c-1.257-.193-2.537-.773-3.843-1.74-1.305-.967-2.2-2.127-2.683-3.48-.387-.87-.869-2.272-1.449-4.205s-1.258-4.205-2.03-6.815c-1.644 2.417-3.166 4.785-4.567 7.105s-2.729 4.543-3.987 6.67c-.773 1.063-1.644 1.667-2.61 1.812-.967.146-1.692-.072-2.175-.652-.677-1.063-1.087-2.44-1.232-4.133-.146-1.69.12-3.117.797-4.277.483-.773 1.354-2.175 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.029.483-4.012.99-5.944 1.522-1.934.532-3.867 1.04-5.801 1.523-1.159.193-2.175 0-3.045-.58-.869-.58-1.257-1.257-1.159-2.03.29-1.257.941-2.392 1.958-3.407 1.015-1.016 2.199-1.716 3.552-2.103.967-.29 2.537-.7 4.713-1.232 2.175-.532 4.664-1.136 7.467-1.813-1.933-1.16-3.842-2.344-5.727-3.552-1.886-1.21-3.795-2.345-5.729-3.408-1.062-.677-1.667-1.547-1.812-2.61-.146-1.063.072-1.837.651-2.32 1.063-.677 2.345-.99 3.844-.942 1.498.048 2.827.46 3.986 1.232.968.483 2.32 1.305 4.061 2.465-.29-1.643-.532-3.214-.726-4.712-.192-1.5-.338-2.925-.435-4.278-.097-1.062.145-1.982.725-2.755s1.257-1.208 2.03-1.305c.677-.193 1.498.024 2.465.653.967.628 1.692 1.812 2.175 3.552.388 1.837.822 3.722 1.306 5.655.482 1.933.967 4.012 1.45 6.235 1.933-2.61 3.817-5.075 5.654-7.395 1.837-2.32 3.577-4.302 5.221-5.945.772-.773 1.643-1.208 2.609-1.305.967-.097 1.74.145 2.32.725.482.387.846 1.16 1.088 2.32.24 1.16-.17 2.465-1.233 3.915-1.062 1.45-2.271 3.07-3.625 4.858-1.353 1.788-2.755 3.697-4.205 5.727 2.514-.483 4.979-.846 7.396-1.088 2.417-.24 4.688-.41 6.815-.507 1.062 0 1.981.193 2.755.58.772.387 1.208.967 1.305 1.74.097.677-.193 1.498-.87 2.465-.677.967-1.885 1.595-3.625 1.885-1.643.29-3.407.58-5.292.87-1.886.29-3.795.628-5.728 1.015 2.223 1.643 4.302 3.262 6.234 4.858 1.934 1.595 3.723 3.117 5.365 4.567.773.773 1.28 1.57 1.523 2.393.239.82.119 1.57-.363 2.247-.483.483-1.305.822-2.465 1.015-1.16.193-2.417-.193-3.77-1.16zm58.87 0c-1.933-1.45-4.036-2.997-6.308-4.64-2.271-1.643-4.664-3.335-7.177-5.075 1.643 5.897 3.383 11.503 5.22 16.82.29 1.16.17 2.175-.363 3.045-.53.87-1.184 1.305-1.957 1.305-1.257-.193-2.537-.773-3.843-1.74s-2.2-2.127-2.683-3.48c-.387-.87-.87-2.272-1.449-4.205-.58-1.933-1.257-4.205-2.03-6.815-1.644 2.417-3.166 4.785-4.567 7.105s-2.729 4.543-3.987 6.67c-.773 1.063-1.644 1.667-2.61 1.812-.967.146-1.692-.072-2.175-.652-.678-1.063-1.087-2.44-1.233-4.133-.145-1.69.12-3.117.798-4.277.483-.773 1.354-2.175 2.61-4.205 1.257-2.03 2.803-4.398 4.64-7.105-2.029.483-4.012.99-5.944 1.522-1.934.532-3.867 1.04-5.801 1.523-1.159.193-2.175 0-3.045-.58-.87-.58-1.257-1.257-1.159-2.03.289-1.257.941-2.392 1.958-3.407 1.015-1.016 2.199-1.716 3.552-2.103.967-.29 2.537-.7 4.713-1.232 2.175-.532 4.664-1.136 7.467-1.813-1.933-1.16-3.842-2.344-5.727-3.552-1.887-1.21-3.795-2.345-5.729-3.408-1.062-.677-1.667-1.547-1.812-2.61-.146-1.063.071-1.837.651-2.32 1.063-.677 2.345-.99 3.844-.942 1.498.048 2.826.46 3.986 1.232.967.483 2.32 1.305 4.061 2.465-.29-1.643-.532-3.214-.726-4.712-.192-1.5-.338-2.925-.435-4.278-.097-1.062.145-1.982.725-2.755s1.257-1.208 2.03-1.305c.677-.193 1.498.024 2.465.653.967.628 1.692 1.812 2.175 3.552.388 1.837.822 3.722 1.306 5.655.482 1.933.967 4.012 1.45 6.235 1.933-2.61 3.817-5.075 5.654-7.395 1.837-2.32 3.577-4.302 5.221-5.945.772-.773 1.643-1.208 2.609-1.305.967-.097 1.74.145 2.32.725.482.387.846 1.16 1.087 2.32.242 1.16-.17 2.465-1.232 3.915-1.062 1.45-2.271 3.07-3.625 4.858-1.353 1.788-2.755 3.697-4.205 5.727 2.514-.483 4.979-.846 7.396-1.088 2.417-.24 4.688-.41 6.814-.507 1.063 0 1.982.193 2.756.58.772.387 1.207.967 1.305 1.74.097.677-.193 1.498-.87 2.465-.677.967-1.885 1.595-3.625 1.885-1.643.29-3.407.58-5.292.87-1.886.29-3.795.628-5.729 1.015 2.224 1.643 4.303 3.262 6.235 4.858 1.933 1.595 3.722 3.117 5.365 4.567.772.773 1.28 1.57 1.522 2.393.24.82.12 1.57-.362 2.247-.483.483-1.306.822-2.466 1.015-1.159.193-2.416-.193-3.769-1.16z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.js new file mode 100644 index 00000000..015842a0 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.js @@ -0,0 +1,56 @@ +/* global document */ + +(function ($, global) { + 'use strict'; + + // Constructor + var App = function (conf) { + this.conf = $.extend({ + // Search module + search: new global.Search(), + + // Sidebar module + sidebar: new global.Sidebar(), + + // Initialisation + init: true + }, conf || {}); + + // Launch the module + if (this.conf.init !== false) { + this.initialize(); + } + }; + + // Initialisation method + App.prototype.initialize = function () { + this.codePreview(); + }; + + // Toggle code preview collapsed/expanded modes + App.prototype.codePreview = function () { + var $item; + var $code; + var switchTo; + + $('.item__code--togglable').on('click', function () { + $item = $(this); + $code = $item.find('code'); + switchTo = $item.attr('data-current-state') === 'expanded' ? 'collapsed' : 'expanded'; + + $item.attr('data-current-state', switchTo); + $code.html($item.attr('data-' + switchTo)); + Prism.highlightElement($code[0]); + }); + }; + + global.App = App; +}(window.jQuery, window)); + +(function ($, global) { + + $(document).ready(function () { + var app = new global.App(); + }); + +}(window.jQuery, window)); \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.min.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.min.js new file mode 100644 index 00000000..b81f9d4a --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/main.min.js @@ -0,0 +1 @@ +!function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s;for(i=0,keys=["sort","includeScore","shouldSort"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,keys=["searchFn","sortFn","keys","getFn"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<<this.patternLen-1,this.patternAlphabet=this._calculatePatternAlphabet()};n.defaultOptions={location:0,distance:100,threshold:.6,maxPatternLength:32},n.prototype._calculatePatternAlphabet=function(){var t={},e=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]|=1<<this.pattern.length-e-1;return t},n.prototype._bitapScore=function(t,e){var n=t/this.patternLen,i=Math.abs(this.options.location-e);return this.options.distance?n+i/this.options.distance:i?1:n},n.prototype.search=function(t){if(t=this.options.caseSensitive?t:t.toLowerCase(),this.pattern===t)return{isMatch:!0,score:0};var e,n,i,o,s,r,a,h,p,c=t.length,l=this.options.location,u=this.options.threshold,f=t.indexOf(this.pattern,l),d=this.patternLen+c,g=1,m=[];for(-1!=f&&(u=Math.min(this._bitapScore(0,f),u),f=t.lastIndexOf(this.pattern,l+this.patternLen),-1!=f&&(u=Math.min(this._bitapScore(0,f),u))),f=-1,e=0;e<this.patternLen;e++){for(i=0,o=d;o>i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<<e)-1,n=r;n>=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var y=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return i.deepValue(y(t),c.id)}:function(t){return y(t)},e=0,v=f.length;v>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this);(function($,global){var Sidebar=function(conf){this.conf=$.extend({collapsedClass:"is-collapsed",storageKey:"_sassdoc_sidebar_index",indexAttribute:"data-slug",toggleBtn:".js-btn-toggle",init:true},conf||{});if(this.conf.init===true){this.initialize()}};Sidebar.prototype.initialize=function(){this.conf.nodes=$("["+this.conf.indexAttribute+"]");this.load();this.updateDOM();this.bind();this.loadToggle()};Sidebar.prototype.loadToggle=function(){$("<span />",{"class":"layout-toggle",html:"×","data-alt":"→"}).appendTo($(".header"));$(".layout-toggle").on("click",function(){var $this=$(this);var alt;$("body").toggleClass("sidebar-closed");alt=$this.html();$this.html($this.data("alt"));$this.data("alt",alt)})};Sidebar.prototype.load=function(){var index="localStorage"in global?global.localStorage.getItem(this.conf.storageKey):null;this.index=index?JSON.parse(index):this.buildIndex()};Sidebar.prototype.buildIndex=function(){var index={};var $item;this.conf.nodes.each($.proxy(function(index,item){$item=$(item);index[$item.attr(this.conf.indexAttribute)]=!$item.hasClass(this.conf.collapsedClass)},this));return index};Sidebar.prototype.updateDOM=function(){var item;for(item in this.index){if(this.index[item]===false){$("["+this.conf.indexAttribute+'="'+item+'"]').addClass(this.conf.collapsedClass)}}};Sidebar.prototype.save=function(){if(!("localStorage"in global)){return}global.localStorage.setItem(this.conf.storageKey,JSON.stringify(this.index))};Sidebar.prototype.bind=function(){var $item,slug,fn,text;var collapsed=false;global.onbeforeunload=$.proxy(function(){this.save()},this);$(this.conf.toggleBtn).on("click",$.proxy(function(event){$node=$(event.target);text=$node.attr("data-alt");$node.attr("data-alt",$node.text());$node.text(text);fn=collapsed===true?"removeClass":"addClass";this.conf.nodes.each($.proxy(function(index,item){$item=$(item);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=collapsed;$("["+this.conf.indexAttribute+'="'+slug+'"]')[fn](this.conf.collapsedClass)},this));collapsed=!collapsed;this.save()},this));this.conf.nodes.on("click",$.proxy(function(event){$item=$(event.target);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=!this.index[slug];$item.toggleClass(this.conf.collapsedClass)},this))};global.Sidebar=Sidebar})(window.jQuery,window);(function($,global){var Search=function(conf){this.conf=$.extend({search:{items:".sassdoc__item",input:"#js-search-input",form:"#js-search",suggestionsWrapper:"#js-search-suggestions"},fuse:{keys:["name"],threshold:.3},init:true},conf||{});if(this.conf.init===true){this.initialize()}};Search.prototype.initialize=function(){this.index=new Fuse($.map($(this.conf.search.items),function(item){var $item=$(item);return{group:$item.data("group"),name:$item.data("name"),type:$item.data("type"),node:$item}}),this.conf.fuse);this.initializeSearch()};Search.prototype.fillSuggestions=function(items){var searchSuggestions=$(this.conf.search.suggestionsWrapper);searchSuggestions.html("");var suggestions=$.map(items.slice(0,10),function(item){var $li=$("<li />",{"data-group":item.group,"data-type":item.type,"data-name":item.name,html:'<a href="#'+item.group+"-"+item.type+"-"+item.name+'"><code>'+item.type.slice(0,3)+"</code> "+item.name+"</a>"});searchSuggestions.append($li);return $li});return suggestions};Search.prototype.search=function(term){return this.fillSuggestions(this.index.search(term))};Search.prototype.initializeSearch=function(){var searchForm=$(this.conf.search.form);var searchInput=$(this.conf.search.input);var searchSuggestions=$(this.conf.search.suggestionsWrapper);var currentSelection=-1;var suggestions=[];var selected;var self=this;searchSuggestions.on("click",function(e){var target=$(event.target);if(target.nodeName==="A"){searchInput.val(target.parent().data("name"));suggestions=self.fillSuggestions([])}});searchForm.on("keyup",function(e){e.preventDefault();if(e.keyCode===13){if(selected){suggestions=self.fillSuggestions([]);searchInput.val(selected.data("name"));window.location=selected.children().first().attr("href")}e.stopPropagation()}if(e.keyCode===40){currentSelection=(currentSelection+1)%suggestions.length}if(e.keyCode===38){currentSelection=currentSelection-1;if(currentSelection<0){currentSelection=suggestions.length-1}}if(suggestions[currentSelection]){if(selected){selected.removeClass("selected")}selected=suggestions[currentSelection];selected.addClass("selected")}});searchInput.on("keyup",function(e){if(e.keyCode!==40&&e.keyCode!==38){currentSelection=-1;suggestions=self.search($(this).val())}else{e.preventDefault()}}).on("search",function(){suggestions=self.search($(this).val())})};global.Search=Search})(window.jQuery,window);(function($,global){"use strict";var App=function(conf){this.conf=$.extend({search:new global.Search,sidebar:new global.Sidebar,init:true},conf||{});if(this.conf.init!==false){this.initialize()}};App.prototype.initialize=function(){this.codePreview()};App.prototype.codePreview=function(){var $item;var $code;var switchTo;$(".item__code--togglable").on("click",function(){$item=$(this);$code=$item.find("code");switchTo=$item.attr("data-current-state")==="expanded"?"collapsed":"expanded";$item.attr("data-current-state",switchTo);$code.html($item.attr("data-"+switchTo));Prism.highlightElement($code[0])})};global.App=App})(window.jQuery,window);(function($,global){$(document).ready(function(){var app=new global.App})})(window.jQuery,window);var self=typeof window!="undefined"?window:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):t.util.type(e)==="Array"?e.map(t.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.util.clone(e[i]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var i in n)r[i]=n[i];return r},insertBefore:function(e,n,r,i){i=i||t.languages;var s=i[e],o={};for(var u in s)if(s.hasOwnProperty(u)){if(u==n)for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);o[u]=s[u]}return i[e]=o},DFS:function(e,n){for(var r in e){n.call(e,r,e[r]);t.util.type(e)==="Object"&&t.languages.DFS(e[r],n)}}},highlightAll:function(e,n){var r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');for(var i=0,s;s=r[i++];)t.highlightElement(s,e===!0,n)},highlightElement:function(r,i,s){var o,u,a=r;while(a&&!e.test(a.className))a=a.parentNode;if(a){o=(a.className.match(e)||[,""])[1];u=t.languages[o]}if(!u)return;r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+o;a=r.parentNode;/pre/i.test(a.nodeName)&&(a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+o);var f=r.textContent;if(!f)return;var l={element:r,language:o,grammar:u,code:f};t.hooks.run("before-highlight",l);if(i&&self.Worker){var c=new Worker(t.filename);c.onmessage=function(e){l.highlightedCode=n.stringify(JSON.parse(e.data),o);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(l.element);t.hooks.run("after-highlight",l)};c.postMessage(JSON.stringify({language:l.language,code:l.code}))}else{l.highlightedCode=t.highlight(l.code,l.grammar,l.language);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(r);t.hooks.run("after-highlight",l)}},highlight:function(e,r,i){var s=t.tokenize(e,r);return n.stringify(t.util.encode(s),i)},tokenize:function(e,n,r){var i=t.Token,s=[e],o=n.rest;if(o){for(var u in o)n[u]=o[u];delete n.rest}e:for(var u in n){if(!n.hasOwnProperty(u)||!n[u])continue;var a=n[u],f=a.inside,l=!!a.lookbehind,c=0;a=a.pattern||a;for(var h=0;h<s.length;h++){var p=s[h];if(s.length>e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+"</"+s.tag+">"};if(!self.document){if(!self.addEventListener)return self.Prism;self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return self.Prism}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}return self.Prism}();typeof module!="undefined"&&module.exports&&(module.exports=Prism);Prism.languages.markup={comment:/<!--[\w\W]*?-->/g,prolog:/<\?.+?\?>/,doctype:/<!DOCTYPE.+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\&#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/gi,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/gi};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/<style[\w\W]*?>[\w\W]*?<\/style>/gi,inside:{tag:{pattern:/<style[\w\W]*?>|<\/style>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g,"pseudo-class":/:[-\w]+(?:\(.*\))?/g,"class":/\.[-:\.\w]+/g,id:/#[-:\.\w]+/g}};Prism.languages.insertBefore("css","ignore",{hexcode:/#[\da-f]{3,6}/gi,entity:/\\[\da-f]{1,8}/gi,number:/[\d%\.]+/g});Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/gi,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/gi,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/gi,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}});Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*?(\r?\n|$))/g,lookbehind:!0},atrule:/@[\w-]+(?=\s+(\(|\{|;))/gi,url:/([-a-z]+-)*url(?=\()/gi,selector:/([^@;\{\}\(\)]?([^@;\{\}\(\)]|&|\#\{\$[-_\w]+\})+)(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/gm});Prism.languages.insertBefore("scss","atrule",{keyword:/@(if|else if|else|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)|(?=@for\s+\$[-_\w]+\s)+from/i});Prism.languages.insertBefore("scss","property",{variable:/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i});Prism.languages.insertBefore("scss","ignore",{placeholder:/%[-_\w]+/i,statement:/\B!(default|optional)\b/gi,"boolean":/\b(true|false)\b/g,"null":/\b(null)\b/g,operator:/\s+([-+]{1,2}|={1,2}|!=|\|?\||\?|\*|\/|\%)\s+/g}); diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/search.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/search.js new file mode 100644 index 00000000..a5009cad --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/search.js @@ -0,0 +1,146 @@ +(function ($, global) { + + var Search = function (conf) { + this.conf = $.extend({ + // Search DOM + search: { + items: '.sassdoc__item', + input: '#js-search-input', + form: '#js-search', + suggestionsWrapper: '#js-search-suggestions' + }, + + // Fuse options + fuse: { + keys: ['name'], + threshold: 0.3 + }, + + init: true + }, conf || {}); + + if (this.conf.init === true) { + this.initialize(); + } + }; + + Search.prototype.initialize = function () { + // Fuse engine instanciation + this.index = new Fuse($.map($(this.conf.search.items), function (item) { + var $item = $(item); + + return { + group: $item.data('group'), + name: $item.data('name'), + type: $item.data('type'), + node: $item + }; + }), this.conf.fuse); + + this.initializeSearch(); + }; + + // Fill DOM with search suggestions + Search.prototype.fillSuggestions = function (items) { + var searchSuggestions = $(this.conf.search.suggestionsWrapper); + searchSuggestions.html(''); + + var suggestions = $.map(items.slice(0, 10), function (item) { + var $li = $('<li />', { + 'data-group': item.group, + 'data-type': item.type, + 'data-name': item.name, + 'html': '<a href="#' + item.group + '-' + item.type + '-' + item.name + '"><code>' + item.type.slice(0, 3) + '</code> ' + item.name + '</a>' + }); + + searchSuggestions.append($li); + return $li; + }); + + return suggestions; + }; + + // Perform a search on a given term + Search.prototype.search = function (term) { + return this.fillSuggestions(this.index.search(term)); + }; + + // Search logic + Search.prototype.initializeSearch = function () { + var searchForm = $(this.conf.search.form); + var searchInput = $(this.conf.search.input); + var searchSuggestions = $(this.conf.search.suggestionsWrapper); + + var currentSelection = -1; + var suggestions = []; + var selected; + + var self = this; + + // Clicking on a suggestion + searchSuggestions.on('click', function (e) { + var target = $(event.target); + + if (target.nodeName === 'A') { + searchInput.val(target.parent().data('name')); + suggestions = self.fillSuggestions([]); + } + }); + + // Filling the form + searchForm.on('keyup', function (e) { + e.preventDefault(); + + // Enter + if (e.keyCode === 13) { + if (selected) { + suggestions = self.fillSuggestions([]); + searchInput.val(selected.data('name')); + window.location = selected.children().first().attr('href'); + } + + e.stopPropagation(); + } + + // KeyDown + if (e.keyCode === 40) { + currentSelection = (currentSelection + 1) % suggestions.length; + } + + // KeyUp + if (e.keyCode === 38) { + currentSelection = currentSelection - 1; + + if (currentSelection < 0) { + currentSelection = suggestions.length - 1; + } + } + + if (suggestions[currentSelection]) { + if (selected) { + selected.removeClass('selected'); + } + + selected = suggestions[currentSelection]; + selected.addClass('selected'); + } + + }); + + searchInput.on('keyup', function (e) { + if (e.keyCode !== 40 && e.keyCode !== 38) { + currentSelection = -1; + suggestions = self.search($(this).val()); + } + + else { + e.preventDefault(); + } + }).on('search', function () { + suggestions = self.search($(this).val()); + }); + }; + + global.Search = Search; + +}(window.jQuery, window)); diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/sidebar.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/sidebar.js new file mode 100644 index 00000000..b85852b1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/sidebar.js @@ -0,0 +1,163 @@ +(function ($, global) { + + var Sidebar = function (conf) { + this.conf = $.extend({ + + // Collapsed class + collapsedClass: 'is-collapsed', + + // Storage key + storageKey: '_sassdoc_sidebar_index', + + // Index attribute + indexAttribute: 'data-slug', + + // Toggle button + toggleBtn: '.js-btn-toggle', + + // Automatic initialization + init: true + }, conf || {}); + + if (this.conf.init === true) { + this.initialize(); + } + }; + + /** + * Initialize module + */ + Sidebar.prototype.initialize = function () { + this.conf.nodes = $('[' + this.conf.indexAttribute + ']'); + + this.load(); + this.updateDOM(); + this.bind(); + this.loadToggle(); + }; + + + /** + * Load sidebar toggle + */ + Sidebar.prototype.loadToggle = function () { + $('<span />', { + 'class': 'layout-toggle', + 'html': '×', + 'data-alt': '→' + }).appendTo( $('.header') ); + + $('.layout-toggle').on('click', function () { + var $this = $(this); + var alt; + + $('body').toggleClass('sidebar-closed'); + + alt = $this.html(); + $this.html($this.data('alt')); + $this.data('alt', alt); + }); + }; + + /** + * Load data from storage or create fresh index + */ + Sidebar.prototype.load = function () { + var index = 'localStorage' in global ? + global.localStorage.getItem(this.conf.storageKey) : + null; + + this.index = index ? JSON.parse(index) : this.buildIndex(); + }; + + /** + * Build a fresh index + */ + Sidebar.prototype.buildIndex = function () { + var index = {}; + var $item; + + this.conf.nodes.each($.proxy(function (index, item) { + $item = $(item); + + index[$item.attr(this.conf.indexAttribute)] = !$item.hasClass(this.conf.collapsedClass); + }, this)); + + return index; + }; + + /** + * Update DOM based on index + */ + Sidebar.prototype.updateDOM = function () { + var item; + + for (item in this.index) { + if (this.index[item] === false) { + $('[' + this.conf.indexAttribute + '="' + item + '"]').addClass(this.conf.collapsedClass); + } + } + }; + + /** + * Save index in storage + */ + Sidebar.prototype.save = function () { + if (!('localStorage' in global)) { + return; + } + + global.localStorage.setItem(this.conf.storageKey, JSON.stringify(this.index)); + }; + + /** + * Bind UI events + */ + Sidebar.prototype.bind = function () { + var $item, slug, fn, text; + var collapsed = false; + + // Save index in localStorage + global.onbeforeunload = $.proxy(function () { + this.save(); + }, this); + + // Toggle all + $(this.conf.toggleBtn).on('click', $.proxy(function (event) { + $node = $(event.target); + + text = $node.attr('data-alt'); + $node.attr('data-alt', $node.text()); + $node.text(text); + + fn = collapsed === true ? 'removeClass' : 'addClass'; + + this.conf.nodes.each($.proxy(function (index, item) { + $item = $(item); + slug = $item.attr(this.conf.indexAttribute); + + this.index[slug] = collapsed; + + $('[' + this.conf.indexAttribute + '="' + slug + '"]')[fn](this.conf.collapsedClass); + }, this)); + + collapsed = !collapsed; + this.save(); + }, this)); + + // Toggle item + this.conf.nodes.on('click', $.proxy(function (event) { + $item = $(event.target); + slug = $item.attr(this.conf.indexAttribute); + + // Update index + this.index[slug] = !this.index[slug]; + + // Update DOM + $item.toggleClass(this.conf.collapsedClass); + }, this)); + }; + + global.Sidebar = Sidebar; + +}(window.jQuery, window)); diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/fuse.min.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/fuse.min.js new file mode 100644 index 00000000..79898e9f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/fuse.min.js @@ -0,0 +1,20 @@ +/** + * @license + * Fuse - Lightweight fuzzy-search + * + * Copyright (c) 2012 Kirollos Risk <kirollos@gmail.com>. + * All Rights Reserved. Apache Software License 2.0 + * + * Licensed 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. + */ +!function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s;for(i=0,keys=["sort","includeScore","shouldSort"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,keys=["searchFn","sortFn","keys","getFn"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<<this.patternLen-1,this.patternAlphabet=this._calculatePatternAlphabet()};n.defaultOptions={location:0,distance:100,threshold:.6,maxPatternLength:32},n.prototype._calculatePatternAlphabet=function(){var t={},e=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]|=1<<this.pattern.length-e-1;return t},n.prototype._bitapScore=function(t,e){var n=t/this.patternLen,i=Math.abs(this.options.location-e);return this.options.distance?n+i/this.options.distance:i?1:n},n.prototype.search=function(t){if(t=this.options.caseSensitive?t:t.toLowerCase(),this.pattern===t)return{isMatch:!0,score:0};var e,n,i,o,s,r,a,h,p,c=t.length,l=this.options.location,u=this.options.threshold,f=t.indexOf(this.pattern,l),d=this.patternLen+c,g=1,m=[];for(-1!=f&&(u=Math.min(this._bitapScore(0,f),u),f=t.lastIndexOf(this.pattern,l+this.patternLen),-1!=f&&(u=Math.min(this._bitapScore(0,f),u))),f=-1,e=0;e<this.patternLen;e++){for(i=0,o=d;o>i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<<e)-1,n=r;n>=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var y=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return i.deepValue(y(t),c.id)}:function(t){return y(t)},e=0,v=f.length;v>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this); \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/jquery.min.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/jquery.min.js new file mode 100644 index 00000000..e5ace116 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) +},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.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",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b)) +},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},pc="*/".concat("*");try{fc=location.href}catch(qc){fc=l.createElement("a"),fc.href="",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:"GET",isLocal:jc.test(ec[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":pc,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":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=ic.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===ec[1]&&h[2]===ec[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(ec[3]||("http:"===ec[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),2===t)return v;i=k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=hc.test(d)?d.replace(hc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+pc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=0,Dc={},Ec={0:200,1223:204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n}); diff --git a/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/prism.min.js b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/prism.min.js new file mode 100644 index 00000000..30d87258 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/assets/js/vendor/prism.min.js @@ -0,0 +1,9 @@ +/* http://prismjs.com/download.html?themes=prism&languages=markup+css+css-extras+clike+javascript+scss */ +var self=typeof window!="undefined"?window:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):t.util.type(e)==="Array"?e.map(t.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.util.clone(e[i]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var i in n)r[i]=n[i];return r},insertBefore:function(e,n,r,i){i=i||t.languages;var s=i[e],o={};for(var u in s)if(s.hasOwnProperty(u)){if(u==n)for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);o[u]=s[u]}return i[e]=o},DFS:function(e,n){for(var r in e){n.call(e,r,e[r]);t.util.type(e)==="Object"&&t.languages.DFS(e[r],n)}}},highlightAll:function(e,n){var r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');for(var i=0,s;s=r[i++];)t.highlightElement(s,e===!0,n)},highlightElement:function(r,i,s){var o,u,a=r;while(a&&!e.test(a.className))a=a.parentNode;if(a){o=(a.className.match(e)||[,""])[1];u=t.languages[o]}if(!u)return;r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+o;a=r.parentNode;/pre/i.test(a.nodeName)&&(a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+o);var f=r.textContent;if(!f)return;var l={element:r,language:o,grammar:u,code:f};t.hooks.run("before-highlight",l);if(i&&self.Worker){var c=new Worker(t.filename);c.onmessage=function(e){l.highlightedCode=n.stringify(JSON.parse(e.data),o);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(l.element);t.hooks.run("after-highlight",l)};c.postMessage(JSON.stringify({language:l.language,code:l.code}))}else{l.highlightedCode=t.highlight(l.code,l.grammar,l.language);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(r);t.hooks.run("after-highlight",l)}},highlight:function(e,r,i){var s=t.tokenize(e,r);return n.stringify(t.util.encode(s),i)},tokenize:function(e,n,r){var i=t.Token,s=[e],o=n.rest;if(o){for(var u in o)n[u]=o[u];delete n.rest}e:for(var u in n){if(!n.hasOwnProperty(u)||!n[u])continue;var a=n[u],f=a.inside,l=!!a.lookbehind,c=0;a=a.pattern||a;for(var h=0;h<s.length;h++){var p=s[h];if(s.length>e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+"</"+s.tag+">"};if(!self.document){if(!self.addEventListener)return self.Prism;self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return self.Prism}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}return self.Prism}();typeof module!="undefined"&&module.exports&&(module.exports=Prism);; +Prism.languages.markup={comment:/<!--[\w\W]*?-->/g,prolog:/<\?.+?\?>/,doctype:/<!DOCTYPE.+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\&#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});; +Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/ig,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/ig};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/<style[\w\W]*?>[\w\W]*?<\/style>/ig,inside:{tag:{pattern:/<style[\w\W]*?>|<\/style>/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});; +Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/g,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/g,"pseudo-class":/:[-\w]+(?:\(.*\))?/g,"class":/\.[-:\.\w]+/g,id:/#[-:\.\w]+/g}};Prism.languages.insertBefore("css","ignore",{hexcode:/#[\da-f]{3,6}/gi,entity:/\\[\da-f]{1,8}/gi,number:/[\d%\.]+/g});; +Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/ig,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/ig,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};; +Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/ig,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}}); +; +Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|\/\/.*?(\r?\n|$))/g,lookbehind:!0},atrule:/@[\w-]+(?=\s+(\(|\{|;))/gi,url:/([-a-z]+-)*url(?=\()/gi,selector:/([^@;\{\}\(\)]?([^@;\{\}\(\)]|&|\#\{\$[-_\w]+\})+)(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/gm});Prism.languages.insertBefore("scss","atrule",{keyword:/@(if|else if|else|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)|(?=@for\s+\$[-_\w]+\s)+from/i});Prism.languages.insertBefore("scss","property",{variable:/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i});Prism.languages.insertBefore("scss","ignore",{placeholder:/%[-_\w]+/i,statement:/\B!(default|optional)\b/gi,"boolean":/\b(true|false)\b/g,"null":/\b(null)\b/g,operator:/\s+([-+]{1,2}|={1,2}|!=|\|?\||\?|\*|\/|\%)\s+/g});; \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/sassdoc/index.html b/ui/ui-frontend/projects/pastis/sassdoc/index.html new file mode 100644 index 00000000..3c9c4c13 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/sassdoc/index.html @@ -0,0 +1,81 @@ +<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Pastis-front - v0.0.0</title><link rel="stylesheet" href="assets/css/main.css"><link href="https://fonts.googleapis.com/css?family=Open+Sans:400,500,700" rel="stylesheet" type="text/css"><meta name="viewport" content="width=device-width"><meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"><!-- Open Graph tags --><meta property="og:title" content="Pastis-front - SassDoc"><meta property="og:type" content="website"><meta property="og:description" content="Release the docs!"><!-- Thanks to Sass-lang.com for the icons --><link href="assets/images/favicon.png" rel="shortcut icon"></head><body><aside class="sidebar" role="nav"><div class="sidebar__header"><h1 class="sidebar__title">Pastis-front - 0.0.0</h1></div><div class="sidebar__body"><button type="button" class="btn-toggle js-btn-toggle" data-alt="Open all">Close all</button><p class="sidebar__item sidebar__item--heading" data-slug="undefined"><a href="#undefined">General</a></p><div><p class="sidebar__item sidebar__item--sub-heading" data-slug="undefined-variable"><a href="#undefined-variable">variables</a></p><ul class="list-unstyled"><li class="sidebar__item sassdoc__item" data-group="undefined" data-name="colors" data-type="variable"><a href="#undefined-variable-colors">colors</a></li><li class="sidebar__item sassdoc__item" data-group="undefined" data-name="dropdowns-border" data-type="variable"><a href="#undefined-variable-dropdowns-border">dropdowns-border</a></li></ul><p class="sidebar__item sidebar__item--sub-heading" data-slug="undefined-css"><a href="#undefined-css">css</a></p><ul class="list-unstyled"><li class="sidebar__item sassdoc__item" data-group="undefined" data-name=".pastis-header-no-sidebar" data-type="css"><a href="#undefined-css-.pastis-header-no-sidebar">.pastis-header-no-sidebar</a></li><li class="sidebar__item sassdoc__item" data-group="undefined" data-name=".pastis-header-with-sidebar" data-type="css"><a href="#undefined-css-.pastis-header-with-sidebar">.pastis-header-with-sidebar</a></li></ul><p class="sidebar__item sidebar__item--sub-heading" data-slug="undefined-mixin"><a href="#undefined-mixin">mixins</a></p><ul class="list-unstyled"><li class="sidebar__item sassdoc__item" data-group="undefined" data-name="color-modifiers" data-type="mixin"><a href="#undefined-mixin-color-modifiers">color-modifiers</a></li><li class="sidebar__item sassdoc__item" data-group="undefined" data-name="button-modifiers" data-type="mixin"><a href="#undefined-mixin-button-modifiers">button-modifiers</a></li></ul></div></div></aside><article class="main" role="main"><header class="header" role="banner"><div class="container"><div class="sassdoc__searchbar searchbar"><label for="js-search-input" class="visually-hidden">Search</label><div class="searchbar__form" id="js-search"><input name="search" type="search" class="searchbar__field" autocomplete="off" autofocus id="js-search-input" placeholder="Search"><ul class="searchbar__suggestions" id="js-search-suggestions"></ul></div></div></div></header><section class="main__section"><h1 class="main__heading" id="undefined"><div class="container">General</div></h1><section class="main__sub-section" id="undefined-variable"><h2 class="main__heading--secondary"><div class="container">variables</div></h2><section class="main__item container item" id="undefined-variable-colors"><h3 class="item__heading"><a class="item__name" href="#variable-colors">colors</a></h3><div class="item__code-wrapper"><pre class="item__code language-scss"><code>$colors: ( + /* Primary */ + primary-500: #FE4F02, + primary-400: #FF6933, + primary-300: #FF8559, + primary-200: #FFA789, + primary-50: #FCE8E5, + primary-light: #FF833C, + primary-dark: #C20900, + primary-disabled: #FFCAB7, + /* Secondary */ + secondary-300: #5CBAA9, + secondary-200: #88CEC1, + secondary-50: #E1F3F0, + secondary-light: #8FEDDB, + secondary-dark: #258A7A, + secondary-disabled: #B6E1D9, + /* Variant */ + black-low:#9D9D9D, + black-disabled:#E0E0E0, + black-medium:#474747, +);</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Pastis base colors</p></div><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p>Paulo Pimenta</p></li></ul></section><section class="main__item container item" id="undefined-variable-dropdowns-border"><h3 class="item__heading"><a class="item__name" href="#variable-dropdowns-border">dropdowns-border</a></h3><div class="item__code-wrapper"><pre class="item__code language-scss"><code>$dropdowns-border: ( + button1:( + enabled: (1px solid map-get($colors, 'secondary-300')), + disabled: (1px solid map-get($colors, 'secondary-disabled')), + hover: (1px solid map-get($colors, 'secondary-300')), + focus: (1px solid map-get($colors, 'secondary-300')), + ), + button2:( + enabled: (1px solid #F0F0F0), + disabled: '', + hover: (1px solid #F0F0F0), + focus: (1px solid #F0F0F0) + ), + leading:( + enabled: (1px solid map-get($colors, 'secondary-300')), + disabled: (1px solid map-get($colors, 'secondary-disabled')), + hover: (1px solid map-get($colors, 'secondary-300')), + focus: (1px solid map-get($colors, 'secondary-300')) + ), + search:( + enabled: '', + disabled: '', + hover: '', + focus: '' + ), + special:( + enabled: (1px solid #5CBAA9) + ) +);</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Pastis dropdown border colors</p></div><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p>Paulo Pimenta</p></li></ul></section></section><section class="main__sub-section" id="undefined-css"><h2 class="main__heading--secondary"><div class="container">css</div></h2><section class="main__item container item" id="undefined-css-.pastis-header-no-sidebar"><h3 class="item__heading"><a class="item__name" href="#css-.pastis-header-no-sidebar">.pastis-header-no-sidebar</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="<code>.pastis-header-no-sidebar { + position: absolute; + width: 1440px; + height: 288px; + left: 0px; + top: -2px; + background: #ECEEF3; +}</code>" data-collapsed=".pastis-header-no-sidebar { ... }"><code>.pastis-header-no-sidebar { ... }</code></pre></div><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p>Paulo Pimenta</p></li></ul></section><section class="main__item container item" id="undefined-css-.pastis-header-with-sidebar"><h3 class="item__heading"><a class="item__name" href="#css-.pastis-header-with-sidebar">.pastis-header-with-sidebar</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="<code>.pastis-header-with-sidebar { + @extend .pastis-header-no-sidebar; + width: 952px; +}</code>" data-collapsed=".pastis-header-with-sidebar { ... }"><code>.pastis-header-with-sidebar { ... }</code></pre></div><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p>Paulo Pimenta</p></li></ul></section></section><section class="main__sub-section" id="undefined-mixin"><h2 class="main__heading--secondary"><div class="container">mixins</div></h2><section class="main__item container item" id="undefined-mixin-color-modifiers"><h3 class="item__heading"><a class="item__name" href="#mixin-color-modifiers">color-modifiers</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin color-modifiers() { + @each $name, $hex in $pastis-colors { + &-#{$name} { + #{$attribute}: $hex; + } + } + }" data-collapsed="@mixin color-modifiers() { ... }"><code>@mixin color-modifiers() { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Generate base colors for PASTIS</p></div><h3 class="item__sub-heading">Parameters</h3><p>None.</p><h3 class="item__sub-heading">See</h3><ul class="list-unstyled"><li><span class="item__cross-type">[variable]</span> <a href="#variable-colors"><code>colors</code></a></li></ul><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p>Paulo Pimenta</p></li></ul></section><section class="main__item container item" id="undefined-mixin-button-modifiers"><h3 class="item__heading"><a class="item__name" href="#mixin-button-modifiers">button-modifiers</a></h3><div class="item__code-wrapper"><pre class="item__code item__code--togglable language-scss" data-current-state="collapsed" data-expanded="@mixin button-modifiers() { + @each $name, $button in $pastis-buttons { + &#{$prefix}#{$name} { + @each $type, $value in $button { + &#{$separator}#{$type} { + @each $k, $v in map-get($buttons-font-text,$name){ + #{$k}:$v; + // @debug $name'....'#{$k}':'$v; + } + @extend .pastis-btn; + #{$attribute}: $value; + } + } + } + } + }" data-collapsed="@mixin button-modifiers() { ... }"><code>@mixin button-modifiers() { ... }</code></pre></div><h3 class="item__sub-heading">Description</h3><div class="item__description"><p>Generate buttons for PASTIS</p></div><h3 class="item__sub-heading">Parameters</h3><p>None.</p><h3 class="item__sub-heading">Output</h3><div class="item__description"><p>Pastis buttons</p></div><h3 class="item__sub-heading">Author</h3><ul class="list-unstyled"><li><p>Paulo Pimenta</p></li></ul></section></section></section><footer class="footer" role="contentinfo"><div class="container"><div class="footer__project-info project-info"><!-- Name and URL --> <span class="project-info__name">Pastis-front</span><!-- Version --> <span class="project-info__version">- v0.0.0</span><!-- License --></div><a class="footer__watermark" href="http://sassdoc.com"><img src="assets/images/logo_light_inline.svg" alt="SassDoc Logo"></a></div></footer></article><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>window.jQuery || document.write('<script src="assets/js/vendor/jquery.min.js"><\/script>')</script><script src="assets/js/main.min.js"></script></body></html> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/app-routing.module.ts b/ui/ui-frontend/projects/pastis/src/app/app-routing.module.ts new file mode 100644 index 00000000..ab17e6bc --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/app-routing.module.ts @@ -0,0 +1,60 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { NgModule, isDevMode } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { SedaVisualizerComponent } from './seda-visualizer/seda-visualizer.component'; +import { HomeComponent } from './home/home.component'; +import { PastisUnderConstructionComponent } from './shared/pastis-under-construction/pastis-under-construction.component'; +import { ProfileVisualizerComponent } from './profile-visualizer/profile-visualizer.component'; + +const routes: Routes = [ + {path: 'sedaview', component: SedaVisualizerComponent}, + {path: 'profileview', component: ProfileVisualizerComponent}, + {path: '', component: HomeComponent}, + {path: '**', component: PastisUnderConstructionComponent} +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { + + } + +export const routingComponents = [SedaVisualizerComponent,HomeComponent,ProfileVisualizerComponent]; diff --git a/ui/ui-frontend/projects/pastis/src/app/app.component.html b/ui/ui-frontend/projects/pastis/src/app/app.component.html new file mode 100644 index 00000000..90c6b646 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/app.component.html @@ -0,0 +1 @@ +<router-outlet></router-outlet> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/app.component.scss b/ui/ui-frontend/projects/pastis/src/app/app.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/app.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/app.component.spec.ts new file mode 100644 index 00000000..b399b55b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/app.component.spec.ts @@ -0,0 +1,68 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed, async } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + }).compileComponents(); + })); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'pastis-front'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('pastis-front'); + }); + + it('should render title in a h1 tag', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector('h1').textContent).toContain('Welcome to pastis-front!'); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/app.component.ts b/ui/ui-frontend/projects/pastis/src/app/app.component.ts new file mode 100644 index 00000000..bdb29772 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/app.component.ts @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], + //changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AppComponent { + + constructor() { + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/app.module.ts b/ui/ui-frontend/projects/pastis/src/app/app.module.ts new file mode 100644 index 00000000..81c8d739 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/app.module.ts @@ -0,0 +1,136 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +// Angular modules +import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { NgModule, APP_INITIALIZER } from '@angular/core'; +import { HttpClientModule, HttpClient } from '@angular/common/http'; +import { FormsModule } from '@angular/forms'; +import { ReactiveFormsModule } from '@angular/forms'; + + +//Pastis modules +import { CoreModule } from './core/core.module'; +import { FileTreeModule } from './file-tree/file-tree.module'; +import { UserActionsModule } from './user-actions/user-actions.module'; +import { SharedModule } from './shared/shared.module'; +import { ProfileModule} from './profile/profile.module' + +//Material modules +import { MatProgressSpinnerModule, + MatGridListModule, + MatSidenavModule, + MatTabsModule, + MatToolbarModule, + MatDialogModule +} from '@angular/material'; + +//Routing Modules and components +import { AppRoutingModule,routingComponents } from './app-routing.module'; + + +// Components +import { AppComponent } from './app.component'; +import { PastisDialogConfirmComponent } from './shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { UserActionAddMetadataComponent } from './user-actions/user-action-add-metadata/user-action-add-metadata.component'; +import { UserActionRemoveMetadataComponent } from './user-actions/user-action-remove-metadata/user-action-remove-metadata.component'; +import { PortalModule } from '@angular/cdk/portal'; +import { ToastContainerModule, ToastrModule } from 'ngx-toastr'; +import { PastisConfiguration } from '../app/core/classes/pastis-configuration'; +import { PastisMaterialModule } from './material.module'; + + + +@NgModule({ + declarations: [ + AppComponent, + PastisDialogConfirmComponent, + UserActionAddMetadataComponent, + UserActionRemoveMetadataComponent, + routingComponents, + ], + entryComponents:[PastisDialogConfirmComponent,UserActionAddMetadataComponent,UserActionRemoveMetadataComponent], + imports: [ + HttpClientModule, + BrowserModule, + FormsModule, + ReactiveFormsModule, + BrowserAnimationsModule, + PortalModule, + UserActionsModule, + CoreModule, + FileTreeModule, + SharedModule, + AppRoutingModule, + ProfileModule, + ToastContainerModule, + ToastrModule.forRoot({ + positionClass: 'toast-bottom-full-width', + preventDuplicates: false, + timeOut: 2000, + closeButton:false, + easeTime:0 + }), + ], + exports:[ + HttpClientModule, + BrowserModule, + FormsModule, + ReactiveFormsModule, + BrowserAnimationsModule, + UserActionsModule, + CoreModule, + FileTreeModule, + SharedModule + ], + providers: [ + PastisConfiguration, + { + provide: APP_INITIALIZER, + useFactory: PastisConfigurationFactory, + deps: [PastisConfiguration, HttpClient], multi: true }, + ], + + bootstrap: [AppComponent], + +}) +export class AppModule { } + + export function PastisConfigurationFactory(appConfig: PastisConfiguration) { + return () => appConfig.ensureInit(); + } diff --git a/ui/ui-frontend/projects/pastis/src/app/core/classes/icons.ts b/ui/ui-frontend/projects/pastis/src/app/core/classes/icons.ts new file mode 100644 index 00000000..84e3b865 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/classes/icons.ts @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +// Button names should reflect an action +export enum IconsEnum { + 'pastis-close-sidenav' = 'close-sidenav', + 'pastis-close-popup' = 'close-popup', + 'pastis-back-crete-profile' = 'arrow-back', + 'pastis-save' = 'save', + 'pastis-setting' = 'setting', + 'pastis-complex-element' = 'complex-element', + 'pastis-complex-element-white' = 'complex-element-white', + 'pastis-complex-element-white2' = 'complex-element-white2', + 'pastis-plus-blue' = 'plus-blue', + 'pastis-plus-grey' = 'plus-grey', +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/classes/models.ts b/ui/ui-frontend/projects/pastis/src/app/core/classes/models.ts new file mode 100644 index 00000000..da5251b5 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/classes/models.ts @@ -0,0 +1,51 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +export interface CardinalityValues { + value: string; + viewValue: string; + } + +export interface MetadataHeaders { + id: number; + nomDuChamp: string; + type: string; + valeurFixe: string; + cardinalite: string[]; + commentaire: string; + enumeration: string[]; + } diff --git a/ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-configuration.ts b/ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-configuration.ts new file mode 100644 index 00000000..a0d23ac4 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-configuration.ts @@ -0,0 +1,28 @@ +import { Injectable } from "@angular/core"; +import { HttpClient } from '@angular/common/http'; +import { PastisApiService } from '../services/api.pastis.service'; + +@Injectable() + +export class PastisConfiguration { + routeName : string; + sucessMessage: string; + errorMessage: string; + apiRoutePath : string; + apiPastisUrl: string; + port: number; + getProfileUrl: string; + uploadProfileUrl: string; + getFileUrl: string; + updateFileUrl: string; + apiFullPath: string; + + constructor(private pastisApi: PastisApiService,private http:HttpClient){}; + +public ensureInit(): Promise<any> { + return new Promise((r, e) => { + this.pastisApi.get("./assets/config/config.json").subscribe((content: PastisConfiguration) => {Object.assign(this, content);r(this);}, reason => e(reason)); + }); + }; + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-route-api.ts b/ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-route-api.ts new file mode 100644 index 00000000..ceb76764 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/classes/pastis-route-api.ts @@ -0,0 +1,76 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import {environment as envProd} from '../../../environments/environment.rec' +import {environment as envDev} from '../../../environments/environment.dev' +import { isDevMode, Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' + }) +export class PastisApiRoute { + + rootApiPath: string; + apiUrls: {}; + apiPathMap : Map<string,string>; + + + constructor() { + this.rootApiPath = isDevMode() ? envDev.apiServerUrl : envProd.apiServerUrl; + this.apiPathMap = new Map(); + + const apiEntryPoints= { + 'createprofile' : '/createprofile', + 'updateprofile' : '/updateprofile', + 'getfile' : '/getFile', + 'profilefromfilePath' :'/createprofilefromfile', + 'getSedaFile' :'/assets/seda.json' + + } + for(var entryProint in apiEntryPoints) { + if (apiEntryPoints.hasOwnProperty(entryProint)) { + console.log(entryProint); + this.apiPathMap.set(entryProint+'Path',apiEntryPoints[entryProint]) + } + } + + + } + + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/core.module.ts b/ui/ui-frontend/projects/pastis/src/app/core/core.module.ts new file mode 100644 index 00000000..5fbb23ad --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/core.module.ts @@ -0,0 +1,109 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { NgModule,CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { PastisApiService } from './services/api.pastis.service'; + +import { HTTP_INTERCEPTORS } from '@angular/common/http'; +import { PastisSpinnerInterceptor } from '../shared/pastis-spinner/pastis-spinner-interceptor'; +import { SharedModule } from '../shared/shared.module'; +import { SedaService } from './services/seda.service'; +import { RegisterIconsService } from './services/register-icons.service'; +import { NotificationService } from './services/notification.service'; +import { PopupService } from './services/popup.service'; + +import { + NgxUiLoaderModule, + NgxUiLoaderConfig, + SPINNER, + POSITION, + PB_DIRECTION +} from 'ngx-ui-loader'; +import { PastisMaterialModule } from '../material.module'; + +const ngxUiLoaderConfig: NgxUiLoaderConfig = { + "bgsColor": "red", + "bgsOpacity": 0.5, + "bgsPosition": "bottom-right", + "bgsSize": 60, + "bgsType": "ball-spin-clockwise", + "blur": 5, + "delay": 0, + "fgsColor": "#ffffff", + "fgsPosition": "center-center", + "fgsSize": 60, + "fgsType": "ball-spin-clockwise", + "gap": 24, + "logoPosition": "center-center", + "logoSize": 120, + "logoUrl": "assets/pastis-logo7.png", + "masterLoaderId": "master", + "overlayBorderRadius": "0", + "overlayColor": "rgba(40,40,40,0.8)", + "pbColor": "#604379", + "pbDirection": "ltr", + "pbThickness": 3, + "hasProgressBar": false, + "textColor": "#FFFFFF", + "textPosition": "center-center", + "maxTime": -1, + "minTime": 300 +}; +@NgModule({ + imports: [ + CommonModule, + PastisMaterialModule, + SharedModule, + NgxUiLoaderModule.forRoot(ngxUiLoaderConfig), + ], + exports: [NgxUiLoaderModule], + providers: [ + PastisSpinnerInterceptor, + PastisApiService, + SedaService, + RegisterIconsService, + NotificationService, + PopupService, + + { provide: HTTP_INTERCEPTORS, useClass: PastisSpinnerInterceptor,multi: true} + ], + declarations: [], +}) +export class CoreModule { + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/index.ts b/ui/ui-frontend/projects/pastis/src/app/core/index.ts new file mode 100644 index 00000000..f0edec2b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/index.ts @@ -0,0 +1,39 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +export * from './core.module'; +export * from './services'; diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/api.pastis.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/api.pastis.service.ts new file mode 100644 index 00000000..907c445c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/api.pastis.service.ts @@ -0,0 +1,80 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA stardard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { environment } from '../../../environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class PastisApiService { + constructor( private http: HttpClient) {} + + // Generic GET Method + get<T = any>(path: string, options?: {}): Observable<T> { + console.log('On API service using url : ', `${path}`); + return this.http.get<T>(`${path}`, options); + } + + // Generic GET Method + getLocally<T = any>(path: string): Observable<T> { + console.log('On getLocally using filepath : ', `${path}`); + return this.http.get<T>(`${path}`); + } + + // Generic PUT Method + put<T>(path: string, body: object = {}): Observable<T> { + return this.http.put<T>( + `${environment.apiServerUrl}${path}`, + JSON.stringify(body)); + } + + // Generic POST Method + post<T>(path: string, body: object = {}, options?: {}): Observable<T> { + console.log('File', body); + console.log('On api service post with options : ' , options, path); + return this.http.post<T>(`${environment.apiServerUrl}${path}`, body, options); + } + + delete(path): Observable<any> { + return this.http.delete( + `${environment.apiServerUrl}${path}`); + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/api.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/api.service.spec.ts new file mode 100644 index 00000000..884e7285 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/api.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { PastisApiService } from './api.pastis.service'; + +describe('ApiService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: PastisApiService = TestBed.get(PastisApiService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.spec.ts new file mode 100644 index 00000000..67b964a3 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { FileService } from './file.service'; + +describe('FileService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: FileService = TestBed.get(FileService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts new file mode 100644 index 00000000..88293afa --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/file.service.ts @@ -0,0 +1,401 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { EventEmitter, Injectable, Output } from '@angular/core'; +import { MatDialog } from '@angular/material'; +import { BehaviorSubject, Observable, throwError } from 'rxjs'; +import { SedaData, SedaElementConstants, SedaCardinalityConstants } from '../../appfile-tree/classes/seda-data'; +import { FileNode, TypeConstants,FileNodeInsertParams, FileNodeInsertAttributeParams } from '../../file-tree/classes/file-node'; +import { PastisDialogConfirmComponent } from '../../shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { ProfileService } from './profile.service'; +import { PastisDialogData } from '../../appshared/pastis-dialog/classes/pastis-dialog-data'; +import { SedaService } from './seda.service'; +import { FileTreeMetadataService } from '../../appfile-tree/file-tree-metadata/file-tree-metadata.service'; +import { profile } from 'console'; + +@Injectable({ + providedIn: 'root' +}) + +export class FileService { + + @Output() + public addNode: EventEmitter<FileNode> = new EventEmitter<FileNode>(); + @Output() + public insertItem: EventEmitter<FileNodeInsertParams> = new EventEmitter<FileNodeInsertParams>(); + @Output() + public insertAttributes: EventEmitter<FileNodeInsertAttributeParams> = new EventEmitter<FileNodeInsertAttributeParams>(); + @Output() + public removeNode: EventEmitter<FileNode> = new EventEmitter<FileNode>(); + @Output() + public renderChanges: EventEmitter<boolean> = new EventEmitter<boolean>(); + + dataChange = new BehaviorSubject<FileNode[]>([]); + nodeChange = new BehaviorSubject<FileNode>(null); + allData = new BehaviorSubject<FileNode[]>([]); + + collectionName = new BehaviorSubject<string>(null); + rootTabMetadataName = new BehaviorSubject<string>(null); + + + filteredNode = new BehaviorSubject<FileNode>(null); + tabChildrenRulesChange = new BehaviorSubject<string[][]>([]); + + + private params = {}; + parentNodeMap = new Map<FileNode, FileNode>(); + private formatErrors(error: any) { + return throwError('An error : ' + error.error); + } + + constructor(private profileService: ProfileService, private fileMetadataService: FileTreeMetadataService, + private dialog: MatDialog, private sedaService: SedaService) { } + + getCurrentFileTree(): Observable<FileNode[]> { + console.log("On file service : ", this.dataChange.getValue()) + return this.dataChange; + } + + getFileTreeFromApi(): Observable<FileNode[]> { + this.profileService.getProfile().subscribe(data => { + this.sedaService.getSedaRules().subscribe(sedaData => { + let sedaDataArray: SedaData[] = [sedaData[0]]; + this.linkFileNodeToSedaData(null, data, sedaDataArray); + this.dataChange.next(data); + }) + }); + return this.dataChange; + } + + sedaDataArchiveUnit : SedaData; + + /** + * Relie chaque FileNode a sa définition Seda + * + * Les nodes correspondant aux ArchivesUnit + * se réfèrent à la définition SEDA de l'ArchiveUnit mère (ils sont récursifs...) + * @param parent + * @param nodes + * @param sedaData + */ + linkFileNodeToSedaData(parent: FileNode, nodes: FileNode[], sedaData: SedaData[]){ + nodes.forEach(node => { + node.parent = parent; + let nodeName : String = (node.name === 'xml:id')?'id':node.name; + let sedaDataMatch: SedaData; + + // Si le node en cours est une ArchiveUnit, lui même enfant d'une ArchiveUnit... + if (nodeName === 'ArchiveUnit' && this.sedaDataArchiveUnit != undefined) { + // Alors on utilise la définition SEDA de l'ArchiveUnit mère.. + sedaDataMatch = this.sedaDataArchiveUnit; + } else { + // Sinon on recherche la définition SEDA dans l'arbre + sedaDataMatch = sedaData.find(seda => seda.Name === nodeName); + } + if (sedaDataMatch == undefined){ + console.log('FUUUUUUUUCK'); + } else { + // Si le node en cours est l'achive ArchiveUnit mère, on la sauvegarde pour l'utiliser pour les ArchivesUnit enfants + if (sedaDataMatch.Name === 'ArchiveUnit' && this.sedaDataArchiveUnit == undefined){ + this.sedaDataArchiveUnit = sedaDataMatch; + // On introduit la récursivité sur les ArchivesUnit + this.sedaDataArchiveUnit.Children.find(c=>c.Name=='ArchiveUnit').Children = this.sedaDataArchiveUnit.Children; + } + } + node.sedaData = sedaDataMatch; + if (node.children.length>0){ + this.linkFileNodeToSedaData(node, node.children,node.sedaData.Children); + } + }); + } + + updateFileTree(newData: FileNode[]): Observable<FileNode[]> { + this.sedaService.getSedaRules().subscribe(sedaData => { + let sedaDataArray: SedaData[] = [sedaData[0]]; + this.linkFileNodeToSedaData(null, newData, sedaDataArray); + this.dataChange.next(newData); + }) + return this.dataChange; + } + + /** + * Update the children of a node, based on given list of nodes + * @param parentNode + * @param newChildrenNodes + */ + updateNodeChildren(parentNode: FileNode, newChildrenNodes:FileNode[]) { + for (let idx in parentNode.children) { + let childFromNewChildren = newChildrenNodes.find(newChild => newChild.id == parentNode.children[idx].id); + if (childFromNewChildren) { + parentNode.children[idx] = childFromNewChildren; + } + } + } + + sendNode(node:FileNode) { + this.nodeChange.next(node); + console.log("Node on file file service : ", this.nodeChange.getValue()); + } + + openPopup(popData: PastisDialogData){ + const dialogConfirmRef = this.dialog.open(PastisDialogConfirmComponent, { + width: popData.width, + height: popData.height, + data: popData, + panelClass: 'pastis-popup-modal-box' + }); + return new Promise((resolve, reject) => { + dialogConfirmRef.afterClosed().subscribe(data => { + resolve(data); + console.log("The confirm dialog was closed with data : ", data); + }, reject) + }); + } + + findChild(nodeName:string,node:FileNode):FileNode { + if (nodeName === node.name) return node; + for (let child of node.children) { + if (child.name === nodeName){ + return child; + } + } + } + + findChildById(nodeId:Number,node:FileNode):FileNode { + if (nodeId === node.id) return node; + for (let child of node.children) { + if (child.id === nodeId){ + return child; + } + } + } + + setCollectionName(collectionName:string){ + this.collectionName.next(collectionName); + } + + setTabRootMetadataName(rootTabMetadataName:string){ + this.rootTabMetadataName.next(rootTabMetadataName); + } + + + openDialogWithTemplateRef(templateRef) { + this.dialog.open(templateRef); + } + + setNewChildrenRules(rules:string[][]){ + this.tabChildrenRulesChange.next(rules); + } + + /** + * Get one attribute of the node by its name + * @param fileNode The concerned node + * @param attributeName The name of the attribute we want to get + */ + getAttributeByName(fileNode:FileNode, attributeName:String):FileNode { + return fileNode.children.find(c=>c.name==attributeName); + } + + /** + * Delete all the attributes of the concerned FileNode + * @param fileNode The concerned FileNode + */ + deleteAllAttributes(fileNode: FileNode):void { + fileNode.children = fileNode.children.filter(c=>c.type!==TypeConstants.attribute); + } + + /** Update an item Tree node */ + updateItem(node: FileNode) { + this.dataChange.next(node[0]); + console.log("Node updated to : ", this.dataChange.getValue()) + + } + + removeItem(nodesToBeDeleted: FileNode[], root: FileNode) { + if (nodesToBeDeleted.length) { + for (let node of nodesToBeDeleted) { + let nodeToBeDeleted = this.getFileNodeByName(root,node.name); + //Check if node exists in the file tree + if (nodeToBeDeleted) { + const parentNode = nodeToBeDeleted.parent; + console.log("On removeItem with node : ", nodeToBeDeleted, "and parent : ", parentNode); + const index = parentNode.children.indexOf(nodeToBeDeleted); + if (index !== -1) { + parentNode.children.splice(index, 1); + this.parentNodeMap.delete(nodeToBeDeleted); + } + console.log("Deleted node : ", nodeToBeDeleted, "and his parent : ", parentNode); + } + } + } + console.log("No nodes will be deleted") + } + + /** Find a parent tree node */ + findParent(id: number, node: FileNode): FileNode { + console.log("On findParent with parent node id : ", id , " and node : ", node); + if (node && node.id === id) { + return node; + } else { + //console.log('ELSE ' + JSON.stringify(node.children)); + if (node.children && id) { + for (let element = 0; node.children.length; element++) { + //console.log('Recursive ' + JSON.stringify(node.children[element].children)); + //console.error("Node here : ", node.children[element], element) + if (element && node.children && node.children.length > 0 && node.children[element].children.length > 0) { + return this.findParent(id, node.children[element]); + } else { + continue; + } + } + } + } + } + + sendNodeMetadata(node: FileNode) { + let rulesFromService = this.tabChildrenRulesChange.getValue() + let tabChildrenToInclude = rulesFromService[0]; + let tabChildrenToExclude = rulesFromService[1]; + console.log("Node clicked : ", node, "...with tab rules from service : ", rulesFromService); + console.log("The found node on filetree : ", node.sedaData) + this.sedaService.selectedSedaNode.next(node.sedaData); + this.dataChange.next(node[0]); + this.sendNode(node); + let dataTable = this.fileMetadataService.fillDataTable(node.sedaData, node, tabChildrenToInclude, tabChildrenToExclude); + console.log("Data revtried on click : ", dataTable); + console.log("Node seda %s in filetree is ready to be edited with seda data %o", node.name, this.sedaService.selectedSedaNode.getValue()); + this.fileMetadataService.dataSource.next(dataTable); + } + + getFileNodeByName(fileTree:FileNode, nodeNameToFind:string):FileNode { + if (fileTree){ + if (fileTree.name === nodeNameToFind) { + return fileTree; + } + for (const child of fileTree.children) { + const res = this.getFileNodeByName(child, nodeNameToFind); + if (res) { + return res; + } + } + } + } + + getFileNodeById(fileTree:FileNode, nodeIdToFind:number) { + if (fileTree){ + if (fileTree.id === nodeIdToFind) { + return fileTree; + } + for (const child of fileTree.children) { + const res = this.getFileNodeById(child, nodeIdToFind); + if (res) { + return res; + } + } + } + } + + getFileNodeLocally(currentNode:FileNode, nameNode:string):FileNode { + //console.log("Node on this.findSedaNode : %o", currentNode) + if (currentNode){ + let i: number, currentChild: FileNode; + if (nameNode == currentNode.name ) { + return currentNode; + } else { + // Use a for loop instead of forEach to avoid nested functions + // Otherwise "return" will not work properly + if (currentNode.children) { + for (i = 0; i < currentNode.children.length; i += 1) { + currentChild = currentNode.children[i]; + // Search in the current child + let result = this.getFileNodeLocally(currentChild,nameNode); + // Return the result if the node has been found + if (result) { + return result; + } + } + } else { + // The node has not been found and we have no more options + console.log("No SEDA nodes could be found for ", nameNode); + return; + } + } + } + } + + getComplexSedaChildrenAsFileNode(sedaElement:SedaData):FileNode[] { + // Insert all children of complex elements based on SEDA definition + if (sedaElement.Element === SedaElementConstants.complex && + sedaElement.Children.length > 0) { + let fileNodeComplexChildren : FileNode[] = []; + sedaElement.Children.forEach(child=> { + if (child.Cardinality === SedaCardinalityConstants.one || + child.Cardinality === SedaCardinalityConstants.oreOrMore) { + let aFileNode : FileNode = {} as FileNode; + aFileNode.name = child.Name; + aFileNode.cardinality = child.Cardinality; + aFileNode.children = []; + aFileNode.type = TypeConstants[child.Type]; + fileNodeComplexChildren.push(aFileNode); + } + }) + return fileNodeComplexChildren + } + + } + + updateMedataTable(node:FileNode){ + //let isNodeComplex = this.sedaService.checkSedaElementType(node.name,this.sedaService.selectedSedaNodeParent.getValue()) + let rulesFromService = this.tabChildrenRulesChange.getValue() + let tabChildrenToInclude = rulesFromService[0]; + let tabChildrenToExclude = rulesFromService[1]; + this.sedaService.selectedSedaNode.next(node.sedaData); + let dataTable = this.fileMetadataService.fillDataTable(node.sedaData, node, tabChildrenToInclude, tabChildrenToExclude); + let hasAtLeastOneComplexChild = node.children.some(el=> el.type === TypeConstants.element); + + if(node.sedaData.Element === SedaElementConstants.complex){ + this.fileMetadataService.shouldLoadMetadataTable.next(hasAtLeastOneComplexChild); + console.log("The the current tab root node is : ", node) + this.sedaService.selectedSedaNode.next(node.sedaData); + console.log("Filled data on table : ", dataTable, "...should load : ", this.fileMetadataService.shouldLoadMetadataTable.getValue()); + this.fileMetadataService.dataSource.next(dataTable); + } else { + this.fileMetadataService.shouldLoadMetadataTable.next(true); + this.fileMetadataService.dataSource.next(dataTable); + } + } + } \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/index.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/index.ts new file mode 100644 index 00000000..7fe38239 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/index.ts @@ -0,0 +1,39 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +export * from './api.pastis.service'; diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/notification.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/notification.service.ts new file mode 100644 index 00000000..7ac14b68 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/notification.service.ts @@ -0,0 +1,92 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +import {Injectable} from '@angular/core' +import { ToastrService } from 'ngx-toastr'; +import { + MatSnackBar, + MatSnackBarConfig, + MatSnackBarHorizontalPosition, + MatSnackBarVerticalPosition, + MatSnackBarRef +} from '@angular/material'; + +@Injectable({ + providedIn:'root' +}) +export class NotificationService { + + constructor(private toasterService:ToastrService, private snackBar: MatSnackBar){} + + // Toaster + showSuccess(message:string) { + this.toasterService.success(message); + } + + showInfo(message:string) { + this.toasterService.info(message); + } + + showError(message:string) { + this.toasterService.error(message); + } + + showWarning(message:string) { + this.toasterService.warning(message); + } + + //SnackBar + + openSnackBar(message, action, duration) { + let snackBarConfig = new MatSnackBarConfig(); + let snackBarRef: MatSnackBarRef<any>; + let horizontalPosition: MatSnackBarHorizontalPosition = 'center'; + let verticalPosition: MatSnackBarVerticalPosition = 'bottom'; + let snackBarAutoHide = '1500'; + snackBarConfig = new MatSnackBarConfig(); + snackBarConfig.horizontalPosition = horizontalPosition; + snackBarConfig.verticalPosition = verticalPosition; + snackBarConfig.duration = parseInt(snackBarAutoHide, 0); + snackBarConfig.panelClass = 'pastis-notifier-bg'; + snackBarConfig.duration = duration * 1000; + this.snackBar.open(message, action, snackBarConfig) +} + + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.spec.ts new file mode 100644 index 00000000..4b3ad932 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { PopupService } from './popup.service'; + +describe('PopupService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: PopupService = TestBed.get(PopupService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.ts new file mode 100644 index 00000000..35211694 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/popup.service.ts @@ -0,0 +1,73 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Injectable, EventEmitter } from '@angular/core'; +import { PastisDialogData } from '../../appshared/pastis-dialog/classes/pastis-dialog-data'; +import { MatDialog } from '@angular/material'; +import { PastisDialogConfirmComponent } from '../../appshared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class PopupService { + + popUpDataBeforeClose = new BehaviorSubject<any>(null); + popUpDataAfterOpen = new BehaviorSubject<any>(null); + btnYesShoudBeDisabled= new BehaviorSubject<boolean>(false); + + + constructor(private dialog: MatDialog) { } + + getPopUpDataOnOpen(){ + return this.popUpDataAfterOpen.getValue(); + } + getPopUpDataOnClose(){ + return this.popUpDataBeforeClose; + } + setPopUpDataOnOpen(incomingData:any){ + this.popUpDataAfterOpen.next(incomingData); + } + setPopUpDataOnClose(incomingData:any){ + this.popUpDataBeforeClose.next(incomingData); + } + disableYesButton(condition:boolean){ + condition ? this.btnYesShoudBeDisabled.next(true) : this.btnYesShoudBeDisabled.next(false); + } + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.spec.ts new file mode 100644 index 00000000..ddeeab96 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { ProfileService } from './profile.service'; + +describe('ProfileService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: ProfileService = TestBed.get(ProfileService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.ts new file mode 100644 index 00000000..1ae80dc9 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/profile.service.ts @@ -0,0 +1,98 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { HttpHeaders } from '@angular/common/http'; +import { Injectable, isDevMode } from '@angular/core'; +import { Observable } from 'rxjs'; +import { FileNode } from '../../file-tree/classes/file-node'; +import { PastisApiService } from './api.pastis.service'; +import { PastisConfiguration } from '../classes/pastis-configuration'; +import { environment} from '../../../environments/environment' +import { cloneDeep } from 'lodash'; +@Injectable({ + providedIn: 'root' +}) +export class ProfileService { + + private apiServerPath: string; + + + constructor(private apiService: PastisApiService, private pastisConfig: PastisConfiguration) { + this.apiServerPath = isDevMode() ? environment.apiServerUrl : pastisConfig.apiPastisUrl; + } + + getProfile(): Observable<FileNode[]> { + return this.apiService.get<FileNode[]>(this.apiServerPath + this.pastisConfig.getProfileUrl); + } + + // Upload a RNG file to the server + // Response : a JSON object + uploadProfile(profile: FormData): Observable<FileNode[]> { + const httpOptions = { + headers: new HttpHeaders({ + 'Content-Type': 'multipart/form-data', + }) + }; + console.log("Path : ", this.apiServerPath+this.pastisConfig.uploadProfileUrl) + return this.apiService.post(this.pastisConfig.uploadProfileUrl, profile); + } + + // Get the base rng profile + getFile(): Observable<Blob> { + const options = {responseType: 'blob'}; + return this.apiService.get(this.apiServerPath+this.pastisConfig.getFileUrl, options); + } + + // Get the modified tree as an RNG file + updateFile(file: FileNode[]): Observable<Blob> { + const httpOptions = { + headers: new HttpHeaders({ + 'Content-type': 'application/json', + }), + responseType: 'blob' + }; + let profile: FileNode = cloneDeep(file[0]); + this.fixCircularReference(profile); + return this.apiService.post(this.pastisConfig.updateFileUrl, profile, httpOptions); + } + + fixCircularReference(node: FileNode){ + node.parent=null; + node.sedaData=null; + node.children.forEach(child=>{this.fixCircularReference(child);}); + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.spec.ts new file mode 100644 index 00000000..a9753629 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { RegisterIconsService } from './register-icons.service'; + +describe('RegisterIconsService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: RegisterIconsService = TestBed.get(RegisterIconsService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.ts new file mode 100644 index 00000000..c5a0e455 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/register-icons.service.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Injectable } from '@angular/core'; +import { MatIconRegistry } from '@angular/material'; +import { DomSanitizer } from '@angular/platform-browser'; +import { IconsEnum } from '../classes/icons'; + +@Injectable({ + providedIn: 'root' +}) +export class RegisterIconsService { + + constructor( + private matIconRegistry: MatIconRegistry, + private domSanitizer: DomSanitizer + ) { } + + registerIcons(): void { + this.loadIcons(Object.values(IconsEnum), '../assets/svg/icons'); + } + + loadIcons(iconKeys: string[], iconUrl: string): void { + iconKeys.forEach(key => { + this.matIconRegistry.addSvgIcon(key, this.domSanitizer.bypassSecurityTrustResourceUrl(`${iconUrl}/${key}.svg`)); + }); + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.spec.ts new file mode 100644 index 00000000..02625204 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { SedaService } from './seda.service'; + +describe('SedaService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: SedaService = TestBed.get(SedaService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.ts new file mode 100644 index 00000000..83bef352 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/seda.service.ts @@ -0,0 +1,222 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Injectable } from '@angular/core'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { CardinalityConstants, FileNode } from '../../file-tree/classes/file-node'; +import { SedaData} from '../../file-tree/classes/seda-data'; +import { CardinalityValues } from '../classes/models'; +import { PastisApiService } from './api.pastis.service'; + + + +@Injectable({ + providedIn: 'root' +}) +export class SedaService { + + private getSedaUrl = './assets/seda.json'; + + selectedSedaNode = new BehaviorSubject<SedaData>(null); + selectedSedaNodeParent = new BehaviorSubject<SedaData>(null); + sedaTabNodeRootToSearch = new BehaviorSubject<SedaData>(null); + + + constructor(private pastisAPI : PastisApiService) {} + + getSedaRules(): Observable<SedaData>{ + return this.pastisAPI.getLocally<SedaData>(this.getSedaUrl); + } + + getSedaNode(currentNode:SedaData, nameNode:string):SedaData { + if (currentNode && nameNode) { + let i: number, currentChild: SedaData, result: boolean; + if (nameNode == currentNode.Name ) { + return currentNode; + } else { + // Use a for loop instead of forEach to avoid nested functions + // Otherwise "return" will not work properly + if (currentNode.Children) { + for (i = 0; i < currentNode.Children.length; i += 1) { + currentChild = currentNode.Children[i]; + // Search in the current child + let result = this.getSedaNode(currentChild,nameNode); + // Return the result if the node has been found + if (result) { + return result; + } + } + } + // The node has not been found and we have no more options + return; + } + } + } + + getSedaNodeRecursively(currentNode:SedaData, nameNode:string):SedaData { + //console.log("Node on this.findSedaNode : %o", currentNode) + let i: number, currentChild: SedaData + if (currentNode) { + if (nameNode == currentNode.Name ) { + return currentNode; + } else { + // Use a for loop instead of forEach to avoid nested functions + // Otherwise "return" will not work properly + if (currentNode.Children) { + for (i = 0; i < currentNode.Children.length; i += 1) { + currentChild = currentNode.Children[i]; + // Search in the current child + let result = this.getSedaNodeRecursively(currentChild,nameNode); + // Return the result if the node has been found + if (result) { + return result; + } + } + } else { + // The node has not been found and we have no more options + console.log("No SEDA nodes could be found for ", nameNode); + return; + } + } + } + } + + //Get the seda node based on collection name and a node name. + // Since the SEDA 2.1 model does not contain unique names, + // the function will search the whole file and return a single metadata based on + // a node name and a collection name; + getSedaNodeCollection(sedaNode:SedaData, nodeName:string, collectionName:string):SedaData { + if (sedaNode){ + if (sedaNode.Collection === collectionName && sedaNode.Name === nodeName) { + return sedaNode; + } + for (const child of sedaNode.Children) { + const nodeFound = this.getSedaNodeCollection(child, nodeName,collectionName); + if (nodeFound) { + return nodeFound; + } + } + } + + } + + // For all correspondent values beetween seda and tree elements, + // return a SedaData array of elements that does not have + // an optional (0-1) or an obligatory (1) cardinality. + // If an element have an 'n' cardinality (e.g. 0-N), the element will + // aways be included in the list + findSelectableElementList(sedaNode:SedaData, fileNode:FileNode): SedaData[] { + let fileNodesNames = fileNode.children.map(e=>e.name); + let allowedSelectableList = sedaNode.Children.filter(x => (!fileNodesNames.includes(x.Name) && + x.Cardinality !== CardinalityConstants.Obligatoire.valueOf()) + || + (fileNodesNames.includes(x.Name) && + (x.Cardinality === CardinalityConstants["Zero or More"].valueOf()) + )) + return allowedSelectableList; + } + + findCardinalityName(clickedNode:FileNode, cardlinalityValues: CardinalityValues[]):string{ + if(!clickedNode.cardinality){ + return "1" + } else { + return cardlinalityValues.find(c=>c.value == clickedNode.cardinality).value + } + } + + /** + * Returns the list of all the attributes defined for the node + * @param sedaNode the seda node we want to query + */ + getAttributes(sedaNode:SedaData, collection:string):SedaData[] { + //if (!sedaNode) return; + return sedaNode.Children.filter(children=>children.Element=="Attribute" + && sedaNode.Collection === collection); + } + + isSedaNodeObligatory(nodeName:string,sedaParent:SedaData):boolean{ + if (sedaParent.Name === nodeName) { + return sedaParent.Cardinality.startsWith('1'); + } + if (sedaParent){ + for (let child of sedaParent.Children) { + if (child.Name === nodeName){ + return child.Cardinality.startsWith('1'); + } + } + } + } + + checkSedaElementType(nodeName:string, sedaNode:SedaData):string{ + if (sedaNode.Name === nodeName) return sedaNode.Element; + + let node = sedaNode.Children.find(c=>c.Name==nodeName); + if (node) { + return node.Element + } + //return false; + } + findSedaChildByName(nodeName: string, sedaNode:SedaData): SedaData{ + if (nodeName === sedaNode.Name) { + return sedaNode; + } + const childFound = sedaNode.Children.find(c=>c.Name==nodeName); + return childFound ? childFound : null; + } + + setSedaTabNodeRoot(sedaNodeName:string):void{ + let sedaRootNodeSearch = this.getSedaNodeRecursively(this.selectedSedaNode.getValue(),sedaNodeName) + this.sedaTabNodeRootToSearch.next(sedaRootNodeSearch); + } + + // Returns a list of cardinalities of a given a fileNode's children + // If an attributte child doesn't not have a cardinality + // then the seda child's cardinality will be added by default; + getCardinalitiesOfSedaChildrenAttributes(fileNode:FileNode,sedaNode:SedaData):string[]{ + let cardinalities : string[] = [] + for (let fileChild of fileNode.children){ + for (let sedaChild of sedaNode.Children){ + if (fileChild.name === sedaChild.Name){ + fileChild.cardinality ? + cardinalities.push(fileChild.cardinality) : + cardinalities.push(sedaChild.Cardinality); + } + } + } + return cardinalities; + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.spec.ts new file mode 100644 index 00000000..dd4b2f5d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { ToggleSidenavService } from './toggle-sidenav.service'; + +describe('ToggleSidenavService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: ToggleSidenavService = TestBed.get(ToggleSidenavService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.ts b/ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.ts new file mode 100644 index 00000000..c921ee51 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/core/services/toggle-sidenav.service.ts @@ -0,0 +1,57 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class ToggleSidenavService { + + constructor() { } + isOpened = new BehaviorSubject<boolean>(true); + + show() { + this.isOpened.next(true); + console.log("SideNav is opened") + } + hide() { + this.isOpened.next(false); + console.log("SideNav is closed") + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/file-node.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/file-node.ts new file mode 100644 index 00000000..92c6318f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/file-node.ts @@ -0,0 +1,119 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { SedaData } from './seda-data'; + +/** + * Json node data with nested structure. Each node has a name and a value or a list of children + */ +export enum TypeConstants { + element = 'element', + attribute = 'attribute' +} + +/** + * Json node data with nested structure. Each node has a name and a value or a list of children + */ +/** + * Json node data with nested structure. Each node has a name and a value or a list of children + */ +export enum CardinalityConstants { + 'Zero or More' = '0-N', + 'One Or More' = '1-N', + 'Optional' = '0-1', + 'Obligatoire' = '1', +} + + +/** + * Json node data with nested structure. Each node has a name and a value or a list of children + */ +export enum DataTypeConstants { + string = 'string', + dateTime = 'dateTime', + dateOrDateTime = 'dateOrDateTime', + date = 'date', + ID = 'ID', + 'id' = 'id', + anyURI = 'anyURI', + token = 'token', + tokenType = 'tokenType', + base64Binary = 'base64Binary', + positiveInteger = 'positiveInteger', + boolean = 'boolean', + decimal = 'decimal', + int = 'int', + language = 'language', + NCName = 'NCName', + undefined = 'undefined' +} + +/** + * Json node data with nested structure. Each node has a name and a value or a list of children + */ +export enum ValueOrDataConstants { + value = 'value', + data = 'data', + nsName = 'nsName', + undefined = 'undefined' +} + +export interface FileNode { + id: number; + parentId: number; + name: string; + valueOrData: ValueOrDataConstants; + value: string; + type: TypeConstants; + dataType: DataTypeConstants; + cardinality: string; + level: number; + documentation?: string; + children: FileNode[]; + parent: FileNode; + sedaData: SedaData; +} + +export interface FileNodeInsertParams { + node: FileNode; + elementsToAdd:string[]; +} + +export interface FileNodeInsertAttributeParams { + node: FileNode; + elementsToAdd:FileNode[]; +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-matcher.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-matcher.ts new file mode 100644 index 00000000..1a63e211 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-matcher.ts @@ -0,0 +1,53 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import {FormControl, FormGroupDirective, NgForm, Validators} from '@angular/forms'; +import {ErrorStateMatcher} from '@angular/material/core'; + +/** Error when invalid control is dirty, touched, or submitted. */ +export class MetadataMatcher implements ErrorStateMatcher { + isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean { + const isSubmitted = form && form.submitted; + return (control && control.invalid && (control.dirty || control.touched)); + } + + static date(c: FormControl) { + const dateRegEx = new RegExp(/^\d{1,2}\.\d{1,2}\.\d{4}$/); + return dateRegEx.test(c.value) ? null : {date: true} + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-validator.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-validator.ts new file mode 100644 index 00000000..10b2fbd2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/metadata-validator.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import {Injectable} from "@angular/core"; +import {FormControl} from "@angular/forms"; + + +@Injectable() +export class DateValidator { + + constructor() { + } + + static date(c: FormControl) { + const dateRegEx = new RegExp(/^\d{1,2}\.\d{1,2}\.\d{4}$/); + return dateRegEx.test(c.value) ? null : {date: true} + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/seda-data.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/seda-data.ts new file mode 100644 index 00000000..9ddc73e2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/classes/seda-data.ts @@ -0,0 +1,86 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +//Seda element constants : +//Seda elelemtns can be attributes, simple or complex elements + +export enum SedaElementConstants { + attribute = 'Attribute', + simple = 'Simple', + complex = 'Complex' +} + +//Seda choice constants : can be yes or no +export enum SedaChoiceConstants { + yes = 'yes', + no = 'no', +} + +//Seda Extensible constants : can be yes or no +export enum SedaExtensibleConstants { + yes = 'yes', + no = 'no', +} + + +export enum SedaCardinalityConstants { + 'zeroOrOne' = '0-1', + 'one' = '1', + 'oreOrMore' = '1-N', + 'zeroOrMore' = '0-N' +} + + +export enum SedaCollections { + 'object' = 'Objets', + 'header' = 'Entete', + 'rules' = 'Regles', + 'arborescent' = 'Aborescence' +} + +export interface SedaData { + Name:string; + Type:string; + Element:string; + Cardinality:string; + Definition:string; + Extensible:boolean; + Choice:boolean; + Children: SedaData[]; + Enumeration:string[]; + Collection: SedaCollections; +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.html b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.html new file mode 100644 index 00000000..2bf3eef5 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.html @@ -0,0 +1,75 @@ +<div class="table-container"> + + <table mat-table [dataSource]="matDataSource"> + + <!-- Name Column --> + <ng-container matColumnDef="nomDuChamp"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header col-nom">Nom de l'attribut</th> + <td mat-cell *matCellDef="let element" class="pastis-metadata-table-col-large"> + <span [ngClass]="" + matTooltip="{{getSedaDefinition(element.nomDuChamp)}}" + matTooltipPosition="right"> + {{element.nomDuChamp}} + </span> + </td> + </ng-container> + + <!-- Value Column --> + <ng-container matColumnDef="valeurFixe"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header">Valeur fixe</th> + <td mat-cell *matCellDef="let element" class="pastis-metadata-table-col-small"> + <ng-container [ngSwitch]="getAttributeInputType(element)"> + <ng-container *ngSwitchDefault> + <input matInput + [(ngModel)]="element.valeurFixe" + class="value-text-area pastis-table-content input-valeur-fixe"> + <ng-template #simpleElement></ng-template> + </ng-container> + <ng-container *ngSwitchCase="'enumeration'"> + <mat-select [(ngModel)]="element.valeurFixe"> + <mat-option [value]="val"></mat-option> + <mat-option *ngFor="let val of element.enumeration" [value]="val">{{val}}</mat-option> + </mat-select> + </ng-container> + </ng-container> + </td> + </ng-container> + + + <!-- Comment Column --> + <ng-container matColumnDef="commentaire"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header">Commentaire</th> + <td mat-cell *matCellDef="let element" class="pastis-metadata-table-col-large "> + <input matInput + [ngModel]="element.commentaire" + (ngModelChange)="setElementComment(element.nomDuChamp,$event)" + class="comment-text-area pastis-table-content input-comentaire" + style="float:left"> + </td> + </ng-container> + + <!-- Selected Column --> + <ng-container matColumnDef="selected"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header col-selection" > + Tout sélectionner + <mat-checkbox + (click)="$event.stopPropagation()" + (change)="toggleAllAttributes($event)" + [checked]="isChecked()"> + </mat-checkbox> + <span class="info-bulle"> </span> + + </th> + <td mat-cell *matCellDef="let element;index as i;" class="pastis-metadata-table-col-large check-box"> + <mat-checkbox + [(ngModel)]="element.selected " + style="float:right" + [disabled]=isSedaObligatory(element) + [ngStyle]="{'mat-checkbox-checkmark-path': isSedaObligatory(element) ? 'grey' : ''}"></mat-checkbox> + </td> + </ng-container> + + <tr mat-header-row *matHeaderRowDef="displayedColumns;sticky: true"></tr> + <tr mat-row *matRowDef="let row; columns: displayedColumns;" style="background: white;"></tr> + </table> +</div> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.scss b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.scss new file mode 100644 index 00000000..43b183c7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.scss @@ -0,0 +1,103 @@ +@import '../../../../assets/css/colors'; +@import '../../../../assets/css/dropdown'; +@import '../../../../assets/css/layout'; + + +table{ + background: none; + max-height: 454px; + border-spacing: 0 5px; + margin-bottom: 30px; +} + +.table-container { + max-height: 270px; + overflow: auto; +} + +th { + border: none; + background: white; +} + +td{ + border-radius: 5px; + border: none; +} + + +.col-nom{ + + width: 204px !important; +} + +.input-valeur-fixe{ + text-indent: 10px; + width: 130px !important; +} +.input-comentaire{ + width: 220px !important; + +} +.td-cardinalite{ + width: 100px !important; + text-align: center; + padding-left: 30px !important; + padding-right: 30px !important; +} + +.check-box{ + width: 150px; + padding-right: 39px !important; +} + +.info-bulle{ + padding-left: 28px; + padding-right: 2px; + vertical-align: baseline; + font-size: 24px; + color:map-get($colors,'secondary-300'); +} + +.col-selection{ + text-align: right; + padding-right: 0px !important; +} + +.select-dropdown{ + text-align: left; +} + + // Pastis checkbox (enabled) +::ng-deep .mat-checkbox.mat-accent { + .mat-checkbox-frame { + border: 1px solid map-get($colors,'secondary-300'); + + } + + &.mat-checkbox-checked .mat-checkbox-background { + background-color: white; + border: 1px solid map-get($colors,'secondary-300'); + } + + .mat-checkbox-checkmark-path { + stroke: map-get($colors,'secondary-300') !important; + } + + } + + ::ng-deep .mat-checkbox-ripple .mat-ripple{ + display: none; + } + + // Pastis checkbox (disabled) + ::ng-deep .mat-checkbox-checked.mat-accent.mat-checkbox-disabled .mat-checkbox-background, + .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background { + border: 1px solid; + border-color: map-get($colors,'black-low'); + background-color: white; + + .mat-checkbox-checkmark-path { + stroke: map-get($colors,'black-low') !important; + } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.spec.ts new file mode 100644 index 00000000..c62319ab --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditAttributesPopupComponent } from './edit-attributes.component'; + +describe('EditAttributesPopupComponent', () => { + let component: EditAttributesPopupComponent; + let fixture: ComponentFixture<EditAttributesPopupComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EditAttributesPopupComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditAttributesPopupComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.ts new file mode 100644 index 00000000..5d594fcb --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.component.ts @@ -0,0 +1,280 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, Inject, OnInit, } from '@angular/core'; +import { MatCheckboxChange, MatDialogRef, MatTableDataSource, MAT_DIALOG_DATA } from '@angular/material'; +import { FileService } from '../../../appcore/services/file.service'; +import { SedaService } from '../../../appcore/services/seda.service'; +import { DataTypeConstants, FileNode, TypeConstants, ValueOrDataConstants, CardinalityConstants } from '../../classes/file-node'; +import { SedaData, SedaCardinalityConstants, SedaElementConstants } from '../../classes/seda-data'; +import { AttributeData } from '../edit-attributes/models/edit-attribute-models'; +import { FileTreeMetadataService } from '../file-tree-metadata.service'; +import { PastisDialogData } from '../../../appshared/pastis-dialog/classes/pastis-dialog-data'; +import { PopupService } from '../../../appcore/services/popup.service'; + +@Component({ + selector: 'pastis-edit-attributes', + templateUrl: './edit-attributes.component.html', + styleUrls: ['./edit-attributes.component.scss'] +}) +export class EditAttributesPopupComponent implements OnInit { + + displayedColumns: string[] = ['nomDuChamp', 'valeurFixe', 'commentaire', 'selected']; + + attributeCardinalities: string[]; + + elementSedaCardinality:string; + + selectedValue:string[]; + + parentFileNode:FileNode; + + // The datasource used by the DataTable in the popup + // It's data contains the list of Attributes to display + matDataSource: MatTableDataSource<AttributeData>; + + + constructor( + public dialogRef: MatDialogRef<EditAttributesPopupComponent>, + @Inject(MAT_DIALOG_DATA) public dialogReceivedData: PastisDialogData, + private sedaService: SedaService, + private fileService: FileService, + private fileTreeMetadataService: FileTreeMetadataService, + private popUpService : PopupService + ) { } + + ngOnInit() { + this.fileService.getCurrentFileTree().subscribe( fileTree => { + if (fileTree) { + this.parentFileNode = fileTree[0]; + } + }); + this.matDataSource = this.getDataSource(this.dialogReceivedData.fileNode.sedaData, this.dialogReceivedData.fileNode); + this.initAttributeCardinality(); + // Subscribe any datasource change to setPopUpDataOnClose + setTimeout(() => { + this.popUpService.setPopUpDataOnClose(this.matDataSource.data); + }, 50); + } + + //Checks if a file node has an atttribute child + initAttributeCardinality(){ + for(let index in this.matDataSource.data){ + let fileNode = this.dialogReceivedData.fileNode; + let att = this.matDataSource.data[index]; + let attSedaData = fileNode.sedaData.Children.find(child => child.Name === att.nomDuChamp); + if (attSedaData.Cardinality === CardinalityConstants.Obligatoire) { + this.matDataSource.data[index].selected = true; + } else { + this.matDataSource.data[index].selected = att.selected; + } + } + } + + setElementComment(elementName:string, newComment: string) { + for(let idx in this.matDataSource.data) { + if (this.matDataSource.data[idx].nomDuChamp === elementName) { + this.matDataSource.data[idx].commentaire = newComment; + } + } + console.log("ParentFileNode : ", this.parentFileNode); + for (let node of this.parentFileNode.children) { + if (node.name === elementName) { + node.documentation = newComment; + } + } + } + + setElementValue(elementName:string, newValue: string) { + for(let idx in this.matDataSource.data) { + if (this.matDataSource.data[idx].nomDuChamp === elementName) { + this.matDataSource.data[idx].valeurFixe = newValue; + console.error( this.matDataSource.data[idx].valeurFixe,newValue); + } + } + for (let node of this.parentFileNode.children) { + if (node.name === elementName) { + node.value = newValue; + } + } + } + + /** + * Function that computes the "checked" state of the "select all" checkbox + * If all checkboxs are checked, then the "select all" checkbox is checked + */ + isChecked(): boolean { + return this.matDataSource.data.filter(a=>!a.selected).length==0; + } + + isSedaObligatory(attribute:AttributeData):boolean{ + if (attribute) { + let popUpData = <PastisDialogData>this.popUpService.getPopUpDataOnOpen(); + if (popUpData) { + let popSendSedaNodeFilted = popUpData.fileNode.sedaData.Children.find(child=>child.Name === attribute.nomDuChamp); + return popSendSedaNodeFilted.Cardinality.startsWith('1'); + } + } + return; + } + + /** + * Function that checks/unchecks all attributes + * @param change + */ + toggleAllAttributes(toggleAllCheckChange: MatCheckboxChange):void { + let istoggleAllChecked = toggleAllCheckChange.checked; + this.matDataSource.data.forEach(a=> { + this.isSedaObligatory(a)? a.selected = true :a.selected = istoggleAllChecked; + a.selectedCardinality = '1' + } + ); + } + + /** + * Function that checks/unchecks the attribute + * @param change + */ + toggleAttribute(change: MatCheckboxChange,elementName:string):void { + let element = this.matDataSource.data.find(a=> a.nomDuChamp === elementName); + element.selected = change.checked + } + + + /** + * Returns the modified FileNode from the popup + * + * It parses the datasource of the DataTable to collect the attributes + * and add them to the modified FileNode + */ + getFileNodeFromPopup():FileNode { + // We get the original FileNode that was passed to the popup + let fileNode: FileNode = this.dialogReceivedData.fileNode; + + this.fileService.deleteAllAttributes(fileNode); + + // Map all selected AttributeData to FileNode and add them as children of the fileNode + this.matDataSource.data + .filter(attributeData => attributeData.selected) + .forEach(attributeData => { + let attributeFileNode: FileNode = {} as FileNode; + attributeFileNode.id = window.crypto.getRandomValues(new Uint32Array(10))[0]; + attributeFileNode.cardinality = attributeData.selectedCardinality; + attributeFileNode.children = []; + attributeFileNode.dataType = DataTypeConstants[fileNode.sedaData.Children.find(child=>child.Name === attributeData.nomDuChamp).Type.toString()]; + attributeFileNode.documentation = attributeData.commentaire ? attributeData.commentaire : null; + attributeFileNode.level = fileNode.level + 1; + attributeFileNode.name = attributeData.nomDuChamp; + attributeFileNode.parentId = fileNode.id; + attributeFileNode.type = TypeConstants.attribute; + attributeFileNode.value = attributeData.valeurFixe ? attributeData.valeurFixe : null; + attributeFileNode.valueOrData = ValueOrDataConstants.value; + // Add the attribute to the filenode + console.error("Attribute : ", attributeFileNode) + }); + + return fileNode; + } + + /** + * Get the datasource required to feed the datatable in the popup + * + * This datasource consists of a list of AttributeData + * + * @param sedaNode The seda definition of the node we want to edit + * @param fileNode The node which we want to edit attributes + */ + getDataSource(sedaNode: SedaData, fileNode: FileNode):MatTableDataSource<AttributeData> { + let attributeDataList:AttributeData[] = []; + // Loop on all the attributes available for the node in the seda definition + // Maps all the attributes node to AttributesData object + this.sedaService.getAttributes(sedaNode,sedaNode.Collection).forEach(sedaAttribute=>{ + + let attributeData : AttributeData = {} as AttributeData; + + attributeData.nomDuChamp=sedaAttribute.Name; + attributeData.type=sedaAttribute.Element; + + // Check if the attribute is already added to the current node + let fileAttribute = <FileNode> fileNode.children.find(child=>child.name === attributeData.nomDuChamp); + //let mattAttFound = this.matDataSource.data.find(att=> att.nomDuChamp === fileAttribute.name); + if (fileAttribute){ + // If the attribute is present in the FileNode + // We fill in the fields with the corresponding values + attributeData.valeurFixe = fileAttribute.value; + attributeData.selected = true; + attributeData.id = fileAttribute.id; + attributeData.commentaire = fileAttribute.documentation; + attributeData.cardinalities= this.fileTreeMetadataService.allowedCardinality.get(fileAttribute.cardinality); + attributeData.selectedCardinality=fileAttribute.cardinality; + attributeData.enumeration=sedaAttribute.Enumeration; + attributeData.valeurFixe=fileAttribute.value; + } else { + // If the attribute is not present, we fill in defaults values + attributeData.valeurFixe = null; + attributeData.selected = false; + attributeData.commentaire = null; + attributeData.id = window.crypto.getRandomValues(new Uint32Array(10))[0]; + attributeData.cardinalities = this.fileTreeMetadataService.allowedCardinality.get(sedaAttribute.Cardinality); + attributeData.selectedCardinality = null; + attributeData.enumeration=sedaAttribute.Enumeration; + } + attributeDataList.push(attributeData); + }); + // Create and return the datasource with the attribute's data + let result = new MatTableDataSource<AttributeData>(attributeDataList); + return result; + } + + getAttributeInputType(element: AttributeData) { + if (element.enumeration.length > 0) { + return 'enumeration'; + } + } + + getSedaDefinition(elementName:string) { + if(this.dialogReceivedData.fileNode.sedaData){ + for (let node of this.dialogReceivedData.fileNode.sedaData.Children){ + if (node.Name === elementName) { + return node.Definition + } + } + } + return "" + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.spec.ts new file mode 100644 index 00000000..fa1981cf --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { EditAttributesService } from './edit-attributes.service'; + +describe('EditAttributesService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: EditAttributesService = TestBed.get(EditAttributesService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.ts new file mode 100644 index 00000000..cc6568e1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/edit-attributes.service.ts @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class EditAttributesService { + + constructor() { } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/models/edit-attribute-models.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/models/edit-attribute-models.ts new file mode 100644 index 00000000..373e188c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/edit-attributes/models/edit-attribute-models.ts @@ -0,0 +1,54 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { FileNode } from '../../../appfile-tree/classes/file-node'; +import { SedaData } from '../../../appfile-tree/classes/seda-data'; + +/** + * Class that stores all the data needed to display and manage an attribute in the popup + */ +export interface AttributeData { + nomDuChamp: string; + type: string; + valeurFixe: string; + selectedCardinality: string; // The selected cardinality for this attribute + cardinalities: string[]; // The list of all allowed cardinality for this attribute + commentaire: string; + selected: boolean; // Boolean that is linked to the checkbox, allowing to select this attribute + enumeration: string[]; + id:number; + } diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.html b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.html new file mode 100644 index 00000000..99776f37 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.html @@ -0,0 +1,192 @@ +<div > + <!--Top panels container--> + <div class="pastis-metadata-option-container"> + <!-- Top left panel container --> + <div class="pastis-metadata-option-entete-1"> + <!--Arrow button conainer--> + <div class ="pastis-position-btn-arrow-back"> + <button class="pastis-btn-rounded-arrow-back" + tooltip="Retour vers la liste des profils" + placement="bottom" + show-delay="0" + tooltip-class="pastis-tooltip-class"> + <mat-icon class="pastis-ico-arrow-back">arrow_back + </mat-icon> + </button> + </div> + <!--Panel content separator--> + <div class="pastis-entete-1-separator"></div> + <!--Text cotopntainer--> + <div class="pastis-entete-1-text"> + <div class="pastis-entete-1-text-titre">{{resolveCurrentNodeName()}}</div> + <div class="pastis-entete-1-text-body-1">Créer et gérer un profil d'archivage > ... > </div> + <div class="pastis-entete-1-text-body-2">{{resolveCurrentNodeName()}}</div> + </div> + </div> + + <!--Top right panel container--> + <div class="pastis-metadata-option-entete-2"> + <!--Button open--> + <div class ="panel-buttons" + tooltip="Importer un profil" + placement="top" + show-delay="0" + tooltip-class="pastis-tooltip-class"> + <pastis-user-action-upload></pastis-user-action-upload> + </div> + <!--Button save--> + <div class ="panel-buttons" + tooltip="Enregistrer le profil" + placement="top" + show-delay="0" + tooltip-class="pastis-tooltip-class"> + <pastis-user-action-save-profile></pastis-user-action-save-profile> + </div> + <!--Button setting--> + <div class ="panel-buttons"> + <button class="pastis-btn-rounded-setting"> + <mat-icon svgIcon="setting" class="pastis-ico-setting"></mat-icon> + </button> + </div> + </div> + + </div> + + <!--Metatada table container--> + <div class="pastis-table-container"> + <table mat-table [dataSource]="matDataSource" *ngIf="shouldLoadMetadataTable(); else complexElementWithouChild"> + <!-- Name Column --> + <ng-container matColumnDef="nomDuChamp" > + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header">Nom de la métadonnée</th> + <td mat-cell *matCellDef="let element;index as j" class="pastis-metadata-table-col-large"> + <span [ngClass]="{'pastis-table-content': isSedaCardinalityConform(element.cardinalite,selectedCardinalities[j]), + 'pastis-table-content-with-errors': !isSedaCardinalityConform(element.cardinalite,selectedCardinalities[j])}" + tooltip="{{getSedaDefinition(element.nomDuChamp)}}" + placement="right" + show-delay="0" + tooltip-class="pastis-tooltip-class"> + <mat-icon *ngIf="isElementComplex(element.nomDuChamp)" + svgIcon="complex-element" + class="pastis-ico-complex-element"> + </mat-icon> + {{element.nomDuChamp}} + <mat-icon *ngIf="!isSedaCardinalityConform(element.cardinalite,selectedCardinalities[j])" + matTooltip="La cardinalité n'est pas conforme aux specifications du SEDA 2.1" matTooltipPosition="above" + matTooltipClass="pastis-table-content"> + info + </mat-icon> + </span> + </td> + </ng-container> + + <!-- Value Column --> + <ng-container matColumnDef="valeurFixe"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header">Valeur fixe</th> + <td mat-cell *matCellDef="let element;index as i" class="pastis-metadata-table-col-large"> + <ng-container [ngSwitch]="getMetadataInputType(element)"> + <ng-container *ngSwitchCase="'date'"> + <input [ngModel]="element.valeurFixe" + theme="dp-material" + class="value-text-area pastis-table-content" + [dpDayPicker]="config" + (ngModelChange)="setNodeValue(element,$event)"> + </ng-container> + <ng-container *ngSwitchCase="'enumeration'"> + <mat-select placeholder="Choisissez une valeur" [ngModel]="element.valeurFixe" (ngModelChange)="setNodeValue(element,$event)"> + <mat-option [value]="val"></mat-option> + <mat-option *ngFor="let val of element.enumeration" [value]="val">{{val}}</mat-option> + </mat-select> + </ng-container> + <ng-container *ngIf="!checkElementType(element.nomDuChamp)" > + <textarea matInput *ngSwitchDefault + [ngModel]="element.valeurFixe" + (ngModelChange)="setNodeValue(element,$event)" + class="value-text-area pastis-table-content"> + </textarea> + </ng-container> + </ng-container> + <ng-template #simpleElement></ng-template> + </td> + </ng-container> + + <!-- Cardinality Column --> + <ng-container matColumnDef="cardinalite"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header">Cardinalité </th> + <td mat-cell *matCellDef="let element;index as i" class="pastis-metadata-table-col-small"> + <mat-select [ngModel]="selectedCardinalities[i]" panelClass="cardinality-dropdown " + (ngModelChange)="setNodeChildrenCardinalities(element,$event)" + disableRipple="true"> + <mat-option *ngFor="let c of element.cardinalite" [value]="c"> + <span class="cardinality-text">{{c}}</span> + </mat-option> + </mat-select> + </td> + </ng-container> + + <!-- Commnent Column --> + <ng-container matColumnDef="commentaire"> + <th mat-header-cell *matHeaderCellDef class="pastis-font-table-header"> Commentaire </th> + <td mat-cell *matCellDef="let element;index as i" class="pastis-metadata-table-col-large"> + <textarea matInput + [ngModel]="element.commentaire" + (ngModelChange)="setDocumentation(element,$event)" + class="comment-text-area "> + </textarea> + + <!--Menu options--> + <mat-menu #menu="matMenu" [overlapTrigger]="false" class="pastis-item-menu" xPosition="before" yPosition="below" > + <!-- Dupliquer--> + <button mat-menu-item> + <mat-icon style="color:white">filter_none</mat-icon> + <span class="pastis-item-menu-text">Dupliquer</span> + </button> + <!-- @Attributs--> + <mat-divider *ngIf="hasAttributes(element.nomDuChamp)" style="border-top-color:white"></mat-divider> + <button *ngIf="hasAttributes(element.nomDuChamp);" (click)="onEditAttributesClick(element.id)" mat-menu-item> + <mat-icon style="color:white">alternate_email</mat-icon> + <span class="pastis-item-menu-text">Attributs de métadonnée</span> + </button> + <!-- @Supprimer--> + <mat-divider *ngIf="!isSedaObligatory(element.nomDuChamp)" + style="border-top-color:white"></mat-divider> + <button *ngIf="!isSedaObligatory(element.nomDuChamp)" + mat-menu-item (click)="onDeleteNode(element.id)"> + <mat-icon style="color:white">delete</mat-icon> + <span class="pastis-item-menu-text">Supprimer</span> + </button> + </mat-menu> + + <button id="menuBtn" *ngIf="isRowHovered(element.id)" + mat-icon-button [matMenuTriggerFor]="menu" + (click)="onButtonClicked(element.id,$event)" + disableRipple="true" (menuOpened)= "rowIndex = i" (menuClosed) = "rowIndex = 100" + [ngClass]="{'pastis-btn-metadata-options-active': isButtonClicked(element.id,matDataSource.data[rowIndex]), + 'pastis-btn-metadata-options': !isButtonClicked(element.id,matDataSource.data[rowIndex]) }"> + <mat-icon [ngClass]="{'pastis-ico-menu-active': isButtonClicked(element.id,matDataSource.data[rowIndex]), + 'pastis-ico-menu-inactive': !isButtonClicked(element.id,matDataSource.data[rowIndex])}"> + {{isButtonClicked(element.id,matDataSource.data[rowIndex]) ? 'close' : 'more_horiz'}} + </mat-icon> + </button> + </td> + </ng-container> + + <tr mat-header-row *matHeaderRowDef="displayedColumns;sticky: true"></tr> + <tr mat-row *matRowDef="let row; columns: displayedColumns;" + (mouseenter)="onMouseOver(row)" + (mouseleave)="onMouseLeave(row)"></tr> + </table> + </div> + + <ng-template #complexElementWithouChild> + <div class="complex-element-no-child"> La métadonnée {{clickedNode.name}} ne contient pas de métadonnées filles. Vous devez lui en ajouter au moins une pour pouvoir l'utiliser dans votre profil.</div> + </ng-template> + + <!--Button add metadata--> + <div class="button-container"> + <button *ngIf="checkElementType()" class="pastis-btn-add-tag" + (click)="onAddNode()">{{resolveButtonLabel(clickedNode)}} + </button> + <br><br> + </div> + +</div> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.scss b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.scss new file mode 100644 index 00000000..3aecd7c5 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.scss @@ -0,0 +1,458 @@ +@import "../../../assets/css/mixins"; +@import "../../../assets/css/layout"; +@import "../../../assets/css/colors"; +@import "../../../assets/css/font"; +@import "../../../assets/css/buttons"; + +td{ + padding-right: 6px !important; +} + +.metadata-form { + position: absolute; + width: 100%; + height: 100%; + background: white; +} + +.item-metadata { + margin-top: 35px; +} + +.item-definition-icon { + position: relative; + top: 5px; +} + +// Inital content +.mat-select { + @extend .dropdown; + @extend .pastis-dropdown-border-button1-enabled; +} + +// Inital content text +.mat-select-value { + vertical-align: middle; + @extend .pastis-dropdown-text-button1-enabled; +} + +/////////////################ Select trigger - Text + arrow +.mat-select-arrow { + background: url(../../../assets/svg/icons/drop-box-arrow.svg) no-repeat 100% 50%; + background-size: 24px 24px; + border: none !important; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + outline-width: 0; + padding: 4px 4px 24px 24px; + display: block; + margin: 0px -10px 0px 0px !important; +} +.mat-select-value-text{ + @extend .pastis-font-roboto-medium; + vertical-align: middle; + margin-left: 25px; + max-width: 200px; +} + + +// Cardinality dropdown + + // Overhide mat-select-panel default min-size : calc(100%) + 32px; +.mat-select-panel{ + min-width: 100% !important; +} + +// Hover on select +.cardinality-dropdown .mat-select-panel { + left: 0%; + right: 0%; + top: 10%; + bottom: 0%; + max-height: 205px; + max-width: 100px; +} + +// The select dropdown box +.cardinality-dropdown { + border : 1px solid #65b2e4; + margin-left: 20px; +} + +// The selected option +.cardinality-dropdown .mat-option.mat-selected:not(.mat-option-disabled) { + @extend .pastis-font-roboto-regular; + @extend .pastis-black-medium; + background: url(../../../assets/svg/icons/check.svg) no-repeat 100% 50%; + //background:yellow; + background-position: 10px 12px; +} + +//The hovered option +.cardinality-dropdown .mat-option:hover{ + @extend .pastis-bg-secondary-200; + @extend .pastis-font-roboto-regular; + @extend .pastis-black-height; +} + +// The text on dropdown +.cardinality-text { + margin-left: 12px; + float: left; +} + +.item-definition { + text-align: left; + position: relative; + color: #4c4a37; + font-family: 'Source Sans Pro', sans-serif; + font-size: 18px; + line-height: 32px; + margin: 0 0 24px; +} + +.value-text-area { + padding:0px; + width: 80%; + @extend .pastis-text-area; +} + +.comment-text-area { + @extend .value-text-area; + @extend .pastis-textarea-comment; + padding:0px; + float: left; + text-align: left; + text-indent: 10px; + overflow: hidden; + width: 80%; + overflow-y: hidden; + +} + +.radio-group { + display: flex; + flex-direction: column; + margin: 15px 0; +} + +.radio-button { + margin: 5px; +} + + +table { + width: 100%; +} + +.pastis-btn-add-tag { + width: 210px; + float: left; + height: 50px; + @extend .pastis-btn-primary-enabled; +} + +.pastis-btn-add-tag:hover { + @extend .pastis-btn-primary-hover; +} + +.pastis-btn-add-tag:disabled { + @extend .pastis-btn-primary-disabled; +} + +.pastis-btn-add-tag:active { + @extend .pastis-btn-primary-focus; +} + + + +thead { + border-radius: 5px !important; +} + +table { + border-radius: 5px !important; + border-spacing: none !important; +} + + +.mat-row:hover{ + background: rgba(101, 178, 228, 0.2); +} + +tr:hover .pastis-btn-appear { + display: block; +} + +.pastis-btn-appear { + display: none; +} + +.pastis-item-menu { + margin-top: -7px; + border: 0px; + float:right !important; + /* Elevation 3 */ + box-shadow: 0px 11px 15px rgba(0, 0, 0, 0.1), 0px 9px 46px rgba(0, 0, 0, 0.06), 0px 24px 38px rgba(0, 0, 0, 0.07); + border-radius: 10px !important; + @extend .pastis-bg-secondary-300; +} + +.pastis-item-menu-text { + color: white; + @extend .pastis-body-2; +} + +.pastis-btn-metadata-options { + @extend .pastis-btn-rounded-mini-white-enabled; + border: 1px solid map-get($colors, 'secondary-300') !important; + float:right; + width: 40px; + height: 40px; + z-index: 10; +} + + .pastis-btn-metadata-options-active { + background: #88C5ED; + position: absolute!important; + margin-left: 5px !important; + border-radius: 3px!important; + width: 40px; + height: 40px; +} + + +.pastis-ico-menu-active { + color: white !important; +} + +.pastis-ico-menu-inactive { + @extend .pastis-secondary-300; +} + +.pastis-table-container { + top: 280px; + max-height: 425px; + overflow: auto; + overflow-x: hidden; +} + +.button-container{ + position: absolute; + width: 230px; + height: 50px; + left: 120px; + top: 745px; +} + + +.pastis-metadata-option-container { + position: relative; + width: 80%; + margin-left: 120px; + margin-right: 120px; + top: 63px; + height: 117px; +} + +.pastis-metadata-option-entete-1 { + position: relative; + width: 80%; + background-color: white; + height: 117px; + float: left; +} + +.pastis-metadata-option-entete-2 { + position: relative; + width: 18%; + left: 2%; + background-color: white; + height: 117px; + display: flex; + justify-content: space-around; +} + +.pastis-position-btn-arrow-back { + position: absolute; + left: 36px; + top: 46px; + @extend .pastis-btn-rounded-mini-white; +} + +.pastis-btn-rounded-arrow-back { + width: 30px; + height: 30px; + @extend .pastis-btn-rounded-mini-white-enabled; +} + +.pastis-btn-rounded-arrow-back:hover { + @extend .pastis-btn-rounded-arrow-back; + @extend .pastis-btn-rounded-mini-white-hover; +} + +.pastis-btn-rounded-arrow-back:active { + @extend .pastis-btn-rounded-arrow-back; + @extend .pastis-btn-rounded-mini-white-focus; +} + +.pastis-ico-arrow-back { + @extend .pastis-secondary-300; + cursor: pointer; + font-size: 24px; + margin-left: -5px; +} + +.pastis-btn-arrow-back { + position: absolute; + width: 24px; + height: 24px; + left: 36px; + top: 46px; + border-radius: 50%; + border: 2px solid black; + background: white !important; +} + +.pastis-entete-1-separator { + position: absolute; + width: 0px; + height: 115px; + left: 89px; + top: 0px; + + border: 2px solid #F7F8FB; +} + +.pastis-entete-1-text { + margin-top: 33px; + margin-left: 12%; + text-align: left; +} + +.pastis-entete-1-text-titre { + position: absolute; + left: 123px; + right: 5.06%; + top: 25.64%; + bottom: 50.43%; + font-weight: 500; + font-size: 20px; +} + +.pastis-entete-1-text-body-1 { + position: absolute; + width: 285px; + height: 20px; + left: 123px; + top: 68px; + + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + + /* identical to box height, or 143% */ + color: #A6A6A6; +} + +.pastis-entete-1-text-body-2 { + position: absolute; + width: 161px; + height: 20px; + left: 408px; + top: 68px; + + font-family: Roboto; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 20px; + + /* or 214% */ + color: #604379; +} + + +// Right top panel : Buttons style definition // + +.panel-buttons { + text-align: center; + margin-top: 33px; +} + + +.pastis-ico-open { + @extend .pastis-ico-svg; + color:white; +} + + + +.pastis-btn-rounded-setting { + @extend .pastis-btn-rounded-standard-white-enabled; +} + +.pastis-btn-rounded-setting:hover { + @extend .pastis-btn-rounded-standard-white-hover; +} + +.pastis-btn-rounded-setting:active { + @extend .pastis-btn-rounded-standard-white-focus; +} + +.pastis-ico-setting { + @extend .pastis-ico-svg; +} + + + +.pastis-ico-complex-element { + vertical-align: middle; +margin-right: 10px; +} + + +dp-date-picker { + display: flex !important; +} + +dp-day-calendar .dp-day-calendar-container { + border-radius: 20px !important; + box-shadow: 0px 11px 15px rgba(0, 0, 0, 0.1), 0px 9px 46px rgba(0, 0, 0, 0.06), 0px 24px 38px rgba(0, 0, 0, 0.07) !important; +} + +.dp-selected { + background: blueviolet !important; +} + +.dp-current-day { + border: 1px solid blueviolet !important; +} + +.pastis-metadata-table-col-large .mat-select, .pastis-metadata-table-col-large .mat-select:focus{ + width: 80%; +} + + + +.pastis-metadata-table-col-large textarea { + height: 40px; + text-indent: 10px; + +} + +.pastis-metadata-table-col-large textarea:focus{ + height: 200px; + +} + +.pastis-metadata-table-col-small .mat-select{ + max-width: 106px; +} + +.complex-element-no-child{ + text-align: left; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.spec.ts new file mode 100644 index 00000000..a2f78372 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FileTreeMetadataComponent } from './file-tree-metadata.component'; + +describe('FileTreeMetadataComponent', () => { + let component: FileTreeMetadataComponent; + let fixture: ComponentFixture<FileTreeMetadataComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FileTreeMetadataComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FileTreeMetadataComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.ts new file mode 100644 index 00000000..64f71df8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.component.ts @@ -0,0 +1,411 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { CdkTextareaAutosize } from '@angular/cdk/text-field'; +import { Component,ViewChild, ViewEncapsulation } from '@angular/core'; +import { FormBuilder, FormControl, Validators } from '@angular/forms'; +import { MatTableDataSource } from '@angular/material/table'; +import { FileService } from '../../core/services/file.service'; +import { CardinalityValues, MetadataHeaders } from '../../../appcore/classes/models'; +import { SedaService } from '../../core/services/seda.service'; +import { CardinalityConstants, DataTypeConstants, FileNode, ValueOrDataConstants, TypeConstants, FileNodeInsertParams, FileNodeInsertAttributeParams } from '../classes/file-node'; +import { SedaElementConstants, SedaData } from '../classes/seda-data'; +import { FileTreeMetadataService } from './file-tree-metadata.service'; +import { PastisDialogData } from '../../../appshared/pastis-dialog/classes/pastis-dialog-data'; +import { EditAttributesPopupComponent } from './edit-attributes/edit-attributes.component'; +import { AttributeData } from './edit-attributes/models/edit-attribute-models'; +import { NotificationService } from '../../../appcore/services/notification.service'; +import { chdir } from 'process'; + + + +@Component({ + selector: 'pastis-file-tree-metadata', + templateUrl: './file-tree-metadata.component.html', + styleUrls: ['./file-tree-metadata.component.scss'], + // Encapsulation has to be disabled in order for the + // component style to apply to the select panel. + encapsulation: ViewEncapsulation.None, +}) + +export class FileTreeMetadataComponent { + + valueOrData = Object.values(ValueOrDataConstants); + dataType = Object.values(DataTypeConstants); + cardinalityList: string[]; + cardinalityLabels = Object.values(CardinalityConstants) + + //Mat table + matDataSource: MatTableDataSource<MetadataHeaders>; + + @ViewChild('autosize', { static: false }) autosize: CdkTextareaAutosize; + + displayedColumns: string[] = ['nomDuChamp', 'valeurFixe', 'cardinalite', 'commentaire']; + + clickedNode: FileNode = {} as FileNode; + + sedaData: SedaData = {} as SedaData; + + // The seda node that has been opened from the left menu + selectedSedaNode: SedaData; + + selectedCardinalities: string[]; + + allowedSedaCardinalityList: string[][]; + + cardinalityValues: CardinalityValues[] = []; + + regexPattern: string; + + patternType: string; + + rowIndex: number; + + hoveredElementId:number; + + buttonIsClicked:boolean; + + config: {}; + + metadatadaValueFormControl = new FormControl('', [Validators.required,Validators.pattern(this.regexPattern)]); + + valueForm = this.fb.group({ + valeurFixe: ['', [ Validators.pattern(this.regexPattern) ]], + }); + + constructor(private fileService: FileService, private fileMetadataService: FileTreeMetadataService, + private sedaService: SedaService,private fb: FormBuilder, private notificationService: NotificationService) { + this.config = { + locale: 'fr', + showGoToCurrent: false, + firstDayOfWeek: 'mo', + format: 'YYYY-MM-DD' + }; + } + + ngOnInit() { + //Subscription to fileNode service + this.fileService.getCurrentFileTree().subscribe(fileTree => { + if (fileTree) { + this.clickedNode = fileTree[0]; + this.fileService.allData.next(fileTree); + // Subscription to sedaRules + this.sedaService.getSedaRules().subscribe(data => { + if (this.clickedNode) { + let rulesFromService = this.fileService.tabChildrenRulesChange.getValue(); + let tabChildrenToInclude = rulesFromService[0]; + let tabChildrenToExclude = rulesFromService[1]; + this.sedaService.selectedSedaNode.next(data[0]); + this.selectedSedaNode = data[0]; + this.fileService.nodeChange.next(this.clickedNode) + let filteredData = this.fileService.filteredNode.getValue(); + // Initial data for metadata table based on rules defined by tabChildrenRulesChange + if (filteredData) { + let dataTable = this.fileMetadataService.fillDataTable(this.selectedSedaNode, filteredData,tabChildrenToInclude,tabChildrenToExclude); + this.matDataSource = new MatTableDataSource<MetadataHeaders>(dataTable); + } + } + }) + } + }) + + this.fileMetadataService.selectedCardinalities.subscribe(cards => { + this.selectedCardinalities = cards; + }); + + // File node + this.fileService.nodeChange.subscribe(node => { + this.clickedNode = node; + }) + + // Get Current sedaNode + this.sedaService.selectedSedaNode.subscribe(sedaNode => { + this.selectedSedaNode = sedaNode; + }) + + + this.fileMetadataService.dataSource.subscribe(data => { + this.matDataSource = new MatTableDataSource<MetadataHeaders>(data); + }) + } + + getMetadataInputPattern(type:string) { + if (type === 'date') { + this.regexPattern = '([0-2][0-9]|(3)[0-1])(\/)(((0)[0-9])|((1)[0-2]))(\/)\d{4}'; + return this.regexPattern; + } + if (type === 'TextType' || type === null) { + this.regexPattern = '^[a-zA-X0-9 ]*$'; + return this.regexPattern; + } + } + + getMetadataInputType(element: MetadataHeaders) { + if (element.type === 'date') { + return 'date'; + } + if (element.enumeration.length > 0) { + return 'enumeration'; + } + } + + findCardinality(event) { + + if (!event) { + return CardinalityConstants.Obligatoire; + } else { + return event; + } + + } + + isSedaCardinalityConform(cardList: string[],card:string){ + return cardList.includes(card); + } + + findCardinalityName(clickedNode: FileNode) { + if (!clickedNode.cardinality) { + return "1" + } else { + return this.cardinalityValues.find(c => c.value == clickedNode.cardinality).value + } + } + + setNodeChildrenCardinalities(metadata:MetadataHeaders, newCard: string) { + if (this.clickedNode.name === metadata.nomDuChamp) { + this.clickedNode.cardinality = newCard; + } else if (this.clickedNode.children.length > 0) { + let childNode = this.fileService.getFileNodeById(this.clickedNode,metadata.id); + if (childNode) { + childNode.cardinality = newCard; + } + } + + } + + setNodeValue(metadata:MetadataHeaders , newValue:string){ + let updatedValue = newValue.length > 0 ? newValue : null + if (this.clickedNode.name === metadata.nomDuChamp) { + this.clickedNode.value = updatedValue; + } else if (this.clickedNode.children.length > 0) { + let childNode = this.fileService.getFileNodeById(this.clickedNode,metadata.id); + if (childNode) { + childNode.value = updatedValue; + } + } + } + + setDocumentation(metadata:MetadataHeaders,comment:string) { + if (this.clickedNode.name === metadata.nomDuChamp && this.clickedNode.id === metadata.id) { + comment ? this.clickedNode.documentation = comment : this.clickedNode.documentation = null; + } + else { + for (let node of this.clickedNode.children) { + if (node.name === metadata.nomDuChamp && node.id === metadata.id) { + comment ? node.documentation = comment : node.documentation = null; + } + } + } + } + + isElementComplex(elementName){ + let childFound = this.selectedSedaNode.Children.find(el=> el.Name === elementName); + if (childFound){ + return childFound.Element === SedaElementConstants.complex; + } + } + + onAddNode() { + if (this.clickedNode.name === 'DescriptiveMetadata'){ + console.log("Yes") + let params:FileNodeInsertParams = {node:this.clickedNode, + elementsToAdd:['ArchiveUnit']} + this.fileService.insertItem.emit(params); + this.notificationService.showSuccess('La métadonnée ArchiveUnit a été ajoutée'); + + } else { + this.fileService.addNode.emit(this.clickedNode) + } + } + + async onEditAttributesClick(fileNodeId:number) { + let popData = {} as PastisDialogData; + let attributeFileNodeListToAdd: FileNode[] = []; + let attributeFileNodeListToRemove: FileNode[] = []; + + if (fileNodeId) { + popData.fileNode = this.fileService.findChildById(fileNodeId,this.clickedNode); + popData.subTitleDialog = 'Edition des attributs de'; + popData.titleDialog = popData.fileNode.name; + popData.width = '1120px'; + popData.component = EditAttributesPopupComponent + popData.okLabel = "Valider" + popData.cancelLabel = "Annuler" + + let popUpAnswer = <AttributeData[]> await this.fileService.openPopup(popData); + console.log("The answer for edit attributte was ", popUpAnswer); + + if (popUpAnswer) { + + // Create a list of attributes to add + popUpAnswer.filter(a=> a.selected).forEach(attr=>{ + let fileNode = {} as FileNode; + fileNode.cardinality = attr.selected ? '1' : null; + fileNode.value = attr.valeurFixe ? attr.valeurFixe : null; + fileNode.documentation = attr.commentaire ? attr.commentaire : null; + fileNode.name = attr.nomDuChamp; + fileNode.type = TypeConstants.attribute; + fileNode.sedaData = this.sedaService.findSedaChildByName(attr.nomDuChamp,popData.fileNode.sedaData); + fileNode.children = []; + fileNode.id = attr.id; + attributeFileNodeListToAdd.push(fileNode); + }); + // Create a list of attributes to remove + popUpAnswer.filter(a=> !a.selected).forEach(attr=>{ + let fileNode:FileNode = {} as FileNode; + fileNode.name = attr.nomDuChamp; + attributeFileNodeListToRemove.push(fileNode); + }) + if (attributeFileNodeListToAdd){ + let insertOrEditParams: FileNodeInsertAttributeParams = {node: popData.fileNode , elementsToAdd:attributeFileNodeListToAdd} + let attrsToAdd = attributeFileNodeListToAdd.map(e=>e.name); + let attributeExists = popData.fileNode.children.some(child => attrsToAdd.includes(child.name)) + + //Add attribute (if it does not exist), or update them if they do + if (attrsToAdd && !attributeExists) { + this.fileService.insertAttributes.emit(insertOrEditParams); + } else { + this.fileService.updateNodeChildren(popData.fileNode, attributeFileNodeListToAdd) + } + } + if (attributeFileNodeListToRemove.length){ + this.fileService.removeItem(attributeFileNodeListToRemove ,popData.fileNode); + } + } + } + } + + onDeleteNode(nodeId:number){ + const nodeToDelete = this.fileService.getFileNodeById(this.fileService.nodeChange.getValue(),nodeId); + this.fileService.removeNode.emit(nodeToDelete) + } + + onButtonClicked(elementId:number,event:MouseEvent){ + this.hoveredElementId = elementId; + } + + isButtonClicked(elementId: number, data: MetadataHeaders){ + if (data) { + this.hoveredElementId = elementId; + this.buttonIsClicked = true; + return data.id === this.hoveredElementId; + } + } + + isRowHovered(elementId:number){ + return this.hoveredElementId === elementId; + } + + onMouseOver(row: MetadataHeaders) { + this.buttonIsClicked = false; + this.hoveredElementId = row.id + } + + onMouseLeave(row: MetadataHeaders) { + if(!this.buttonIsClicked) { + this.hoveredElementId = 0; + } + } + + checkElementType(elementName?:string){ + if (this.selectedSedaNode){ + let nameToSearch = elementName ? elementName : this.sedaService.selectedSedaNode.getValue().Name; + let nodeElementType = this.sedaService.checkSedaElementType(nameToSearch, this.selectedSedaNode); + return nodeElementType === SedaElementConstants.complex; + } + } + + shouldLoadMetadataTable(){ + return this.fileMetadataService.shouldLoadMetadataTable.getValue(); + } + + /** + * Returns a boolean if a given node has one or more attributes + * regarding its seda specification + * @param nodeName The node's name to be tested + */ + hasAttributes(nodeName:string): boolean { + + const node = this.sedaService.findSedaChildByName(nodeName, this.selectedSedaNode); + + if (node && node.Children.length > 0) { + return (node.Children.find(c=>c.Element==SedaElementConstants.attribute)!==undefined); + } + return false; + } + + + isSedaObligatory(name: string): boolean { + return this.sedaService.isSedaNodeObligatory(name,this.selectedSedaNode); + } + + getSedaDefinition(elementName:string) { + if (this.selectedSedaNode.Name === elementName){ + return this.selectedSedaNode.Definition; + } else { + for (let node of this.selectedSedaNode.Children){ + if (node.Name === elementName) { + return node.Definition + } + } + } + return "" + } + + resolveButtonLabel(node:FileNode){ + if (node) { + return node.name === 'DescriptiveMetadata' ? "Ajouter une UA" : "Ajouter une métadonnée" + } + } + + resolveCurrentNodeName(){ + if (this.clickedNode){ + return this.clickedNode.name; + } + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.spec.ts new file mode 100644 index 00000000..a6e64543 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.spec.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { TestBed } from '@angular/core/testing'; + +import { FileTreeMetadataService } from './file-tree-metadata.service'; + +describe('FileTreeMetadataService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: FileTreeMetadataService = TestBed.get(FileTreeMetadataService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.ts new file mode 100644 index 00000000..fb7ecc2b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree-metadata/file-tree-metadata.service.ts @@ -0,0 +1,238 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import { CardinalityValues, MetadataHeaders } from '../../../appcore/classes/models'; +import { CardinalityConstants, FileNode, TypeConstants } from '../classes/file-node'; +import { SedaData, SedaElementConstants } from '../classes/seda-data'; +import { v4 as uuid } from 'uuid'; + +@Injectable({ + providedIn: 'root' +}) +export class FileTreeMetadataService { + + cardinalityValues: CardinalityValues[] = []; + allowedCardinality: Map<string, string[]>; + dataSource = new BehaviorSubject<MetadataHeaders[]>(null); + selectedCardinalities = new BehaviorSubject<string[]>([]); + allowedSedaCardinalities = new BehaviorSubject<string[][]>([]); + + shouldLoadMetadataTable = new BehaviorSubject<boolean>(true); + + + constructor() { + this.initCardinalityValues(); + } + + initCardinalityValues() { + for (let key in CardinalityConstants) { + let cardinality: CardinalityValues = { value: CardinalityConstants[key], viewValue: key }; + this.cardinalityValues.push(cardinality); + } + this.allowedCardinality = new Map<string, string[]>(); + this.allowedCardinality.set('1', ['1']); + this.allowedCardinality.set('', ['1']); + this.allowedCardinality.set(null, ['1']); + this.allowedCardinality.set(undefined, ['1']); + this.allowedCardinality.set("null", ['1']); + this.allowedCardinality.set('0-1', ['0-1', '1']); + this.allowedCardinality.set('0-N', ['0-1', '0-N', '1-N', '1']); + this.allowedCardinality.set('1-N', ['1', '1-N']); + } + + fillDataTable(sedaChild: SedaData, clickedNode: FileNode, childrenToInclude:string[], childrenToExclude:string[]): MetadataHeaders[] { + let data:MetadataHeaders[] = []; + let allowedCardList: string[][]; + if (clickedNode.children.length > 0 ) { + for (let child of clickedNode.children) { + // There are cases where there are no childrenToExclude declared + // So we must check if it exists to avoid and undefined of includes error + if (childrenToExclude && !childrenToExclude.includes(child.name) && + child.type !== TypeConstants.attribute) { + + data.push({ + id: child.id, + nomDuChamp: child.name, + valeurFixe: child.value, + cardinalite: this.findSedaAllowedCardinalityList(sedaChild, child), + commentaire: child.documentation, + type: child.dataType, + enumeration: child.sedaData.Enumeration, + }) + } else if (!childrenToExclude && child.type !== TypeConstants.attribute){ + data.push({ + id: child.id, + nomDuChamp: child.name, + valeurFixe: child.value, + cardinalite: this.findSedaAllowedCardinalityList(sedaChild, child), + commentaire: child.documentation, + type: child.dataType, + enumeration: child.sedaData.Enumeration}) + } + // It should be a simple element with children attributes. + // In that case, the data table will be filled with data from the clicked node + // (and only once) + else if (clickedNode.type === TypeConstants.element && sedaChild.Element === SedaElementConstants.simple){ + data.push({ + id: clickedNode.id, + nomDuChamp: clickedNode.name, + valeurFixe: clickedNode.value, + cardinalite: this.findSedaAllowedCardinalityList(sedaChild, clickedNode), + commentaire: clickedNode.documentation, + type: clickedNode.dataType, + enumeration: clickedNode.sedaData.Enumeration, + }) + break; + } + } + } // No children : it should be a SEDA simple element type without children + // It this case, the retrieved data is the current clicked node data + else { + data.push({ + id: clickedNode.id, + nomDuChamp: clickedNode.name, + valeurFixe: clickedNode.value, + cardinalite: this.findSedaAllowedCardinalityList(sedaChild, clickedNode), + commentaire: clickedNode.documentation, + type: clickedNode.dataType, + enumeration: clickedNode.sedaData.Enumeration, + }) + } + this.allowedSedaCardinalities.next(allowedCardList); + this.selectedCardinalities.next(this.findCardinalities(clickedNode, sedaChild, data)); + console.log("Data on fillDataTable", data, "with selected cards :", this.selectedCardinalities.getValue()); + return data; + } + + findSedaAllowedCardinalityList(sedaNode: SedaData, fileNode: FileNode): string[] { + let allowedCardinalityListResult: string[] = []; + let resultList: string[][] = []; + + // If the clicked node has the same name was the seda node, the node is already found + if (sedaNode.Name === fileNode.name) { + allowedCardinalityListResult = this.allowedCardinality.get(sedaNode.Cardinality); + return allowedCardinalityListResult; + } + if (sedaNode.Children.length > 0) { + // Search the sedaNode children to find the correnpondent cardinality list + for (let child of sedaNode.Children) { + if ((child.Name === fileNode.name) || (sedaNode.Name === fileNode.name)) { + // Used in the case we wish to "correct" the node's cardinality, since + // the seda cardinality wont include the cardinality retrieved by node's rng file. + // In this case, the condition will return the rng file cardinality list + // instead of node's cardinality list in accordance with the SEDA specification. + //if (child.Cardinality !== sedaNode.Cardinality){ + //allowedCardinalityListResult = this.allowedCardinality.get(clickedNode.cardinality); + //return allowedCardinalityListResult; + //} + allowedCardinalityListResult = this.allowedCardinality.get(child.Cardinality); + resultList.push(allowedCardinalityListResult) + this.allowedSedaCardinalities.next(resultList) + + return allowedCardinalityListResult; + } + } + } else { + //console.error("Final CARDINALITY LIST (NO seda children found) : ", allowedCardinalityListResult, " for ", sedaNode.Name); + for (const [card, cardlist] of this.allowedCardinality) { + if (card === fileNode.cardinality) { + !fileNode.cardinality ? allowedCardinalityListResult.push("1") : allowedCardinalityListResult = cardlist; + //result = cardlist; + resultList.push(cardlist) + this.allowedSedaCardinalities.next(resultList) + //console.error("Final CARDINALITY LIST : ", allowedCardinalityListResult) + return allowedCardinalityListResult; + } + } + } + this.allowedSedaCardinalities.next(resultList) + + if (allowedCardinalityListResult.length < 1) { + //console.error("Card not found for : ", clickedNode.name, "..assuming attribute cardinality :", clickedNode.cardinality); + allowedCardinalityListResult = this.allowedCardinality.get(fileNode.cardinality); + //!clickedNode.cardinality ? result.push("1") : result = this.allowedCardinality[clickedNode.cardinality]; + return allowedCardinalityListResult; + + } + } + + findCardinalities(clickedNode: FileNode, sedaNode: SedaData, data:MetadataHeaders[]):string[] { + let childrenCardMap = new Map(); + let idsToKeep = data.map(name=>name.id); + let nodesToKeep = clickedNode.children.filter(child=>idsToKeep.includes(child.id)) + + if (sedaNode.Children.length > 0) { + for (let fileNodechild of nodesToKeep) { + sedaNode.Children.forEach(sedaGrandChild=>{ + if (fileNodechild.name === sedaGrandChild.Name) { + fileNodechild.cardinality ? childrenCardMap.set(fileNodechild.id,fileNodechild.cardinality) : childrenCardMap.set(fileNodechild.id,"1"); + } + }) + } + } else { + !clickedNode.cardinality ? childrenCardMap.set(clickedNode.id,"1") : childrenCardMap.set(clickedNode.id,clickedNode.cardinality); + } + if (childrenCardMap.size < 1) { + !clickedNode.cardinality ? childrenCardMap.set(clickedNode.id,"1") : childrenCardMap.set(clickedNode.id,clickedNode.cardinality); + } + return Array.from(childrenCardMap.values()); + } + + /** + * Find the children of sedaParent and return the 'Enumeration' property + * @param sedaParent the seda parent of the node we want to find + * @param childName the name of the seda node we want to find + */ + getEnumerationFromSedaNodeChildren(sedaParent: SedaData, childName: string): string[] { + if (sedaParent.Name === childName){ + return sedaParent.Enumeration; + } + let sedaNode: SedaData = sedaParent.Children.find(c => c.Name === childName); + if (sedaNode){ + return sedaNode.Enumeration + } + return []; + } + shouldLoadTable(){ + return this.shouldLoadMetadataTable.getValue(); + } + enableAttributeOption(nodeType:string){ + return nodeType === TypeConstants.attribute; + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.html b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.html new file mode 100644 index 00000000..458f2775 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.html @@ -0,0 +1,80 @@ +<mat-tree *ngIf="nestedTreeControl && nestedDataSource" [dataSource]="nestedDataSource" + [treeControl]="nestedTreeControl" #treeSelector class="pastis-tree"> + + <!-- Nested tree node--> + + <mat-nested-tree-node *matTreeNodeDef="let node;when:hasNestedChild"> + <ng-container *ngIf="!isAttribute(node) && shouldBeOnTab(node)" > + <mat-list-item + class="list-item" (mouseover)="hover=node.children.length" (click)="updateMedataTable(node);nestedTreeControl.expand(node)" + style="margin-left:40px;margin-right:40px"> + + <!--Root node name--> + <span *ngIf="node.name === rootElementName" class="pastis-tree-node-root-name"> + <span [ngStyle]="{'margin-left': calculateNodePosition(node) + 'px'}"> + {{rootElementShowName}} + </span> + <span *ngIf="node.name === rootElementName && node.name === 'DescriptiveMetadata'" > + <span class="pastis-add-ua-text" (click)= "addArchiveUnit(node)"> Ajouter une UA + <!--Button plus--> + <!--<mat-icon svgIcon="plus-blue" + class="pastis-ico-plus-blue" + (click)= "addArchiveUnit(node)"> + </mat-icon>--> + <button class="pastis-btn-rounded-ua"> + <mat-icon class="pastis-ico-plus">add</mat-icon> + </button> + </span> + </span> + <mat-divider class="pastis-divider"></mat-divider> + </span> + + <!--Root children without children--> + <span *ngIf="!node.children.length && node.name !== rootElementName + && isPartOfCollection(node) && shouldBeOnTab(node) && !isAttribute(node)" + class="pastis-tree-node-name" (click)="updateMedataTable(node)" + [ngStyle]="{'margin-left': calculateNodePosition(node) + 'px'}"> + <span>{{onResolveName(node)}}</span> + <mat-divider class="pastis-divider"></mat-divider> + </span> + + <!--Root children with children--> + <span *ngIf="node.children.length && node.name !== rootElementName + && isPartOfCollection(node) && shouldBeOnTab(node) && !isAttribute(node)" + [ngStyle]="{'margin-left': calculateNodePosition(node) + 'px'}" (click)="updateMedataTable(node)"> + + <button *ngIf="isElementComplexAndHasChildren(node)" + mat-icon-button matTreeNodeToggle + class="pastis-chevron-icon" + (click)="updateMedataTable(node)"> + <mat-icon>{{nestedTreeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}</mat-icon> + </button> + <span class="pastis-tree-node-name"> + <span>{{onResolveName(node)}}</span> + <span *ngIf="node.name === 'ArchiveUnit'" + style="float: right;" + tooltip="Ajouter une UA" + tooltip-class="pastis-tooltip-class"> + <!--Button plus--> + <button class="pastis-btn-rounded-ua-grey"> + <mat-icon class="pastis-ico-plus" (click)= "addArchiveUnit(node)">add</mat-icon> + </button> + </span> + </span> + <mat-divider class="pastis-divider"></mat-divider> + </span> + + </mat-list-item> + + + + + + <ul [hidden]="!nestedTreeControl.isExpanded(node)" class="pastis-tree-ul"> + <ng-container matTreeNodeOutlet></ng-container> + </ul> +</ng-container> + </mat-nested-tree-node> + + +</mat-tree> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.scss b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.scss new file mode 100644 index 00000000..fb4e61f8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.scss @@ -0,0 +1,219 @@ +@import "../../assets/css/mixins"; +@import "../../assets/css/layout"; +@import "../../assets/css/colors"; + +.main-card { + /*max-width: 1024px;*/ + margin: 5px; + } + +.file-tree{ + width: 100%; + height: 94%; + margin-top: 10px; + position: absolute; + white-space: nowrap; + left: 0px; + top: 45px; +} + + +.grid-tile-main { + border: solid 1px lightgray; + border-radius: 25px; + } + +.grid-title { + position:absolute; + left: 10px; + top: 10px; + font-size: 95%; +} + +.toolbar { + position:absolute; + border-top-left-radius: 25px; + border-top-right-radius: 25px; + top:0px; + font-size: 95%; + max-height: 55px; + } + +.grid-title-icon { + position: relative; + top: 5px; +} + +.buttons { + position: relative; + height: 35px; + } + .buttons-container { + position:absolute; + left: 10px; + top: 60px; + } + .buttons-divider{ + width:20px; + height:auto; + display:inline-block; +} + +.buttons-icon{ + width: 20px +} + +.example-form { + min-width: 150px; + max-width: 40px; + width: 100%; +} + +.example-full-width { + width: 10%; +} + +.text-inside-grid { + position: absolute; + left: 5px; +} + +.pastis-btn-node-element{ + background:none; + border:none; +} +.pastis-tree-node-root-name{ + @extend .pastis-black-height; + @extend .pastis-font-headline-6; + line-height: 50px; + cursor: pointer; + font-weight: 500; + margin-bottom: -15px; +} + +.pastis-tree-node-name{ + @extend .pastis-surface-snackbar; + @extend .pastis-font-label; + line-height: 50px; + cursor: pointer; +} + +.pastis-tree-divider{ + max-width: 400px !important; + max-height: 3px !important; + // margin: 0px 0px 0px 0px !important; + + opacity: 0.3 !important; + border: 1px solid #979797 !important; +} + +.pastis-chevron-icon{ + @extend .pastis-surface-snackbar; + text-align-last:left; +} +.pastis-chevron-icon svg { + @extend .pastis-surface-snackbar; +} + +.pastis-divider{ + max-width: 400px; + height: 1px; + //float: right; + //margin-top: -4px; +} + +.pastis-btn-add-metadata{ + margin-left: 220px; +} + + +/* PASTIS File tree Item list*/ +.mat-list-item{ + display:block !important; + text-align-last:left; +} + + +.list-item-no-children:hover{ + background: rgba(92, 186, 169, 0.15); + +} + +.list-item:hover{ + background: rgba(101, 178, 228, 0.2); +} + + +.pastis-tree-ul { + padding-left: 0px; + margin: 0px; +} + +.pastis-add-ua-text { + @extend .pastis-secondary-300; + float: right; + text-align: right; + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + left: 70%; + right: 1%; +} + +.pastis-add-ua-text:hover{ + font-weight: bold; +} + +.pastis-ico-plus { + cursor: pointer; + color:white; + font-size: 20px !important; +} + +.pastis-btn-rounded-ua { + @extend .pastis-btn-rounded-standard-secondary-enabled; + width: 20px; + height: 20px; + padding: 0%; + vertical-align: text-bottom; +} + +.pastis-btn-rounded-ua:hover { + @extend .pastis-btn-rounded-ua; + @extend .pastis-btn-rounded-standard-secondary-hover; +} + +.pastis-btn-rounded-ua:active { + @extend .pastis-btn-rounded-ua; + @extend .pastis-btn-rounded-standard-secondary-focus; +} + +.pastis-ico-add-ua { + @extend .pastis-ico-svg; + +} + + +.pastis-btn-rounded-ua-grey { + @extend .pastis-btn-rounded-standard-secondary-enabled; + width: 20px; + height: 20px; + padding: 0%; + vertical-align: text-bottom; + background: #A3A3A3; +} + +.pastis-btn-rounded-ua-grey:hover { + @extend .pastis-btn-rounded-ua-grey; + @extend .pastis-btn-rounded-standard-secondary-hover; +} + +.pastis-btn-rounded-ua-grey:active { + @extend .pastis-btn-rounded-ua-grey; + @extend .pastis-btn-rounded-standard-secondary-focus; +} + +.pastis-ico-add-ua-grey { + @extend .pastis-ico-svg; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.spec.ts new file mode 100644 index 00000000..33a4bfc1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FileTreeComponent } from './file-tree.component'; + +describe('FileTreeComponent', () => { + let component: FileTreeComponent; + let fixture: ComponentFixture<FileTreeComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FileTreeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FileTreeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.ts new file mode 100644 index 00000000..af880409 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.component.ts @@ -0,0 +1,573 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/) + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { CdkTextareaAutosize } from '@angular/cdk/text-field'; +import { NestedTreeControl } from '@angular/cdk/tree'; +import { Component, Input, OnDestroy, OnInit, ViewChild, OnChanges, SimpleChanges } from '@angular/core'; +import { MatTreeNestedDataSource } from '@angular/material'; +import { BehaviorSubject, throwError } from 'rxjs'; +import { SedaData, SedaElementConstants, SedaCardinalityConstants, SedaCollections } from './classes/seda-data'; +import { SedaService } from '../core/services/seda.service'; +import { NotificationService } from '../core/services/notification.service'; +import { FileService } from '../core/services/file.service'; +import { CardinalityConstants, FileNode, TypeConstants, DataTypeConstants, ValueOrDataConstants, FileNodeInsertParams, FileNodeInsertAttributeParams } from './classes/file-node'; +import { FileTreeMetadataService } from './file-tree-metadata/file-tree-metadata.service'; +import { UserActionAddMetadataComponent } from '../user-actions/user-action-add-metadata/user-action-add-metadata.component'; +import { PastisDialogData } from '../shared/pastis-dialog/classes/pastis-dialog-data'; +import { UserActionRemoveMetadataComponent } from '../user-actions/user-action-remove-metadata/user-action-remove-metadata.component'; +import { NgxUiLoaderService } from 'ngx-ui-loader'; +import { areAllEquivalent } from '@angular/compiler/src/output/output_ast'; + +@Component({ + selector: 'pastis-file-tree', + templateUrl: './file-tree.component.html', + styleUrls: ['./file-tree.component.scss'] +}) +export class FileTreeComponent { + + @ViewChild('treeSelector', { static: true }) tree: any; + @ViewChild('autosize', { static: false }) autosize: CdkTextareaAutosize; + + + @Input() + nestedTreeControl: NestedTreeControl<FileNode>; + @Input() + nestedDataSource: MatTreeNestedDataSource<FileNode>; + @Input() + rootElementName: string; + @Input() + rootElementShowName: string; + @Input() + childrenListToExclude: string[]; + @Input() + childrenListToInclude: string[]; + @Input() + shouldLoad: boolean; + @Input() + collectionName:string + + nodeToSend: FileNode; + data: FileNode; + newNodeName: string; + sedaData: SedaData; + treeData: FileNode[]; + curentRootTabName: string; + parentNodeMap = new Map<FileNode, FileNode>(); + dataChange = new BehaviorSubject<FileNode>(null); + rulesChange: string[][] = []; + rootMetadataName:string; + + + + static archiveUnits: FileNode; + static archiveUnitsNumber: number; + static uaIdAndPosition = new Map<string, number>(); + + + constructor(private fileService: FileService, private loggingService: NotificationService, + private fileMetadataService: FileTreeMetadataService, + private sedaService: SedaService,private ngxService: NgxUiLoaderService) { } + + ngOnInit() { + + if (this.shouldLoad) { + this.sedaService.getSedaRules().subscribe(data => { + this.sedaData = data[0]; + this.sedaService.selectedSedaNode.next(data[0]); + this.sedaService.selectedSedaNodeParent.next(this.sedaData); + console.log("Init seda node on file tree : %o", this.sedaService.selectedSedaNode.getValue(), " on tab : ", this.rootElementName); + }) + this.fileService.addNode.subscribe(node => { + this.addNewItem(node) + }) + this.fileService.insertItem.subscribe((params:FileNodeInsertParams) => { + console.log("Params : ", params) + this.insertItem(params.node, params.elementsToAdd) + }) + this.fileService.insertAttributes.subscribe((params:FileNodeInsertAttributeParams) => { + console.log("Params in attributes : ", params) + this.insertAttributes(params.node, params.elementsToAdd) + }) + this.fileService.removeNode.subscribe(node => { + this.remove(node) + }) + this.fileService.tabChildrenRulesChange.subscribe(rules => { + this.rulesChange = rules; + }) + this.fileService.collectionName.subscribe(collection=>{ + this.collectionName = collection; + }) + this.fileService.rootTabMetadataName.subscribe(metadataName=>{ + this.rootMetadataName = metadataName; + }) + + this.fileService.dataChange.next(this.nestedDataSource.data); + } + } + + + isAttribute = (node: FileNode): boolean => node.type === TypeConstants[TypeConstants.attribute]; + + getChildren = (node: FileNode) => node.children; + + hasNestedChild(num: number, nodeData: FileNode):boolean { + return !nodeData.type; + } + + /** Select the category so we can insert the new item. */ + async addNewItem(node: FileNode) { + let dataToSendToPopUp = <PastisDialogData>{}; + dataToSendToPopUp.titleDialog = "Veuillez sélectionner une ou plusieurs métadonnées" + dataToSendToPopUp.subTitleDialog = `Ajouter des métadonnées à "${node.name}"`, node.name; + dataToSendToPopUp.fileNode = node; + dataToSendToPopUp.width = '800px'; + dataToSendToPopUp.okLabel = "Ajouter les métadonnées"; + dataToSendToPopUp.cancelLabel = "Annuler"; + dataToSendToPopUp.component = UserActionAddMetadataComponent; + dataToSendToPopUp.disableBtnOuiOnInit = true; + const elementsToAdd = <string[]>await this.fileService.openPopup(dataToSendToPopUp); + if (elementsToAdd) { + //this.sedaService.selectedSedaNode.next(sedaNode); + this.insertItem(node, elementsToAdd); + elementsToAdd.length > 1 ? + this.loggingService.showSuccess('Les métadonnées ' + elementsToAdd.join(', ') + ' ont été ajoutées') : + this.loggingService.showSuccess('La métadonnée ' + elementsToAdd + ' a été ajoutée') + } + } + + /** Add an item (or a list of items) in the Tree */ + insertItem(parent: FileNode, elementsToAdd: string[]) { + let elementsToAddFromSeda: SedaData[]= []; + for(let element of elementsToAdd){ + parent.sedaData.Children.forEach(child=>{ + if (child.Name === element){ + elementsToAddFromSeda.push(child); + } + }); + } + + if (parent.children && elementsToAddFromSeda) { + for (let element of elementsToAddFromSeda) { + // 1. Define a new file node, its id and seda data; + let newNode = {} as FileNode; + let newId = window.crypto.getRandomValues(new Uint32Array(10))[0]; + let sedaChild = element; + + // 1.2. New node type is defined acording to the seda element type + sedaChild.Element === SedaElementConstants.attribute ? + newNode.type = TypeConstants.attribute : + newNode.type = TypeConstants.element; + // 1.3. Fill the missing new node data + newNode.name = element.Name; + newNode.id = newId; + newNode.level = parent.level + 1; + newNode.dataType = DataTypeConstants[sedaChild.Type]; + newNode.parentId = parent.id; + newNode.parent = parent; + newNode.children = []; + newNode.sedaData = sedaChild; + newNode.cardinality = Object.values(CardinalityConstants).find(c => c.valueOf() === sedaChild.Cardinality); + console.log("Parent node name: " + parent.name); + console.log("New node : ", newNode); + + //1.4. Update parent->children relashionship + parent.children.push(newNode); + this.parentNodeMap.set(newNode, parent); + console.log("Seda children and file children: ", parent.sedaData.Children, parent.children); + + // 2. Insert all children of complex elements based on SEDA definition + if (sedaChild.Element === SedaElementConstants.complex ) { + let childrenOfComplexElement : string[] = []; + sedaChild.Children.forEach(child=> { + if (child.Cardinality === SedaCardinalityConstants.one || + child.Cardinality === SedaCardinalityConstants.oreOrMore) { + childrenOfComplexElement.push(child.Name); + } + }) + this.insertItem(newNode,childrenOfComplexElement); + } + // 3. Insert all olbigatory attributes of the added node, if there is + if (sedaChild.Children.some(child=>child.Element === SedaElementConstants.attribute)) { + let attributes:FileNode[] = []; + sedaChild.Children.filter(c=> c.Element === SedaElementConstants.attribute).forEach(child=> { + let isAttributeAlreadyIncluded = newNode.children.some(nodeChild=> nodeChild.name.includes(child.Name)); + // If the added node contains an obligatory attribute, + // on its seda definition and the attribute is not already part of the node, + // we then, build an attribute node based on the seda atribute defintion + if (child.Element === SedaElementConstants.attribute && + child.Cardinality === SedaCardinalityConstants.one && + !isAttributeAlreadyIncluded) { + let childAttribute = {} as FileNode; + childAttribute.name = child.Name; + childAttribute.cardinality = child.Cardinality === SedaCardinalityConstants.one ? '1' : null; + childAttribute.sedaData = sedaChild; + attributes.push(childAttribute); + } + }) + this.insertAttributes(newNode,attributes); + } + + } + // 4. Order elements according to seda definition + let sedaChildrenName: string[] = []; + parent.sedaData.Children.forEach(child => { + sedaChildrenName.push(child.Name); + }) + parent.children.sort((a, b) => { + return sedaChildrenName.indexOf(a.name) - sedaChildrenName.indexOf(b.name) + }) + // 5. Update tree + this.sendNodeMetadata(parent); + console.log("New fileNode data is : %o", this.nestedDataSource.data) + + // 6. No more nodes to add + } else { + console.log('No More Nodes can be inserted : No node was selected or node name is invalid'); + } + } + + insertAttributes(parent: FileNode, attributesToAdd: FileNode[]) { + + + + + + + if (attributesToAdd) { + for (let attribute of attributesToAdd) { + //Only attributes with cardinality one will be included + if (attribute.cardinality === SedaCardinalityConstants.one) { + let newAttributeNode = {} as FileNode; + let newId = window.crypto.getRandomValues(new Uint32Array(10))[0]; + newAttributeNode.name = attribute.name; + newAttributeNode.id = newId; + newAttributeNode.level = parent.level + 1; + newAttributeNode.type = TypeConstants.attribute; + newAttributeNode.dataType = DataTypeConstants[attribute.sedaData.Type]; + newAttributeNode.parentId = parent.id; + newAttributeNode.children = []; + newAttributeNode.cardinality = !attribute.cardinality ? '1' : attribute.cardinality; + newAttributeNode.documentation = attribute.documentation ? attribute.documentation : null; + newAttributeNode.value = attribute.value ? attribute.value : null; + newAttributeNode.sedaData = attribute.sedaData; + newAttributeNode.parent = parent; + parent.children.push(newAttributeNode); + this.parentNodeMap.set(newAttributeNode, parent); + console.log ("Parent of attribute after insert is now : ", parent.children); + } + } + } + } + sendNodeMetadata(node: FileNode):void { + this.updateFileTree(node); + this.updateMedataTable(node); + if (node.name === 'DataObjectGroup') { + let dataObjectPackageId = this.fileService.getFileNodeByName(node.parent, 'DataObjectPackage').id; + this.renderChanges(node,dataObjectPackageId); + } + if (node.name === 'DescriptiveMetadata') { + FileTreeComponent.archiveUnits = node; + this.generateArchiveUnitsNumbers(node) + this.renderChanges(node,node.id); + console.log("Archive units : ", FileTreeComponent.archiveUnits) + } + else { + + this.renderChanges(node); + } + } + + generateArchiveUnitsNumbers(archiveUnit:FileNode):void { + if ( archiveUnit.name === 'DescriptiveMetadata') { + FileTreeComponent.uaIdAndPosition[archiveUnit.level - 1] = archiveUnit.id; + } + let counter = 0; + archiveUnit.children.forEach(child=> { + if (child.name === 'ArchiveUnit'){ + counter ++; + FileTreeComponent.uaIdAndPosition[archiveUnit.level - 1 + "." + counter] = child.id; + } + }) + } + + + // Refresh Tree by opening an given node (option) + // If the a node name is not prodived, the function will open the root tab element + renderChanges(node:FileNode, nodeIdToExpand?:number) { + let data : FileNode; + if (nodeIdToExpand) { + data = this.fileService.getFileNodeById(this.fileService.allData.getValue()[0],nodeIdToExpand); + } else { + let rootTabName = this.fileService.rootTabMetadataName.getValue(); + data = this.fileService.getFileNodeByName(this.fileService.allData.getValue()[0],rootTabName); + } + if (data) { + let dataArray = []; + dataArray.push(data); + this.nestedDataSource.data = null; + this.nestedDataSource.data = dataArray; + this.nestedTreeControl.expand(node); + } + } + + updateMedataTable(node:FileNode){ + let rulesFromService = this.fileService.tabChildrenRulesChange.getValue() + let tabChildrenToInclude = rulesFromService[0]; + let tabChildrenToExclude = rulesFromService[1]; + this.fileService.nodeChange.next(node); + this.sedaService.selectedSedaNode.next(node.sedaData); + let dataTable = this.fileMetadataService.fillDataTable(node.sedaData, node, tabChildrenToInclude, tabChildrenToExclude); + let hasAtLeastOneComplexChild = node.children.some(el=> el.type === TypeConstants.element); + + if(node.sedaData.Element === SedaElementConstants.complex){ + this.fileMetadataService.shouldLoadMetadataTable.next(hasAtLeastOneComplexChild); + console.log("Filled data on table : ", dataTable, "...should load : ", this.fileMetadataService.shouldLoadMetadataTable.getValue()); + this.fileMetadataService.dataSource.next(dataTable); + } else { + this.fileMetadataService.shouldLoadMetadataTable.next(true); + this.fileMetadataService.dataSource.next(dataTable); + } + } + + // Updates the nested tab root tree and the data tree + updateFileTree(node:FileNode){ + this.nestedDataSource.data[0] = node + let allData = this.fileService.allData.getValue()[0] + this.updateItem(node,allData); + } + + sendNodeMetadataIfChildren(node: FileNode) { + if (node.children.length) { + this.sendNodeMetadata(node); + } + } + + isElementComplexAndHasChildren(node:FileNode){ + return node.children.some(child => child.type === TypeConstants.element); + } + + isElementComplex(node:FileNode){ + return node.sedaData.Element === SedaElementConstants.complex; + } + + + onResolveName(node:FileNode) { + /* let archiveUnitNode = this.fileService.getFileNodeById(FileTreeComponent.archiveUnits,node.id) as FileNode; + if (node.name === 'ArchiveUnit' && archiveUnitNode) { + let nodeLevel = (FileTreeComponent.archiveUnits.children.indexOf(node) + 1); + let parent = this.fileService.getFileNodeById(FileTreeComponent.archiveUnits,node.parentId) + let parentLevel = parent.level - 2 + + let archiveUnilNumber = nodeLevel > 0 ? nodeLevel : parentLevel + let archiveUnitDecimal = parentLevel === 0 ? "" : "." +parentLevel; + return 'UA ' + archiveUnilNumber + archiveUnitDecimal ; + } */ + return node.name; + } + + async remove(node: FileNode) { + let dataToSendToPopUp = <PastisDialogData>{}; + let nodeType = node.sedaData.Element == SedaElementConstants.attribute ? 'L\'attribut ' : 'La métadonnée ' + dataToSendToPopUp.titleDialog = "Voulez-vous supprimer " + nodeType + " \"" + node.name + "\" ?"; + dataToSendToPopUp.subTitleDialog = node.sedaData.Element == SedaElementConstants.attribute ? + "Suppression d'un attribut" : "Suppression d'une métadonnée"; + dataToSendToPopUp.fileNode = node; + dataToSendToPopUp.component =UserActionRemoveMetadataComponent; + + let popUpAnswer = <FileNode> await this.fileService.openPopup(dataToSendToPopUp); + if (popUpAnswer) { + let deleteTypeText = node.sedaData.Element == SedaElementConstants.attribute ? ' supprimé' : ' supprimée' + this.removeItem(node, this.fileService.nodeChange.getValue()); + this.loggingService.showSuccess(nodeType + node.name + ' a été ' + deleteTypeText + ' avec succès'); + } + } + + isSedaNodeObligatory(nodeName: string): boolean { + if (this.sedaData) { + for (let child of this.sedaData.Children) { + if (child.Name === nodeName) { + return child.Cardinality !== '1' ? true : false; + } + } + } + } + + buildFileTree(obj: object, level: number): FileNode[] { + // This should recive Root node of Tree of Type FileNode + // so we dont have to create a new node and use it as it is + return Object.keys(obj).reduce<FileNode[]>((accumulator, key) => { + const value = obj[key]; + const node = {} as FileNode; + node.id = level; + node.level = level; + node.name = key; + node.parentId = null; + if (value != null) { + if (typeof value === 'object') { + node.children = this.buildFileTree(value, level + 1); + } else { + node.type = value; + } + } + return accumulator.concat(node); + }, []); + } + + /** Remove an item Tree node given a parent node and the child to be removed */ + removeItem(childToBeRemoved: FileNode, parentRootNode: FileNode) { + //If the parentRoot is a reference to the child to be removed, we search for its parent from the root tab node + let rootNode = parentRootNode.id === childToBeRemoved.id ? this.nestedDataSource.data[0] : parentRootNode; + + const parentNode = this.findParent(childToBeRemoved.parentId, rootNode); + if (parentNode) { + console.log("On removeItem with node : ", childToBeRemoved, "and parent : ", parentNode); + const index = parentNode.children.indexOf(childToBeRemoved); + if (index !== -1) { + parentNode.children.splice(index, 1); + this.parentNodeMap.delete(childToBeRemoved); + this.dataChange.next(this.data); + } + console.log("Deleted node : ", childToBeRemoved, "and his parent : ", parentNode); + this.sendNodeMetadata(parentNode); + } + } + + /** Update an item Tree node */ + updateItem(newRootNode: FileNode, allData:FileNode) { + for (let idx in allData.children) { + if (allData.children[idx].id === newRootNode.id) { + allData.children[idx] = newRootNode; + } else { + this.updateItem(newRootNode,allData.children[idx]); + } + } + } + + + /** Find a parent tree node */ + findParent(id: number, parentNode: FileNode): FileNode { + console.log("On findParent with parent node id : ", id , " and parent : ", parentNode); + return this.fileService.getFileNodeById(parentNode,id) + } + + findParentLevel(nodeToFind:FileNode): number { + let parentNodeToSearch = this.nestedDataSource.data; + for (let node of parentNodeToSearch) { + // For nested elements + if (this.rootElementName === node.name && this.rootElementName === nodeToFind.name && + parentNodeToSearch[0].name === node.name && parentNodeToSearch[0].id !== nodeToFind.id) { + return 1; + } + return nodeToFind.level - node.level; + } + } + + // Checks if a node belongs to the clicked tab collection. + // For a given node, searches the required node in the seda.json file and + // returns true if the node's value of "Collection" is equal to the clicked tab + isPartOfCollection(node:FileNode):boolean { + return this.collectionName === node.sedaData.Collection; + } + + shouldBeOnTab(node:FileNode):boolean{ + let rootNodeName = this.fileService.rootTabMetadataName.getValue(); + let filteredNode = Object.assign({} as FileNode,this.nestedDataSource.data[0]); + + let includedDataObjectPackageChildren = ['DataObjectGroup', 'BinaryDataObject','PhysicalDataObject'] + if (rootNodeName === 'DataObjectPackage' && !includedDataObjectPackageChildren.includes(node.name)) { + filteredNode.children = filteredNode.children.filter(child=>child.name !== 'DescriptiveMetadata' && + child.name !== 'ManagementMetadata') + let childFound = this.fileService.getFileNodeById(filteredNode,node.id) + return childFound ? true : false; + } + if (rootNodeName === 'ArchiveTransfer') { + filteredNode.children = filteredNode.children.filter(child=>child.name !== 'DataObjectPackage'); + let childFound = this.fileService.getFileNodeById(filteredNode,node.id) + return childFound ? true : false; + } + return true; + } + + + // Returns the positioning, in pixels, of a given node + calculateNodePosition(node:FileNode):string{ + //Root node name + if (node.name === this.rootElementName ){ + return new Number(28).toString(); + } + //Root children with children + if (node.children.length && node.name !== this.rootElementName) { + return (new Number((this.findParentLevel(node) * 40) -16)).toString(); + } + //Root children without children- + if ((!node.children.length && node.name !== this.rootElementName)){ + return (new Number((this.findParentLevel(node) * 40) - 13)).toString(); + } + } + + + /** Error handler */ + handleError(error) { + let errorMessage = ''; + if (error.error instanceof ErrorEvent) { + // Get client-side error + errorMessage = error.error.message; + } else { + // Get server-side error + errorMessage = `Error Code: ${error.status} Message: ${error.message}`; + } + window.alert(errorMessage); + return throwError(errorMessage); + } + + showAllowedChidren(node: FileNode) { + if (this.childrenListToExclude) { + return !this.childrenListToExclude.includes(node.name); + } + } + + addArchiveUnit(node: FileNode) { + if(node.name == 'DescriptiveMetadata' || node.name == 'ArchiveUnit') { + console.log("Clicked seda node : ", node.sedaData); + this.insertItem(node, ['ArchiveUnit']); + // Refresh the metadata tree and the metadatatable + this.renderChanges(node); + this.loggingService.showSuccess('La métadonnée ArchiveUnit a été ajoutée'); + } + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.module.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.module.ts new file mode 100644 index 00000000..832564d7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/file-tree.module.ts @@ -0,0 +1,92 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule,ReactiveFormsModule} from '@angular/forms'; +import { MatMomentDateModule } from '@angular/material-moment-adapter'; +import { SharedModule } from '../shared/shared.module'; +import { UserActionsModule } from '../user-actions/user-actions.module'; +import { DpDatePickerModule } from 'ng2-date-picker'; + +import { MatTableModule} from '@angular/material/table'; +import { PastisMaterialModule } from '../material.module' + +import { + MAT_RIPPLE_GLOBAL_OPTIONS, + RippleGlobalOptions + +} from '@angular/material'; + + +import { FileTreeMetadataComponent } from './file-tree-metadata/file-tree-metadata.component'; +import { FileTreeComponent } from './file-tree.component'; +import { FiletreeFilterPipe } from './pipes/filetree-filter.pipe'; +import { EditAttributesPopupComponent } from './file-tree-metadata/edit-attributes/edit-attributes.component'; +import { PastisDialogConfirmComponent } from '../shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { PastisUnderConstructionComponent } from '../shared/pastis-under-construction/pastis-under-construction.component'; +const globalRippleConfig: RippleGlobalOptions = { + disabled: true, + animation: { + enterDuration: 0, + exitDuration: 0 + } +}; +@NgModule({ + imports: [ + CommonModule, + PastisMaterialModule, + FormsModule, + ReactiveFormsModule, + MatTableModule, + SharedModule, + UserActionsModule, + DpDatePickerModule + ], + exports: [ + FileTreeComponent, + FileTreeMetadataComponent + ], + providers:[{provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: {disabled: true}}], + declarations: [FileTreeMetadataComponent, FileTreeComponent,FiletreeFilterPipe, + EditAttributesPopupComponent], + entryComponents: [FileTreeComponent,PastisDialogConfirmComponent,PastisUnderConstructionComponent, EditAttributesPopupComponent] +}) + +export class FileTreeModule { + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.spec.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.spec.ts new file mode 100644 index 00000000..bfdfb1e8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.spec.ts @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { FiletreeFilterPipe } from './filetree-filter.pipe'; + +describe('FiletreeFilterPipe', () => { + it('create an instance', () => { + const pipe = new FiletreeFilterPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.ts b/ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.ts new file mode 100644 index 00000000..de9f3559 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/file-tree/pipes/filetree-filter.pipe.ts @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'filetreeFilter' +}) +export class FiletreeFilterPipe implements PipeTransform { + + transform(value: any, ...args: any[]): any { + return null; + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/home/home.component.html b/ui/ui-frontend/projects/pastis/src/app/home/home.component.html new file mode 100644 index 00000000..ed77eb9c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/home/home.component.html @@ -0,0 +1,30 @@ +<ngx-ui-loader></ngx-ui-loader> + +<button *ngIf="!opened" + mat-button class="pastis-btn-show-profile" + disableRipple="true" + (click)="openSideNav()"> + <mat-icon class="pastis-icon-show-profile">keyboard_arrow_right</mat-icon> +</button> + +<mat-sidenav-container class="pastis-page-container"> + <mat-sidenav #sidenav mode="side" [(opened)]="opened" (opened)="events.push('open!')" + (closed)="events.push('close!')" + class='pastis-side-nav'> + <pastis-edit-profile ></pastis-edit-profile> + </mat-sidenav> + + <mat-sidenav-content > + <div class="pastis-entete-bandeau"></div> + <div> + <pastis-file-tree-metadata style="text-align: center;"></pastis-file-tree-metadata> + <!--Check font.scss--> + <div toastContainer class="pastis-toaster-font"></div> + </div> + + </mat-sidenav-content> + +</mat-sidenav-container> + + + diff --git a/ui/ui-frontend/projects/pastis/src/app/home/home.component.scss b/ui/ui-frontend/projects/pastis/src/app/home/home.component.scss new file mode 100644 index 00000000..1bf32d30 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/home/home.component.scss @@ -0,0 +1,162 @@ +@import '../../styles.scss'; +@import '../../assets/css/colors'; +@import '../../assets/css/layout'; +@import '../../assets/css/font'; + + +.main-card { + /*max-width: 1024px;*/ + margin: 5px; + } + +.grid-tile-main { + border: solid 1px lightgray; + //border-radius: 25px; + } + +.grid-title { + position:absolute; + left: 10px; + top: 10px; + font-size: 95%; +} + +.toolbar { + position:absolute; + //border-top-left-radius: 25px; + //border-top-right-radius: 25px; + top:0px; + font-size: 95%; + max-height: 55px; + } + +.grid-title-icon { + position: relative; + top: 5px; +} + +.buttons { + position: relative; + height: 35px; + } + .buttons-container { + position:absolute; + left: 10px; + top: 60px; + } + .buttons-divider{ + width:20px; + height:auto; + display:inline-block; +} + +.buttons-icon{ + width: 20px +} + +.example-form { + min-width: 150px; + max-width: 40px; + width: 100%; +} + +.example-full-width { + width: 10%; +} + + + +/* Absolute Center Spinner */ +.loading-indicator { + position: absolute; + z-index: 999; + height: 2em; + width: 2em; + overflow: show; + margin: auto; + top: 0; + left: 0; + bottom: 0; + right: 0; +} + +/* Transparent Overlay */ +.loading-indicator:before { + content: ''; + display: block; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0,0,0,0.3); +} + + +.example-container { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +.mat-sidenav { + width: 100% !important; + @extend .pastis-slide-nav-profile; +} + +::ng-deep .mat-drawer-inner-container { + overflow: hidden !important; +} + +.pastis-btn-show-profile{ + position: absolute; + width: 70px; + height: 70px; + left: -1px; + top: 280px; + z-index: 10001; + background-color: #604379; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + + transition-property: all; + transition-duration: .5s; + transition-timing-function: cubic-bezier(0, 1, 0.5, 1); +} + +.pastis-icon-show-profile{ + color: #FFFFFF; + margin-bottom: 14px; + margin-right: 14px; + font-size: 40px; + //box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); +} +.pastis-entete-bandeau { + @extend .pastis-bg-surface-tabs; + position: relative; + width: 100%; + height: 80px; + left: 0px; + top: 0px; +} + +.bandeau-cloche { + position: absolute; + left: 50%; + right: 16.67%; + top: 10.42%; + bottom: 8.33%; + background: #FFFFFF; +} + +.pastis-separator-bandeau { + position: absolute; + height: 11px; + left: 74.86%; + right: 24.93%; + top: 35px; + + /* White -- Hight */ + border: 2px solid #FFFFFF; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/home/home.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/home/home.component.spec.ts new file mode 100644 index 00000000..286930b8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/home/home.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture<HomeComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HomeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/home/home.component.ts b/ui/ui-frontend/projects/pastis/src/app/home/home.component.ts new file mode 100644 index 00000000..5b9c71aa --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/home/home.component.ts @@ -0,0 +1,84 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { CdkTextareaAutosize } from '@angular/cdk/text-field'; +import { Router } from '@angular/router'; +import { ToggleSidenavService } from '../core/services/toggle-sidenav.service'; +import { RegisterIconsService } from '../core/services/register-icons.service'; +import { ToastContainerDirective, ToastrService } from 'ngx-toastr'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.scss'] +}) +export class HomeComponent implements OnInit { + + + @ViewChild('treeSelector', { static: true }) tree: any; + @ViewChild('autosize', { static: false }) autosize: CdkTextareaAutosize; + @ViewChild(ToastContainerDirective, { static: true }) + toastContainer: ToastContainerDirective; + + opened: boolean; + router: string; + events: string[] = []; + + constructor(private _router: Router,private sideNavService : ToggleSidenavService, + private iconService:RegisterIconsService,private toastrService: ToastrService) { + + this.sideNavService.isOpened.subscribe(status=>{ + this.opened = status; + }) + } + + ngOnInit() { + this.iconService.registerIcons() + this.toastrService.overlayContainer = this.toastContainer; + + } + + openSideNav(){ + this.opened = true; + } + + + closeSideNav(){ + this.opened = false; + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/material.module.ts b/ui/ui-frontend/projects/pastis/src/app/material.module.ts new file mode 100644 index 00000000..2b740ded --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/material.module.ts @@ -0,0 +1,98 @@ +import { NgModule } from '@angular/core'; + +import { + MatButtonModule, + MatProgressSpinnerModule, + MatGridListModule, + MatSidenavModule, + MatTabsModule, + MatToolbarModule, + MatIconModule, + MatCardModule, + MatFormFieldModule, + MatInputModule, + MatListModule, + MatDatepickerModule, + MatNativeDateModule, + MatSelectModule, + MatOptionModule, + MatCheckboxModule, + MatRadioModule, + MatTreeModule, + MatDialogModule, + MatTableModule, + MatSortModule, + MatTooltipModule, + MatProgressBarModule, + MatMenuModule, + MatRippleModule, + MatSnackBarModule, + MatDividerModule, + MatButtonToggleModule +} from '@angular/material'; + + +@NgModule({ + imports: [ + MatButtonModule, + MatToolbarModule, + MatProgressSpinnerModule, + MatGridListModule, + MatSidenavModule, + MatCardModule, + MatDatepickerModule, + MatNativeDateModule, + MatSelectModule, + MatOptionModule, + MatCheckboxModule, + MatRadioModule, + MatTreeModule, + MatTableModule, + MatSortModule, + MatProgressBarModule, + MatMenuModule, + MatRippleModule, + MatTabsModule, + MatFormFieldModule, + MatInputModule, + MatListModule, + MatTooltipModule, + MatIconModule, + MatDialogModule, + MatSnackBarModule, + MatDividerModule, + MatButtonToggleModule + ], + exports: [ + MatButtonModule, + MatMenuModule, + MatToolbarModule, + MatCardModule, + MatProgressSpinnerModule, + MatGridListModule, + MatSidenavModule, + MatTabsModule, + MatFormFieldModule, + MatInputModule, + MatListModule, + MatDatepickerModule, + MatNativeDateModule, + MatSelectModule, + MatOptionModule, + MatCheckboxModule, + MatRadioModule, + MatTreeModule, + MatDialogModule, + MatTableModule, + MatSortModule, + MatProgressBarModule, + MatRippleModule, + MatIconModule, + MatTooltipModule, + MatSnackBarModule, + MatDividerModule, + MatButtonToggleModule + ] +}) + +export class PastisMaterialModule {} diff --git a/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.html b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.html new file mode 100644 index 00000000..56b507ed --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.html @@ -0,0 +1 @@ +<div id='profile-view'></div> diff --git a/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.scss b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.scss new file mode 100644 index 00000000..15491f6c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.scss @@ -0,0 +1,28 @@ +.svg-container { + display: inline-block; + position: relative; + width: 100%; + padding-bottom: 100%; /* aspect ratio */ + vertical-align: top; + overflow: hidden; +} +.svg-content-responsive { + display: inline-block; + position: absolute; + top: 10px; + left: 0; +} + +svg .rect { + fill: gold; + stroke: steelblue; + stroke-width: 5px; +} + +.d3{ + height:70%; overflow:auto; +} + +.d3 svg{ + height:100%; overflow:auto; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.spec.ts new file mode 100644 index 00000000..5ab62a85 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ProfileVisualizerComponent } from './profile-visualizer.component'; + +describe('SedaVisualizerComponent', () => { + let component: ProfileVisualizerComponent; + let fixture: ComponentFixture<ProfileVisualizerComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ProfileVisualizerComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ProfileVisualizerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.ts new file mode 100644 index 00000000..5efda5b0 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile-visualizer/profile-visualizer.component.ts @@ -0,0 +1,230 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; +import { SedaData } from '../file-tree/classes/seda-data'; +import { PastisApiService } from '../core'; +import { FileService} from '../core/services/file.service'; +import { FileNode, TypeConstants } from '../file-tree/classes/file-node'; +import { SedaService } from '../core/services/seda.service'; + +let d3 = require('d3'); +declare var classDiagram: any; +declare var multilineText: any; + + +@Component({ + selector: 'pastis-profile-visualizer', + templateUrl: './profile-visualizer.component.html', + styleUrls: ['./profile-visualizer.component.scss'] +}) +export class ProfileVisualizerComponent implements OnInit { + + sedaData:SedaData; + profile:FileNode; + + + private getSedaUrl = './assets/seda.json'; + classD:any + multi:any; + sedaClasses:any = [] + profileClasses:any = []; + sedaConectors:any = [] + occurence:number[][] = [] + height:number; + width:number + boxes:any; + + constructor(private pastisService: PastisApiService, + private sedaService:SedaService, + private fileService: FileService) { + this.classD = classDiagram; + this.multi = multilineText; + this.height = window.innerHeight; + this.width = window.innerWidth; + + } + + ngOnInit() { + this.fileService.getFileTreeFromApi().subscribe(profile=>{ + this.profile = profile[0]; + this.pastisService.getLocally(this.getSedaUrl).subscribe(sedaRules=> { + this.sedaData = sedaRules[0] + setTimeout(() => { + if (this.sedaData) { + this.occurence = [] + this.calculateOccurences(this.profile,1); + + this.boxes = this.classD.createClasses(this.profileClasses,svg); + // Create a set to avoid duplicate classes + let uniqueProfiles = this.profileClasses.filter (function (value:any, index:any, array:any) { + return array.indexOf (value) == index; + }); + if (this.boxes && uniqueProfiles){ + this.generateClassesFromProfile(this.profile,1); + this.generateConnectorsFromSeda(this.profile,uniqueProfiles,this.profile.id,svg,this.boxes); + } + } + }, 1000); + }) + }) + var svg = d3.select('#profile-view') + .append("div") + // Container class to make it responsive. + .classed("svg-container", true) + .append("svg") + // Responsive SVG needs these 2 attributes and no width and height attr. + .attr("preserveAspectRatio", "xMinYMin meet") + .attr("viewBox", "0 0 1300 3000") + // Class to make it responsive. + .classed("svg-content-responsive", true) + + + this.classD.addMarkers(svg.append('defs')); + + svg.selectAll('text').attr('font-family', 'Noto Sans Japanese'); + + + } + + generateClassesFromProfile(data:FileNode,level:number):any{ + var root:any + + if (level === 1) { + this.profileClasses.push({"x": 40 * level + 750, + "y": 70 * level, + "width":200, + "classname": data.name, + "id": data.id, + "cardinality": data.cardinality, + "parentId":data.parentId, + }) + } + root = this.profileClasses.find((e: { id: number; })=> e.id === data.id) + + for (let child of data.children) { + if (child.type === "element" && child.sedaData.Element === "Complex" ) { + // Find the children id + + let attributes:any = []; + child.children.forEach(e => { + if (e.type === 'attribute') { + attributes.push('@' + e.name + ' [' + (e.cardinality ? e.cardinality : '1') + ']') + } + // All simple elements, with their attributes + if (e.sedaData.Element === 'Simple') { + attributes.push(e.name + ' (' + (e.cardinality ? e.cardinality : '1') + ')') + //Check simple metadata documentation + if (e.documentation) {attributes.push('[ ' + e.documentation + ' ]')} + //Check all simple metadata children + if (e.children.length){ + e.children.forEach(a=> { + if (a.type === TypeConstants.attribute) { + attributes.push(e.name + ' / '+ '@' + a.name + '(' + (a.cardinality ? a.cardinality : '1') + ') ' + a.value + ' ' + a.documentation) + } + }) + } + } + }) + + //Find elements of same level + let elementsPerLevel = this.occurence.filter(e=> e[1] === child.level); + let positionOfElementInLevel = elementsPerLevel.findIndex(e=>e[0] === child.id) + this.profileClasses.push({"x": 50 + ((positionOfElementInLevel) * 250), + "y": 130 + root.y + 50 , + "width":200, + "classname": child.name, + "parentId":child.parentId, + "id": child.id, + "cardinality": data.cardinality, + "attributes": attributes} ) + if (child.children.length ){ + level = child.level + 1; + this.generateClassesFromProfile(child, level) + } + } + } + } + +calculateOccurences(data:FileNode,level:number,occurence:any=[]){ + for(let child of data.children) { + if (child.type === "element" && child.sedaData.Element === "Complex") { + this.occurence.push([child.id,child.level]); + } + if (child.children.length > 0){ + level = child.level + 1; + this.calculateOccurences(child, level,this.occurence) + } + } +} + +generateConnectorsFromSeda(profile:FileNode,generatedClases:any,parentId:any,svg:any,boxes:any){ + + if (profile.children.length ) { + for (let child of profile.children){ + if (child.type === 'element' && child.sedaData.Element === "Complex") { + // Find a if a box corresponds to the a profile child + var source:any = generatedClases.find((t: { id: number; }) => t.id === child.id) + var target:any = generatedClases.find((t: { id: number; }) => t.id === parentId) + let theTargetBox = boxes[parentId]; + if (source && target) { + let randomXPos = Math.floor(Math.random() * target.width) + target.x; + let randomYPos = Math.floor(Math.random() * 40) + 5 + //Declare an array of points that will be used to create a line beetween the boxes + this.sedaConectors.push({"points":[ + //1. Source point + {"x":source.x + source.width / 2 , "y": source.y}, + // 2. Second point + {"x":source.x + source.width / 2 , "y": source.y -randomYPos}, + // 3. Third point + {"x":randomXPos , "y": source.y -randomYPos}, + //4. Target pont + {"x": randomXPos, "y": target.classname === 'ArchiveTransfer' ? theTargetBox.bottomY() : theTargetBox.bottomY() -15 } + ],markerEnd: 'diamond'}) + } + } + + if (child.children.length > 0) { + this.generateConnectorsFromSeda(child,generatedClases,child.id,svg,boxes); + } + } + } + this.classD.createConnectors(this.sedaConectors,svg); + } + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.html b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.html new file mode 100644 index 00000000..bde1ed1c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.html @@ -0,0 +1 @@ +<p>create-profile works!</p> diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.scss b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.spec.ts new file mode 100644 index 00000000..feb71601 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CreateProfileComponent } from './create-profile.component'; + +describe('CreateProfileComponent', () => { + let component: CreateProfileComponent; + let fixture: ComponentFixture<CreateProfileComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CreateProfileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CreateProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.ts new file mode 100644 index 00000000..caf20917 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/create-profile/create-profile.component.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'pastis-create-profile', + templateUrl: './create-profile.component.html', + styleUrls: ['./create-profile.component.scss'] +}) +export class CreateProfileComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html new file mode 100644 index 00000000..fc8ea8b4 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.html @@ -0,0 +1,95 @@ +<div class="pastis-edit-profile-header"> + + <mat-icon svgIcon="close-sidenav" class="pastis-ico-close-sidenav" (click)="closeSideNav()"></mat-icon> + + <div> + <span class="pastis-edit-profile-header-name">Nom du profil d'archivage</span> + <span class="pastis-btn-pa-pua-toggle"> + <pastis-toggle-button nameOn={{puaOn}} nameOff={{puaOff}}></pastis-toggle-button> + </span> + </div> + + <div class="pastis-edit-profile-header-id">Identifiant : 1223435596993056</div> +</div> +<mat-tab-group + [selectedIndex]="activeTabIndex" + disableRipple="true" + (selectedTabChange)="loadProfile($event)" + fxFill> + + <mat-tab label="{{tabLabels[0]}}" *ngIf="canShowOnPuaMode(0)"> + <div class="pastis-tab-container"> + <pastis-pastis-under-construction style="background: darkgray;"></pastis-pastis-under-construction> + </div> + </mat-tab> + + <mat-tab label="{{tabLabels[1]}}" *ngIf="canShowOnPuaMode(1)"> + <div class="pastis-tab-container" > + <ng-template matTabContent> + + <pastis-file-tree [nestedTreeControl]="nestedTreeControl" + [nestedDataSource]="nestedDataSource" + [rootElementName] = "rootNames[1]" + [rootElementShowName]="displayedRootNames[1]" + [childrenListToExclude]="headerTabChildrenToExclude" + [shouldLoad]="isTabClicked(1)" + [collectionName]="collectionNames[1]"> + </pastis-file-tree> + </ng-template> + + </div> + </mat-tab> + + <mat-tab label="{{tabLabels[2]}}" *ngIf="canShowOnPuaMode(2)"> + <div class="pastis-tab-container"> + <ng-template matTabContent> + + <pastis-file-tree [nestedTreeControl]="nestedTreeControl" + [nestedDataSource]="nestedDataSource" + [rootElementName]="rootNames[2]" + [rootElementShowName]="displayedRootNames[2]" + [childrenListToInclude]="rulesTabChildrenToInclude" + [childrenListToExclude]="rulesTabChildrenToExclude" + [shouldLoad]="isTabClicked(2)" + [collectionName]="collectionNames[2]"> + </pastis-file-tree> + </ng-template> + + </div> + </mat-tab> + + <mat-tab label="{{tabLabels[3]}}" *ngIf="canShowOnPuaMode(3)"> + <div class="pastis-tab-container"> + <ng-template matTabContent> + <pastis-file-tree [nestedTreeControl]="nestedTreeControl" + [nestedDataSource]="nestedDataSource" + [rootElementName]="rootNames[3]" + [rootElementShowName]="displayedRootNames[3]" + [childrenListToInclude]="treeTabChildrenToInclude" + [childrenListToExclude]="treeTabChildrenToExclude" + [shouldLoad]="isTabClicked(3)" + [collectionName]="collectionNames[3]"> + </pastis-file-tree> + </ng-template> + </div> + </mat-tab> + + <mat-tab label="{{tabLabels[4]}}" *ngIf="canShowOnPuaMode(4)"> + <div class="pastis-tab-container"> + <ng-template matTabContent> + + <pastis-file-tree [nestedTreeControl]="nestedTreeControl" + [nestedDataSource]="nestedDataSource" + [rootElementName]="rootNames[4]" + [rootElementShowName]="displayedRootNames[4]" + [childrenListToInclude]="objectTabChildrenToInclude" + [childrenListToExclude]="objectTabChildrenToExclude" + [shouldLoad]="isTabClicked(4)" + [collectionName]="collectionNames[4]"> + </pastis-file-tree> + </ng-template> + + </div> + </mat-tab> + +</mat-tab-group> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.scss b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.scss new file mode 100644 index 00000000..de5330a3 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.scss @@ -0,0 +1,167 @@ +@import '../../../styles.scss'; + +.pastis-edit-profile-header{ + @extend .pastis-bg-surface-tabs; + width: auto !important; + height: 200px; +} + +.pastis-edit-profile-header-name{ + position: absolute; + width: 300px; + height: 29px; + left: 40px; + top: 70px; + font-family: Roboto; + font-style: normal; + font-weight: bold; + font-size: 24px; + line-height: 24px; + right: 186px; + color: #FFFFFF; +} + +.pastis-edit-profile-header-id{ + position: absolute; + width: 189px; + height: 17px; + left: 40px; + top: 110px; + + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 13px; + line-height: 20px; + /* or 154% */ + color: #FFFFFF; +} + +.pastis-edit-profile-header-button { + position: absolute; + width: 50px; + height: 50px; + left: 347px; + right: 83px; + top: 73px; + + text-align: center; + + font-size: 20px; + + + background: #FFFFFF; + border-radius: 67px; +} + +.pastis-edit-profile-header-button-text { + + font-family: Arial; + font-style: normal; + font-weight: bolder; + line-height: 23px; + margin-top: 11px; + + /* identical to box height */ + + color: #5CBAA9; +} + +// The tabs containers +::ng-deep .mat-tab-header{ + left: 40px ; + right: 40px; + bottom: 37px ; + height: 37px; + max-width: fit-content; + border:none; +} + + + +// The tab +::ng-deep.mat-tab-label{ + @extend .pastis-font-label-historique; + margin-right: 3px !important; + background: rgba(255, 255, 255, 0.3); + height: 37px !important; + padding: 0px !important; + min-width: fit-content !important; + opacity: unset !important; +} + +//The tab hover +::ng-deep.mat-tab-label:hover { + background: #FFFFFF!important; +} + +// Tab hover and tab text hover +::ng-deep.mat-tab-label:hover .mat-tab-label-content{ + text-shadow: 0.5px 0 #5E5D5D; + background: rgba(255, 255, 255, 0.3) !important; + color: #5E5D5D !important; +} + + +// The active tab (Black and bold) +::ng-deep .mat-tab-label-active{ + text-shadow: 0.5px 0 #5E5D5D; + background: #FFFFFF !important; +} + +// The tab content +::ng-deep .mat-tab-label-content{ + margin: 8px; + display: flex; + align-items: center; + color: #FFFFFF ; +} + + +// The content of the active tab +::ng-deep .mat-tab-label-active .mat-tab-label-content{ + @extend .pastis-font-informations; + color: #5E5D5D !important; +} + + +// The automatic tab pagination chevron +::ng-deep .mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination { + display: none !important; +} + +::ng-deep .mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar .pastis-ink-bar{ + height: 0px; + } + +.mat-tab-group { + max-height: 500px; +} + +.mat-tab-body .mat-tab-body-active { + overflow-x: auto !important; + overflow-y: auto !important; +} + +.mat-tab-body-content { + overflow-x: auto !important; + overflow-y: auto !important; +} + +.pastis-ico-close-sidenav{ + position: absolute; + left: 90%; + top: 1.46%; + color: #FFFFFF; + cursor: pointer; + font-size: 24px; +} + + + .pastis-btn-pa-pua-toggle{ + float: right; + right: 60px; + top: 65px; + position: relative; +} + diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.spec.ts new file mode 100644 index 00000000..97090b8a --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditProfileComponent } from './edit-profile.component'; + +describe('EditProfileComponent', () => { + let component: EditProfileComponent; + let fixture: ComponentFixture<EditProfileComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EditProfileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts new file mode 100644 index 00000000..e288f1a4 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/edit-profile/edit-profile.component.ts @@ -0,0 +1,225 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; +import { ToggleSidenavService } from '../../core/services/toggle-sidenav.service'; +import { FileService } from '../../core/services/file.service'; +import { SedaService } from '../../core/services/seda.service'; + +import { FileNode } from '../../file-tree/classes/file-node'; +import { MatTabChangeEvent, MatTreeNestedDataSource } from '@angular/material'; +import { NestedTreeControl } from '@angular/cdk/tree'; +import { BehaviorSubject } from 'rxjs'; +import { FileTreeComponent } from '../../file-tree/file-tree.component'; +import { SedaData } from '../../file-tree/classes/seda-data'; +import { NgxUiLoaderService } from 'ngx-ui-loader'; +import { PastisToogleButtonService } from '../../appshared/pastis-toggle-button/services/pastis-toogle-button.service'; + +@Component({ + selector: 'pastis-edit-profile', + templateUrl: './edit-profile.component.html', + styleUrls: ['./edit-profile.component.scss',], + //encapsulation: ViewEncapsulation.None +}) + +export class EditProfileComponent implements OnInit, OnDestroy { + + nodeToSend: FileNode; + + sedaParentNode: SedaData; + + profileRulesIsLoaded: boolean; + + loadRules: boolean; + + activeTabIndex: number; + + sideNavOpened: boolean; + + tabRootElementName:string; + + puaMode: boolean; + + puaOn: string; + + puaOff: string; + + tabRulesMap: Map<string, Map<string, string[]>>; + nodeParentChildMap: Map<string, string[]>; + + nestedTreeControl: NestedTreeControl<FileNode>; + nestedDataSource: MatTreeNestedDataSource<FileNode>; + + dataChange = new BehaviorSubject<FileNode[]>([]); + + profileTabChildrenToInclude: string[] = []; + profileTabChildrenToExclude: string[] = []; + headerTabChildrenToInclude: string[] = []; + headerTabChildrenToExclude: string[] = []; + rulesTabChildrenToInclude: string[] = []; + rulesTabChildrenToExclude: string[] = []; + treeTabChildrenToInclude: string[] = []; + treeTabChildrenToExclude: string[] = []; + objectTabChildrenToInclude: string[] = []; + objectTabChildrenToExclude: string[] = []; + + rootNames: string[] = []; + displayedRootNames: string[] = []; + tabLabels: string[] = []; + collectionNames: string[] = []; + tabShowElementRules : string [][][]= []; + + @ViewChild(FileTreeComponent, {static: false}) fileTreeComponent: FileTreeComponent; + + + constructor(private sedaService:SedaService, private fileService: FileService, + private sideNavService: ToggleSidenavService, private toggleProfileService: PastisToogleButtonService, + private loaderService:NgxUiLoaderService) { + + this.nestedTreeControl = new NestedTreeControl<FileNode>(this.getChildren); + this.nestedDataSource = new MatTreeNestedDataSource(); + + this.tabLabels.push('PROFIL','ENTÊTE','RÈGLES','ARBORESCENCE','OBJETS'); + this.collectionNames = this.tabLabels.map(name=>name.charAt(0).toUpperCase() + name.slice(1).toLowerCase()); + this.rootNames.push('','ArchiveTransfer','ManagementMetadata','DescriptiveMetadata','DataObjectPackage'); + this.displayedRootNames.push('','Entête','Règles','Unités d\'archives','Objets'); + + // Children to include or exclude + this.profileTabChildrenToInclude.push(); + this.profileTabChildrenToExclude.push(); + this.headerTabChildrenToInclude.push(); + this.headerTabChildrenToExclude.push('DataObjectPackage','DataObjectGroup','DescriptiveMetadata','ManagementMetadata','id','BinaryDataObject'); + this.rulesTabChildrenToInclude.push(); + this.rulesTabChildrenToExclude.push(); + this.treeTabChildrenToInclude.push(); + this.treeTabChildrenToExclude.push(); + this.objectTabChildrenToInclude.push('BinaryDataObject','PhysicalDataObject') + this.objectTabChildrenToExclude.push('ManagementMetadata','ArchiveUnit','DescriptiveMetadata'); + this.tabShowElementRules.push( + [this.profileTabChildrenToInclude,this.profileTabChildrenToExclude], + [this.headerTabChildrenToInclude,this.headerTabChildrenToExclude], + [this.rulesTabChildrenToInclude,this.rulesTabChildrenToExclude], + [this.treeTabChildrenToInclude,this.treeTabChildrenToExclude], + [this.objectTabChildrenToInclude,this.objectTabChildrenToExclude]) + } + ngOnInit() { + this.activeTabIndex = 1; + this.isTabClicked(this.activeTabIndex) + this.fileService.setCollectionName(this.collectionNames[this.activeTabIndex]); + this.fileService.setTabRootMetadataName(this.rootNames[this.activeTabIndex]); + this.fileService.setNewChildrenRules(this.tabShowElementRules[1]) + this.fileService.getFileTreeFromApi().subscribe(response => { + if (response) { + this.nodeToSend = response[0]; + if (this.nodeToSend){ + this.fileService.allData.next(response); + let fiteredData = this.getFilteredData(this.activeTabIndex); + this.nestedDataSource.data = fiteredData; + this.nestedTreeControl.dataNodes = fiteredData; + this.nestedTreeControl.expand(fiteredData[0]); + this.dataChange.next(fiteredData); + this.fileService.filteredNode.next(fiteredData[0]); + } + console.log("Init file tree node on file tree : %o", this.dataChange.getValue()[0]); + } + }); + this.sedaService.getSedaRules().subscribe(data=>{ + this.sedaParentNode = data[0]; + }) + this.toggleProfileService.toggleButtonMode.subscribe(puaActivated=>{ + this.puaMode = puaActivated; + this.puaOn = "PUA"; + this.puaOff = "PA"; + }) + } + + isTabClicked(i: number): boolean { + return i === this.activeTabIndex; + } + + loadProfile(event: MatTabChangeEvent) { + this.activeTabIndex = event.index; + this.loadProfileData(event.index); + } + + loadProfileData(index:number) { + this.fileService.setCollectionName(this.collectionNames[this.activeTabIndex]) + this.fileService.setTabRootMetadataName(this.rootNames[this.activeTabIndex]); + console.log("On load tab for ", this.fileService.collectionName.getValue()); + let nodeToFilter = this.rootNames[index]; + let nodeToExpand = this.rootNames[index]; + this.fileService.setNewChildrenRules(this.tabShowElementRules[index]) + let fiteredData = this.getFilteredData(index); + if (fiteredData[0]) { + this.loaderService.start(); + this.fileService.nodeChange.next(fiteredData[0]); + this.nestedDataSource.data = fiteredData; + this.nestedTreeControl.dataNodes = fiteredData; + this.nestedTreeControl.expand(fiteredData[0]); + this.sedaService.selectedSedaNodeParent.next(this.sedaService.getSedaNodeRecursively(this.sedaParentNode,nodeToFilter)) + console.log("Root seda is ", this.sedaService.selectedSedaNodeParent.getValue()); + this.fileTreeComponent.sendNodeMetadata(fiteredData[0]); + } + this.loaderService.stop(); + + } + + getFilteredData(index:number):FileNode[]{ + if(this.nodeToSend) { + let nodeNameToFilter = this.rootNames[index]; + let currentNode = this.fileService.getFileNodeLocally(this.fileService.allData.getValue()[0],nodeNameToFilter); + let filteredData = []; + filteredData.push(currentNode); + return filteredData; + } + } + + getChildren = (node: FileNode) => node.children; + + + closeSideNav(){ + this.sideNavService.hide() + } + + canShowOnPuaMode(tabIndex:number){ + return this.puaMode ? tabIndex < 2 : true; + } + + ngOnDestroy() { + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.html b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.html new file mode 100644 index 00000000..1928b472 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.html @@ -0,0 +1 @@ +<p>list-profile works!</p> diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.scss b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.spec.ts new file mode 100644 index 00000000..f848da4b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ListProfileComponent } from './list-profile.component'; + +describe('ListProfileComponent', () => { + let component: ListProfileComponent; + let fixture: ComponentFixture<ListProfileComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ListProfileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ListProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.ts new file mode 100644 index 00000000..5260c073 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/list-profile/list-profile.component.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'pastis-list-profile', + templateUrl: './list-profile.component.html', + styleUrls: ['./list-profile.component.scss'] +}) +export class ListProfileComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.html b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.html new file mode 100644 index 00000000..9df0576d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.html @@ -0,0 +1 @@ +<p>profile works!</p> diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.scss b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.spec.ts new file mode 100644 index 00000000..6a302217 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ProfileComponent } from './profile.component'; + +describe('ProfileComponent', () => { + let component: ProfileComponent; + let fixture: ComponentFixture<ProfileComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ProfileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.ts b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.ts new file mode 100644 index 00000000..1a337a14 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/profile.component.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'pastis-profile', + templateUrl: './profile.component.html', + styleUrls: ['./profile.component.scss'] +}) +export class ProfileComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/profile/profile.module.ts b/ui/ui-frontend/projects/pastis/src/app/profile/profile.module.ts new file mode 100644 index 00000000..d8f0484b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/profile/profile.module.ts @@ -0,0 +1,71 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { CoreModule } from './../core/core.module' +import { SharedModule } from './../shared/shared.module' +import { FileTreeModule } from './../file-tree/file-tree.module' + + +import {MatIconModule} from '@angular/material/icon' +import {MatTabsModule} from '@angular/material/tabs' + + +import {CreateProfileComponent} from '../profile/create-profile/create-profile.component' +import {EditProfileComponent} from '../profile/edit-profile/edit-profile.component' +import {ListProfileComponent} from '../profile/list-profile/list-profile.component' +import { ProfileComponent } from './profile.component'; +import { PastisMaterialModule } from '../material.module'; + + +@NgModule({ + imports: [ + CommonModule, + CoreModule, + MatIconModule, + MatTabsModule, + SharedModule, + FileTreeModule, + PastisMaterialModule + ], + exports: [CreateProfileComponent,EditProfileComponent,ListProfileComponent], + providers:[], + declarations: [ProfileComponent,CreateProfileComponent,EditProfileComponent,ListProfileComponent], + +}) +export class ProfileModule { } diff --git a/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.html b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.html new file mode 100644 index 00000000..ae6397ba --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.html @@ -0,0 +1,11 @@ + <div style="margin-bottom: -35px;"> + <p style="text-align: center;color: #adb7bd; + font-family: 'Lucida Sans', Arial, sans-serif; + font-size: 36px; line-height: 26px; margin-top:10px;margin-bottom: 5px;">Pastis Seda Visualizer</p> + <div style="text-align: center; margin-top:0px"> + <svg id="seda_legend" height=80 width=420></svg> + </div> + + </div> + + <!-- Create a div where the graph will take place --> diff --git a/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.scss b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.scss new file mode 100644 index 00000000..137800b7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.scss @@ -0,0 +1,9 @@ +body, html { + padding: 0; + background-color: white; + +} + +.container{ + width: 100vw; +} diff --git a/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.spec.ts new file mode 100644 index 00000000..f45b28b8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SedaVisualizerComponent } from './seda-visualizer.component'; + +describe('SedaVisualizerComponent', () => { + let component: SedaVisualizerComponent; + let fixture: ComponentFixture<SedaVisualizerComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ SedaVisualizerComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SedaVisualizerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.ts b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.ts new file mode 100644 index 00000000..7e60acfd --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/seda-visualizer/seda-visualizer.component.ts @@ -0,0 +1,295 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, ViewChild, ElementRef } from '@angular/core'; +import { SedaData } from '../file-tree/classes/seda-data'; +import { PastisApiService } from '../core'; +let d3 = require('d3'); + + +@Component({ + selector: 'pastis-seda-visualizer', + templateUrl: './seda-visualizer.component.html', + styleUrls: ['./seda-visualizer.component.scss'] +}) +export class SedaVisualizerComponent implements OnInit { + + @ViewChild('myDiv',{static:true}) myDiv: ElementRef; + + sedaData:SedaData; + + private getSedaUrl = './assets/seda_lower.json'; + + constructor(private pastisService: PastisApiService) { + } + + ngOnInit() { + this.pastisService.getLocally(this.getSedaUrl).subscribe(sedaRules=> { + this.sedaData = sedaRules + + let margin = { + top: 20, right: 120, bottom: 0, left: 120 + }; + let width = 1800 - margin.right - margin.left; + let height = 850 - margin.top - margin.bottom; + + let i = 0,duration = 550; + + let root:any; + + var tree = d3.layout.tree() + .size([height, width]); + + var diagonal = d3.svg.diagonal() + .projection(function(d:any) { return [d.y, d.x]; }); + + var svg = d3.select("div").append("svg") + .attr("width", width + margin.right + margin.left) + .attr("height", height + margin.top + margin.bottom) + .append("g") + .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); + + + root = this.sedaData[0]; + root.x0 = height / 2; + root.y0 = 0; + update(root); + + d3.select(self.frameElement).style("height", "500px"); + + function update(source:any) { + + // Compute the new tree layout. + var nodes = tree.nodes(root); + var links = tree.links(nodes); + + + // Normalize for fixed-depth. + nodes.forEach(function(d:any) { d.y = d.depth * 230; }); + + // Update the nodes… + var node = svg.selectAll("g.node") + .data(nodes, function(d:any) { return d.id || (d.id = ++i); }) + + // Enter any new nodes at the parent's previous position. + var nodeEnter = node.enter().append("g") + .attr("class", "node") + .attr("text", "A") + .attr("transform", function() { return "translate(" + source.y0 + "," + source.x0 + ")"; }) + .style("cursor","pointer") + .on("click", click). + on("mouseover", function(d:any) { + var g = d3.select(this); // The node + // The class is used to remove the additional text later + g.append('text') + .classed('info', true) + .attr('x', 20) + .attr('y', -10) + .text(d.Definition) + .style("font",'12px sans-serif') + .style("font-style",'italic'); + }) + .on("mouseout", function() { + // Remove the info text on mouse out. + d3.select(this).select('text.info').remove() + }); + + //Adda circle instead of a image + nodeEnter.append("circle") + .attr("r", 1e-6) + .style("stroke", "#604379") + .style("stroke-width", "2px") + .style("fill", function(d:any) { return d.children ? "#604379" : "#fff"; }); + + + /* Add image instead of a circle + nodeEnter.append("image") + .attr("xlink:href", function(d) { + if (d.Element === 'Simple') return "./assets/svg/icons/simple_icon.png"; + if (d.Element === 'Complex') return "./assets/svg/icons/complex_icon.png"; + if (d.Element === 'Attribute') return "./assets/svg/icons/attribute_icon.png"; }) + .attr("x", "-12px") + .attr("y", "-12px") + .attr("width", "24px") + .attr("height", "24px") + .attr("background-color", ); + */ + + + nodeEnter.append("text") + .attr("x", function(d:any) { return d.children || d._children ? -16 : 13; }) + .attr("dy", ".35em") + .attr("text-anchor", function(d:any) { return d.children || d._children ? "end" : "start"; }) + .text(function(d:any) { return d.Name; }) + .style("fill-opacity", 1e-6) + .style("font",'12px sans-serif') + .style("font-weight",'bold'); + + + // Letters inside circle + nodeEnter.append("text") + .attr("x", function(d:any) { return d.children || d._children ? 4 : -4; }) + .attr("text-anchor", function(d:any) { return d.children || d._children ? "end" : "start"; }) + .attr("dy", ".35em") + .attr("stroke","#65B2E4") + .attr("stroke-width","1px") + .text(function(d:any) { + if (d.Element === 'Simple') return "S"; + if (d.Element === 'Complex') return "C"; + if (d.Element === 'Attribute') return "A"; }) + .style("fill-opacity", 1e-6) + .style("font",'12px sans-serif'); + + // Transition nodes to their new position. + var nodeUpdate = node.transition() + .duration(duration) + .attr("transform", function(d:any) { return "translate(" + d.y + "," + d.x + ")"; }); + + nodeUpdate.select("circle") + .attr("r", 12) + .style("fill", function(d:any) { return d.children ? "#604379" : "#fff"; }) + + nodeUpdate.select("text") + .style("fill-opacity", 1); + + // Transition exiting nodes to the parent's new position. + var nodeExit = node.exit().transition() + .duration(duration) + .attr("transform", function() { return "translate(" + source.y + "," + source.x + ")"; }) + .remove(); + + nodeExit.select("circle") + .attr("r", 1e-6) + + nodeExit.select("text") + .style("fill-opacity", 1e-6); + + // Update the links… + var link = svg.selectAll("path.link") + .data(links, function(d:any) { return d.target.id; }); + + + // Enter any new links at the parent's previous position. + link.enter().insert("path", "g") + .style("fill","none") + .style("stroke",function (d:any) { + if (d.target.cardinality === "1-N") return "#2A9DF4"; + if (d.target.cardinality === "1") return "#1167B1"; + if (d.target.cardinality === "0-1") return "#555555"; + if (d.target.cardinality === "0-N") return "#adb7bd"; + else return "black"} + ) + .style("stroke-width","2.5px") + .attr("class", "link") + .attr("d", function() { + var o = {x: source.x0, y: source.y0}; + return diagonal({source: o, target: o}); + }); + + // Transition links to their new position. + link.transition() + .duration(duration) + .attr("d", diagonal); + + // Transition exiting nodes to the parent's new position. + link.exit().transition() + .duration(duration) + .attr("d", function() { + var o = {x: source.x, y: source.y}; + return diagonal({source: o, target: o}); + }) + .remove(); + + //Legend + // select the svg area + var svg_legend = d3.select("#seda_legend") + // Nodes + svg_legend.append("circle").attr("cx",20).attr("cy",30).attr("r", 6).attr("r", 12).style("stroke", "#604379").style("stroke-width", "2px").style("fill","#fff" ) + svg_legend.append("text").attr("x","15").attr("dy", "35").attr("stroke","#65B2E4").text("C").style("fill-opacity", 1e-6).style("font",'12px sans-serif'); + //Simple element circle and text + svg_legend.append("circle").attr("cx",180).attr("cy",30).attr("r", 6).attr("r", 12).style("stroke", "#604379").style("stroke-width", "2px").style("fill","#fff" ) + svg_legend.append("text").attr("x","176").attr("dy", "35").attr("stroke","#65B2E4").text("S").style("fill-opacity", 1e-6).style("font",'12px sans-serif'); + //Attribute circle and text + svg_legend.append("circle").attr("cx",330).attr("cy",30).attr("r", 6).attr("r", 12).style("stroke", "#604379").style("stroke-width", "2px").style("fill","#fff" ) + svg_legend.append("text").attr("x","326").attr("dy", "35").attr("stroke","#65B2E4").text("A").style("fill-opacity", 1e-6).style("font",'12px sans-serif'); + + // Cardinalities + // 1 + svg_legend.append("line").attr("x1", 50).attr("y1", 70).attr("x2", 90).attr("y2", 70).style("stroke","#1167B1").style("stroke-width","2.5"); + svg_legend.append("text").attr("x","100").attr("dy", "70").text("1").style("font-size", "15px").attr("alignment-baseline","middle") + // 1-N + svg_legend.append("line").attr("x1", 140).attr("y1", 70).attr("x2", 180).attr("y2", 70).style("stroke","#2A9DF4").style("stroke-width","2.5"); + svg_legend.append("text").attr("x","190").attr("dy", "70").text("1-N").style("font-size", "15px").attr("alignment-baseline","middle") + + svg_legend.append("line").attr("x1", 230).attr("y1", 70).attr("x2", 270).attr("y2", 70).style("stroke","#555555").style("stroke-width","2.5"); + svg_legend.append("text").attr("x","280").attr("dy", "70").text("0-1").style("font-size", "15px").attr("alignment-baseline","middle") + + svg_legend.append("line").attr("x1", 310).attr("y1", 70).attr("x2", 350).attr("y2", 70).style("stroke","#adb7bd").style("stroke-width","2.5"); + svg_legend.append("text").attr("x","360").attr("dy", "70").text("0-N").style("font-size", "15px").attr("alignment-baseline","middle") + + //Legend text + //Nodes + svg_legend.append("text").attr("x", 40).attr("y", 30).text("Complex Element").style("font-size", "15px").attr("alignment-baseline","middle") + svg_legend.append("text").attr("x", 200).attr("y", 30).text("Simple Element").style("font-size", "15px").attr("alignment-baseline","middle") + svg_legend.append("text").attr("x", 350).attr("y", 30).text("Attribute").style("font-size", "15px").attr("alignment-baseline","middle") + + //Cardinalities + + // Stash the old positions for transition. + nodes.forEach(function(d:any) { + d.x0 = d.x; + d.y0 = d.y; + }); + } + + // Toggle Children on click. + function click(d:any) { + if (d.children) { + d._children = d.children; + d.children = null; + } else { + d.children = d._children; + d._children = null; + } + update(d); + } + + }) + } + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/classes/pastis-dialog-data.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/classes/pastis-dialog-data.ts new file mode 100644 index 00000000..1c986c98 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/classes/pastis-dialog-data.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { SedaData } from "../../../file-tree/classes/seda-data"; +import { FileNode } from "../../../file-tree/classes/file-node"; +import { ComponentType } from '@angular/cdk/portal'; + +export interface PastisDialogData { + width: string; + height: string; + titleDialog: string; + subTitleDialog: string; + okLabel:string; + cancelLabel:string; + fileNode: FileNode; + disableBtnOuiOnInit:boolean; + component: ComponentType<any>; + } diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.html b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.html new file mode 100644 index 00000000..944a442f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.html @@ -0,0 +1,29 @@ + + +<!-- Pastis dialog title qnd subtitle--> +<h2 matDialogTitle class="pastis-dialog-config-title"> + <div class="barre-et-croix"> + <mat-divider class="pastis-dialog-confirm-divider"></mat-divider> + <mat-icon class="pastis-close-popup" mat-dialog-close svgIcon="close-popup" (click)="onNoClick()"></mat-icon> + </div> + <p class="pastis-dialog-subtitle"><b>{{dialogReceivedData.subTitleDialog}}</b></p> + <P class="pastis-dialog-title">{{dialogReceivedData.titleDialog}}</P> +</h2> +<!-- Pastis dialog dynamic content--> +<mat-dialog-content *ngIf="portal" style="overflow: hidden;"> + <p class="pastis-dialog-content"> + <ng-template #dialogContent [cdkPortalOutlet]="portal"></ng-template> + </p> +</mat-dialog-content> + +<!-- Pastis defaut dialog buttons--> + <mat-dialog-actions class="pastis-dialog-confirm-buttons" align="right"> + <button class="pastis-btn-oui-dialog-confirm" + [mat-dialog-close]="dataBeforeClose" + (click)="onYesClick()" + [disabled]="btnYesShouldBeDisabled">{{dialogReceivedData.okLabel}} + </button> + <button class="pastis-btn-non-dialog-confirm" + (click)="onNoClick()">{{dialogReceivedData.cancelLabel}} + </button> + </mat-dialog-actions> diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.scss b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.scss new file mode 100644 index 00000000..5527d198 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.scss @@ -0,0 +1,95 @@ +@import '../../../../assets/css/mixins'; +@import '../../../../assets/css/font'; + +.pastis-dialog-confirm{ + border-radius: 20px; + background-color: white; +} +.pastis-dialog-confirm-divider { + position: relative; + max-width: 90%; + margin-left: 5%; + //margin-right: 40px; + margin-top: 37px; + height: 3px; + border-radius: 20px; + border: none; + @extend .pastis-bg-primary-300; +} + +.pastis-dialog-title{ + // see _fonts.scss + @extend .pastis-font-popup-title; + /* Positioning */ + position: relative; + margin-left: 5%; + margin-right: 40px; + margin-top: 10px; +} + +.pastis-dialog-subtitle { + // see _fonts.scss + @extend .pastis-font-popup-subtitle; + /* Positioning */ + position: relative; + margin-left: 5%; + margin-right: 40px; + margin-bottom: 0px; + +} + +.pastis-dialog-content{ + margin-right: 5%; + margin-left: 5%; + overflow: hidden; + } + +.pastis-dialog-confirm-buttons{ + position: relative; + margin-left: 5%; + margin-bottom: 10px; + +} + +.pastis-btn-oui-dialog-confirm{ + padding-left: 30px; + padding-right: 30px; + min-width: 92px; + height: 50px; + @extend .pastis-btn-primary-enabled; +} +.pastis-btn-oui-dialog-confirm:hover:not([disabled]){ + @extend .pastis-btn-primary-hover; +} +.pastis-btn-oui-dialog-confirm:active{ + @extend .pastis-btn-primary-focus; +} +.pastis-btn-oui-dialog-confirm:disabled{ + @extend .pastis-btn-primary-disabled; +} +.pastis-btn-non-dialog-confirm{ + padding-left: 30px; + padding-right: 30px; + min-width: 92px; + height: 50px; + margin-left: 24px; + @extend .pastis-btn-variant-enabled; +} +.pastis-btn-non-dialog-confirm:hover{ + @extend .pastis-btn-variant-hover; +} +.pastis-btn-non-dialog-confirm:active{ + @extend .pastis-btn-variant-focus; +} + +.pastis-close-popup{ + text-align: right; + margin-top: -13px; + margin-right: -3%; + float:right; +} + +.barre-et-croix{ + max-width: 95%; + cursor: pointer; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.spec.ts new file mode 100644 index 00000000..07e1bfc0 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PastisDialogConfirmComponent } from './pastis-dialog-confirm.component'; + +describe('PastisDialogConfirmComponent', () => { + let component: PastisDialogConfirmComponent; + let fixture: ComponentFixture<PastisDialogConfirmComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PastisDialogConfirmComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PastisDialogConfirmComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts new file mode 100644 index 00000000..fbbf7245 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component.ts @@ -0,0 +1,105 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, Inject, Output, EventEmitter, Input, ViewChild, TemplateRef } from '@angular/core'; +import { PastisDialogData } from '../classes/pastis-dialog-data'; +import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material'; +import { SedaService } from '../../../core/services/seda.service'; +import { ComponentPortal } from '@angular/cdk/portal'; +import { PopupService } from '../../appcore/services/popup.service'; + +@Component({ + selector: 'pastis-pastis-dialog-confirm', + templateUrl: './pastis-dialog-confirm.component.html', + styleUrls: ['./pastis-dialog-confirm.component.scss'] +}) +export class PastisDialogConfirmComponent implements OnInit { + + portal: ComponentPortal<any>; + + dataBeforeClose:any; + + btnYesShouldBeDisabled:boolean ; + + constructor( + public dialogConfirmRef: MatDialogRef<PastisDialogConfirmComponent>, + @Inject(MAT_DIALOG_DATA) public dialogReceivedData: PastisDialogData, + public sedaService: SedaService, private popUpService:PopupService) { + } + + + ngOnInit() { + console.log("Data received on confirm dialog : %o", this.dialogReceivedData); + if (this.dialogReceivedData.component){ + this.portal = new ComponentPortal(this.dialogReceivedData.component); + this.popUpService.setPopUpDataOnOpen(this.dialogReceivedData); + } + if (!this.dialogReceivedData.okLabel) this.dialogReceivedData.okLabel = 'Oui' + if (!this.dialogReceivedData.cancelLabel) this.dialogReceivedData.cancelLabel = 'Non' + + this.popUpService.popUpDataBeforeClose.subscribe(data=>{ + this.dataBeforeClose = data; + }) + this.popUpService.btnYesShoudBeDisabled.subscribe(shouldDisableButton=>{ + this.btnYesShouldBeDisabled = shouldDisableButton; + }) + this.popUpService.btnYesShoudBeDisabled.next(this.dialogReceivedData.disableBtnOuiOnInit) + + } + + onNoClick(): void { + console.log("Clicked no "); + this.popUpService.btnYesShoudBeDisabled.next(false) + this.dialogConfirmRef.close(); + } + + onYesClick(): void { + console.log("Clicked ok on dialog and send data : %o", this.dataBeforeClose); + } + + getToolTipData(data) { + if (data && data.length) { + return data.nodeName + } + } + + ngOnDestroy() { + + } + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner-interceptor.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner-interceptor.ts new file mode 100644 index 00000000..4751ded6 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner-interceptor.ts @@ -0,0 +1,87 @@ +import { Injectable, Injector } from '@angular/core'; +import { + HttpEvent, + HttpRequest, + HttpHandler, + HttpInterceptor, + HttpErrorResponse, + HttpResponse, + HttpHeaders +} from '@angular/common/http'; +import { Observable, of } from 'rxjs'; +import { finalize, catchError, tap } from 'rxjs/operators'; +import { ToastrService } from 'ngx-toastr'; +import { NotificationService } from '../../core/services/notification.service'; +import { NgxUiLoaderService } from 'ngx-ui-loader'; +import { FileService } from '../../appcore/services/file.service'; +import { SedaService } from '../../appcore/services/seda.service'; + +@Injectable({ + providedIn: 'root' +}) +export class PastisSpinnerInterceptor implements HttpInterceptor { + + count = 0; + isSedaLoaded:boolean; + + constructor(public ngxService:NgxUiLoaderService, + public notificationService: NotificationService, + public toasterService: ToastrService) { } + + intercept(req: HttpRequest<FileService | SedaService>, next: HttpHandler): Observable<HttpEvent<any>> { + + setTimeout(() => { + if (this.count < 0) return next.handle(req); + this.ngxService.start(); + this.count++; + }, 10); + + + return next.handle(req).pipe( + tap(evt => { + if (evt instanceof HttpResponse && new RegExp('createprofile').test(req.url)) { + if (evt.body) { + console.log('Inside loaderInterceptor on url : ', req.url ); + this.notificationService.showSuccess('Les données RNG ont été chargées avec succès' ); + } + } + if (evt instanceof HttpResponse && new RegExp('seda').test(req.url)) { + if (evt.body && !this.isSedaLoaded) { + console.log('Inside loaderInterceptor on url : ', req.url ); + this.notificationService.showSuccess('Les données SEDA ont été chargées avec succès'); + this.isSedaLoaded = true; + } + } + if (evt instanceof HttpResponse && new RegExp('updateprofile').test(req.url)) { + if (evt.body) { + console.log('Inside loaderInterceptor on url : ', req.url ); + this.notificationService.showSuccess('Le fichier RNG a été généré avec succès'); + } + } + }), + finalize(() => { + this.count --; + if (this.count === 0 ) this.ngxService.stop(); + }), + catchError((error: any) => { + if (error instanceof HttpErrorResponse) { + try { + this.handleError(error); + } catch (error) { + this.handleError(error); + } + //log error + } + return of(error); + })); + + } + + + handleError(error: HttpErrorResponse) { + if (new RegExp('createprofile').test(error.url)) this.notificationService.showError('Échec lors du chargement du fichier RNG'); + if (new RegExp('seda').test(error.url)) this.notificationService.showError('Échec lors du chargement des données SEDA'); + if (new RegExp('updateprofile').test(error.url)) this.notificationService.showError('Échec lors de la géneration du fichier RNG'); + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.css b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.css new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.html b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.html new file mode 100644 index 00000000..a5a6468e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.html @@ -0,0 +1,10 @@ +<!--<div *ngIf="isLoading | async" class="overlay"> + <mat-spinner [color]="color" [mode]="mode" [value]="value"></mat-spinner> +</div>--> +<img style="width: 100px; height: 100px" src="../../../assets/pastis7.png"/> +<div class="loader" *ngIf="isLoading | async"> + <div class="box"></div> + <div class="box"></div> + <div class="box"></div> + <div class="box"></div> +</div> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.scss b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.scss new file mode 100644 index 00000000..7fc2869e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.scss @@ -0,0 +1,89 @@ +$size : 30px; +$yellow_light : rgb(123, 134, 226); +$yellow : rgb(25, 46, 235); +$yellow_dark : rgb(20, 51, 150); +$duration : 4s; + +html, body { height: 100%; } +body { + display: flex; + justify-content: center; + align-items: center; + background: + radial-gradient( + + #333, + #000 + ); + transform: translateY(-$size*1.5); +} + +.transparent .mat-dialog-container { + box-shadow: none; + background: rgba(0, 0, 0, 0.9); +} + +@mixin psuedo { + display: block; + content: ""; +} + +.loader { + display: inline-flex; + flex-wrap: wrap; + width: $size * 3; + height: $size * 3; + transform-style: preserve-3d; + transform: rotateX(45deg) rotate(45deg); +} + + +.box { + position: absolute; + top: 0; + left: 0; + width: $size; + height: $size; + background: $yellow_light; + box-shadow: $size*3.75 $size*3.75 20px #000; + animation: move $duration ease-in-out infinite both; + transform-style: preserve-3d; + + @for $i from 1 through 3 { + &:nth-child(#{$i}) { + animation-delay: $i/4 * -$duration; + } + } + + &:before, &:after { + @include psuedo; + position: absolute; + width: $size; + height: $size; + } + &:before { + top: 100%; + left: 0; + background: $yellow; + transform-origin: center top; + transform: rotateX(-90deg); + } + &:after { + top: 0; + left: 100%; + background: $yellow_dark; + transform-origin: center left; + transform: rotateY(90deg); + } +} + +@keyframes move { + 0%, 100% { transform: none; } + 12.5% { transform: translate($size, 0); } + 25% { transform: translate($size*2, 0); } + 37.5% { transform: translate($size*2, $size); } + 50% { transform: translate($size*2, $size*2); } + 62.5% { transform: translate($size, $size*2); } + 75% { transform: translate(0, $size*2); } + 87.5% { transform: translate(0, $size); } +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.spec.ts new file mode 100644 index 00000000..81072b68 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PastisSpinnerComponent } from './pastis-spinner.component'; + +describe('PastisSpinnerComponent', () => { + let component: PastisSpinnerComponent; + let fixture: ComponentFixture<PastisSpinnerComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PastisSpinnerComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PastisSpinnerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.ts new file mode 100644 index 00000000..4b23a0cd --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-spinner/pastis-spinner.component.ts @@ -0,0 +1,64 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, Input, Output, OnDestroy } from '@angular/core'; +import { Subject, BehaviorSubject } from 'rxjs'; + +@Component({ + selector: 'pastis-pastis-spinner', + templateUrl: './pastis-spinner.component.html', + styleUrls: ['./pastis-spinner.component.scss'] +}) + +export class PastisSpinnerComponent implements OnDestroy{ + + isLoading = new BehaviorSubject<boolean>(false); + + + + @Input() + color: string = 'accent'; + mode = 'indeterminate'; + //@Input() + value = 20; + + constructor(){ } + + ngOnDestroy(): void { + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.html b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.html new file mode 100644 index 00000000..b5aa65d5 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.html @@ -0,0 +1,22 @@ +<!-- <label class="switch" *ngIf="status; else puaOff"> + <input type="checkbox" checked (change)="checkToggle($event)"> + <div> + <span>{{profileType}}</span> + </div> + </label> + +<ng-template #puaOff> + <label class="switch"> + <input type="checkbox" (change)="checkToggle($event)"> + <div> + <span>{{profileType}}</span> + </div> + </label> +</ng-template> +--> + +<div class="button b2" id="button-16" style="top:20px"> + <input type="checkbox" class="checkbox" (change)="checkToggle($event)"> + <div class="knobs" [attr.text-on]=nameOn [attr.text-off]=nameOff></div> + <div class="layer"></div> +</div> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.scss b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.scss new file mode 100644 index 00000000..b29e9ae2 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.scss @@ -0,0 +1,176 @@ + +// Third +/* CSS rules are kept repetitive so that you can get CSS rules for each button easily :) */ + +* +{ + user-select: none; + -webkit-tap-highlight-color:transparent; +} + +*:focus +{ + outline: none; +} + +body +{ + font-family: Arial, Helvetica, sans-serif; + margin: 0; + background-color: #f1f9f9; +} + +#app-cover +{ + display: table; + width: 600px; + margin: 80px auto; + counter-reset: button-counter; +} + +.row +{ + display: table-row; +} + +.toggle-button-cover +{ + display: table-cell; + position: relative; + width: 200px; + height: 140px; + box-sizing: border-box; +} + +.button-cover +{ + height: 100px; + margin: 20px; + background-color: #fff; + box-shadow: 0 10px 20px -8px #c5d6d6; + border-radius: 4px; +} + +.button-cover:before +{ + counter-increment: button-counter; + content: counter(button-counter); + position: absolute; + right: 0; + bottom: 0; + color: #d7e3e3; + font-size: 12px; + line-height: 1; + padding: 5px; +} + +.button-cover, .knobs, .layer +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.button +{ + position: relative; + top: 50%; + width: 74px; + height: 36px; + margin: -20px auto 0 auto; + overflow: hidden; +} + +.button.r, .button.r .layer +{ + border-radius: 100px; +} + +.button.b2 +{ + border-radius: 50px; +} + +.checkbox +{ + position: relative; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + opacity: 0; + cursor: pointer; + z-index: 3; +} + +.knobs +{ + z-index: 2; +} + +.layer +{ + width: 100%; + background-color: #ebf7fc; + transition: 0.3s ease all; + z-index: 1; +} + +/* Button 16 */ +#button-16 .knobs:before +{ + content: attr(text-off); + position: absolute; + top: 4px; + left: 4px; + width: 20px; + height: 10px; + color: #fff; + font-size: 10px; + font-weight: bold; + text-align: center; + line-height: 1; + padding: 9px 4px; + background-color: #03A9F4; + border-radius: 50px; + transition: 0.3s ease all, left 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15); +} + +#button-16 .checkbox:active + .knobs:before +{ + width: 46px; +} + +#button-16 .checkbox:checked:active + .knobs:before +{ + margin-left: -26px; +} + +#button-16 .checkbox:checked + .knobs:before +{ + content: attr(text-on); + left: 42px; + background-color: #F44336; +} + +#button-16 .checkbox:checked ~ .layer +{ + background-color: #fcebeb; +} + +#ytd-url { + display: block; + position: fixed; + right: 0; + bottom: 0; + padding: 10px 14px; + margin: 20px; + color: #fff; + font-size: 14px; + text-decoration: none; + background-color: #143240; + border-radius: 4px; + box-shadow: 0 10px 20px -5px rgba(20, 50, 64, 0.76); +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.spec.ts new file mode 100644 index 00000000..9b214dc1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PastisToggleButtonComponent } from './pastis-toggle-button.component'; + +describe('PastisToggleButtonComponent', () => { + let component: PastisToggleButtonComponent; + let fixture: ComponentFixture<PastisToggleButtonComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PastisToggleButtonComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PastisToggleButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.ts new file mode 100644 index 00000000..72743e6a --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/pastis-toggle-button.component.ts @@ -0,0 +1,29 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { PastisToogleButtonService } from './services/pastis-toogle-button.service'; + +@Component({ + selector: 'pastis-toggle-button', + templateUrl: './pastis-toggle-button.component.html', + styleUrls: ['./pastis-toggle-button.component.scss'] +}) +export class PastisToggleButtonComponent implements OnInit { + + @Input() nameOn:string; + @Input() nameOff:string; + + status:boolean + profileType:string; + constructor(private toogleService : PastisToogleButtonService) { } + + ngOnInit() { + this.toogleService.toggleButtonMode.subscribe(mode=>{ + this.status = mode; + }) + } + + checkToggle(event) { + event.target.checked ? this.toogleService.tooggleOn() : this.toogleService.tooggleOff(); + } + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.spec.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.spec.ts new file mode 100644 index 00000000..a5261e85 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { PastisToogleButtonService } from './pastis-toogle-button.service'; + +describe('PastisToogleButtonService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: PastisToogleButtonService = TestBed.get(PastisToogleButtonService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.ts new file mode 100644 index 00000000..2bd28bff --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-toggle-button/services/pastis-toogle-button.service.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class PastisToogleButtonService { + + toggleButtonMode = new BehaviorSubject<boolean>(false); + constructor() { } + + tooggleOn(){ + this.toggleButtonMode.next(true); + } + + tooggleOff(){ + this.toggleButtonMode.next(false); + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.html b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.html new file mode 100644 index 00000000..6256c176 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.html @@ -0,0 +1,11 @@ +<img src="../../../assets/pastis-marseille.jpg" class="image"> +<article> + <h1>On y est presque...</h1> + <div> + <p style="text-align: justify; margin: 10px;">Nous sommes desolé pour l'inconvenience. + Nous travaillons pour améliorer la visualisation de cette page. + Si besoin, vous pouvez toujours <a href="mailto:dad_dev@cines.fr">nous contacter</a></p> + <br/><br/> + <p style="text-align: justify; margin: 10px;" >L'équipe PASTIS</p> + </div> +</article> diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.scss b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.scss new file mode 100644 index 00000000..ba84077a --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.scss @@ -0,0 +1,32 @@ +body { + text-align: center; +} +.image { + display: block; + margin-left: auto; + margin-right: auto; + width: 200px; + height: 200px; + border-radius: 50%; + +} +h1 { + font-size: 40px; + text-align: center; +} +body { + font: 20px Helvetica, sans-serif; color: #333; + background: cornsilk; + +} +article { + display: block; + text-align: left; + margin: 0 auto; +} +a { + color: #dc8100; text-decoration: none; +} +a:hover { + color: #333; text-decoration: none; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.spec.ts new file mode 100644 index 00000000..afcaa47f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PastisUnderConstructionComponent } from './pastis-under-construction.component'; + +describe('PastisUnderConstructionComponent', () => { + let component: PastisUnderConstructionComponent; + let fixture: ComponentFixture<PastisUnderConstructionComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PastisUnderConstructionComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PastisUnderConstructionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.ts b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.ts new file mode 100644 index 00000000..3e64601c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/pastis-under-construction/pastis-under-construction.component.ts @@ -0,0 +1,52 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'pastis-pastis-under-construction', + templateUrl: './pastis-under-construction.component.html', + styleUrls: ['./pastis-under-construction.component.scss'] +}) +export class PastisUnderConstructionComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts b/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts new file mode 100644 index 00000000..2813ee0c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/shared/shared.module.ts @@ -0,0 +1,72 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { TooltipModule } from 'ng2-tooltip-directive'; +import { PastisMaterialModule} from '../material.module' + +import { PastisSpinnerComponent } from './pastis-spinner/pastis-spinner.component'; +import { PastisUnderConstructionComponent } from './pastis-under-construction/pastis-under-construction.component'; +import { PastisDialogConfirmComponent } from './pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { PastisToggleButtonComponent } from './pastis-toggle-button/pastis-toggle-button.component'; + + +@NgModule({ + declarations: [ + PastisSpinnerComponent, + PastisUnderConstructionComponent, + PastisToggleButtonComponent, + ], + imports: [CommonModule, + FormsModule, + TooltipModule, + PastisMaterialModule + +], + entryComponents: [PastisDialogConfirmComponent,PastisUnderConstructionComponent], + schemas:[CUSTOM_ELEMENTS_SCHEMA], + exports: [ + PastisSpinnerComponent, + PastisUnderConstructionComponent, + TooltipModule, + PastisMaterialModule, + PastisToggleButtonComponent + ], +}) +export class SharedModule {} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.html b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.html new file mode 100644 index 00000000..74c2cea7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.html @@ -0,0 +1,52 @@ +<div> + <!-- The input search --> + <div style="margin-bottom: 20px;"> + <input [(ngModel)]="filterName" placeholder="Chercher le nom de la métadonnée" class="filter-input-text"> + </div> + + <!-- The selected items --> + <div *ngIf="addedItems?.length > 0" style="text-align:justify"> + <div style="display: inline-flex" *ngFor="let item of addedItems;let i =index"> + <div class="selected-items-box"> + <span> + <mat-icon *ngIf="isElementComplex(item)" + svgIcon="complex-element-white2" + style="vertical-align: middle;"> + </mat-icon> + <span class="item-text">{{item}}</span> + </span> + <span class="selected-items-close" (click)="onRemoveSelectedElement(item)">×</span> + </div> + </div> + </div> + + <!-- The list of items to be selected--> + <mat-list *ngIf="allowedChildren?.length; else noItemsLeftToAdd" > + <p class="paragraph-metadata-subtitle" + [ngStyle]="{'margin-top': atLeastOneIsSelected ? '40px' : '0px'}">Les métadonnées à ajouter</p> + <mat-selection-list [disableRipple]="true" [ngModel]="addedItems" + (ngModelChange)="selectSedaElement($event)" class="list-box"> + <mat-list *ngFor="let elementName of allowedChildrenNames | filterByName:filterName;" + class="list-item"> + <span class="list-box-content"> + <mat-icon *ngIf="isElementComplex(elementName)" + svgIcon="complex-element-white2" + class="pastis-ico-complex-element"> + </mat-icon> + <span + tooltip={{getDefinition(elementName)}} + placement="right" + show-delay="0" + tooltip-class="pastis-tooltip-class">{{elementName}}</span> + </span> + <span class="ajouter" (click)="onAddSelectedElement(elementName)">Ajouter</span> + + </mat-list> + </mat-selection-list> + </mat-list> + + <ng-template #noItemsLeftToAdd> + <p class="paragraph-metadata-subtitle" style="margin-top: 40px;">Il n'y a plus de métadonnées à ajouter</p> + </ng-template> + +</div> diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.scss b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.scss new file mode 100644 index 00000000..8e17710d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.scss @@ -0,0 +1,112 @@ +@import '../../../assets/css/mixins'; +@import '../../../assets/css/font'; + +.filter-input-text { + width: 50%; + text-indent: 30px; + @extend .pastis-input-enabled; + box-shadow: 0px 0px 20px rgba(169, 169, 169, 0.3); +} + +.filter-input-text::placeholder { + @extend .pastis-input-placeholder-text; +} + +.paragraph-metadata-subtitle{ + margin-bottom: 26px; + margin-left: 0.4125em; + @extend .pastis-input-text; +} + + +.list-box{ + background: #FFFFFF; + border: 1px solid #DFDFDF; + box-sizing: border-box; + border-radius: 5px; + padding-top: 0px; + max-height: 256px; + overflow: auto; + outline: none; +} + +.list-item{ + border-bottom: 1px solid #ECECEC; + //max-height: 50px; + padding-top: 0px; + +} + +.list-item:last-child{ + border-bottom : none; +} + +.item-text{ + vertical-align: middle; + padding-left: 4px; +} + + +.selected-items-box { + @extend .pastis-font-menu; + padding: 15px; + background-color:#65B2E4; + border: 1px solid #65B2E4; + box-sizing: border-box; + color: white; + border-radius: 5px; + vertical-align: middle; + + // Positioning + margin: 0.4125em 0 0 0.4125em; + display: inline-flex; + text-align: center; + text-justify: auto; + vertical-align: middle; + color: #FFFFFF; + max-width: 100%; +} + +.selected-items-close{ + margin-left: 15px; + color: white; + font-weight: bold; + float: right; + font-size: 22px; + line-height: 20px; + cursor: pointer; + transition: 0.3s; +} + +.selected-items-close:hover { + @extend .pastis-black-medium; +} + + +.list-box-content{ + @extend .pastis-font-add-metadata-items; + margin-left: 59px; + color: #808080; +} + +.ajouter { + @extend .pastis-font-add-metadata-items; + @extend .pastis-secondary-300; + float: right; + margin-right: 33px; + cursor:pointer; + text-decoration:underline; + height: 50px; +} + +.ajouter:hover { + text-decoration:none; + //text-shadow: 1px 1px 1px #555; +} + +.pastis-ico-complex-element{ + margin-left: -39px; + margin-right: 10px; + vertical-align: middle; + display: inline-flex; +} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.spec.ts new file mode 100644 index 00000000..edd9fe18 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserActionAddMetadataComponent } from './user-action-add-metadata.component'; + +describe('UserActionAddMetadataComponent', () => { + let component: UserActionAddMetadataComponent; + let fixture: ComponentFixture<UserActionAddMetadataComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ UserActionAddMetadataComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserActionAddMetadataComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.ts new file mode 100644 index 00000000..f170bb52 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-add-metadata/user-action-add-metadata.component.ts @@ -0,0 +1,174 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, TemplateRef, Pipe, PipeTransform } from '@angular/core'; +import { SedaData, SedaElementConstants, SedaCardinalityConstants } from '../../../appfile-tree/classes/seda-data'; +import { FileNode } from '../../../appfile-tree/classes/file-node'; +import { FileService } from '../../../appcore/services/file.service'; +import { SedaService } from '../../../appcore/services/seda.service'; +import { MatDialogRef } from '@angular/material'; +import { PastisDialogConfirmComponent } from '../../../appshared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { PastisDialogData } from '../../../appshared/pastis-dialog/classes/pastis-dialog-data'; +import { PopupService } from '../../../appcore/services/popup.service'; + +@Component({ + selector: 'pastis-user-action-add-metadata', + templateUrl: './user-action-add-metadata.component.html', + styleUrls: ['./user-action-add-metadata.component.scss'] +}) +export class UserActionAddMetadataComponent implements OnInit { + + btnIsDisabled: boolean; + + sedaData:SedaData; + allowedChildren : SedaData[]; + allowedChildrenNames: string[]; + filterName:string; + namesFiltered = []; + sedaNodeFound: SedaData; + selectedSedaNode:SedaData; + addedItems:string[] = []; + dialogData: PastisDialogData; + + atLeastOneIsSelected:boolean; + customTemplate:TemplateRef<any> + fileNode: FileNode; + + constructor(public dialogRef: MatDialogRef<PastisDialogConfirmComponent>, + private fileService:FileService, private sedaService:SedaService, + private popUpService: PopupService) { } + + ngOnInit() { + this.fileService.nodeChange.subscribe(fileNode=>{this.fileNode = fileNode}) + + this.sedaService.getSedaRules().subscribe(data => { + this.sedaData = data[0]; + + this.sedaNodeFound = this.fileNode.sedaData; + this.allowedChildren = this.sedaService.findSelectableElementList(this.sedaNodeFound,this.fileNode) + .filter(e=>e.Element !== SedaElementConstants.attribute); + this.allowedChildrenNames = this.allowedChildren.map(e=>e.Name); + + }) + + // Subscribe observer to button status and + // set the inital state of the ok button to disabled + this.popUpService.btnYesShoudBeDisabled.subscribe(status=>{ + this.btnIsDisabled = status; + }) + } + + selectSedaElement(selectedElements:string[]) { + if (selectedElements.length) { + this.selectedSedaNode = this.sedaService.getSedaNode(this.sedaData,selectedElements[0]); + } + } + + isElementSelected(elementName){ + if (this.addedItems){ + return this.addedItems.includes(elementName); + } + } + + onRemoveSelectedElement(elementName){ + //this.addedItems = this.addedItems.filter(el => el !== elementName); + let indexOfElement = this.addedItems.indexOf(elementName) + if (indexOfElement >= 0) { + this.addedItems.splice(indexOfElement, 1); + } + let elementBackToTheList = this.allowedChildren.find(el=> el.Name === elementName); + if (elementBackToTheList.Cardinality !== (SedaCardinalityConstants.zeroOrMore || SedaCardinalityConstants.oreOrMore)) { + this.allowedChildrenNames.push(elementName); + } + let orderedNames = Object.values(this.allowedChildren.map(e=>e.Name)); + this.allowedChildrenNames.sort((a, b) => { + return orderedNames.indexOf(a) - orderedNames.indexOf(b) + }) + this.addedItems.length > 0 ? this.atLeastOneIsSelected = true : this.atLeastOneIsSelected = false + this.upateButtonStatusAndDataToSend(); + } + + onAddSelectedElement(elementName){ + let sedaNode = this.sedaService.findSedaChildByName(elementName, this.sedaNodeFound); + this.addedItems.push(elementName); + if (sedaNode.Cardinality !== (SedaCardinalityConstants.zeroOrMore || SedaCardinalityConstants.oreOrMore)) { + this.allowedChildrenNames = this.allowedChildrenNames.filter(name=> {return name !== elementName}); + } + this.addedItems.length > 0 ? this.atLeastOneIsSelected = true : this.atLeastOneIsSelected = false + this.upateButtonStatusAndDataToSend(); + } + + upateButtonStatusAndDataToSend(){ + this.popUpService.setPopUpDataOnClose(this.addedItems); + this.popUpService.disableYesButton(!this.atLeastOneIsSelected) + } + + onAllItemsAdded(){ + return this.allowedChildren.length === this.addedItems.length; + } + + isElementComplex(elementName){ + let childFound = this.allowedChildren.find(el=> el.Name === elementName); + if (childFound){ + return childFound.Element === SedaElementConstants.complex; + } + } + + getDefinition(elementName:string):string { + let element = this.allowedChildren.find(child=> child.Name === elementName) + return element ? element.Definition : ''; + } + + onYesClick(): void { + console.log("Clicked ok on dialog : %o" , this.selectedSedaNode); + + } + onNoClick(): void { + this.dialogRef.close(); + } + +} + +@Pipe({name: 'filterByName'}) +export class FilterByNamePipe implements PipeTransform { + transform(listOfNames: string[], nameToFilter: string): string[] { + if(!listOfNames) return null; + if(!nameToFilter) return listOfNames; + + return listOfNames.filter(name => name.toLowerCase().indexOf(nameToFilter.toLowerCase()) >= 0); + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.html b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.html new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.scss b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.spec.ts new file mode 100644 index 00000000..e50eab50 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserActionRemoveMetadataComponent } from './user-action-remove-metadata.component'; + +describe('UserActionRemoveMetadataComponent', () => { + let component: UserActionRemoveMetadataComponent; + let fixture: ComponentFixture<UserActionRemoveMetadataComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ UserActionRemoveMetadataComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserActionRemoveMetadataComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.ts new file mode 100644 index 00000000..1883c702 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-remove-metadata/user-action-remove-metadata.component.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; +import { MatDialogRef } from '@angular/material'; +import { PastisDialogConfirmComponent } from '../../../appshared/pastis-dialog/pastis-dialog-confirm/pastis-dialog-confirm.component'; +import { FileService } from '../../../appcore/services/file.service'; +import { SedaService } from '../../../appcore/services/seda.service'; +import { PopupService } from '../../../appcore/services/popup.service'; +import { PastisDialogData } from '../../../appshared/pastis-dialog/classes/pastis-dialog-data'; + +@Component({ + selector: 'pastis-user-action-remove-metadata', + templateUrl: './user-action-remove-metadata.component.html', + styleUrls: ['./user-action-remove-metadata.component.scss'] +}) +export class UserActionRemoveMetadataComponent implements OnInit { + + dataToSend:string; + + constructor(public dialogRef: MatDialogRef<PastisDialogConfirmComponent>, + private fileService:FileService, private sedaService:SedaService, + private popUpService: PopupService) { } + + ngOnInit() { + this.popUpService.setPopUpDataOnClose(this.dialogRef.componentInstance.dialogReceivedData.fileNode.name); + } +} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.html b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.html new file mode 100644 index 00000000..f8298b9b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.html @@ -0,0 +1,5 @@ + + <button class="pastis-btn-rounded-save" type="submit" (click)="postJsonToRNG()"> + <mat-icon svgIcon="save" class="pastis-ico-save"></mat-icon> + <span class="button-text"></span> + </button> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.scss b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.scss new file mode 100644 index 00000000..ff8d4c20 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.scss @@ -0,0 +1,21 @@ +@import "../../../assets/css/mixins"; +@import "../../../assets/css/layout"; +@import "../../../assets/css/colors"; +@import "../../../assets/css/font"; +@import "../../../assets/css/buttons"; + +.pastis-btn-rounded-save { + @extend .pastis-btn-rounded-standard-secondary-enabled; + } + + .pastis-btn-rounded-save:hover { + @extend .pastis-btn-rounded-standard-secondary-hover; + } + + .pastis-btn-rounded-save:active { + @extend .pastis-btn-rounded-standard-secondary-focus; + } + + .pastis-ico-save { + @extend .pastis-ico-svg; + } \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.spec.ts new file mode 100644 index 00000000..f2fb0f4b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserActionSaveProfileComponent } from './user-action-save-profile.component'; + +describe('UserActionOpenProfileComponent', () => { + let component: UserActionSaveProfileComponent; + let fixture: ComponentFixture<UserActionSaveProfileComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ UserActionSaveProfileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserActionSaveProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.ts new file mode 100644 index 00000000..e56fe00e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-save-profile/user-action-save-profile.component.ts @@ -0,0 +1,95 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit } from '@angular/core'; +import { ProfileService } from '../../../app/core/services/profile.service'; +import { FileService } from '../../../app/core/services/file.service'; +import { FileNode } from '../../../app/file-tree/classes/file-node'; + +@Component({ + selector: 'pastis-user-action-save-profile', + templateUrl: './user-action-save-profile.component.html', + styleUrls: ['./user-action-save-profile.component.scss'] +}) +export class UserActionSaveProfileComponent implements OnInit { + + data: FileNode[] = []; + + constructor(private profileService: ProfileService, private fileService: FileService) { } + + ngOnInit() { + } + + + postJsonToRNG() { + //Retrieve the current file tree data as a JSON + this.data = this.fileService.allData.getValue(); + + console.log("On export button postJsonToRNG with current data %o",this.fileService.nodeChange.getValue()); + if (this.data) { + // Send the retrieved JSON data to profile service + this.profileService.updateFile(this.data).subscribe(retrievedData => { + console.log("Data profile service: " + retrievedData) + console.log('New updated data: ', this.data); + console.log('Data: ', retrievedData); + this.downloadFile(retrievedData); + }); + } + } + + + + downloadFile(json): void { + const newBlob = new Blob([json], { type: 'application/xml' }); + if (window.navigator && window.navigator.msSaveOrOpenBlob) { + window.navigator.msSaveOrOpenBlob(newBlob); + return; + } + const data = window.URL.createObjectURL(newBlob); + const link = document.createElement('a'); + link.href = data; + link.download = 'pastis_profile.rng'; + // this is necessary as link.click() does not work on the latest firefox + link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window })); + setTimeout( () => { + // For Firefox it is necessary to delay revoking the ObjectURL + window.URL.revokeObjectURL(data); + link.remove(); + }, 100); +} + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.html b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.html new file mode 100644 index 00000000..01775472 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.html @@ -0,0 +1,9 @@ +<button class="pastis-btn-rounded-save" (click)="fileInput.click()"> + <mat-icon class="pastis-ico-open">folder_open</mat-icon> + <input #fileInput type="file" class="buttons" + accept=".rng" + ng2FileSelect style="display:none;" + [uploader]="uploader" + (change)="uploadAndReload($event)" /> +</button> + diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.scss b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.scss new file mode 100644 index 00000000..4509b929 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.scss @@ -0,0 +1,63 @@ +@import "../../../assets/css/mixins"; +@import "../../../assets/css/layout"; + + +.buttons { + position: relative; + height: 35px; + @extend .pastis-secondary-300; + @extend .pastis-btn-leading-enabled; + vertical-align: middle; + } + + .buttons:hover { + position: relative; + height: 35px; + @extend .pastis-secondary-300; + @extend .pastis-btn-leading-hover + } + + .buttons-disabled { + position: relative; + height: 35px; + //color + @extend .pastis-secondary-disabled; + //button + @extend .pastis-btn-leading-disabled + } + + .buttons:focus { + position: relative; + height: 35px; + @extend .pastis-secondary-300; + @extend .pastis-btn-leading-focus + } + + +.button-text{ + text-align: center; + vertical-align: super; + margin: auto; +} + + +.pastis-btn-rounded-save { + @extend .pastis-btn-rounded-standard-secondary-enabled; +} + +.pastis-btn-rounded-save:hover { + @extend .pastis-btn-rounded-standard-secondary-hover; +} + +.pastis-btn-rounded-save:active { + @extend .pastis-btn-rounded-standard-secondary-focus; +} + +.pastis-ico-save { + @extend .pastis-ico-svg; +} + +.pastis-ico-open { + @extend .pastis-ico-svg; + color:white; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.spec.ts new file mode 100644 index 00000000..87bd8c20 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserActionUploadProfileComponent } from './user-action-upload.component'; + +describe('UserActionUploadComponent', () => { + let component: UserActionUploadProfileComponent; + let fixture: ComponentFixture<UserActionUploadProfileComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ UserActionUploadProfileComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserActionUploadProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.ts new file mode 100644 index 00000000..625d7b17 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-action-upload-profile/user-action-upload.component.ts @@ -0,0 +1,85 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, Input, OnDestroy } from '@angular/core'; +import { FileUploader } from 'ng2-file-upload'; +import { FileService } from '../../core/services/file.service'; +import { ProfileService } from '../../core/services/profile.service'; +import { FileTreeMetadataService } from '../../../appfile-tree/file-tree-metadata/file-tree-metadata.service'; + +const URL = 'http://localhost:8051/rest/createprofilefromfile'; + +@Component({ + selector: 'pastis-user-action-upload', + templateUrl: './user-action-upload.component.html', + styleUrls: ['./user-action-upload.component.scss'] +}) +export class UserActionUploadProfileComponent implements OnInit { + + @Input() + uploader: FileUploader = new FileUploader({url: URL}); + fileToUpload: File = null; + + //@Output() + //updatedData: EventEmitter<any> = new EventEmitter(); + + constructor(private profileService: ProfileService, + private fileMetadataService:FileTreeMetadataService,private fileService: FileService) { } + + ngOnInit() { + } + + handleFileInput(files: FileList) { + this.fileToUpload = files.item(0); + } + + uploadAndReload(event) { + const fileList: FileList = event.target.files; + this.handleFileInput(fileList); + if (this.fileToUpload) { + const formData = new FormData(); + formData.append('file', this.fileToUpload, this.fileToUpload.name); + this.profileService.uploadProfile(formData).subscribe( fileData => { + if (fileData) { + console.log('File submited! : ', fileData); + this.fileService.updateFileTree(fileData); + } + }); + } + } + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.html b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.html new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.scss b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.spec.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.spec.ts new file mode 100644 index 00000000..7fac2681 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.spec.ts @@ -0,0 +1,62 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserActionsComponent } from './user-actions.component'; + +describe('ActionsComponent', () => { + let component: UserActionsComponent; + let fixture: ComponentFixture<UserActionsComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ UserActionsComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(UserActionsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.ts new file mode 100644 index 00000000..3efd527d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.component.ts @@ -0,0 +1,55 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { Component, OnInit, } from '@angular/core'; + +@Component({ + selector: 'pastis-actions', + templateUrl: './user-actions.component.html', + styleUrls: ['./user-actions.component.scss'], + providers: [] +}) +export class UserActionsComponent implements OnInit { + + + constructor() { } + + ngOnInit() { + } + + +} diff --git a/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.module.ts b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.module.ts new file mode 100644 index 00000000..73664e5f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/app/user-actions/user-actions.module.ts @@ -0,0 +1,61 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FileUploadModule } from 'ng2-file-upload'; +import { UserActionUploadProfileComponent } from './user-action-upload-profile/user-action-upload.component'; +import { SharedModule} from '../shared/shared.module' +import { FilterByNamePipe } from './user-action-add-metadata/user-action-add-metadata.component'; +import { UserActionSaveProfileComponent } from './user-action-save-profile/user-action-save-profile.component'; +import { UserActionsComponent } from './user-actions.component'; +import { PastisMaterialModule } from '../material.module'; + + +@NgModule({ + declarations: [UserActionUploadProfileComponent,FilterByNamePipe, UserActionSaveProfileComponent,UserActionsComponent], + imports: [ + CommonModule, + PastisMaterialModule, + FileUploadModule, + SharedModule + ], + exports: [UserActionUploadProfileComponent, UserActionSaveProfileComponent,FilterByNamePipe ], +}) +export class UserActionsModule { + + } diff --git a/ui/ui-frontend/projects/pastis/src/assets/.gitkeep b/ui/ui-frontend/projects/pastis/src/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-frontend/projects/pastis/src/assets/config/config.json b/ui/ui-frontend/projects/pastis/src/assets/config/config.json new file mode 100644 index 00000000..0fb959c5 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/config/config.json @@ -0,0 +1,7 @@ +{ + "apiPastisUrl": "http://vps795748.ovh.net:8051/rest", + "getProfileUrl": "/createprofile", + "uploadProfileUrl": "/createprofilefromfile", + "getFileUrl": "/getfile", + "updateFileUrl": "/updateprofile" +} diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_buttons.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_buttons.scss new file mode 100644 index 00000000..f5fb1e31 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_buttons.scss @@ -0,0 +1,145 @@ +@import "colors"; +/// Pastis background button colors +/// @author Paulo Pimenta + + +/* +--- +name: Button +category: Components +--- + +Buttons can be used with `<a>`, `<button>`, and `<input>` elements. + +Types of buttons: +- Default: Standard button +- Primary: Provides extra visual weight and identifies the primary action in a set of buttons +- Success: Indicates a successful or positive action + +```types.html + +<md-button class="md-raised pastis-btn-primary-hover">Pastis Basic</md-button> +<md-button cclass="md-warn">Pastis Bootstrap</md-button> +<md-button class="md-raised md-warn">Pastis button</md-button> + +``` +*/ +$buttons: ( + primary:( + enabled: map-get($colors, 'primary-500'), + disabled: map-get($colors, 'primary-50'), + hover: map-get($colors, 'primary-500'), + focus: map-get($colors, 'primary-500') + ), + secondary:( + enabled: map-get($colors, 'secondary-300'), + disabled: map-get($colors, 'secondary-50'), + hover: map-get($colors, 'secondary-300'), + focus: map-get($colors, 'secondary-300') + ), + variant:( + enabled: map-get($colors, 'black-low'), + disabled: map-get($colors, 'black-disabled'), + hover: map-get($colors, ' black-low'), + focus: map-get($colors, 'black-low') + ), + leading:( + enabled: #FFFFFF, + disabled: map-get($colors, 'white-disabled'), + hover: #FFFFFF, + focus: #FFFFFF + ) +); + +$rounded-buttons: ( + standard-primary:( + enabled: map-get($colors, 'primary-300'), + disabled: map-get($colors, 'primay-disabled'), + hover: map-get($colors, 'primary-200'), + focus: map-get($colors, 'primary-400') + ), + standard-secondary:( + enabled: map-get($colors, 'secondary-300'), + disabled: map-get($colors, 'secondary-disabled'), + hover: map-get($colors, 'secondary-300'), + focus: map-get($colors, 'secondary-200') + ), + standard-white:( + enabled: #FFFFFF, + disabled: map-get($colors, 'white-disabled'), + hover: #FFFFFF, + focus: #FFFFFF + ), + mini-white:( + enabled: #FFFFFF, + disabled: map-get($colors, 'white-disabled'), + hover: #FFFFFF, + focus: #FFFFFF + ), + mini-red:( + enabled: map-get($colors, 'primary-500'), + disabled: map-get($colors, 'primary-500'), + hover: map-get($colors, 'primary-500'), + focus: map-get($colors, 'primary-500') + ) +); + + /////////////////////////* Standard buttons */\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + +/*Defines buttons border*/ +$buttons-border:( + primary: none, + secondary: none, + variant: none, +); +$buttons-border-leading:( + enabled: 1px solid map-get($colors, 'secondary-300'), + disabled: 1px solid map-get($colors, 'secondary-disabled'), + hover: 1px solid map-get($colors, 'secondary-300'), + focus: 1px solid map-get($colors, 'secondary-300'), +); + +/*Defines buttons text-color*/ +$buttons-text-color:( + primary: map-get($colors, 'white-highlight'), + secondary: map-get($colors, 'white-highlight'), + variant: map-get($colors, 'white-highlight'), +); + +/*Defines buttons text-color for leading button types*/ +$buttons-text-color-leading:( + enabled: map-get($colors, 'secondary-300'), + disabled: map-get($colors, 'secondary-disabled'), + hover: map-get($colors, 'secondary-300'), + focus: map-get($colors, 'secondary-300'), +); + + +/*Defines buttons box-shadow*/ +$buttons-box-shadow:( + enabled: (0px 1px 3px rgba(0, 0, 0, 0.2), 0px 2px 2px rgba(0, 0, 0, 0.12), 0px 0px 2px rgba(0, 0, 0, 0.14)), + disabled: none, + hover: (0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)), + focus: none, +); + +/*Defines buttons box-shadow*/ +$buttons-font-text:( + primary: (font-family: Roboto,font-style: normal,font-weight: 500,font-size: 14px,line-height: 16px,text-align:center), + secondary: (font-family: Roboto,font-style: normal,font-weight: 500,font-size: 14px,line-height: 16px,text-align:center), + variant: (font-family: Roboto,font-style: normal,font-weight: 500,font-size: 14px,line-height: 16px,text-align:center), + leading: (font-family: Roboto,font-style: normal,font-weight: 500,font-size: 14px,line-height: 16px,text-align:center), +); + /////////////////////////\\\\\\\\\\\\///////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + + +/////////////////////////* Rounded buttons */\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ + + $rounded-buttons-border:( + standard-primary: none, + standard-secondary: none, + standard-white: none, + mini-white: 1px solid map-get($colors, 'secondary-300'), + mini-red: none, +); + diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_colors.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_colors.scss new file mode 100644 index 00000000..c63947e1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_colors.scss @@ -0,0 +1,42 @@ +/// Pastis base colors +/// @author Paulo Pimenta +$colors: ( + + /* Primary */ + primary-50: #FBE8EB, + primary-300:#ED778A, + primary-400 : #E74F67, + primary-500 : #E7304D, + + /* Secondary */ + secondary-disabled:#BDD9EC, + secondary-50:#BDD9EC, + secondary-200: #88C5ED, + secondary-300: #65B2E4, + secondary-400: #324a83, + secondary-500: #2e61d8, + + /*Surface*/ + surface-tabs: #604379, + surface-snackbar:#604379, + + /* Variant */ + black-low:#C1C1C1, + black-disabled:#E7E5E5, + black-medium:#747272, + black-height: #232323, + black-standard: #474747, + + /* White */ + white-highlight: #FFFFFF, + white-disabled:rgba(255, 255, 255, 0.57) +); + +$input-colors: ( + enabled: #F0F0F0, + disabled:#F0F0F0, + hover :#65B2E4, + activated :#747272, + error:#FF0000, + valid:#50D166, +); \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_dropdown.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_dropdown.scss new file mode 100644 index 00000000..0e724ff3 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_dropdown.scss @@ -0,0 +1,138 @@ +//Generate Pastis dropdown lists +@import "colors"; + + +/// Pastis dropdown border colors +/// @author Paulo Pimenta +$dropdowns-border: ( + button1:( + enabled: (1px solid map-get($colors, 'secondary-300')), + disabled: (1px solid map-get($colors, 'secondary-200')), + hover: (1px solid map-get($colors, 'secondary-200')), + focus: (1px solid map-get($colors, 'secondary-200')), + ), + button2:( + enabled: (1px solid #F0F0F0), + disabled: '', + hover: (1px solid #F0F0F0), + focus: (1px solid #F0F0F0) + ), + leading:( + enabled: (1px solid map-get($colors, 'secondary-300')), + disabled: (1px solid map-get($colors, 'secondary-disabled')), + hover: (1px solid map-get($colors, 'secondary-300')), + focus: (1px solid map-get($colors, 'secondary-300')) + ), + search:( + enabled: '', + disabled: '', + hover: '', + focus: '' + ), + special:( + enabled: (1px solid #5CBAA9) + ) +); + +$dropdowns-text: ( + button1:( + enabled: map-get($colors, 'secondary-300'), + disabled: map-get($colors, 'secondary-300'), + hover: map-get($colors, 'secondary-300'), + focus: map-get($colors, 'secondary-300'), + ), + button2:( + enabled: map-get($colors, 'primary-500'), + disabled: map-get($colors, 'primary-500'), + hover: map-get($colors, 'primary-500'), + focus:map-get($colors, 'primary-500') + ), + leading:( + enabled: map-get($colors, 'secondary-300'), + disabled: map-get($colors, 'secondary-300'), + hover: map-get($colors, 'secondary-300'), + focus: map-get($colors, 'secondary-300') + ), + search:( + enabled: #FFFFFF, + disabled: #FFFFFF, + hover: #FFFFFF, + focus: #FFFFFF + ), + special:( + enabled: #9D9D9D, + ) +); + +$dropdowns-background: ( + button1:( + enabled: #FFFFFF, + disabled: #FFFFFF, + hover: #FFFFFF, + focus: #FFFFFF, + ), + button2:( + enabled: #FFFFFF, + disabled: #FFFFFF, + hover: #FFFFFF, + focus:#FFFFFF + ), + leading:( + enabled: #FFFFFF, + disabled: #FFFFFF, + hover: #FFFFFF, + focus: #FFFFFF + ), + search:( + enabled: #FF833C, + disabled: #FF833C, + hover: #FF833C, + focus: #FF833C + ), + special:( + enabled: #FFFFFF, + ) +); + + +/*Defines dropdown font-text*/ +.mat-select-trigger { + @extend .dropdown-font-text; + display: block; + max-height: 19px; + padding-left: 10px; + padding-right: 20px; +} + +.dropdown-font-text { + padding-top: 4px; + height: 20px; + max-height: 51px; + + /* Body 2 - Roboto Regular */ + + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + /* identical to box height, or 143% */ + /* Black -- Hight */ +}; + +/*Defines dropdown default style*/ +.dropdown { + border-radius: 50px; + height: 49px; + background: #FFFFFF; + max-height: 40px; +} + +/*Defines dropdown box-shadow*/ + +$dropdowns-box-shadow: ( + enabled: (0px 1px 3px rgba(0, 0, 0, 0.2), 0px 2px 2px rgba(0, 0, 0, 0.12), 0px 0px 2px rgba(0, 0, 0, 0.14)), + disabled: '', + hover: (0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)), + focus: (0px 1px 3px rgba(0, 0, 0, 0.2), 0px 2px 2px rgba(0, 0, 0, 0.12), 0px 0px 2px rgba(0, 0, 0, 0.14)), +) \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_font.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_font.scss new file mode 100644 index 00000000..f20929fe --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_font.scss @@ -0,0 +1,246 @@ +.pastis-font-table-header { + + font-family: Roboto; + font-style: normal; + font-weight: bold; + font-size: 15px; + line-height: 60px; + + color: #666666; +} + +.pastis-font-button-white { + position: absolute; + left: 38.89%; + right: 52.08%; + top: 93.27%; + bottom: 5.09%; + + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 15px; + line-height: 18px; + text-align: center; + + color: #FFFFFF; +} + +.pastis-table-content { + /* Contrat de travail M */ + margin-left: 0px; + top: 85px; + + text-align: left; + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 15px; + line-height: 20px; + /* identical to box height, or 133% */ + color: #474D4A; +} + +.pastis-table-content-with-errors { + @extend .pastis-table-content; + color: darkred; +} + +/* Body 2 - Roboto Regular */ +.pastis-body-2 { + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + align-items: center; + text-align: center; +} + +/* Body 2 - Roboto medium */ +.pastis-font-roboto-medium { + font-family: Roboto; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 16px; + align-items: center; + text-align: center; + letter-spacing: 0.75px; +} + + +/* Body 2 - Roboto Regular */ +.pastis-font-roboto-regular { + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + /* identical to box height, or 143% */ +} + +.pastis-font-roboto-snack { + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 15px; + color: white; + opacity: 0.4; + /* identical to box height, or 133% */ +} + +.pastis-font-headline-6 { + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 16px; + line-height: 28px; + /* or 175% */ + letter-spacing: 0.5px; +} + +.pastis-font-informations { + /* INFORMATIONS */ + font-family: Roboto; + font-style: normal; + font-weight: bold; + font-size: 14px; + line-height: 16px; + /* identical to box height */ + font-variant: small-caps; +} + +.pastis-font-label { + /* Label */ + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 16px; + /* or 114% */ + letter-spacing: 0.75px; +} + +.pastis-font-label-small { + /* Label */ + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 16px; + font-variant: small-caps; + /* or 114% */ + letter-spacing: 0.75px; +} + +.pastis-font-label-historique { + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 16px; + display: flex; + align-items: center; + font-variant: small-caps; + letter-spacing: 0.75px; + +} + +.pastis-font-headline6 { + + font-family: Roboto; + font-style: normal; + font-weight: 500; + font-size: 20px; + line-height: 23px; +} + +.pastis-font-popup-subtitle{ + font-family: Roboto; + font-style: normal; + font-weight: 500; + font-size: 20px; + line-height: 35px; + letter-spacing: 0.15px; + color: #485053; +} + +.pastis-font-popup-title{ + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 26px; + line-height: 35px; + letter-spacing: 0.15px; + color: #485053; +} + +.pastis-input-text { + @extend .pastis-black-medium; + font-family: Roboto; + font-style: normal; + font-weight: 500; + font-size: 14px; + line-height: 28px; +} + +.pastis-input-placeholder-text { + /* Caption - Roboto Regular */ + @extend .pastis-black-low; + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 12px; + line-height: 16px; + letter-spacing: 0.4px; +} + +.pastis-font-menu{ + font-family: Roboto; + font-style: normal; + font-weight: 500; + font-size: 15px; + line-height: 18px; + display: flex; + align-items: center; +} + +.pastis-font-add-metadata-items{ + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 15px; + line-height: 60px; +} + +.pastis-textarea-comment{ + + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 14px; + line-height: 20px; + /* identical to box height, or 143% */ + + display: flex; + align-items: center; + letter-spacing: 0.25px; + + /* Black - Low */ + + color: #9D9D9D; +} + +.pastis-toaster-font{ + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 15px; + line-height: 20px; + /* identical to box height, or 133% */ + display: flex; + align-items: left; +float: left; + color: #FFFFFF; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_input.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_input.scss new file mode 100644 index 00000000..c338804e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_input.scss @@ -0,0 +1,23 @@ +@import 'colors'; + + $input-border-colors:( + enabled: 1px solid map-get($input-colors, 'enabled'), + disabled:1px solid map-get($input-colors, 'disabled'), + hover :1px solid map-get($input-colors, 'hover'), + activated : 1px solid map-get($input-colors, 'activated'), + error: 1px solid map-get($input-colors, 'error'), + valid: 1px solid map-get($input-colors, 'valid'), +); + +$input-box-shadow:( + enabled: (0px 1px 3px rgba(0, 0, 0, 0.2), 0px 2px 2px rgba(0, 0, 0, 0.12), 0px 0px 2px rgba(0, 0, 0, 0.14)), + disabled: none, + hover : (0px 1px 10px rgba(0, 0, 0, 0.2), 0px 4px 5px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)), + activated : none, + error: none, + valid: none, +); + + + + diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_layout.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_layout.scss new file mode 100644 index 00000000..706878c1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_layout.scss @@ -0,0 +1,374 @@ +@import 'mixins'; + + +// Breakpoints +$bp-small: 48em; // 768px +$bp-medium: 64em; // 1024px +$bp-large: 85.375em; // 1366px +$bp-xlarge: 120em; // 1920px +$bp-xxlarge: 160em; // 2560px + +// Media Queries +$mq-small: "(min-width: #{$bp-small})"; +$mq-medium: "(min-width: #{$bp-medium})"; +$mq-large: "(min-width: #{$bp-large})"; +$mq-xlarge: "(min-width: #{$bp-xlarge})"; +$mq-xxlarge: "(min-width: #{$bp-xxlarge})"; +$mq-retina: "(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)"; + +// Font-Size +$base-font-size: 1em; + +// Line-Height +$base-line-height: 1.5; +$header-line-height: 1.25; + + +body { + font-size: $base-font-size; + line-height: $base-line-height; + + @media #{$mq-medium} { + font-size: $base-font-size*1.2; + line-height: $base-line-height*1.2; + } + + @media #{$mq-large} { + font-size: $base-font-size*1.3; + } + + @media #{$mq-xlarge} { + font-size: $base-font-size*1.4; + } + + @media #{$mq-xxlarge} { + font-size: $base-font-size*1.6; + } +} + +.pastis-container { + margin: 0 4%; + + @media #{$mq-medium} { + margin: 0 8%; + } + + @media #{$mq-large} { + margin: 0 12%; + } + + @media #{$mq-xlarge} { + margin: 0 18%; + } +} + +//Pastis class header without sidebar +/// @author Paulo Pimenta +.pastis-header-no-sidebar { + position: absolute; + width: 1440px; + height: 288px; + left: 0px; + top: -2px; + background: #ECEEF3; +} + +//Pastis class header with sidebar +/// @author Paulo Pimenta +.pastis-header-with-sidebar { + @extend .pastis-header-no-sidebar; + width: 952px; +} + +.pastis-content-metadata { + position: absolute; + width: 778px; + height: 60px; + top: 359px; + right: 116px; + left: 58px; + background: #FFFFFF; +} + +.pastis-slide-nav-profile { + + max-width: 480px; + height: auto; + + //bottom: 100px; + background: #FFFFFF; +} + +.pastis-slide-nav-header { + position: absolute; + height: 200px; + background: #5CBAA9; +} + +.pastis-page-container { + + position: relative; + width: 100%; + height: 100%; + + background: #F7F8FB; +} + +.pastis-tab-container { + right: 40px; + left: 40px; + // Compensate the header of 200px + the space in beetween + //height: auto; + height: 500px; + + //overflow: auto; + width: 100%; +} + +.pastis-table-container { + position: absolute; + width: 80%; + left: 120px; + top: 359px; + margin-right: 120px; + /*Material*/ + height: 100%; +} + +.pastis-table { + width: 80%; + height: 612px; + left: 150px; + margin-right: 120px; + /*Material*/ + height: auto; + overflow: auto; + background: #FFFFFF !important; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.14) !important; + border-radius: 5px !important; +} + + +.pastis-metadata-table { + background: #FFFFFF; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.14); + border-radius: 5px; +} + +.pastis-metadata-table-col-large { + width: 200px; + height: 60px; + text-align: left; +} + +.pastis-metadata-table-col-small { + width: 120px; + height: 60px; + text-align: left; +} + +.pastis-side-nav { + background: #FFFFFF; + box-shadow: 20px 20px 80px rgba(168, 153, 153, 0.5); +} + +.pastis-ico-svg { + display: block; + margin: auto; +} + +.pastis-popup-modal-box{ + mat-dialog-container { + //padding: 0px !important; + //width: 100%; + //max-height: 100%; + background: #F7F8FB; + /* Elevation 3 */ + box-shadow: 0px 11px 15px rgba(0, 0, 0, 0.1), 0px 9px 46px rgba(0, 0, 0, 0.06), 0px 24px 38px rgba(0, 0, 0, 0.07); + border-radius: 20px; + overflow: hidden; + } +} + + +/* width */ +::-webkit-scrollbar { + width: 12px; +} + +/* Track */ +::-webkit-scrollbar-track { + background: #E6E6E6; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #F7F8FB; + border-radius: 100px; + background: #C1C1C1 +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: #747272; ; +} + +/*For non webkit browsers, such as Firefox/* + +/* (values chosen for visual consistency with Firefox) */ +:root{ + //Thumb and track colors + scrollbar-color: #F7F8FB #E6E6E6 !important; + scrollbar-width: thin !important; + scrollbar-base-color: #C1C1C1 !important; +} + +.mat-checkbox .mat-checkbox-ripple{ + display: none !important; +} + +/* PASTIS Tooltip */ + +.pastis-tooltip-class { + /* Black - Medium */ + background: #747272 !important; + border-radius: 5px !important; + padding: 15px !important; + /* Caption - Roboto Regular */ + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 12px; + line-height: 16px; + /* or 133% */ + letter-spacing: 0.4px; + /* Surface - White */ + color: #FFFFFF; +} + + +/* style de la flèche du tooltip*/ +.tooltip-right::after{ + border-color: transparent #747272 transparent transparent !important +} + +.tooltip-left::after{ + border-color: transparent transparent transparent #747272 !important +} + +.tooltip-top::after{ + border-color: #747272 transparent transparent transparent !important +} + +.tooltip-bottom::after{ + border-color: transparent transparent #747272 transparent !important +} + +.pastis-text-area { + height: 40px; + background: #FFFFFF; + border: 1px solid #F0F0F0; + box-sizing: border-box; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.14); + border-radius: 20px; + outline: none; + display: flex; + align-items: center; + text-align: center; + letter-spacing: 0.25px; + resize: none; +} + +.pastis-text-area:focus { + border: 1px solid #65B2E4; +} + + + +/* Hide the browser's default checkbox */ + +/* Styling Pastis Checkbox Starts */ +.checkbox-label { + display: inline; + position: relative; + margin: auto; + cursor: pointer; + font-size: 22px; + line-height: 24px; + clear: both; + vertical-align: middle !important; + +} + + +//Pastis checkbox +.checkbox-label input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +.checkbox-label .checkbox-custom { + position: absolute; + top: 0px; + left: 0px; + height: 16px; + width: 16px; + background-color: transparent; + border-radius: 3px; + transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + -moz-transition: all 0.3s ease-out; + -ms-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + border: 1px solid map-get($colors,'secondary-300'); +} + + +.checkbox-label input:checked ~ .checkbox-custom { + background-color: #FFFFFF; + border-radius: 3px; + -webkit-transform: rotate(0deg) scale(1); + -ms-transform: rotate(0deg) scale(1); + transform: rotate(0deg) scale(1); + opacity:1; + border: 1px solid map-get($colors,'secondary-300'); +} + + +.checkbox-label .checkbox-custom::after { + position: absolute; + content: ""; + left: 12px; + top: 12px; + height: 0px; + width: 0px; + border-radius: 3px; + border: 1px solid map-get($colors,'secondary-300'); + border-width: 0 3px 3px 0; + -webkit-transform: rotate(0deg) scale(0); + -ms-transform: rotate(0deg) scale(0); + transform: rotate(0deg) scale(0); + opacity:1; + transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + -moz-transition: all 0.3s ease-out; + -ms-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; +} + + +.checkbox-label input:checked ~ .checkbox-custom::after { + -webkit-transform: rotate(45deg) scale(1); + -ms-transform: rotate(45deg) scale(1); + transform: rotate(45deg) scale(1); + opacity:1; + left: 6px; + top: 1px; + width: 3px; + height: 10px; + border: 1px solid map-get($colors,'secondary-300'); + border-width: 0 2px 2px 0; + background-color: transparent; + border-radius: 0; +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_mixins.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_mixins.scss new file mode 100644 index 00000000..3332e43e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_mixins.scss @@ -0,0 +1,188 @@ +//Generate Pastis colors +/// @author Paulo Pimenta + +@import "colors"; +@import "buttons"; +@import "dropdown"; +@import "input"; +@import "font"; +/// Generate base colors for PASTIS +/// @author Paulo Pimenta +/// @see $colors + +@mixin color-modifiers($attribute) { + @each $name, $hex in $colors { + &-#{$name} { + #{$attribute}: $hex; + } + } +} + +/// Generate inputs for PASTIS +/// @author Paulo Pimenta +/// @see $buttons +/// @output Pastis buttons + +@mixin input-modifiers($attribute, $list) { + @each $name, $value in $list { + &-#{$name} { + @extend .pastis-input; + #{$attribute}: map-get($list,$name); + } + } +} + + +/// Generate buttons for PASTIS +/// @author Paulo Pimenta +/// @see $buttons +/// @output Pastis buttons + + +@mixin button-modifiers($attribute, $prefix: '-', $separator: '-') { + //@debug $name'....'#{$k}':'$v; + @each $name, $button in $buttons { + &#{$prefix}#{$name} { + @each $type, $value in $button { + &#{$separator}#{$type} { + //Text-colors and border + @if $name == leading { + #{color}:map-get($buttons-text-color-leading,$type); + #{border}: map-get($buttons-border-leading,$type); + } + #{color}:map-get($buttons-text-color,$name); + #{border}: map-get($buttons-border,$name); + //Box-shadow + #{box-shadow}:map-get($buttons-box-shadow,$type); + // Font-button - has sub-items + @each $k, $v in map-get($buttons-font-text,$name){#{$k}:$v;} + @extend .pastis-btn; + #{$attribute}: $value; + } + } + } + } +} + +@mixin rounded-button-modifiers($attribute, $prefix: '-', $separator: '-') { + @each $name, $button in $rounded-buttons { + &#{$prefix}#{$name} { + @each $type, $value in $button { + &#{$separator}#{$type} { + //Box-shadow (reused from button) + #{box-shadow}:map-get($buttons-box-shadow,$type); + #{border}:map-get($rounded-buttons-border,$name); + //Box-shadow (mini-white-only)rounded-buttons-border + @if $name == mini-white{ + #{box-shadow}:none; + } + //Rounded button Border + @each $k, $v in map-get($buttons-font-text,$name){#{$k}:$v; } + @extend .pastis-btn-rounded; + #{$attribute}: $value; + } + } + } + } +} + + + +@mixin dropdown-modifiers($attribute, $class-iterator, $prefix: '-', $separator: '-') { + @each $name, $dropdown in $class-iterator { + &#{$prefix}#{$name} { + @each $type, $value in $dropdown { + &#{$separator}#{$type} { + #{box-shadow}: map-get($dropdowns-box-shadow, $type); + #{$attribute}: $value; + } + } + } + } +} + +@mixin dropdown-text-modifiers($attribute, $class-iterator, $prefix: '-', $separator: '-') { + @each $name, $dropdown in $class-iterator { + &#{$prefix}#{$name} { + @each $type, $value in $dropdown { + &#{$separator}#{$type} { + #{$attribute}: $value; + } + } + } +} +} + + +/* Generates colors for Pastis. +Ex : .pastis-secondary-200 { + } +See _colors.scss */ + +.pastis { + @include color-modifiers('color'); +} + +/* Generates background colors for Pastis. +Ex : .pastis-bg-secondary-200 { + } +See _colors.scss */ +.pastis-bg { + @include color-modifiers('background'); +} + +.pastis-bgcolor { + @include color-modifiers('background-color'); +} +/* Generates buttons for Pastis. +Buttons can be primary, secondary; +Additionally they can be : +activated, disabled, hover and focus +Ex : .pastis-btn-primary-hover {} +See _buttons.scss */ + +.pastis-btn { + border-radius: 50px !important; + border : 0px; + outline: none; + @include button-modifiers('background'); +} +//Ex : .pastis-btn-rounded-primary-focus {} +//Ex : .pastis-btn-rounded-mini-white-hover {} + +.pastis-btn-rounded { + border-radius: 67px; + text-align: center; + width: 50px; + height: 50px; + outline-style: none; + @include rounded-button-modifiers('background'); +} + +.pastis-dropdown-border { + @extend .dropdown; + @include dropdown-modifiers('border',$dropdowns-border); + } + + +.pastis-dropdown-background { + @extend .dropdown; + @include dropdown-modifiers('background-color',$dropdowns-background); +} + +.pastis-dropdown-text { + @extend .dropdown-font-text; + @include dropdown-text-modifiers('color',$dropdowns-text); +} + + +//Generate inputs. Ex : pastis-input-enabled, pastis-input-active +.pastis-input { + @include input-modifiers('border', $input-border-colors); + @include input-modifiers('box-shadow', $input-box-shadow); + @extend .pastis-input-text; + outline: none; + height: 50px; + box-sizing: border-box; + border-radius: 87px; +} diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_toaster.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_toaster.scss new file mode 100644 index 00000000..d18eb377 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_toaster.scss @@ -0,0 +1,207 @@ +/* based on angular-toastr css https://github.com/Foxandxss/angular-toastr/blob/cb508fe6801d6b288d3afc525bb40fee1b101650/dist/angular-toastr.css */ +@import 'mixins'; +@import 'colors'; +@import 'font'; + +/* position */ +.toast-center-center { + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + .toast-top-center { + top: 0; + right: 0; + width: 100%; + } + .toast-bottom-center { + bottom: 0; + right: 0; + width: 100%; + } + .toast-top-full-width { + top: 0; + right: 0; + width: 100%; + } + .toast-bottom-full-width { + bottom: 0; + right: 10; + float: left; + width: 100%; + } + .toast-top-left { + top: 12px; + left: 12px; + } + .toast-top-right { + top: 12px; + right: 12px; + } + .toast-bottom-right { + right: 12px; + bottom: 12px; + } + .toast-bottom-left { + bottom: 12px; + left: 12px; + } + + /* toast styles */ + .toast-title { + font-weight: bold; + } + .toast-message { + word-wrap: break-word; + margin-left: -25px; + } + .toast-message a, + .toast-message label { + color: #FFFFFF; + } + .toast-message a:hover { + color: #CCCCCC; + text-decoration: none; + } + .toast-close-button { + position: relative; + right: -0.3em; + top: -0.3em; + float: right; + font-size: 20px; + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 1px 0 #ffffff; + outline: none; + } + .toast-close-button:hover, + .toast-close-button:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + } + /*Additional properties for button version + iOS requires the button element instead of an anchor tag. + If you want the anchor version, it requires `href="#"`.*/ + button.toast-close-button { + //padding: 0; + padding-right: 650px; + cursor: pointer; + float: right; + background: transparent; + border: 0; + } + .toast-container { + pointer-events: none; + position: fixed; + z-index: 999999; + } + .toast-container * { + box-sizing: border-box; + } + .toast-container .ngx-toastr { + position: relative; + overflow: hidden; + //margin: 0 0 6px; + padding: 15px 15px 15px 50px; + width: 300px; + //border-radius: 3px 3px 3px 3px; + background-position: 120px center; + background-repeat: no-repeat; + background-size: 24px; + box-shadow: 0 0 12px #999999; + color: #FFFFFF; + + font-family: Roboto; + font-style: normal; + font-weight: normal; + padding-left: 190px; + } + .toast-container .ngx-toastr:hover { + box-shadow: 0 0 12px #000000; + opacity: 1; + cursor: pointer; + } + /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/info-circle.svg */ + .toast-info { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E"); + } + /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/times-circle.svg */ + .toast-error { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E"); + } + /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/check.svg */ + .toast-success { + //background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white' width='18px' height='18px'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3C/svg%3E"); + + } + /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/exclamation-triangle.svg */ + .toast-warning { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E"); + } + .toast-container.toast-top-center .ngx-toastr, + .toast-container.toast-bottom-center .ngx-toastr { + width: 300px; + margin-left: auto; + margin-right: auto; + } + .toast-container.toast-top-full-width .ngx-toastr, + .toast-container.toast-bottom-full-width .ngx-toastr { + width: 100%; + margin-left: auto; + margin-right: auto; + } + .ngx-toastr { + background-color: #030303; + pointer-events: auto; + } + .toast-success { + background-color: map-get($colors, 'surface-snackbar') + } + .toast-error { + background-color: #BD362F; + } + .toast-info { + background-color: #2F96B4; + } + .toast-warning { + background-color: #F89406; + } + .toast-progress { + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background-color: #000000; + opacity: 0.4; + } + /* Responsive Design */ + @media all and (max-width: 240px) { + .toast-container .ngx-toastr.div { + padding: 8px 8px 8px 50px; + width: 11em; + } + .toast-container .toast-close-button { + right: -0.2em; + top: -0.2em; + } + } + @media all and (min-width: 241px) and (max-width: 480px) { + .toast-container .ngx-toastr.div { + padding: 8px 8px 8px 50px; + width: 18em; + } + .toast-container .toast-close-button { + right: -0.2em; + top: -0.2em; + } + } + @media all and (min-width: 481px) and (max-width: 768px) { + .toast-container .ngx-toastr.div { + padding: 15px 15px 15px 50px; + width: 25em; + } + } + \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/_variables.scss b/ui/ui-frontend/projects/pastis/src/assets/css/_variables.scss new file mode 100644 index 00000000..ae0bf208 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/_variables.scss @@ -0,0 +1,3 @@ +@import "colors"; +@import "mixins"; + diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/angular-material.min.css b/ui/ui-frontend/projects/pastis/src/assets/css/angular-material.min.css new file mode 100644 index 00000000..fc4a7260 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/angular-material.min.css @@ -0,0 +1,6 @@ +/*! + * AngularJS Material Design + * https://github.com/angular/material + * @license MIT + * v1.1.9 + */body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex="-1"]:focus{outline:none}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{-webkit-transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;-webkit-transition:all .55s cubic-bezier(.25,.8,.25,1);transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{-webkit-transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),-webkit-transform .9s cubic-bezier(.25,.8,.25,1);transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),-webkit-transform .9s cubic-bezier(.25,.8,.25,1);transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1);transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1),-webkit-transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{-webkit-animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1);animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@-webkit-keyframes md-remove-ripple{0%{opacity:.15}to{opacity:0}}@keyframes md-remove-ripple{0%{opacity:.15}to{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.01em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;line-height:24px}.md-body-1,.md-subhead{font-weight:400;letter-spacing:.01em}.md-body-1{font-size:14px;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.01em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.02em}.md-button{letter-spacing:.01em}button,html,input,select,textarea{font-family:Roboto,Helvetica Neue,sans-serif}button,input,select,textarea{font-size:100%}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-offscreen{left:-9999px}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;-webkit-transition:none;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;-webkit-transition:none;transition:none}.md-panel._md-panel-animate-enter{opacity:1;-webkit-transition:all .3s cubic-bezier(0,0,.2,1);transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;-webkit-transition:all .3s cubic-bezier(.4,0,1,1);transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;-webkit-transition:opacity .3s cubic-bezier(0,0,.2,1);transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{-webkit-transition:opacity .3s cubic-bezier(.4,0,1,1);transition:opacity .3s cubic-bezier(.4,0,1,1)}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:transparent;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] .md-show-clear-button button{display:block;position:absolute;right:0;top:20px;width:30px;height:30px}md-autocomplete[md-floating-label] .md-show-clear-button input{padding-right:30px}[dir=rtl] md-autocomplete[md-floating-label] .md-show-clear-button input{padding-right:0;padding-left:30px}md-autocomplete md-autocomplete-wrap{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;-webkit-transition:none;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{-webkit-transition:none;transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:none;background:transparent;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete .md-show-clear-button button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:transparent;margin:auto 5px}md-autocomplete .md-show-clear-button button:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete .md-show-clear-button button:focus{outline:none}md-autocomplete .md-show-clear-button button:focus:after{-webkit-transform:scale(1);transform:scale(1);opacity:1}md-autocomplete .md-show-clear-button button md-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete .md-show-clear-button button md-icon path{stroke-width:0}md-autocomplete .md-show-clear-button button.ng-enter{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .15s ease-out;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}md-autocomplete .md-show-clear-button button.ng-enter.ng-enter-active{-webkit-transform:scale(1);transform:scale(1)}md-autocomplete .md-show-clear-button button.ng-leave{-webkit-transition:-webkit-transform .15s ease-out;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}md-autocomplete .md-show-clear-button button.ng-leave.ng-leave-active{-webkit-transform:scale(0);transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);z-index:100;height:100%}.md-virtual-repeat-container.md-autocomplete-suggestions-container .highlight{font-weight:700}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;-webkit-transition:background .15s linear;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:none}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{-webkit-transition:opacity .45s;transition:opacity .45s;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;-webkit-transition-duration:0;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;-webkit-transition:opacity .4s;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px;z-index:70;border-top-width:1px;border-top-style:solid;-webkit-transform:translate3d(0,80px,0);transform:translate3d(0,80px,0);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;-webkit-transform:translate3d(0,80px,0)!important;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{-webkit-transform:translate3d(0,100%,0)!important;transform:translate3d(0,100%,0)!important;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,Helvetica Neue,sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:-webkit-box;display:-webkit-flex;display:flex;outline:none}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap}md-bottom-sheet.md-grid md-list,md-bottom-sheet.md-grid md-list-item{-webkit-box-direction:normal;-webkit-transition:all .5s;transition:all .5s;-webkit-box-align:center;-webkit-align-items:center;align-items:center}md-bottom-sheet.md-grid md-list-item{-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 33.33333%;flex:1 1 33.33333%;max-width:33.33333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 16.66667%;flex:1 1 16.66667%;max-width:16.66667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 14.28571%;flex:1 1 14.28571%;max-width:14.28571%}}md-bottom-sheet.md-grid md-list-item:before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content,md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-align:center;border-radius:2px;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;border:0;padding:0 6px;margin:6px 8px;background:transparent;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;-webkit-transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1);transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-dense :not(.md-dense-disabled) .md-button:not(.md-dense-disabled),.md-dense>.md-button:not(.md-dense-disabled){min-height:32px;line-height:32px;font-size:13px}.md-button:focus{outline:none}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{-webkit-transition:none;transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:none}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-property:background-color,box-shadow,-webkit-transform;transition-property:background-color,box-shadow,-webkit-transform;transition-property:background-color,box-shadow,transform;transition-property:background-color,box-shadow,transform,-webkit-transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{-webkit-transition:none;transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:inherit;background-clip:padding-box;overflow:hidden;-webkit-transform:translateZ(0)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate3d(0,42px,0);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{-webkit-transform:translate3d(0,41px,0);transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate3d(0,-42px,0);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{-webkit-transform:translate3d(0,-43px,0);transform:translate3d(0,-43px,0)}.md-button-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;width:100%}.md-button-group>.md-button{-webkit-box-flex:1;-webkit-flex:1;flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card,md-card md-card-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-direction:normal}md-card md-card-header{padding:16px;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar md-icon>svg{height:inherit;width:inherit}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card>img,md-card>md-card-header img,md-card md-card-title-media img{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;display:-webkit-box;display:-webkit-flex;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px;margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto;right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:"";position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;-webkit-transition:.24s;transition:.24s;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;-webkit-transform:rotate(45deg);transform:rotate(45deg);position:absolute;left:4.66667px;top:.22222px;display:table;width:6.66667px;height:13.33333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:""}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:""}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0;margin-right:30px}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:"";display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px;float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:none}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:transparent;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px;float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:none}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:transparent}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:none}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:transparent;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{-webkit-transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}.md-calendar-month-label.md-calendar-label-clickable{cursor:pointer}.md-calendar-month-label md-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{-webkit-transform:none;transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;vertical-align:middle}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:none;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:"";speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:none;background:transparent;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-12px;top:9.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label .md-input{float:none}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto;left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}._md-datepicker-has-triangle-icon{padding-right:18px;margin-right:-18px}[dir=rtl] ._md-datepicker-has-triangle-icon{padding-right:0;padding-left:18px;margin-right:auto;margin-left:-18px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:transparent;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:-webkit-transform .2s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .2s cubic-bezier(.25,.8,.25,1);transition:transform .2s cubic-bezier(.25,.8,.25,1);transition:transform .2s cubic-bezier(.25,.8,.25,1),-webkit-transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{-webkit-transform:scale(1);transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:transparent;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;-webkit-transition:opacity .2s cubic-bezier(.5,0,.25,1);transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:none}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;bottom:-2.5px;-webkit-transform:translateX(45%);transform:translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0;-webkit-transform:translateX(-45%);transform:translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label,.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{-webkit-transform:translateY(-85px);transform:translateY(-85px);-webkit-transition:-webkit-transform .65s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .65s cubic-bezier(.25,.8,.25,1);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition:transform .65s cubic-bezier(.25,.8,.25,1),-webkit-transform .65s cubic-bezier(.25,.8,.25,1);-webkit-transition-delay:.125s;transition-delay:.125s}.md-datepicker-calendar-pane.md-pane-open .md-calendar{-webkit-transform:translateY(0);transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}.md-dialog-container,md-dialog{display:-webkit-box;display:-webkit-flex;display:flex}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-dialog.md-transition-in{opacity:1;-webkit-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}md-dialog.md-transition-in,md-dialog.md-transition-out{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-dialog.md-transition-out{opacity:0;-webkit-transform:translate(0,100%) scale(.2);transform:translate(0,100%) scale(.2)}md-dialog>form{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{-webkit-box-ordinal-group:2;-webkit-order:1;order:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:none}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-ordinal-group:3;-webkit-order:2;order:2;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px;padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin:8px 0 8px 8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0;margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full).md-is-open,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{-webkit-box-align:center;-webkit-align-items:center;align-items:center}md-fab-speed-dial md-fab-actions{display:-webkit-box;display:-webkit-flex;display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-down md-fab-actions{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-up{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-up md-fab-actions{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-left{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-left md-fab-actions{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-right md-fab-actions{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;-webkit-transition-duration:0s;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.14286s;transition-duration:.14286s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.15s;transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;-webkit-transform:scale(1);transform:scale(1)}md-grid-list{display:block;position:relative}md-grid-list,md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;top:0;bottom:0;padding:0;margin:0}md-grid-list md-grid-tile figure,md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:absolute;right:0;left:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:"";display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto;right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto;right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:" *";font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;-webkit-box-ordinal-group:2;-webkit-order:1;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;-webkit-transform:translate3d(0,28px,0) scale(1);transform:translate3d(0,28px,0) scale(1);-webkit-transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;-webkit-transform-origin:left top;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0;padding-right:3px;-webkit-transform-origin:right top;transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;-webkit-transform:translate3d(0,30px,0);transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;-webkit-transform:translate3d(0,24px,0);transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{-webkit-transition:none;transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{-webkit-box-ordinal-group:3;-webkit-order:2;order:2;display:block;margin-top:0;background:none;padding:2px 2px 1px;border-width:0 0 1px;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:none}md-input-container .md-input:invalid{outline:none;box-shadow:none}md-input-container .md-input.md-no-flex{-webkit-box-flex:0!important;-webkit-flex:none!important;flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left;padding-right:0;padding-left:2px}md-input-container .md-input-messages-animation{position:relative;-webkit-box-ordinal-group:5;-webkit-order:4;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0;padding-left:5px}md-input-container .md-input-message-animation.ng-enter-prepare,md-input-container .md-input-message-animation.ng-enter:not(.ng-enter-active),md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){-webkit-transform:translate3d(0,6px,0) scale(.75);transform:translate3d(0,6px,0) scale(.75);-webkit-transition:width .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:width .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-input-has-value label{-webkit-transition:none;transition:none}md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input,md-input-container .md-input.ng-invalid.ng-dirty{padding-bottom:0;border-width:0 0 2px}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{-webkit-transition:margin-top .4s cubic-bezier(.25,.8,.25,1);transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto;right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0;padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto;right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px;padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto;left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 72px)}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:"";display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:transparent;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.01em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner:before,md-list.md-dense md-list-item:before{content:"";min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{-webkit-box-flex:0;-webkit-flex:none;flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line:before,md-list.md-dense md-list-item.md-2-line>.md-no-style:before{content:"";min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line:before,md-list.md-dense md-list-item.md-3-line>.md-no-style:before{content:"";min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{-webkit-transition:background-color .15s linear;transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item.md-no-proxy,md-list-item .md-no-style{position:relative;padding:0 16px;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}md-list-item.md-no-proxy.md-button,md-list-item .md-no-style.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:inherit;flex-direction:inherit;-webkit-box-align:inherit;-webkit-align-items:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item.md-no-proxy.md-button,[dir=rtl] md-list-item .md-no-style.md-button{text-align:right}md-list-item.md-no-proxy.md-button>.md-ripple-container,md-list-item .md-no-style.md-button>.md-ripple-container{border-radius:0}md-list-item.md-no-proxy:focus,md-list-item .md-no-style:focus{outline:none}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner:before,md-list-item:before{content:"";min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox,md-list-item md-checkbox.md-secondary{-webkit-align-self:center;-ms-grid-row-align:center;align-self:center}md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{-webkit-box-flex:0;-webkit-flex:none;flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px;margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-shrink:0;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.01em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.01em;margin:3px 0 1px;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.01em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line:before,md-list-item.md-2-line>.md-no-style:before{content:"";min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{-webkit-align-self:flex-start;align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line:before,md-list-item.md-3-line>.md-no-style:before{content:"";min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px;max-height:calc(100vh - 10px);overflow:auto}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:.2s;transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-delay:.1s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.25s;transition-duration:.25s}md-menu-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;min-height:48px;height:48px;-webkit-align-content:center;align-content:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px}md-menu-content.md-menu-bar-menu.md-dense .md-button span{float:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-button span{float:right}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{float:right;margin:0 8px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{float:left}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:"\25BC";position:absolute;top:0;speak:none;-webkit-transform:rotate(270deg) scaleY(.45) scaleX(.9);transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{-webkit-transform:rotate(90deg) scaleY(.45) scaleX(.9);transform:rotate(90deg) scaleY(.45) scaleX(.9);right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:none;list-style:none;margin:0;padding:0;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;-webkit-transition:background-color .35s cubic-bezier(.35,0,.25,1);transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:none}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{-webkit-transition:left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1);transition:left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{-webkit-transition:left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1);transition:left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar.ng-animate{-webkit-transition:none;transition:none}md-nav-extra-content{min-height:48px;padding-right:12px}@-webkit-keyframes indeterminate-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes indeterminate-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{-webkit-animation:indeterminate-rotate 1568.63ms linear infinite;animation:indeterminate-rotate 1568.63ms linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;-webkit-transform:translate(0,0) scale(1,1);transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{-webkit-transition:all .2s linear;transition:all .2s linear;-webkit-animation:query .8s infinite cubic-bezier(.39,.575,.565,1);animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{-webkit-animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite;animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{-webkit-animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite;animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{-webkit-animation:none;animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1,md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{-webkit-animation-name:none;animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;-webkit-transition:all .2s linear;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;-webkit-animation:buffer 3s infinite linear;animation:buffer 3s infinite linear}@-webkit-keyframes query{0%{opacity:1;-webkit-transform:translateX(35%) scale(.3,1);transform:translateX(35%) scale(.3,1)}to{opacity:0;-webkit-transform:translateX(-50%) scale(0,1);transform:translateX(-50%) scale(0,1)}}@keyframes query{0%{opacity:1;-webkit-transform:translateX(35%) scale(.3,1);transform:translateX(35%) scale(.3,1)}to{opacity:0;-webkit-transform:translateX(-50%) scale(0,1);transform:translateX(-50%) scale(0,1)}}@-webkit-keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}to{opacity:1;background-position:-200px -23px}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}to{opacity:1;background-position:-200px -23px}}@-webkit-keyframes md-progress-linear-indeterminate-scale-1{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:linear;animation-timing-function:linear}36.6%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.33473,.12482,.78584,1);animation-timing-function:cubic-bezier(.33473,.12482,.78584,1)}69.15%{-webkit-transform:scaleX(.83);transform:scaleX(.83);-webkit-animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098);animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098)}to{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-scale-1{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:linear;animation-timing-function:linear}36.6%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.33473,.12482,.78584,1);animation-timing-function:cubic-bezier(.33473,.12482,.78584,1)}69.15%{-webkit-transform:scaleX(.83);transform:scaleX(.83);-webkit-animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098);animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098)}to{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@-webkit-keyframes md-progress-linear-indeterminate-1{0%{left:-105.16667%;-webkit-animation-timing-function:linear;animation-timing-function:linear}20%{left:-105.16667%;-webkit-animation-timing-function:cubic-bezier(.5,0,.70173,.49582);animation-timing-function:cubic-bezier(.5,0,.70173,.49582)}69.15%{left:21.5%;-webkit-animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635);animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635)}to{left:95.44444%}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.16667%;-webkit-animation-timing-function:linear;animation-timing-function:linear}20%{left:-105.16667%;-webkit-animation-timing-function:cubic-bezier(.5,0,.70173,.49582);animation-timing-function:cubic-bezier(.5,0,.70173,.49582)}69.15%{left:21.5%;-webkit-animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635);animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635)}to{left:95.44444%}}@-webkit-keyframes md-progress-linear-indeterminate-scale-2{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397);animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397)}19.15%{-webkit-transform:scaleX(.57);transform:scaleX(.57);-webkit-animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432);animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432)}44.15%{-webkit-transform:scaleX(.91);transform:scaleX(.91);-webkit-animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179);animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179)}to{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-scale-2{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397);animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397)}19.15%{-webkit-transform:scaleX(.57);transform:scaleX(.57);-webkit-animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432);animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432)}44.15%{-webkit-transform:scaleX(.91);transform:scaleX(.91);-webkit-animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179);animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179)}to{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@-webkit-keyframes md-progress-linear-indeterminate-2{0%{left:-54.88889%;-webkit-animation-timing-function:cubic-bezier(.15,0,.51506,.40968);animation-timing-function:cubic-bezier(.15,0,.51506,.40968)}25%{left:-17.25%;-webkit-animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372);animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372)}48.35%{left:29.5%;-webkit-animation-timing-function:cubic-bezier(.4,.62703,.6,.90203);animation-timing-function:cubic-bezier(.4,.62703,.6,.90203)}to{left:117.38889%}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.88889%;-webkit-animation-timing-function:cubic-bezier(.15,0,.51506,.40968);animation-timing-function:cubic-bezier(.15,0,.51506,.40968)}25%{left:-17.25%;-webkit-animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372);animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372)}48.35%{left:29.5%;-webkit-animation-timing-function:cubic-bezier(.4,.62703,.6,.90203);animation-timing-function:cubic-bezier(.4,.62703,.6,.90203)}to{left:117.38889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled],md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto;right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:"";position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{border-style:solid;border-width:2px;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}md-radio-button .md-off,md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%}md-radio-button .md-on{-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;-webkit-transform:scale(0);transform:scale(0)}md-radio-button.md-checked .md-on{-webkit-transform:scale(.5);transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0;margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin:0 16px 0 0}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px;margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:none}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button,md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{-webkit-transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);-webkit-transform-origin:left top;transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{-webkit-transform-origin:right top;transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{-webkit-transform:translateY(-22px) translateX(-2px) scale(.75);transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:.15s;transition-duration:.15s}.md-select-menu-container.md-active md-select-menu>*{opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-delay:.1s;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.25s;transition-duration:.25s}md-input-container>md-select{margin:0;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:" *";font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:-webkit-box;display:-webkit-flex;display:flex;margin:20px 0 26px}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:" *";font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:none}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){-webkit-transform:translate3d(0,1px,0);transform:translate3d(0,1px,0)}.md-select-value{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;text-align:end;width:24px;margin:0 4px;-webkit-transform:translate3d(0,-2px,0);transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:"\25BC";position:relative;top:2px;speak:none;font-size:13px;-webkit-transform:scaleY(.5) scaleX(1);transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-ordinal-group:2;-webkit-order:1;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(1);transform:scale(1)}md-select-menu.md-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{-webkit-transform-origin:right top;transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:auto;-webkit-transition:background .15s linear;transition:background .15s linear;padding:0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:none}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px;padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto;right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:"";position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;-webkit-transition:.24s;transition:.24s;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;-webkit-transform:rotate(45deg);transform:rotate(45deg);position:absolute;left:4.66667px;top:.22222px;display:table;width:6.66667px;height:13.33333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:""}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:""}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.66667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto;margin-right:10.66667px}md-sidenav{box-sizing:border-box;position:absolute;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-closed.md-locked-open-add,md-sidenav.md-locked-open,md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add:not(.md-locked-open-add-active){width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add-active,md-sidenav.md-closed.md-locked-open-add:not(.md-locked-open-add-active),md-sidenav.md-locked-open-remove-active{-webkit-transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2)}md-sidenav.md-locked-open-remove-active{width:0!important;min-width:0!important}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.md-sidenav-right.md-closed{-webkit-transform:translate(0,0);transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@-webkit-keyframes sliderFocusThumb{0%{-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes sliderFocusThumb{0%{-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.7);transform:scale(.7)}}@-webkit-keyframes sliderDiscreteFocusThumb{0%{-webkit-transform:scale(.7);transform:scale(.7)}50%{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(0);transform:scale(0)}}@keyframes sliderDiscreteFocusThumb{0%{-webkit-transform:scale(.7);transform:scale(.7)}50%{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(0);transform:scale(0)}}@-webkit-keyframes sliderDiscreteFocusRing{0%{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(0);transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}to{-webkit-transform:scale(0);transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:none;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:width,height;transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:left,right,bottom;transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;-webkit-transform:scale(.7);transform:scale(.7);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:"";position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;-webkit-transition:inherit;transition:inherit}md-slider .md-sign{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;-webkit-transform:scale(.4) translate3d(0,67.5px,0);transform:scale(.4) translate3d(0,67.5px,0);-webkit-transition:all .3s cubic-bezier(.35,0,.25,1);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:"";left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;-webkit-transform:translate3d(0,-8px,0);transform:translate3d(0,-8px,0);-webkit-transition:all .2s cubic-bezier(.35,0,.25,1);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;-webkit-transform:scale(.7);transform:scale(.7);opacity:0;-webkit-transition:all .35s cubic-bezier(.35,0,.25,1);transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;-webkit-transform:scale(.5);transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:none}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{-webkit-transition:none;transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{-webkit-transform:scale(.8);transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{-webkit-transform:scale(1);transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{-webkit-animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1);animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{-webkit-transform:scale(1);transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{-webkit-animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1);animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]).md-active .md-thumb,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{-webkit-transform:scale(0);transform:scale(0)}md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after{opacity:1;-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{-webkit-transform:scale(0);transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks,md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{-webkit-transform:scale(.5);transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-top:12px;padding-bottom:12px;width:48px;-webkit-align-self:center;align-self:center;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - 1px)}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;-webkit-transform:scale(.4) translate3d(67.5px,0,0);transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;-webkit-transform:translate3d(0,-8px,0);transform:translate3d(0,-8px,0);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{-webkit-transform:scale(0);transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0;right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:color,max-width;transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;-webkit-transform:translate3d(-9999px,-9999px,0);transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{-webkit-animation:subheaderStickyHoverIn .3s ease-out both;animation:subheaderStickyHoverIn .3s ease-out both}@-webkit-keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}to{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}to{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@-webkit-keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}to{box-shadow:0 0 0 0 transparent}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}to{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){-webkit-transition:margin .2s ease-out;transition:margin .2s ease-out}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{-webkit-animation:subheaderStickyHoverOut .3s ease-out both;animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}[md-swipe-left],[md-swipe-right]{touch-action:pan-y}[md-swipe-down],[md-swipe-up]{touch-action:pan-x}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:30px;line-height:28px;-webkit-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px;margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0;margin-right:inherit}md-switch[disabled],md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:-webkit-grab;cursor:grab;width:36px;height:24px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container,md-switch.md-inverted .md-container{margin-right:0;margin-left:8px}[dir=rtl] md-switch.md-inverted .md-container{margin-right:8px;margin-left:0}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:-webkit-grabbing;cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}md-switch .md-thumb{margin:0;outline:none;height:20px;width:20px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb,md-switch .md-thumb:before{position:absolute;left:0;top:0;border-radius:50%}md-switch .md-thumb:before{background-color:transparent;content:"";display:block;height:auto;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{-webkit-transition:all .08s linear;transition:all .08s linear;-webkit-transition-property:background-color,-webkit-transform;transition-property:background-color,-webkit-transform;transition-property:transform,background-color;transition-property:transform,background-color,-webkit-transform}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{-webkit-transition-delay:.05s;transition-delay:.05s}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@-webkit-keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}to{opacity:0}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}to{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;-webkit-flex-shrink:0;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat 50%;-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:none}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{-webkit-transition:none;transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}[dir=rtl] md-tabs-wrapper md-next-button,[dir=rtl] md-tabs-wrapper md-prev-button{-webkit-transform:rotateY(180deg) translateY(-50%);transform:rotateY(180deg) translateY(-50%)}md-tabs-wrapper md-prev-button{left:0;background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==")}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K")}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{-webkit-transform:translate3d(-50%,-50%,0) rotate(180deg);transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:"";display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1),-webkit-transform .5s cubic-bezier(.35,0,.25,1);position:absolute;left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:"";display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}md-tabs-content-wrapper{display:block;top:48px;overflow:hidden}md-tab-content,md-tabs-content-wrapper{position:absolute;left:0;right:0;bottom:0}md-tab-content{display:-webkit-box;display:-webkit-flex;display:flex;top:0;-webkit-transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1),-webkit-transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{-webkit-transition:none;transition:none}md-tab-content.md-left:not(.md-active){-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-animation:1s md-tab-content-hide;animation:1s md-tab-content-hide;visibility:hidden}[dir=rtl] md-tab-content.md-left:not(.md-active){-webkit-transform:translateX(100%);transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{-webkit-transition:visibility 0s linear;transition:visibility 0s linear;-webkit-transition-delay:.5s;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-animation:1s md-tab-content-hide;animation:1s md-tab-content-hide;visibility:hidden}[dir=rtl] md-tab-content.md-right:not(.md-active){-webkit-transform:translateX(-100%);transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{-webkit-transition:visibility 0s linear;transition:visibility 0s linear;-webkit-transition-delay:.5s;transition-delay:.5s;visibility:hidden}md-tab-content>div{-webkit-box-flex:1;-webkit-flex:1 0 100%;flex:1 0 100%;min-width:0}md-tab-content>div.ng-leave{-webkit-animation:1s md-tab-content-hide;animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{-webkit-transition:left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1);transition:left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{-webkit-transition:left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1);transition:left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;-webkit-transition:background-color .35s cubic-bezier(.35,0,.25,1);transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused,.md-tab:focus{box-shadow:none;outline:none}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{-webkit-transition:none;transition:none}md-toolbar+md-dialog-content md-tabs,md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;padding:8px;opacity:1}md-toast,md-toast .md-toast-content{overflow:hidden;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;-webkit-transform:translate3d(0,0,0) rotateZ(0deg);transform:translate3d(0,0,0) rotateZ(0deg);-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}md-toast .md-toast-content:before{content:"";min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}md-toast .md-toast-content span{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule,md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px;margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{-webkit-transform:translate3d(50%,0,0);transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.35,0,.25,1);transition-timing-function:cubic-bezier(.35,0,.25,1);-webkit-transition-property:background-color,fill,color;transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{-webkit-transition:box-shadow .5s linear;transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{-webkit-transition:none;transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.md-toolbar-tools md-checkbox{margin:inherit}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.35,0,.25,1);transition-timing-function:cubic-bezier(.35,0,.25,1);-webkit-transition-property:background-color,fill,color;transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{-webkit-transition:none;transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}.md-tooltip{pointer-events:none;border-radius:4px;overflow:hidden;opacity:0;font-weight:500;font-size:14px;white-space:nowrap;text-overflow:ellipsis;height:32px;line-height:32px;padding-right:16px;padding-left:16px}.md-tooltip.md-origin-top{-webkit-transform-origin:center bottom;transform-origin:center bottom;margin-top:-24px}.md-tooltip.md-origin-right{-webkit-transform-origin:left center;transform-origin:left center;margin-left:24px}.md-tooltip.md-origin-bottom{-webkit-transform-origin:center top;transform-origin:center top;margin-top:24px}.md-tooltip.md-origin-left{-webkit-transform-origin:right center;transform-origin:right center;margin-left:-24px}@media (min-width:960px){.md-tooltip{font-size:10px;height:22px;line-height:22px;padding-right:8px;padding-left:8px}.md-tooltip.md-origin-top{margin-top:-14px}.md-tooltip.md-origin-right{margin-left:14px}.md-tooltip.md-origin-bottom{margin-top:14px}.md-tooltip.md-origin-left{margin-left:-14px}}.md-tooltip.md-show-add{-webkit-transform:scale(0);transform:scale(0)}.md-tooltip.md-show{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transform:scale(1);transform:scale(1);opacity:.9}.md-tooltip.md-hide{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transform:scale(0);transform:scale(0);opacity:0}.md-truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.md-truncate.md-clip{text-overflow:clip}.md-truncate.flex{width:0}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:33.33333%}.flex-offset-66,.offset-66{margin-left:66.66667%}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:66.66667%}.layout-align,.layout-align-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align,.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex{-webkit-flex:1;flex:1}.flex,.flex-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-0,.layout-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{min-width:0}.layout-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5,.layout-row>.flex-5{max-width:5%;max-height:100%}.flex-5,.layout-column>.flex-5,.layout-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-5{max-width:100%;max-height:5%}.flex-10,.layout-row>.flex-10{max-width:10%;max-height:100%}.flex-10,.layout-column>.flex-10,.layout-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-10{max-width:100%;max-height:10%}.flex-15,.layout-row>.flex-15{max-width:15%;max-height:100%}.flex-15,.layout-column>.flex-15,.layout-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-15{max-width:100%;max-height:15%}.flex-20,.layout-row>.flex-20{max-width:20%;max-height:100%}.flex-20,.layout-column>.flex-20,.layout-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-20{max-width:100%;max-height:20%}.flex-25,.layout-row>.flex-25{max-width:25%;max-height:100%}.flex-25,.layout-column>.flex-25,.layout-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-25{max-width:100%;max-height:25%}.flex-30,.layout-row>.flex-30{max-width:30%;max-height:100%}.flex-30,.layout-column>.flex-30,.layout-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-30{max-width:100%;max-height:30%}.flex-35,.layout-row>.flex-35{max-width:35%;max-height:100%}.flex-35,.layout-column>.flex-35,.layout-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-35{max-width:100%;max-height:35%}.flex-40,.layout-row>.flex-40{max-width:40%;max-height:100%}.flex-40,.layout-column>.flex-40,.layout-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-40{max-width:100%;max-height:40%}.flex-45,.layout-row>.flex-45{max-width:45%;max-height:100%}.flex-45,.layout-column>.flex-45,.layout-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-45{max-width:100%;max-height:45%}.flex-50,.layout-row>.flex-50{max-width:50%;max-height:100%}.flex-50,.layout-column>.flex-50,.layout-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-50{max-width:100%;max-height:50%}.flex-55,.layout-row>.flex-55{max-width:55%;max-height:100%}.flex-55,.layout-column>.flex-55,.layout-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-55{max-width:100%;max-height:55%}.flex-60,.layout-row>.flex-60{max-width:60%;max-height:100%}.flex-60,.layout-column>.flex-60,.layout-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-60{max-width:100%;max-height:60%}.flex-65,.layout-row>.flex-65{max-width:65%;max-height:100%}.flex-65,.layout-column>.flex-65,.layout-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-65{max-width:100%;max-height:65%}.flex-70,.layout-row>.flex-70{max-width:70%;max-height:100%}.flex-70,.layout-column>.flex-70,.layout-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-70{max-width:100%;max-height:70%}.flex-75,.layout-row>.flex-75{max-width:75%;max-height:100%}.flex-75,.layout-column>.flex-75,.layout-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-75{max-width:100%;max-height:75%}.flex-80,.layout-row>.flex-80{max-width:80%;max-height:100%}.flex-80,.layout-column>.flex-80,.layout-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-80{max-width:100%;max-height:80%}.flex-85,.layout-row>.flex-85{max-width:85%;max-height:100%}.flex-85,.layout-column>.flex-85,.layout-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-85{max-width:100%;max-height:85%}.flex-90,.layout-row>.flex-90{max-width:90%;max-height:100%}.flex-90,.layout-column>.flex-90,.layout-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-90{max-width:100%;max-height:90%}.flex-95,.layout-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{max-height:95%}.flex-100,.layout-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-100{max-height:100%}.layout-column>.flex-100,.layout-row>.flex-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%}.layout-row>.flex-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%}.layout-column>.flex-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%}.layout-column>.flex-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%}.layout-row>.flex-33{max-width:33.33%}.layout-row>.flex-33,.layout-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{max-width:66.66%}.layout-row>.flex{min-width:0}.layout-column>.flex-33{max-height:33.33%}.layout-column>.flex-33,.layout-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-column>.flex-66{max-height:66.66%}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-column{-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.layout-column,.layout-row{-webkit-box-direction:normal}.layout-row{-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{-webkit-flex-wrap:wrap;flex-wrap:wrap}.layout-nowrap{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-xs--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-xs--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-xs--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-xs--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-xs--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-xs--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-xs--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-xs--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-xs--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-xs--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-xs--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-xs--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-xs--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-xs--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-xs--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-xs--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-xs--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-xs--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-xs--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-xs-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-xs-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-xs-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-xs-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-xs-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-xs-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-xs-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-xs-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-xs-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-xs-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-xs-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-xs-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-xs-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-xs-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-xs-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-xs-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-xs-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-xs-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-xs-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-xs-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-xs-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:33.33333%}.flex-offset-xs-66,.offset-xs-66{margin-left:66.66667%}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:66.66667%}.layout-align-xs,.layout-align-xs-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-xs,.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-xs{-webkit-flex:1;flex:1}.flex-xs,.flex-xs-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-xs-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-xs-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-xs-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xs-0,.layout-row>.flex-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{min-width:0}.layout-column>.flex-xs-0{max-width:100%;max-height:0%}.layout-column>.flex-xs-0,.layout-xs-row>.flex-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{max-width:0;max-height:100%;min-width:0}.layout-xs-column>.flex-xs-0{max-width:100%;max-height:0%;min-height:0}.layout-xs-column>.flex-xs-0,.layout-xs-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-xs-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5,.layout-row>.flex-xs-5{max-width:5%;max-height:100%}.flex-xs-5,.layout-column>.flex-xs-5,.layout-row>.flex-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-5{max-width:100%;max-height:5%}.layout-xs-row>.flex-xs-5{max-width:5%;max-height:100%}.layout-xs-column>.flex-xs-5,.layout-xs-row>.flex-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{max-width:100%;max-height:5%}.layout-xs-row>.flex-5{max-width:5%;max-height:100%}.layout-xs-column>.flex-5,.layout-xs-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-5{max-width:100%;max-height:5%}.flex-xs-10,.layout-row>.flex-xs-10{max-width:10%;max-height:100%}.flex-xs-10,.layout-column>.flex-xs-10,.layout-row>.flex-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-10{max-width:100%;max-height:10%}.layout-xs-row>.flex-xs-10{max-width:10%;max-height:100%}.layout-xs-column>.flex-xs-10,.layout-xs-row>.flex-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{max-width:100%;max-height:10%}.layout-xs-row>.flex-10{max-width:10%;max-height:100%}.layout-xs-column>.flex-10,.layout-xs-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-10{max-width:100%;max-height:10%}.flex-xs-15,.layout-row>.flex-xs-15{max-width:15%;max-height:100%}.flex-xs-15,.layout-column>.flex-xs-15,.layout-row>.flex-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-15{max-width:100%;max-height:15%}.layout-xs-row>.flex-xs-15{max-width:15%;max-height:100%}.layout-xs-column>.flex-xs-15,.layout-xs-row>.flex-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{max-width:100%;max-height:15%}.layout-xs-row>.flex-15{max-width:15%;max-height:100%}.layout-xs-column>.flex-15,.layout-xs-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-15{max-width:100%;max-height:15%}.flex-xs-20,.layout-row>.flex-xs-20{max-width:20%;max-height:100%}.flex-xs-20,.layout-column>.flex-xs-20,.layout-row>.flex-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-20{max-width:100%;max-height:20%}.layout-xs-row>.flex-xs-20{max-width:20%;max-height:100%}.layout-xs-column>.flex-xs-20,.layout-xs-row>.flex-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{max-width:100%;max-height:20%}.layout-xs-row>.flex-20{max-width:20%;max-height:100%}.layout-xs-column>.flex-20,.layout-xs-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-20{max-width:100%;max-height:20%}.flex-xs-25,.layout-row>.flex-xs-25{max-width:25%;max-height:100%}.flex-xs-25,.layout-column>.flex-xs-25,.layout-row>.flex-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-25{max-width:100%;max-height:25%}.layout-xs-row>.flex-xs-25{max-width:25%;max-height:100%}.layout-xs-column>.flex-xs-25,.layout-xs-row>.flex-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{max-width:100%;max-height:25%}.layout-xs-row>.flex-25{max-width:25%;max-height:100%}.layout-xs-column>.flex-25,.layout-xs-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-25{max-width:100%;max-height:25%}.flex-xs-30,.layout-row>.flex-xs-30{max-width:30%;max-height:100%}.flex-xs-30,.layout-column>.flex-xs-30,.layout-row>.flex-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-30{max-width:100%;max-height:30%}.layout-xs-row>.flex-xs-30{max-width:30%;max-height:100%}.layout-xs-column>.flex-xs-30,.layout-xs-row>.flex-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{max-width:100%;max-height:30%}.layout-xs-row>.flex-30{max-width:30%;max-height:100%}.layout-xs-column>.flex-30,.layout-xs-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-30{max-width:100%;max-height:30%}.flex-xs-35,.layout-row>.flex-xs-35{max-width:35%;max-height:100%}.flex-xs-35,.layout-column>.flex-xs-35,.layout-row>.flex-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-35{max-width:100%;max-height:35%}.layout-xs-row>.flex-xs-35{max-width:35%;max-height:100%}.layout-xs-column>.flex-xs-35,.layout-xs-row>.flex-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{max-width:100%;max-height:35%}.layout-xs-row>.flex-35{max-width:35%;max-height:100%}.layout-xs-column>.flex-35,.layout-xs-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-35{max-width:100%;max-height:35%}.flex-xs-40,.layout-row>.flex-xs-40{max-width:40%;max-height:100%}.flex-xs-40,.layout-column>.flex-xs-40,.layout-row>.flex-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-40{max-width:100%;max-height:40%}.layout-xs-row>.flex-xs-40{max-width:40%;max-height:100%}.layout-xs-column>.flex-xs-40,.layout-xs-row>.flex-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{max-width:100%;max-height:40%}.layout-xs-row>.flex-40{max-width:40%;max-height:100%}.layout-xs-column>.flex-40,.layout-xs-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-40{max-width:100%;max-height:40%}.flex-xs-45,.layout-row>.flex-xs-45{max-width:45%;max-height:100%}.flex-xs-45,.layout-column>.flex-xs-45,.layout-row>.flex-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-45{max-width:100%;max-height:45%}.layout-xs-row>.flex-xs-45{max-width:45%;max-height:100%}.layout-xs-column>.flex-xs-45,.layout-xs-row>.flex-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{max-width:100%;max-height:45%}.layout-xs-row>.flex-45{max-width:45%;max-height:100%}.layout-xs-column>.flex-45,.layout-xs-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-45{max-width:100%;max-height:45%}.flex-xs-50,.layout-row>.flex-xs-50{max-width:50%;max-height:100%}.flex-xs-50,.layout-column>.flex-xs-50,.layout-row>.flex-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-50{max-width:100%;max-height:50%}.layout-xs-row>.flex-xs-50{max-width:50%;max-height:100%}.layout-xs-column>.flex-xs-50,.layout-xs-row>.flex-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{max-width:100%;max-height:50%}.layout-xs-row>.flex-50{max-width:50%;max-height:100%}.layout-xs-column>.flex-50,.layout-xs-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-50{max-width:100%;max-height:50%}.flex-xs-55,.layout-row>.flex-xs-55{max-width:55%;max-height:100%}.flex-xs-55,.layout-column>.flex-xs-55,.layout-row>.flex-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-55{max-width:100%;max-height:55%}.layout-xs-row>.flex-xs-55{max-width:55%;max-height:100%}.layout-xs-column>.flex-xs-55,.layout-xs-row>.flex-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{max-width:100%;max-height:55%}.layout-xs-row>.flex-55{max-width:55%;max-height:100%}.layout-xs-column>.flex-55,.layout-xs-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-55{max-width:100%;max-height:55%}.flex-xs-60,.layout-row>.flex-xs-60{max-width:60%;max-height:100%}.flex-xs-60,.layout-column>.flex-xs-60,.layout-row>.flex-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-60{max-width:100%;max-height:60%}.layout-xs-row>.flex-xs-60{max-width:60%;max-height:100%}.layout-xs-column>.flex-xs-60,.layout-xs-row>.flex-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{max-width:100%;max-height:60%}.layout-xs-row>.flex-60{max-width:60%;max-height:100%}.layout-xs-column>.flex-60,.layout-xs-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-60{max-width:100%;max-height:60%}.flex-xs-65,.layout-row>.flex-xs-65{max-width:65%;max-height:100%}.flex-xs-65,.layout-column>.flex-xs-65,.layout-row>.flex-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-65{max-width:100%;max-height:65%}.layout-xs-row>.flex-xs-65{max-width:65%;max-height:100%}.layout-xs-column>.flex-xs-65,.layout-xs-row>.flex-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{max-width:100%;max-height:65%}.layout-xs-row>.flex-65{max-width:65%;max-height:100%}.layout-xs-column>.flex-65,.layout-xs-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-65{max-width:100%;max-height:65%}.flex-xs-70,.layout-row>.flex-xs-70{max-width:70%;max-height:100%}.flex-xs-70,.layout-column>.flex-xs-70,.layout-row>.flex-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-70{max-width:100%;max-height:70%}.layout-xs-row>.flex-xs-70{max-width:70%;max-height:100%}.layout-xs-column>.flex-xs-70,.layout-xs-row>.flex-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{max-width:100%;max-height:70%}.layout-xs-row>.flex-70{max-width:70%;max-height:100%}.layout-xs-column>.flex-70,.layout-xs-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-70{max-width:100%;max-height:70%}.flex-xs-75,.layout-row>.flex-xs-75{max-width:75%;max-height:100%}.flex-xs-75,.layout-column>.flex-xs-75,.layout-row>.flex-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-75{max-width:100%;max-height:75%}.layout-xs-row>.flex-xs-75{max-width:75%;max-height:100%}.layout-xs-column>.flex-xs-75,.layout-xs-row>.flex-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{max-width:100%;max-height:75%}.layout-xs-row>.flex-75{max-width:75%;max-height:100%}.layout-xs-column>.flex-75,.layout-xs-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-75{max-width:100%;max-height:75%}.flex-xs-80,.layout-row>.flex-xs-80{max-width:80%;max-height:100%}.flex-xs-80,.layout-column>.flex-xs-80,.layout-row>.flex-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-80{max-width:100%;max-height:80%}.layout-xs-row>.flex-xs-80{max-width:80%;max-height:100%}.layout-xs-column>.flex-xs-80,.layout-xs-row>.flex-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{max-width:100%;max-height:80%}.layout-xs-row>.flex-80{max-width:80%;max-height:100%}.layout-xs-column>.flex-80,.layout-xs-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-80{max-width:100%;max-height:80%}.flex-xs-85,.layout-row>.flex-xs-85{max-width:85%;max-height:100%}.flex-xs-85,.layout-column>.flex-xs-85,.layout-row>.flex-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-85{max-width:100%;max-height:85%}.layout-xs-row>.flex-xs-85{max-width:85%;max-height:100%}.layout-xs-column>.flex-xs-85,.layout-xs-row>.flex-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{max-width:100%;max-height:85%}.layout-xs-row>.flex-85{max-width:85%;max-height:100%}.layout-xs-column>.flex-85,.layout-xs-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-85{max-width:100%;max-height:85%}.flex-xs-90,.layout-row>.flex-xs-90{max-width:90%;max-height:100%}.flex-xs-90,.layout-column>.flex-xs-90,.layout-row>.flex-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-90{max-width:100%;max-height:90%}.layout-xs-row>.flex-xs-90{max-width:90%;max-height:100%}.layout-xs-column>.flex-xs-90,.layout-xs-row>.flex-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{max-width:100%;max-height:90%}.layout-xs-row>.flex-90{max-width:90%;max-height:100%}.layout-xs-column>.flex-90,.layout-xs-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-90{max-width:100%;max-height:90%}.flex-xs-95,.layout-row>.flex-xs-95{max-width:95%;max-height:100%}.flex-xs-95,.layout-column>.flex-xs-95,.layout-row>.flex-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xs-95{max-width:100%;max-height:95%}.layout-xs-row>.flex-xs-95{max-width:95%;max-height:100%}.layout-xs-column>.flex-xs-95,.layout-xs-row>.flex-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{max-width:100%;max-height:95%}.layout-xs-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-95{max-height:95%}.flex-xs-100,.layout-xs-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-xs-100{max-height:100%}.layout-column>.flex-xs-100,.layout-row>.flex-xs-100,.layout-xs-column>.flex-100,.layout-xs-column>.flex-xs-100,.layout-xs-row>.flex-100,.layout-xs-row>.flex-xs-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-xs-33,.layout-row>.flex-xs-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-xs-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}.layout-column>.flex-xs-33,.layout-column>.flex-xs-66{-webkit-box-flex:1;max-width:100%;box-sizing:border-box}.layout-column>.flex-xs-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}.layout-xs-row>.flex-xs-33{max-width:33.33%}.layout-xs-row>.flex-xs-33,.layout-xs-row>.flex-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{max-width:66.66%}.layout-xs-column>.flex-xs-33{max-height:33.33%}.layout-xs-column>.flex-xs-33,.layout-xs-column>.flex-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{max-height:66.66%}.layout-xs-row>.flex-33{max-width:33.33%}.layout-xs-row>.flex-33,.layout-xs-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-66{max-width:66.66%}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-33{max-height:33.33%}.layout-xs-column>.flex-33,.layout-xs-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-xs-column>.flex-66{max-height:66.66%}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-xs-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-xs-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-xs--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-xs--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-xs--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-xs--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-xs--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-xs--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-xs--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-xs--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-xs--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-xs--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-xs--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-xs--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-xs--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-xs--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-xs--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-xs--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-xs--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-xs--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-xs--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-xs-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-xs-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-xs-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-xs-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-xs-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-xs-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-xs-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-xs-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-xs-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-xs-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-xs-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-xs-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-xs-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-xs-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-xs-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-xs-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-xs-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-xs-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-xs-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-xs-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-xs-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:33.33333%}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:66.66667%}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:66.66667%}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-gt-xs,.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-xs{-webkit-flex:1;flex:1}.flex-gt-xs,.flex-gt-xs-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-gt-xs-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-xs-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0,.layout-row>.flex-gt-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{min-width:0}.layout-column>.flex-gt-xs-0{max-width:100%;max-height:0%}.layout-column>.flex-gt-xs-0,.layout-gt-xs-row>.flex-gt-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{max-width:0;max-height:100%;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{max-width:100%;max-height:0%;min-height:0}.layout-gt-xs-column>.flex-gt-xs-0,.layout-gt-xs-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-gt-xs-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5,.layout-row>.flex-gt-xs-5{max-width:5%;max-height:100%}.flex-gt-xs-5,.layout-column>.flex-gt-xs-5,.layout-row>.flex-gt-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{max-width:100%;max-height:5%}.layout-gt-xs-row>.flex-gt-xs-5{max-width:5%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-5,.layout-gt-xs-row>.flex-gt-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{max-width:100%;max-height:5%}.layout-gt-xs-row>.flex-5{max-width:5%;max-height:100%}.layout-gt-xs-column>.flex-5,.layout-gt-xs-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-5{max-width:100%;max-height:5%}.flex-gt-xs-10,.layout-row>.flex-gt-xs-10{max-width:10%;max-height:100%}.flex-gt-xs-10,.layout-column>.flex-gt-xs-10,.layout-row>.flex-gt-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{max-width:100%;max-height:10%}.layout-gt-xs-row>.flex-gt-xs-10{max-width:10%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-10,.layout-gt-xs-row>.flex-gt-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{max-width:100%;max-height:10%}.layout-gt-xs-row>.flex-10{max-width:10%;max-height:100%}.layout-gt-xs-column>.flex-10,.layout-gt-xs-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-10{max-width:100%;max-height:10%}.flex-gt-xs-15,.layout-row>.flex-gt-xs-15{max-width:15%;max-height:100%}.flex-gt-xs-15,.layout-column>.flex-gt-xs-15,.layout-row>.flex-gt-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{max-width:100%;max-height:15%}.layout-gt-xs-row>.flex-gt-xs-15{max-width:15%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-15,.layout-gt-xs-row>.flex-gt-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{max-width:100%;max-height:15%}.layout-gt-xs-row>.flex-15{max-width:15%;max-height:100%}.layout-gt-xs-column>.flex-15,.layout-gt-xs-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-15{max-width:100%;max-height:15%}.flex-gt-xs-20,.layout-row>.flex-gt-xs-20{max-width:20%;max-height:100%}.flex-gt-xs-20,.layout-column>.flex-gt-xs-20,.layout-row>.flex-gt-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{max-width:100%;max-height:20%}.layout-gt-xs-row>.flex-gt-xs-20{max-width:20%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-20,.layout-gt-xs-row>.flex-gt-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{max-width:100%;max-height:20%}.layout-gt-xs-row>.flex-20{max-width:20%;max-height:100%}.layout-gt-xs-column>.flex-20,.layout-gt-xs-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-20{max-width:100%;max-height:20%}.flex-gt-xs-25,.layout-row>.flex-gt-xs-25{max-width:25%;max-height:100%}.flex-gt-xs-25,.layout-column>.flex-gt-xs-25,.layout-row>.flex-gt-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{max-width:100%;max-height:25%}.layout-gt-xs-row>.flex-gt-xs-25{max-width:25%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-25,.layout-gt-xs-row>.flex-gt-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{max-width:100%;max-height:25%}.layout-gt-xs-row>.flex-25{max-width:25%;max-height:100%}.layout-gt-xs-column>.flex-25,.layout-gt-xs-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-25{max-width:100%;max-height:25%}.flex-gt-xs-30,.layout-row>.flex-gt-xs-30{max-width:30%;max-height:100%}.flex-gt-xs-30,.layout-column>.flex-gt-xs-30,.layout-row>.flex-gt-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{max-width:100%;max-height:30%}.layout-gt-xs-row>.flex-gt-xs-30{max-width:30%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-30,.layout-gt-xs-row>.flex-gt-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{max-width:100%;max-height:30%}.layout-gt-xs-row>.flex-30{max-width:30%;max-height:100%}.layout-gt-xs-column>.flex-30,.layout-gt-xs-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-30{max-width:100%;max-height:30%}.flex-gt-xs-35,.layout-row>.flex-gt-xs-35{max-width:35%;max-height:100%}.flex-gt-xs-35,.layout-column>.flex-gt-xs-35,.layout-row>.flex-gt-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{max-width:100%;max-height:35%}.layout-gt-xs-row>.flex-gt-xs-35{max-width:35%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-35,.layout-gt-xs-row>.flex-gt-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{max-width:100%;max-height:35%}.layout-gt-xs-row>.flex-35{max-width:35%;max-height:100%}.layout-gt-xs-column>.flex-35,.layout-gt-xs-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-35{max-width:100%;max-height:35%}.flex-gt-xs-40,.layout-row>.flex-gt-xs-40{max-width:40%;max-height:100%}.flex-gt-xs-40,.layout-column>.flex-gt-xs-40,.layout-row>.flex-gt-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{max-width:100%;max-height:40%}.layout-gt-xs-row>.flex-gt-xs-40{max-width:40%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-40,.layout-gt-xs-row>.flex-gt-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{max-width:100%;max-height:40%}.layout-gt-xs-row>.flex-40{max-width:40%;max-height:100%}.layout-gt-xs-column>.flex-40,.layout-gt-xs-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-40{max-width:100%;max-height:40%}.flex-gt-xs-45,.layout-row>.flex-gt-xs-45{max-width:45%;max-height:100%}.flex-gt-xs-45,.layout-column>.flex-gt-xs-45,.layout-row>.flex-gt-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{max-width:100%;max-height:45%}.layout-gt-xs-row>.flex-gt-xs-45{max-width:45%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-45,.layout-gt-xs-row>.flex-gt-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{max-width:100%;max-height:45%}.layout-gt-xs-row>.flex-45{max-width:45%;max-height:100%}.layout-gt-xs-column>.flex-45,.layout-gt-xs-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-45{max-width:100%;max-height:45%}.flex-gt-xs-50,.layout-row>.flex-gt-xs-50{max-width:50%;max-height:100%}.flex-gt-xs-50,.layout-column>.flex-gt-xs-50,.layout-row>.flex-gt-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{max-width:100%;max-height:50%}.layout-gt-xs-row>.flex-gt-xs-50{max-width:50%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-50,.layout-gt-xs-row>.flex-gt-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{max-width:100%;max-height:50%}.layout-gt-xs-row>.flex-50{max-width:50%;max-height:100%}.layout-gt-xs-column>.flex-50,.layout-gt-xs-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-50{max-width:100%;max-height:50%}.flex-gt-xs-55,.layout-row>.flex-gt-xs-55{max-width:55%;max-height:100%}.flex-gt-xs-55,.layout-column>.flex-gt-xs-55,.layout-row>.flex-gt-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{max-width:100%;max-height:55%}.layout-gt-xs-row>.flex-gt-xs-55{max-width:55%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-55,.layout-gt-xs-row>.flex-gt-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{max-width:100%;max-height:55%}.layout-gt-xs-row>.flex-55{max-width:55%;max-height:100%}.layout-gt-xs-column>.flex-55,.layout-gt-xs-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-55{max-width:100%;max-height:55%}.flex-gt-xs-60,.layout-row>.flex-gt-xs-60{max-width:60%;max-height:100%}.flex-gt-xs-60,.layout-column>.flex-gt-xs-60,.layout-row>.flex-gt-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{max-width:100%;max-height:60%}.layout-gt-xs-row>.flex-gt-xs-60{max-width:60%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-60,.layout-gt-xs-row>.flex-gt-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{max-width:100%;max-height:60%}.layout-gt-xs-row>.flex-60{max-width:60%;max-height:100%}.layout-gt-xs-column>.flex-60,.layout-gt-xs-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-60{max-width:100%;max-height:60%}.flex-gt-xs-65,.layout-row>.flex-gt-xs-65{max-width:65%;max-height:100%}.flex-gt-xs-65,.layout-column>.flex-gt-xs-65,.layout-row>.flex-gt-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{max-width:100%;max-height:65%}.layout-gt-xs-row>.flex-gt-xs-65{max-width:65%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-65,.layout-gt-xs-row>.flex-gt-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{max-width:100%;max-height:65%}.layout-gt-xs-row>.flex-65{max-width:65%;max-height:100%}.layout-gt-xs-column>.flex-65,.layout-gt-xs-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-65{max-width:100%;max-height:65%}.flex-gt-xs-70,.layout-row>.flex-gt-xs-70{max-width:70%;max-height:100%}.flex-gt-xs-70,.layout-column>.flex-gt-xs-70,.layout-row>.flex-gt-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{max-width:100%;max-height:70%}.layout-gt-xs-row>.flex-gt-xs-70{max-width:70%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-70,.layout-gt-xs-row>.flex-gt-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{max-width:100%;max-height:70%}.layout-gt-xs-row>.flex-70{max-width:70%;max-height:100%}.layout-gt-xs-column>.flex-70,.layout-gt-xs-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-70{max-width:100%;max-height:70%}.flex-gt-xs-75,.layout-row>.flex-gt-xs-75{max-width:75%;max-height:100%}.flex-gt-xs-75,.layout-column>.flex-gt-xs-75,.layout-row>.flex-gt-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{max-width:100%;max-height:75%}.layout-gt-xs-row>.flex-gt-xs-75{max-width:75%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-75,.layout-gt-xs-row>.flex-gt-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{max-width:100%;max-height:75%}.layout-gt-xs-row>.flex-75{max-width:75%;max-height:100%}.layout-gt-xs-column>.flex-75,.layout-gt-xs-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-75{max-width:100%;max-height:75%}.flex-gt-xs-80,.layout-row>.flex-gt-xs-80{max-width:80%;max-height:100%}.flex-gt-xs-80,.layout-column>.flex-gt-xs-80,.layout-row>.flex-gt-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{max-width:100%;max-height:80%}.layout-gt-xs-row>.flex-gt-xs-80{max-width:80%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-80,.layout-gt-xs-row>.flex-gt-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{max-width:100%;max-height:80%}.layout-gt-xs-row>.flex-80{max-width:80%;max-height:100%}.layout-gt-xs-column>.flex-80,.layout-gt-xs-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-80{max-width:100%;max-height:80%}.flex-gt-xs-85,.layout-row>.flex-gt-xs-85{max-width:85%;max-height:100%}.flex-gt-xs-85,.layout-column>.flex-gt-xs-85,.layout-row>.flex-gt-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{max-width:100%;max-height:85%}.layout-gt-xs-row>.flex-gt-xs-85{max-width:85%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-85,.layout-gt-xs-row>.flex-gt-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{max-width:100%;max-height:85%}.layout-gt-xs-row>.flex-85{max-width:85%;max-height:100%}.layout-gt-xs-column>.flex-85,.layout-gt-xs-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-85{max-width:100%;max-height:85%}.flex-gt-xs-90,.layout-row>.flex-gt-xs-90{max-width:90%;max-height:100%}.flex-gt-xs-90,.layout-column>.flex-gt-xs-90,.layout-row>.flex-gt-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{max-width:100%;max-height:90%}.layout-gt-xs-row>.flex-gt-xs-90{max-width:90%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-90,.layout-gt-xs-row>.flex-gt-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{max-width:100%;max-height:90%}.layout-gt-xs-row>.flex-90{max-width:90%;max-height:100%}.layout-gt-xs-column>.flex-90,.layout-gt-xs-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-90{max-width:100%;max-height:90%}.flex-gt-xs-95,.layout-row>.flex-gt-xs-95{max-width:95%;max-height:100%}.flex-gt-xs-95,.layout-column>.flex-gt-xs-95,.layout-row>.flex-gt-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{max-width:100%;max-height:95%}.layout-gt-xs-row>.flex-gt-xs-95{max-width:95%;max-height:100%}.layout-gt-xs-column>.flex-gt-xs-95,.layout-gt-xs-row>.flex-gt-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{max-width:100%;max-height:95%}.layout-gt-xs-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-95{max-height:95%}.flex-gt-xs-100,.layout-gt-xs-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-gt-xs-100{max-height:100%}.layout-column>.flex-gt-xs-100,.layout-gt-xs-column>.flex-100,.layout-gt-xs-column>.flex-gt-xs-100,.layout-gt-xs-row>.flex-100,.layout-gt-xs-row>.flex-gt-xs-100,.layout-row>.flex-gt-xs-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-xs-33,.layout-row>.flex-gt-xs-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{max-width:33.33%}.layout-gt-xs-row>.flex-gt-xs-33,.layout-gt-xs-row>.flex-gt-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{max-width:66.66%}.layout-gt-xs-column>.flex-gt-xs-33{max-height:33.33%}.layout-gt-xs-column>.flex-gt-xs-33,.layout-gt-xs-column>.flex-gt-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{max-height:66.66%}.layout-gt-xs-row>.flex-33{max-width:33.33%}.layout-gt-xs-row>.flex-33,.layout-gt-xs-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-66{max-width:66.66%}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-33{max-height:33.33%}.layout-gt-xs-column>.flex-33,.layout-gt-xs-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-66{max-height:66.66%}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-xs-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-xs-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-sm--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-sm--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-sm--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-sm--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-sm--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-sm--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-sm--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-sm--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-sm--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-sm--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-sm--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-sm--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-sm--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-sm--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-sm--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-sm--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-sm--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-sm--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-sm--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-sm-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-sm-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-sm-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-sm-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-sm-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-sm-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-sm-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-sm-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-sm-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-sm-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-sm-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-sm-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-sm-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-sm-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-sm-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-sm-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-sm-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-sm-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-sm-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-sm-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-sm-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:33.33333%}.flex-offset-sm-66,.offset-sm-66{margin-left:66.66667%}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:66.66667%}.layout-align-sm,.layout-align-sm-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-sm,.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-sm{-webkit-flex:1;flex:1}.flex-sm,.flex-sm-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-sm-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-sm-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-sm-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-sm-0,.layout-row>.flex-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{min-width:0}.layout-column>.flex-sm-0{max-width:100%;max-height:0%}.layout-column>.flex-sm-0,.layout-sm-row>.flex-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{max-width:0;max-height:100%;min-width:0}.layout-sm-column>.flex-sm-0{max-width:100%;max-height:0%;min-height:0}.layout-sm-column>.flex-sm-0,.layout-sm-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-sm-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5,.layout-row>.flex-sm-5{max-width:5%;max-height:100%}.flex-sm-5,.layout-column>.flex-sm-5,.layout-row>.flex-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-5{max-width:100%;max-height:5%}.layout-sm-row>.flex-sm-5{max-width:5%;max-height:100%}.layout-sm-column>.flex-sm-5,.layout-sm-row>.flex-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{max-width:100%;max-height:5%}.layout-sm-row>.flex-5{max-width:5%;max-height:100%}.layout-sm-column>.flex-5,.layout-sm-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-5{max-width:100%;max-height:5%}.flex-sm-10,.layout-row>.flex-sm-10{max-width:10%;max-height:100%}.flex-sm-10,.layout-column>.flex-sm-10,.layout-row>.flex-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-10{max-width:100%;max-height:10%}.layout-sm-row>.flex-sm-10{max-width:10%;max-height:100%}.layout-sm-column>.flex-sm-10,.layout-sm-row>.flex-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{max-width:100%;max-height:10%}.layout-sm-row>.flex-10{max-width:10%;max-height:100%}.layout-sm-column>.flex-10,.layout-sm-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-10{max-width:100%;max-height:10%}.flex-sm-15,.layout-row>.flex-sm-15{max-width:15%;max-height:100%}.flex-sm-15,.layout-column>.flex-sm-15,.layout-row>.flex-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-15{max-width:100%;max-height:15%}.layout-sm-row>.flex-sm-15{max-width:15%;max-height:100%}.layout-sm-column>.flex-sm-15,.layout-sm-row>.flex-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{max-width:100%;max-height:15%}.layout-sm-row>.flex-15{max-width:15%;max-height:100%}.layout-sm-column>.flex-15,.layout-sm-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-15{max-width:100%;max-height:15%}.flex-sm-20,.layout-row>.flex-sm-20{max-width:20%;max-height:100%}.flex-sm-20,.layout-column>.flex-sm-20,.layout-row>.flex-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-20{max-width:100%;max-height:20%}.layout-sm-row>.flex-sm-20{max-width:20%;max-height:100%}.layout-sm-column>.flex-sm-20,.layout-sm-row>.flex-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{max-width:100%;max-height:20%}.layout-sm-row>.flex-20{max-width:20%;max-height:100%}.layout-sm-column>.flex-20,.layout-sm-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-20{max-width:100%;max-height:20%}.flex-sm-25,.layout-row>.flex-sm-25{max-width:25%;max-height:100%}.flex-sm-25,.layout-column>.flex-sm-25,.layout-row>.flex-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-25{max-width:100%;max-height:25%}.layout-sm-row>.flex-sm-25{max-width:25%;max-height:100%}.layout-sm-column>.flex-sm-25,.layout-sm-row>.flex-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{max-width:100%;max-height:25%}.layout-sm-row>.flex-25{max-width:25%;max-height:100%}.layout-sm-column>.flex-25,.layout-sm-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-25{max-width:100%;max-height:25%}.flex-sm-30,.layout-row>.flex-sm-30{max-width:30%;max-height:100%}.flex-sm-30,.layout-column>.flex-sm-30,.layout-row>.flex-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-30{max-width:100%;max-height:30%}.layout-sm-row>.flex-sm-30{max-width:30%;max-height:100%}.layout-sm-column>.flex-sm-30,.layout-sm-row>.flex-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{max-width:100%;max-height:30%}.layout-sm-row>.flex-30{max-width:30%;max-height:100%}.layout-sm-column>.flex-30,.layout-sm-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-30{max-width:100%;max-height:30%}.flex-sm-35,.layout-row>.flex-sm-35{max-width:35%;max-height:100%}.flex-sm-35,.layout-column>.flex-sm-35,.layout-row>.flex-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-35{max-width:100%;max-height:35%}.layout-sm-row>.flex-sm-35{max-width:35%;max-height:100%}.layout-sm-column>.flex-sm-35,.layout-sm-row>.flex-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{max-width:100%;max-height:35%}.layout-sm-row>.flex-35{max-width:35%;max-height:100%}.layout-sm-column>.flex-35,.layout-sm-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-35{max-width:100%;max-height:35%}.flex-sm-40,.layout-row>.flex-sm-40{max-width:40%;max-height:100%}.flex-sm-40,.layout-column>.flex-sm-40,.layout-row>.flex-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-40{max-width:100%;max-height:40%}.layout-sm-row>.flex-sm-40{max-width:40%;max-height:100%}.layout-sm-column>.flex-sm-40,.layout-sm-row>.flex-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{max-width:100%;max-height:40%}.layout-sm-row>.flex-40{max-width:40%;max-height:100%}.layout-sm-column>.flex-40,.layout-sm-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-40{max-width:100%;max-height:40%}.flex-sm-45,.layout-row>.flex-sm-45{max-width:45%;max-height:100%}.flex-sm-45,.layout-column>.flex-sm-45,.layout-row>.flex-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-45{max-width:100%;max-height:45%}.layout-sm-row>.flex-sm-45{max-width:45%;max-height:100%}.layout-sm-column>.flex-sm-45,.layout-sm-row>.flex-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{max-width:100%;max-height:45%}.layout-sm-row>.flex-45{max-width:45%;max-height:100%}.layout-sm-column>.flex-45,.layout-sm-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-45{max-width:100%;max-height:45%}.flex-sm-50,.layout-row>.flex-sm-50{max-width:50%;max-height:100%}.flex-sm-50,.layout-column>.flex-sm-50,.layout-row>.flex-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-50{max-width:100%;max-height:50%}.layout-sm-row>.flex-sm-50{max-width:50%;max-height:100%}.layout-sm-column>.flex-sm-50,.layout-sm-row>.flex-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{max-width:100%;max-height:50%}.layout-sm-row>.flex-50{max-width:50%;max-height:100%}.layout-sm-column>.flex-50,.layout-sm-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-50{max-width:100%;max-height:50%}.flex-sm-55,.layout-row>.flex-sm-55{max-width:55%;max-height:100%}.flex-sm-55,.layout-column>.flex-sm-55,.layout-row>.flex-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-55{max-width:100%;max-height:55%}.layout-sm-row>.flex-sm-55{max-width:55%;max-height:100%}.layout-sm-column>.flex-sm-55,.layout-sm-row>.flex-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{max-width:100%;max-height:55%}.layout-sm-row>.flex-55{max-width:55%;max-height:100%}.layout-sm-column>.flex-55,.layout-sm-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-55{max-width:100%;max-height:55%}.flex-sm-60,.layout-row>.flex-sm-60{max-width:60%;max-height:100%}.flex-sm-60,.layout-column>.flex-sm-60,.layout-row>.flex-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-60{max-width:100%;max-height:60%}.layout-sm-row>.flex-sm-60{max-width:60%;max-height:100%}.layout-sm-column>.flex-sm-60,.layout-sm-row>.flex-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{max-width:100%;max-height:60%}.layout-sm-row>.flex-60{max-width:60%;max-height:100%}.layout-sm-column>.flex-60,.layout-sm-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-60{max-width:100%;max-height:60%}.flex-sm-65,.layout-row>.flex-sm-65{max-width:65%;max-height:100%}.flex-sm-65,.layout-column>.flex-sm-65,.layout-row>.flex-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-65{max-width:100%;max-height:65%}.layout-sm-row>.flex-sm-65{max-width:65%;max-height:100%}.layout-sm-column>.flex-sm-65,.layout-sm-row>.flex-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{max-width:100%;max-height:65%}.layout-sm-row>.flex-65{max-width:65%;max-height:100%}.layout-sm-column>.flex-65,.layout-sm-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-65{max-width:100%;max-height:65%}.flex-sm-70,.layout-row>.flex-sm-70{max-width:70%;max-height:100%}.flex-sm-70,.layout-column>.flex-sm-70,.layout-row>.flex-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-70{max-width:100%;max-height:70%}.layout-sm-row>.flex-sm-70{max-width:70%;max-height:100%}.layout-sm-column>.flex-sm-70,.layout-sm-row>.flex-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{max-width:100%;max-height:70%}.layout-sm-row>.flex-70{max-width:70%;max-height:100%}.layout-sm-column>.flex-70,.layout-sm-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-70{max-width:100%;max-height:70%}.flex-sm-75,.layout-row>.flex-sm-75{max-width:75%;max-height:100%}.flex-sm-75,.layout-column>.flex-sm-75,.layout-row>.flex-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-75{max-width:100%;max-height:75%}.layout-sm-row>.flex-sm-75{max-width:75%;max-height:100%}.layout-sm-column>.flex-sm-75,.layout-sm-row>.flex-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{max-width:100%;max-height:75%}.layout-sm-row>.flex-75{max-width:75%;max-height:100%}.layout-sm-column>.flex-75,.layout-sm-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-75{max-width:100%;max-height:75%}.flex-sm-80,.layout-row>.flex-sm-80{max-width:80%;max-height:100%}.flex-sm-80,.layout-column>.flex-sm-80,.layout-row>.flex-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-80{max-width:100%;max-height:80%}.layout-sm-row>.flex-sm-80{max-width:80%;max-height:100%}.layout-sm-column>.flex-sm-80,.layout-sm-row>.flex-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{max-width:100%;max-height:80%}.layout-sm-row>.flex-80{max-width:80%;max-height:100%}.layout-sm-column>.flex-80,.layout-sm-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-80{max-width:100%;max-height:80%}.flex-sm-85,.layout-row>.flex-sm-85{max-width:85%;max-height:100%}.flex-sm-85,.layout-column>.flex-sm-85,.layout-row>.flex-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-85{max-width:100%;max-height:85%}.layout-sm-row>.flex-sm-85{max-width:85%;max-height:100%}.layout-sm-column>.flex-sm-85,.layout-sm-row>.flex-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{max-width:100%;max-height:85%}.layout-sm-row>.flex-85{max-width:85%;max-height:100%}.layout-sm-column>.flex-85,.layout-sm-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-85{max-width:100%;max-height:85%}.flex-sm-90,.layout-row>.flex-sm-90{max-width:90%;max-height:100%}.flex-sm-90,.layout-column>.flex-sm-90,.layout-row>.flex-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-90{max-width:100%;max-height:90%}.layout-sm-row>.flex-sm-90{max-width:90%;max-height:100%}.layout-sm-column>.flex-sm-90,.layout-sm-row>.flex-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{max-width:100%;max-height:90%}.layout-sm-row>.flex-90{max-width:90%;max-height:100%}.layout-sm-column>.flex-90,.layout-sm-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-90{max-width:100%;max-height:90%}.flex-sm-95,.layout-row>.flex-sm-95{max-width:95%;max-height:100%}.flex-sm-95,.layout-column>.flex-sm-95,.layout-row>.flex-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-sm-95{max-width:100%;max-height:95%}.layout-sm-row>.flex-sm-95{max-width:95%;max-height:100%}.layout-sm-column>.flex-sm-95,.layout-sm-row>.flex-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{max-width:100%;max-height:95%}.layout-sm-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-95{max-height:95%}.flex-sm-100,.layout-sm-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-sm-100{max-height:100%}.layout-column>.flex-sm-100,.layout-row>.flex-sm-100,.layout-sm-column>.flex-100,.layout-sm-column>.flex-sm-100,.layout-sm-row>.flex-100,.layout-sm-row>.flex-sm-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-sm-33,.layout-row>.flex-sm-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-sm-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}.layout-column>.flex-sm-33,.layout-column>.flex-sm-66{-webkit-box-flex:1;max-width:100%;box-sizing:border-box}.layout-column>.flex-sm-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}.layout-sm-row>.flex-sm-33{max-width:33.33%}.layout-sm-row>.flex-sm-33,.layout-sm-row>.flex-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{max-width:66.66%}.layout-sm-column>.flex-sm-33{max-height:33.33%}.layout-sm-column>.flex-sm-33,.layout-sm-column>.flex-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{max-height:66.66%}.layout-sm-row>.flex-33{max-width:33.33%}.layout-sm-row>.flex-33,.layout-sm-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-66{max-width:66.66%}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-33{max-height:33.33%}.layout-sm-column>.flex-33,.layout-sm-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-sm-column>.flex-66{max-height:66.66%}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-sm-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-sm-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-sm--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-sm--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-sm--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-sm--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-sm--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-sm--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-sm--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-sm--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-sm--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-sm--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-sm--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-sm--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-sm--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-sm--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-sm--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-sm--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-sm--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-sm--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-sm--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-sm-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-sm-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-sm-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-sm-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-sm-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-sm-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-sm-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-sm-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-sm-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-sm-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-sm-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-sm-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-sm-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-sm-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-sm-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-sm-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-sm-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-sm-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-sm-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-sm-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-sm-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:33.33333%}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:66.66667%}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:66.66667%}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-gt-sm,.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-sm{-webkit-flex:1;flex:1}.flex-gt-sm,.flex-gt-sm-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-gt-sm-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-sm-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0,.layout-row>.flex-gt-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{min-width:0}.layout-column>.flex-gt-sm-0{max-width:100%;max-height:0%}.layout-column>.flex-gt-sm-0,.layout-gt-sm-row>.flex-gt-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{max-width:0;max-height:100%;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{max-width:100%;max-height:0%;min-height:0}.layout-gt-sm-column>.flex-gt-sm-0,.layout-gt-sm-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-gt-sm-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5,.layout-row>.flex-gt-sm-5{max-width:5%;max-height:100%}.flex-gt-sm-5,.layout-column>.flex-gt-sm-5,.layout-row>.flex-gt-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{max-width:100%;max-height:5%}.layout-gt-sm-row>.flex-gt-sm-5{max-width:5%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-5,.layout-gt-sm-row>.flex-gt-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{max-width:100%;max-height:5%}.layout-gt-sm-row>.flex-5{max-width:5%;max-height:100%}.layout-gt-sm-column>.flex-5,.layout-gt-sm-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-5{max-width:100%;max-height:5%}.flex-gt-sm-10,.layout-row>.flex-gt-sm-10{max-width:10%;max-height:100%}.flex-gt-sm-10,.layout-column>.flex-gt-sm-10,.layout-row>.flex-gt-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{max-width:100%;max-height:10%}.layout-gt-sm-row>.flex-gt-sm-10{max-width:10%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-10,.layout-gt-sm-row>.flex-gt-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{max-width:100%;max-height:10%}.layout-gt-sm-row>.flex-10{max-width:10%;max-height:100%}.layout-gt-sm-column>.flex-10,.layout-gt-sm-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-10{max-width:100%;max-height:10%}.flex-gt-sm-15,.layout-row>.flex-gt-sm-15{max-width:15%;max-height:100%}.flex-gt-sm-15,.layout-column>.flex-gt-sm-15,.layout-row>.flex-gt-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{max-width:100%;max-height:15%}.layout-gt-sm-row>.flex-gt-sm-15{max-width:15%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-15,.layout-gt-sm-row>.flex-gt-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{max-width:100%;max-height:15%}.layout-gt-sm-row>.flex-15{max-width:15%;max-height:100%}.layout-gt-sm-column>.flex-15,.layout-gt-sm-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-15{max-width:100%;max-height:15%}.flex-gt-sm-20,.layout-row>.flex-gt-sm-20{max-width:20%;max-height:100%}.flex-gt-sm-20,.layout-column>.flex-gt-sm-20,.layout-row>.flex-gt-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{max-width:100%;max-height:20%}.layout-gt-sm-row>.flex-gt-sm-20{max-width:20%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-20,.layout-gt-sm-row>.flex-gt-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{max-width:100%;max-height:20%}.layout-gt-sm-row>.flex-20{max-width:20%;max-height:100%}.layout-gt-sm-column>.flex-20,.layout-gt-sm-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-20{max-width:100%;max-height:20%}.flex-gt-sm-25,.layout-row>.flex-gt-sm-25{max-width:25%;max-height:100%}.flex-gt-sm-25,.layout-column>.flex-gt-sm-25,.layout-row>.flex-gt-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{max-width:100%;max-height:25%}.layout-gt-sm-row>.flex-gt-sm-25{max-width:25%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-25,.layout-gt-sm-row>.flex-gt-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{max-width:100%;max-height:25%}.layout-gt-sm-row>.flex-25{max-width:25%;max-height:100%}.layout-gt-sm-column>.flex-25,.layout-gt-sm-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-25{max-width:100%;max-height:25%}.flex-gt-sm-30,.layout-row>.flex-gt-sm-30{max-width:30%;max-height:100%}.flex-gt-sm-30,.layout-column>.flex-gt-sm-30,.layout-row>.flex-gt-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{max-width:100%;max-height:30%}.layout-gt-sm-row>.flex-gt-sm-30{max-width:30%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-30,.layout-gt-sm-row>.flex-gt-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{max-width:100%;max-height:30%}.layout-gt-sm-row>.flex-30{max-width:30%;max-height:100%}.layout-gt-sm-column>.flex-30,.layout-gt-sm-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-30{max-width:100%;max-height:30%}.flex-gt-sm-35,.layout-row>.flex-gt-sm-35{max-width:35%;max-height:100%}.flex-gt-sm-35,.layout-column>.flex-gt-sm-35,.layout-row>.flex-gt-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{max-width:100%;max-height:35%}.layout-gt-sm-row>.flex-gt-sm-35{max-width:35%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-35,.layout-gt-sm-row>.flex-gt-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{max-width:100%;max-height:35%}.layout-gt-sm-row>.flex-35{max-width:35%;max-height:100%}.layout-gt-sm-column>.flex-35,.layout-gt-sm-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-35{max-width:100%;max-height:35%}.flex-gt-sm-40,.layout-row>.flex-gt-sm-40{max-width:40%;max-height:100%}.flex-gt-sm-40,.layout-column>.flex-gt-sm-40,.layout-row>.flex-gt-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{max-width:100%;max-height:40%}.layout-gt-sm-row>.flex-gt-sm-40{max-width:40%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-40,.layout-gt-sm-row>.flex-gt-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{max-width:100%;max-height:40%}.layout-gt-sm-row>.flex-40{max-width:40%;max-height:100%}.layout-gt-sm-column>.flex-40,.layout-gt-sm-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-40{max-width:100%;max-height:40%}.flex-gt-sm-45,.layout-row>.flex-gt-sm-45{max-width:45%;max-height:100%}.flex-gt-sm-45,.layout-column>.flex-gt-sm-45,.layout-row>.flex-gt-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{max-width:100%;max-height:45%}.layout-gt-sm-row>.flex-gt-sm-45{max-width:45%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-45,.layout-gt-sm-row>.flex-gt-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{max-width:100%;max-height:45%}.layout-gt-sm-row>.flex-45{max-width:45%;max-height:100%}.layout-gt-sm-column>.flex-45,.layout-gt-sm-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-45{max-width:100%;max-height:45%}.flex-gt-sm-50,.layout-row>.flex-gt-sm-50{max-width:50%;max-height:100%}.flex-gt-sm-50,.layout-column>.flex-gt-sm-50,.layout-row>.flex-gt-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{max-width:100%;max-height:50%}.layout-gt-sm-row>.flex-gt-sm-50{max-width:50%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-50,.layout-gt-sm-row>.flex-gt-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{max-width:100%;max-height:50%}.layout-gt-sm-row>.flex-50{max-width:50%;max-height:100%}.layout-gt-sm-column>.flex-50,.layout-gt-sm-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-50{max-width:100%;max-height:50%}.flex-gt-sm-55,.layout-row>.flex-gt-sm-55{max-width:55%;max-height:100%}.flex-gt-sm-55,.layout-column>.flex-gt-sm-55,.layout-row>.flex-gt-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{max-width:100%;max-height:55%}.layout-gt-sm-row>.flex-gt-sm-55{max-width:55%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-55,.layout-gt-sm-row>.flex-gt-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{max-width:100%;max-height:55%}.layout-gt-sm-row>.flex-55{max-width:55%;max-height:100%}.layout-gt-sm-column>.flex-55,.layout-gt-sm-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-55{max-width:100%;max-height:55%}.flex-gt-sm-60,.layout-row>.flex-gt-sm-60{max-width:60%;max-height:100%}.flex-gt-sm-60,.layout-column>.flex-gt-sm-60,.layout-row>.flex-gt-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{max-width:100%;max-height:60%}.layout-gt-sm-row>.flex-gt-sm-60{max-width:60%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-60,.layout-gt-sm-row>.flex-gt-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{max-width:100%;max-height:60%}.layout-gt-sm-row>.flex-60{max-width:60%;max-height:100%}.layout-gt-sm-column>.flex-60,.layout-gt-sm-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-60{max-width:100%;max-height:60%}.flex-gt-sm-65,.layout-row>.flex-gt-sm-65{max-width:65%;max-height:100%}.flex-gt-sm-65,.layout-column>.flex-gt-sm-65,.layout-row>.flex-gt-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{max-width:100%;max-height:65%}.layout-gt-sm-row>.flex-gt-sm-65{max-width:65%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-65,.layout-gt-sm-row>.flex-gt-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{max-width:100%;max-height:65%}.layout-gt-sm-row>.flex-65{max-width:65%;max-height:100%}.layout-gt-sm-column>.flex-65,.layout-gt-sm-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-65{max-width:100%;max-height:65%}.flex-gt-sm-70,.layout-row>.flex-gt-sm-70{max-width:70%;max-height:100%}.flex-gt-sm-70,.layout-column>.flex-gt-sm-70,.layout-row>.flex-gt-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{max-width:100%;max-height:70%}.layout-gt-sm-row>.flex-gt-sm-70{max-width:70%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-70,.layout-gt-sm-row>.flex-gt-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{max-width:100%;max-height:70%}.layout-gt-sm-row>.flex-70{max-width:70%;max-height:100%}.layout-gt-sm-column>.flex-70,.layout-gt-sm-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-70{max-width:100%;max-height:70%}.flex-gt-sm-75,.layout-row>.flex-gt-sm-75{max-width:75%;max-height:100%}.flex-gt-sm-75,.layout-column>.flex-gt-sm-75,.layout-row>.flex-gt-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{max-width:100%;max-height:75%}.layout-gt-sm-row>.flex-gt-sm-75{max-width:75%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-75,.layout-gt-sm-row>.flex-gt-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{max-width:100%;max-height:75%}.layout-gt-sm-row>.flex-75{max-width:75%;max-height:100%}.layout-gt-sm-column>.flex-75,.layout-gt-sm-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-75{max-width:100%;max-height:75%}.flex-gt-sm-80,.layout-row>.flex-gt-sm-80{max-width:80%;max-height:100%}.flex-gt-sm-80,.layout-column>.flex-gt-sm-80,.layout-row>.flex-gt-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{max-width:100%;max-height:80%}.layout-gt-sm-row>.flex-gt-sm-80{max-width:80%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-80,.layout-gt-sm-row>.flex-gt-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{max-width:100%;max-height:80%}.layout-gt-sm-row>.flex-80{max-width:80%;max-height:100%}.layout-gt-sm-column>.flex-80,.layout-gt-sm-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-80{max-width:100%;max-height:80%}.flex-gt-sm-85,.layout-row>.flex-gt-sm-85{max-width:85%;max-height:100%}.flex-gt-sm-85,.layout-column>.flex-gt-sm-85,.layout-row>.flex-gt-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{max-width:100%;max-height:85%}.layout-gt-sm-row>.flex-gt-sm-85{max-width:85%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-85,.layout-gt-sm-row>.flex-gt-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{max-width:100%;max-height:85%}.layout-gt-sm-row>.flex-85{max-width:85%;max-height:100%}.layout-gt-sm-column>.flex-85,.layout-gt-sm-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-85{max-width:100%;max-height:85%}.flex-gt-sm-90,.layout-row>.flex-gt-sm-90{max-width:90%;max-height:100%}.flex-gt-sm-90,.layout-column>.flex-gt-sm-90,.layout-row>.flex-gt-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{max-width:100%;max-height:90%}.layout-gt-sm-row>.flex-gt-sm-90{max-width:90%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-90,.layout-gt-sm-row>.flex-gt-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{max-width:100%;max-height:90%}.layout-gt-sm-row>.flex-90{max-width:90%;max-height:100%}.layout-gt-sm-column>.flex-90,.layout-gt-sm-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-90{max-width:100%;max-height:90%}.flex-gt-sm-95,.layout-row>.flex-gt-sm-95{max-width:95%;max-height:100%}.flex-gt-sm-95,.layout-column>.flex-gt-sm-95,.layout-row>.flex-gt-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{max-width:100%;max-height:95%}.layout-gt-sm-row>.flex-gt-sm-95{max-width:95%;max-height:100%}.layout-gt-sm-column>.flex-gt-sm-95,.layout-gt-sm-row>.flex-gt-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{max-width:100%;max-height:95%}.layout-gt-sm-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-95{max-height:95%}.flex-gt-sm-100,.layout-gt-sm-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-gt-sm-100{max-height:100%}.layout-column>.flex-gt-sm-100,.layout-gt-sm-column>.flex-100,.layout-gt-sm-column>.flex-gt-sm-100,.layout-gt-sm-row>.flex-100,.layout-gt-sm-row>.flex-gt-sm-100,.layout-row>.flex-gt-sm-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-sm-33,.layout-row>.flex-gt-sm-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{max-width:33.33%}.layout-gt-sm-row>.flex-gt-sm-33,.layout-gt-sm-row>.flex-gt-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{max-width:66.66%}.layout-gt-sm-column>.flex-gt-sm-33{max-height:33.33%}.layout-gt-sm-column>.flex-gt-sm-33,.layout-gt-sm-column>.flex-gt-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{max-height:66.66%}.layout-gt-sm-row>.flex-33{max-width:33.33%}.layout-gt-sm-row>.flex-33,.layout-gt-sm-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-66{max-width:66.66%}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-33{max-height:33.33%}.layout-gt-sm-column>.flex-33,.layout-gt-sm-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-66{max-height:66.66%}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-sm-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-sm-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.flex-order-md--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-md--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-md--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-md--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-md--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-md--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-md--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-md--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-md--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-md--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-md--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-md--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-md--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-md--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-md--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-md--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-md--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-md--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-md--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-md--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-md-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-md-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-md-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-md-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-md-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-md-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-md-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-md-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-md-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-md-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-md-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-md-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-md-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-md-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-md-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-md-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-md-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-md-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-md-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-md-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-md-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:33.33333%}.flex-offset-md-66,.offset-md-66{margin-left:66.66667%}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:66.66667%}.layout-align-md,.layout-align-md-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-md,.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-md{-webkit-flex:1;flex:1}.flex-md,.flex-md-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-md-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-md-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-md-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-md-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-md-0,.layout-row>.flex-md-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{min-width:0}.layout-column>.flex-md-0{max-width:100%;max-height:0%}.layout-column>.flex-md-0,.layout-md-row>.flex-md-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-row>.flex-md-0{max-width:0;max-height:100%;min-width:0}.layout-md-column>.flex-md-0{max-width:100%;max-height:0%;min-height:0}.layout-md-column>.flex-md-0,.layout-md-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-md-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5,.layout-row>.flex-md-5{max-width:5%;max-height:100%}.flex-md-5,.layout-column>.flex-md-5,.layout-row>.flex-md-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-5{max-width:100%;max-height:5%}.layout-md-row>.flex-md-5{max-width:5%;max-height:100%}.layout-md-column>.flex-md-5,.layout-md-row>.flex-md-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-5{max-width:100%;max-height:5%}.layout-md-row>.flex-5{max-width:5%;max-height:100%}.layout-md-column>.flex-5,.layout-md-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-5{max-width:100%;max-height:5%}.flex-md-10,.layout-row>.flex-md-10{max-width:10%;max-height:100%}.flex-md-10,.layout-column>.flex-md-10,.layout-row>.flex-md-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-10{max-width:100%;max-height:10%}.layout-md-row>.flex-md-10{max-width:10%;max-height:100%}.layout-md-column>.flex-md-10,.layout-md-row>.flex-md-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-10{max-width:100%;max-height:10%}.layout-md-row>.flex-10{max-width:10%;max-height:100%}.layout-md-column>.flex-10,.layout-md-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-10{max-width:100%;max-height:10%}.flex-md-15,.layout-row>.flex-md-15{max-width:15%;max-height:100%}.flex-md-15,.layout-column>.flex-md-15,.layout-row>.flex-md-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-15{max-width:100%;max-height:15%}.layout-md-row>.flex-md-15{max-width:15%;max-height:100%}.layout-md-column>.flex-md-15,.layout-md-row>.flex-md-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-15{max-width:100%;max-height:15%}.layout-md-row>.flex-15{max-width:15%;max-height:100%}.layout-md-column>.flex-15,.layout-md-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-15{max-width:100%;max-height:15%}.flex-md-20,.layout-row>.flex-md-20{max-width:20%;max-height:100%}.flex-md-20,.layout-column>.flex-md-20,.layout-row>.flex-md-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-20{max-width:100%;max-height:20%}.layout-md-row>.flex-md-20{max-width:20%;max-height:100%}.layout-md-column>.flex-md-20,.layout-md-row>.flex-md-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-20{max-width:100%;max-height:20%}.layout-md-row>.flex-20{max-width:20%;max-height:100%}.layout-md-column>.flex-20,.layout-md-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-20{max-width:100%;max-height:20%}.flex-md-25,.layout-row>.flex-md-25{max-width:25%;max-height:100%}.flex-md-25,.layout-column>.flex-md-25,.layout-row>.flex-md-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-25{max-width:100%;max-height:25%}.layout-md-row>.flex-md-25{max-width:25%;max-height:100%}.layout-md-column>.flex-md-25,.layout-md-row>.flex-md-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-25{max-width:100%;max-height:25%}.layout-md-row>.flex-25{max-width:25%;max-height:100%}.layout-md-column>.flex-25,.layout-md-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-25{max-width:100%;max-height:25%}.flex-md-30,.layout-row>.flex-md-30{max-width:30%;max-height:100%}.flex-md-30,.layout-column>.flex-md-30,.layout-row>.flex-md-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-30{max-width:100%;max-height:30%}.layout-md-row>.flex-md-30{max-width:30%;max-height:100%}.layout-md-column>.flex-md-30,.layout-md-row>.flex-md-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-30{max-width:100%;max-height:30%}.layout-md-row>.flex-30{max-width:30%;max-height:100%}.layout-md-column>.flex-30,.layout-md-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-30{max-width:100%;max-height:30%}.flex-md-35,.layout-row>.flex-md-35{max-width:35%;max-height:100%}.flex-md-35,.layout-column>.flex-md-35,.layout-row>.flex-md-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-35{max-width:100%;max-height:35%}.layout-md-row>.flex-md-35{max-width:35%;max-height:100%}.layout-md-column>.flex-md-35,.layout-md-row>.flex-md-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-35{max-width:100%;max-height:35%}.layout-md-row>.flex-35{max-width:35%;max-height:100%}.layout-md-column>.flex-35,.layout-md-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-35{max-width:100%;max-height:35%}.flex-md-40,.layout-row>.flex-md-40{max-width:40%;max-height:100%}.flex-md-40,.layout-column>.flex-md-40,.layout-row>.flex-md-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-40{max-width:100%;max-height:40%}.layout-md-row>.flex-md-40{max-width:40%;max-height:100%}.layout-md-column>.flex-md-40,.layout-md-row>.flex-md-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-40{max-width:100%;max-height:40%}.layout-md-row>.flex-40{max-width:40%;max-height:100%}.layout-md-column>.flex-40,.layout-md-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-40{max-width:100%;max-height:40%}.flex-md-45,.layout-row>.flex-md-45{max-width:45%;max-height:100%}.flex-md-45,.layout-column>.flex-md-45,.layout-row>.flex-md-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-45{max-width:100%;max-height:45%}.layout-md-row>.flex-md-45{max-width:45%;max-height:100%}.layout-md-column>.flex-md-45,.layout-md-row>.flex-md-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-45{max-width:100%;max-height:45%}.layout-md-row>.flex-45{max-width:45%;max-height:100%}.layout-md-column>.flex-45,.layout-md-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-45{max-width:100%;max-height:45%}.flex-md-50,.layout-row>.flex-md-50{max-width:50%;max-height:100%}.flex-md-50,.layout-column>.flex-md-50,.layout-row>.flex-md-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-50{max-width:100%;max-height:50%}.layout-md-row>.flex-md-50{max-width:50%;max-height:100%}.layout-md-column>.flex-md-50,.layout-md-row>.flex-md-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-50{max-width:100%;max-height:50%}.layout-md-row>.flex-50{max-width:50%;max-height:100%}.layout-md-column>.flex-50,.layout-md-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-50{max-width:100%;max-height:50%}.flex-md-55,.layout-row>.flex-md-55{max-width:55%;max-height:100%}.flex-md-55,.layout-column>.flex-md-55,.layout-row>.flex-md-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-55{max-width:100%;max-height:55%}.layout-md-row>.flex-md-55{max-width:55%;max-height:100%}.layout-md-column>.flex-md-55,.layout-md-row>.flex-md-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-55{max-width:100%;max-height:55%}.layout-md-row>.flex-55{max-width:55%;max-height:100%}.layout-md-column>.flex-55,.layout-md-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-55{max-width:100%;max-height:55%}.flex-md-60,.layout-row>.flex-md-60{max-width:60%;max-height:100%}.flex-md-60,.layout-column>.flex-md-60,.layout-row>.flex-md-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-60{max-width:100%;max-height:60%}.layout-md-row>.flex-md-60{max-width:60%;max-height:100%}.layout-md-column>.flex-md-60,.layout-md-row>.flex-md-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-60{max-width:100%;max-height:60%}.layout-md-row>.flex-60{max-width:60%;max-height:100%}.layout-md-column>.flex-60,.layout-md-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-60{max-width:100%;max-height:60%}.flex-md-65,.layout-row>.flex-md-65{max-width:65%;max-height:100%}.flex-md-65,.layout-column>.flex-md-65,.layout-row>.flex-md-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-65{max-width:100%;max-height:65%}.layout-md-row>.flex-md-65{max-width:65%;max-height:100%}.layout-md-column>.flex-md-65,.layout-md-row>.flex-md-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-65{max-width:100%;max-height:65%}.layout-md-row>.flex-65{max-width:65%;max-height:100%}.layout-md-column>.flex-65,.layout-md-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-65{max-width:100%;max-height:65%}.flex-md-70,.layout-row>.flex-md-70{max-width:70%;max-height:100%}.flex-md-70,.layout-column>.flex-md-70,.layout-row>.flex-md-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-70{max-width:100%;max-height:70%}.layout-md-row>.flex-md-70{max-width:70%;max-height:100%}.layout-md-column>.flex-md-70,.layout-md-row>.flex-md-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-70{max-width:100%;max-height:70%}.layout-md-row>.flex-70{max-width:70%;max-height:100%}.layout-md-column>.flex-70,.layout-md-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-70{max-width:100%;max-height:70%}.flex-md-75,.layout-row>.flex-md-75{max-width:75%;max-height:100%}.flex-md-75,.layout-column>.flex-md-75,.layout-row>.flex-md-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-75{max-width:100%;max-height:75%}.layout-md-row>.flex-md-75{max-width:75%;max-height:100%}.layout-md-column>.flex-md-75,.layout-md-row>.flex-md-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-75{max-width:100%;max-height:75%}.layout-md-row>.flex-75{max-width:75%;max-height:100%}.layout-md-column>.flex-75,.layout-md-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-75{max-width:100%;max-height:75%}.flex-md-80,.layout-row>.flex-md-80{max-width:80%;max-height:100%}.flex-md-80,.layout-column>.flex-md-80,.layout-row>.flex-md-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-80{max-width:100%;max-height:80%}.layout-md-row>.flex-md-80{max-width:80%;max-height:100%}.layout-md-column>.flex-md-80,.layout-md-row>.flex-md-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-80{max-width:100%;max-height:80%}.layout-md-row>.flex-80{max-width:80%;max-height:100%}.layout-md-column>.flex-80,.layout-md-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-80{max-width:100%;max-height:80%}.flex-md-85,.layout-row>.flex-md-85{max-width:85%;max-height:100%}.flex-md-85,.layout-column>.flex-md-85,.layout-row>.flex-md-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-85{max-width:100%;max-height:85%}.layout-md-row>.flex-md-85{max-width:85%;max-height:100%}.layout-md-column>.flex-md-85,.layout-md-row>.flex-md-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-85{max-width:100%;max-height:85%}.layout-md-row>.flex-85{max-width:85%;max-height:100%}.layout-md-column>.flex-85,.layout-md-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-85{max-width:100%;max-height:85%}.flex-md-90,.layout-row>.flex-md-90{max-width:90%;max-height:100%}.flex-md-90,.layout-column>.flex-md-90,.layout-row>.flex-md-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-90{max-width:100%;max-height:90%}.layout-md-row>.flex-md-90{max-width:90%;max-height:100%}.layout-md-column>.flex-md-90,.layout-md-row>.flex-md-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-90{max-width:100%;max-height:90%}.layout-md-row>.flex-90{max-width:90%;max-height:100%}.layout-md-column>.flex-90,.layout-md-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-90{max-width:100%;max-height:90%}.flex-md-95,.layout-row>.flex-md-95{max-width:95%;max-height:100%}.flex-md-95,.layout-column>.flex-md-95,.layout-row>.flex-md-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-md-95{max-width:100%;max-height:95%}.layout-md-row>.flex-md-95{max-width:95%;max-height:100%}.layout-md-column>.flex-md-95,.layout-md-row>.flex-md-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-md-column>.flex-md-95{max-width:100%;max-height:95%}.layout-md-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-95{max-height:95%}.flex-md-100,.layout-md-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-md-100{max-height:100%}.layout-column>.flex-md-100,.layout-md-column>.flex-100,.layout-md-column>.flex-md-100,.layout-md-row>.flex-100,.layout-md-row>.flex-md-100,.layout-row>.flex-md-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-md-33,.layout-row>.flex-md-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-md-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}.layout-column>.flex-md-33,.layout-column>.flex-md-66{-webkit-box-flex:1;max-width:100%;box-sizing:border-box}.layout-column>.flex-md-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}.layout-md-row>.flex-md-33{max-width:33.33%}.layout-md-row>.flex-md-33,.layout-md-row>.flex-md-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{max-width:66.66%}.layout-md-column>.flex-md-33{max-height:33.33%}.layout-md-column>.flex-md-33,.layout-md-column>.flex-md-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-md-column>.flex-md-66{max-height:66.66%}.layout-md-row>.flex-33{max-width:33.33%}.layout-md-row>.flex-33,.layout-md-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-66{max-width:66.66%}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-33{max-height:33.33%}.layout-md-column>.flex-33,.layout-md-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-md-column>.flex-66{max-height:66.66%}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-md-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-md-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-md--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-md--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-md--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-md--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-md--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-md--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-md--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-md--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-md--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-md--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-md--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-md--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-md--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-md--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-md--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-md--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-md--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-md--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-md--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-md-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-md-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-md-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-md-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-md-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-md-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-md-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-md-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-md-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-md-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-md-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-md-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-md-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-md-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-md-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-md-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-md-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-md-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-md-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-md-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-md-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:33.33333%}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:66.66667%}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:66.66667%}.layout-align-gt-md,.layout-align-gt-md-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-gt-md,.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-md{-webkit-flex:1;flex:1}.flex-gt-md,.flex-gt-md-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-gt-md-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-md-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0,.layout-row>.flex-gt-md-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{min-width:0}.layout-column>.flex-gt-md-0{max-width:100%;max-height:0%}.layout-column>.flex-gt-md-0,.layout-gt-md-row>.flex-gt-md-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{max-width:0;max-height:100%;min-width:0}.layout-gt-md-column>.flex-gt-md-0{max-width:100%;max-height:0%;min-height:0}.layout-gt-md-column>.flex-gt-md-0,.layout-gt-md-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-gt-md-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5,.layout-row>.flex-gt-md-5{max-width:5%;max-height:100%}.flex-gt-md-5,.layout-column>.flex-gt-md-5,.layout-row>.flex-gt-md-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{max-width:100%;max-height:5%}.layout-gt-md-row>.flex-gt-md-5{max-width:5%;max-height:100%}.layout-gt-md-column>.flex-gt-md-5,.layout-gt-md-row>.flex-gt-md-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{max-width:100%;max-height:5%}.layout-gt-md-row>.flex-5{max-width:5%;max-height:100%}.layout-gt-md-column>.flex-5,.layout-gt-md-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-5{max-width:100%;max-height:5%}.flex-gt-md-10,.layout-row>.flex-gt-md-10{max-width:10%;max-height:100%}.flex-gt-md-10,.layout-column>.flex-gt-md-10,.layout-row>.flex-gt-md-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{max-width:100%;max-height:10%}.layout-gt-md-row>.flex-gt-md-10{max-width:10%;max-height:100%}.layout-gt-md-column>.flex-gt-md-10,.layout-gt-md-row>.flex-gt-md-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{max-width:100%;max-height:10%}.layout-gt-md-row>.flex-10{max-width:10%;max-height:100%}.layout-gt-md-column>.flex-10,.layout-gt-md-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-10{max-width:100%;max-height:10%}.flex-gt-md-15,.layout-row>.flex-gt-md-15{max-width:15%;max-height:100%}.flex-gt-md-15,.layout-column>.flex-gt-md-15,.layout-row>.flex-gt-md-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{max-width:100%;max-height:15%}.layout-gt-md-row>.flex-gt-md-15{max-width:15%;max-height:100%}.layout-gt-md-column>.flex-gt-md-15,.layout-gt-md-row>.flex-gt-md-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{max-width:100%;max-height:15%}.layout-gt-md-row>.flex-15{max-width:15%;max-height:100%}.layout-gt-md-column>.flex-15,.layout-gt-md-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-15{max-width:100%;max-height:15%}.flex-gt-md-20,.layout-row>.flex-gt-md-20{max-width:20%;max-height:100%}.flex-gt-md-20,.layout-column>.flex-gt-md-20,.layout-row>.flex-gt-md-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{max-width:100%;max-height:20%}.layout-gt-md-row>.flex-gt-md-20{max-width:20%;max-height:100%}.layout-gt-md-column>.flex-gt-md-20,.layout-gt-md-row>.flex-gt-md-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{max-width:100%;max-height:20%}.layout-gt-md-row>.flex-20{max-width:20%;max-height:100%}.layout-gt-md-column>.flex-20,.layout-gt-md-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-20{max-width:100%;max-height:20%}.flex-gt-md-25,.layout-row>.flex-gt-md-25{max-width:25%;max-height:100%}.flex-gt-md-25,.layout-column>.flex-gt-md-25,.layout-row>.flex-gt-md-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{max-width:100%;max-height:25%}.layout-gt-md-row>.flex-gt-md-25{max-width:25%;max-height:100%}.layout-gt-md-column>.flex-gt-md-25,.layout-gt-md-row>.flex-gt-md-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{max-width:100%;max-height:25%}.layout-gt-md-row>.flex-25{max-width:25%;max-height:100%}.layout-gt-md-column>.flex-25,.layout-gt-md-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-25{max-width:100%;max-height:25%}.flex-gt-md-30,.layout-row>.flex-gt-md-30{max-width:30%;max-height:100%}.flex-gt-md-30,.layout-column>.flex-gt-md-30,.layout-row>.flex-gt-md-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{max-width:100%;max-height:30%}.layout-gt-md-row>.flex-gt-md-30{max-width:30%;max-height:100%}.layout-gt-md-column>.flex-gt-md-30,.layout-gt-md-row>.flex-gt-md-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{max-width:100%;max-height:30%}.layout-gt-md-row>.flex-30{max-width:30%;max-height:100%}.layout-gt-md-column>.flex-30,.layout-gt-md-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-30{max-width:100%;max-height:30%}.flex-gt-md-35,.layout-row>.flex-gt-md-35{max-width:35%;max-height:100%}.flex-gt-md-35,.layout-column>.flex-gt-md-35,.layout-row>.flex-gt-md-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{max-width:100%;max-height:35%}.layout-gt-md-row>.flex-gt-md-35{max-width:35%;max-height:100%}.layout-gt-md-column>.flex-gt-md-35,.layout-gt-md-row>.flex-gt-md-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{max-width:100%;max-height:35%}.layout-gt-md-row>.flex-35{max-width:35%;max-height:100%}.layout-gt-md-column>.flex-35,.layout-gt-md-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-35{max-width:100%;max-height:35%}.flex-gt-md-40,.layout-row>.flex-gt-md-40{max-width:40%;max-height:100%}.flex-gt-md-40,.layout-column>.flex-gt-md-40,.layout-row>.flex-gt-md-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{max-width:100%;max-height:40%}.layout-gt-md-row>.flex-gt-md-40{max-width:40%;max-height:100%}.layout-gt-md-column>.flex-gt-md-40,.layout-gt-md-row>.flex-gt-md-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{max-width:100%;max-height:40%}.layout-gt-md-row>.flex-40{max-width:40%;max-height:100%}.layout-gt-md-column>.flex-40,.layout-gt-md-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-40{max-width:100%;max-height:40%}.flex-gt-md-45,.layout-row>.flex-gt-md-45{max-width:45%;max-height:100%}.flex-gt-md-45,.layout-column>.flex-gt-md-45,.layout-row>.flex-gt-md-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{max-width:100%;max-height:45%}.layout-gt-md-row>.flex-gt-md-45{max-width:45%;max-height:100%}.layout-gt-md-column>.flex-gt-md-45,.layout-gt-md-row>.flex-gt-md-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{max-width:100%;max-height:45%}.layout-gt-md-row>.flex-45{max-width:45%;max-height:100%}.layout-gt-md-column>.flex-45,.layout-gt-md-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-45{max-width:100%;max-height:45%}.flex-gt-md-50,.layout-row>.flex-gt-md-50{max-width:50%;max-height:100%}.flex-gt-md-50,.layout-column>.flex-gt-md-50,.layout-row>.flex-gt-md-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{max-width:100%;max-height:50%}.layout-gt-md-row>.flex-gt-md-50{max-width:50%;max-height:100%}.layout-gt-md-column>.flex-gt-md-50,.layout-gt-md-row>.flex-gt-md-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{max-width:100%;max-height:50%}.layout-gt-md-row>.flex-50{max-width:50%;max-height:100%}.layout-gt-md-column>.flex-50,.layout-gt-md-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-50{max-width:100%;max-height:50%}.flex-gt-md-55,.layout-row>.flex-gt-md-55{max-width:55%;max-height:100%}.flex-gt-md-55,.layout-column>.flex-gt-md-55,.layout-row>.flex-gt-md-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{max-width:100%;max-height:55%}.layout-gt-md-row>.flex-gt-md-55{max-width:55%;max-height:100%}.layout-gt-md-column>.flex-gt-md-55,.layout-gt-md-row>.flex-gt-md-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{max-width:100%;max-height:55%}.layout-gt-md-row>.flex-55{max-width:55%;max-height:100%}.layout-gt-md-column>.flex-55,.layout-gt-md-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-55{max-width:100%;max-height:55%}.flex-gt-md-60,.layout-row>.flex-gt-md-60{max-width:60%;max-height:100%}.flex-gt-md-60,.layout-column>.flex-gt-md-60,.layout-row>.flex-gt-md-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{max-width:100%;max-height:60%}.layout-gt-md-row>.flex-gt-md-60{max-width:60%;max-height:100%}.layout-gt-md-column>.flex-gt-md-60,.layout-gt-md-row>.flex-gt-md-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{max-width:100%;max-height:60%}.layout-gt-md-row>.flex-60{max-width:60%;max-height:100%}.layout-gt-md-column>.flex-60,.layout-gt-md-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-60{max-width:100%;max-height:60%}.flex-gt-md-65,.layout-row>.flex-gt-md-65{max-width:65%;max-height:100%}.flex-gt-md-65,.layout-column>.flex-gt-md-65,.layout-row>.flex-gt-md-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{max-width:100%;max-height:65%}.layout-gt-md-row>.flex-gt-md-65{max-width:65%;max-height:100%}.layout-gt-md-column>.flex-gt-md-65,.layout-gt-md-row>.flex-gt-md-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{max-width:100%;max-height:65%}.layout-gt-md-row>.flex-65{max-width:65%;max-height:100%}.layout-gt-md-column>.flex-65,.layout-gt-md-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-65{max-width:100%;max-height:65%}.flex-gt-md-70,.layout-row>.flex-gt-md-70{max-width:70%;max-height:100%}.flex-gt-md-70,.layout-column>.flex-gt-md-70,.layout-row>.flex-gt-md-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{max-width:100%;max-height:70%}.layout-gt-md-row>.flex-gt-md-70{max-width:70%;max-height:100%}.layout-gt-md-column>.flex-gt-md-70,.layout-gt-md-row>.flex-gt-md-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{max-width:100%;max-height:70%}.layout-gt-md-row>.flex-70{max-width:70%;max-height:100%}.layout-gt-md-column>.flex-70,.layout-gt-md-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-70{max-width:100%;max-height:70%}.flex-gt-md-75,.layout-row>.flex-gt-md-75{max-width:75%;max-height:100%}.flex-gt-md-75,.layout-column>.flex-gt-md-75,.layout-row>.flex-gt-md-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{max-width:100%;max-height:75%}.layout-gt-md-row>.flex-gt-md-75{max-width:75%;max-height:100%}.layout-gt-md-column>.flex-gt-md-75,.layout-gt-md-row>.flex-gt-md-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{max-width:100%;max-height:75%}.layout-gt-md-row>.flex-75{max-width:75%;max-height:100%}.layout-gt-md-column>.flex-75,.layout-gt-md-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-75{max-width:100%;max-height:75%}.flex-gt-md-80,.layout-row>.flex-gt-md-80{max-width:80%;max-height:100%}.flex-gt-md-80,.layout-column>.flex-gt-md-80,.layout-row>.flex-gt-md-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{max-width:100%;max-height:80%}.layout-gt-md-row>.flex-gt-md-80{max-width:80%;max-height:100%}.layout-gt-md-column>.flex-gt-md-80,.layout-gt-md-row>.flex-gt-md-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{max-width:100%;max-height:80%}.layout-gt-md-row>.flex-80{max-width:80%;max-height:100%}.layout-gt-md-column>.flex-80,.layout-gt-md-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-80{max-width:100%;max-height:80%}.flex-gt-md-85,.layout-row>.flex-gt-md-85{max-width:85%;max-height:100%}.flex-gt-md-85,.layout-column>.flex-gt-md-85,.layout-row>.flex-gt-md-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{max-width:100%;max-height:85%}.layout-gt-md-row>.flex-gt-md-85{max-width:85%;max-height:100%}.layout-gt-md-column>.flex-gt-md-85,.layout-gt-md-row>.flex-gt-md-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{max-width:100%;max-height:85%}.layout-gt-md-row>.flex-85{max-width:85%;max-height:100%}.layout-gt-md-column>.flex-85,.layout-gt-md-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-85{max-width:100%;max-height:85%}.flex-gt-md-90,.layout-row>.flex-gt-md-90{max-width:90%;max-height:100%}.flex-gt-md-90,.layout-column>.flex-gt-md-90,.layout-row>.flex-gt-md-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{max-width:100%;max-height:90%}.layout-gt-md-row>.flex-gt-md-90{max-width:90%;max-height:100%}.layout-gt-md-column>.flex-gt-md-90,.layout-gt-md-row>.flex-gt-md-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{max-width:100%;max-height:90%}.layout-gt-md-row>.flex-90{max-width:90%;max-height:100%}.layout-gt-md-column>.flex-90,.layout-gt-md-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-90{max-width:100%;max-height:90%}.flex-gt-md-95,.layout-row>.flex-gt-md-95{max-width:95%;max-height:100%}.flex-gt-md-95,.layout-column>.flex-gt-md-95,.layout-row>.flex-gt-md-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{max-width:100%;max-height:95%}.layout-gt-md-row>.flex-gt-md-95{max-width:95%;max-height:100%}.layout-gt-md-column>.flex-gt-md-95,.layout-gt-md-row>.flex-gt-md-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{max-width:100%;max-height:95%}.layout-gt-md-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-95{max-height:95%}.flex-gt-md-100,.layout-gt-md-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-gt-md-100{max-height:100%}.layout-column>.flex-gt-md-100,.layout-gt-md-column>.flex-100,.layout-gt-md-column>.flex-gt-md-100,.layout-gt-md-row>.flex-100,.layout-gt-md-row>.flex-gt-md-100,.layout-row>.flex-gt-md-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-md-33,.layout-row>.flex-gt-md-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{max-width:33.33%}.layout-gt-md-row>.flex-gt-md-33,.layout-gt-md-row>.flex-gt-md-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{max-width:66.66%}.layout-gt-md-column>.flex-gt-md-33{max-height:33.33%}.layout-gt-md-column>.flex-gt-md-33,.layout-gt-md-column>.flex-gt-md-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{max-height:66.66%}.layout-gt-md-row>.flex-33{max-width:33.33%}.layout-gt-md-row>.flex-33,.layout-gt-md-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-66{max-width:66.66%}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-33{max-height:33.33%}.layout-gt-md-column>.flex-33,.layout-gt-md-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-md-column>.flex-66{max-height:66.66%}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-md-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-md-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.flex-order-lg--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-lg--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-lg--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-lg--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-lg--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-lg--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-lg--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-lg--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-lg--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-lg--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-lg--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-lg--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-lg--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-lg--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-lg--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-lg--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-lg--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-lg--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-lg--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-lg--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-lg-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-lg-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-lg-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-lg-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-lg-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-lg-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-lg-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-lg-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-lg-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-lg-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-lg-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-lg-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-lg-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-lg-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-lg-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-lg-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-lg-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-lg-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-lg-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-lg-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-lg-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:33.33333%}.flex-offset-lg-66,.offset-lg-66{margin-left:66.66667%}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:66.66667%}.layout-align-lg,.layout-align-lg-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-lg,.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-lg{-webkit-flex:1;flex:1}.flex-lg,.flex-lg-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-lg-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-lg-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-lg-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-lg-0,.layout-row>.flex-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{min-width:0}.layout-column>.flex-lg-0{max-width:100%;max-height:0%}.layout-column>.flex-lg-0,.layout-lg-row>.flex-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{max-width:0;max-height:100%;min-width:0}.layout-lg-column>.flex-lg-0{max-width:100%;max-height:0%;min-height:0}.layout-lg-column>.flex-lg-0,.layout-lg-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-lg-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5,.layout-row>.flex-lg-5{max-width:5%;max-height:100%}.flex-lg-5,.layout-column>.flex-lg-5,.layout-row>.flex-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-5{max-width:100%;max-height:5%}.layout-lg-row>.flex-lg-5{max-width:5%;max-height:100%}.layout-lg-column>.flex-lg-5,.layout-lg-row>.flex-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{max-width:100%;max-height:5%}.layout-lg-row>.flex-5{max-width:5%;max-height:100%}.layout-lg-column>.flex-5,.layout-lg-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-5{max-width:100%;max-height:5%}.flex-lg-10,.layout-row>.flex-lg-10{max-width:10%;max-height:100%}.flex-lg-10,.layout-column>.flex-lg-10,.layout-row>.flex-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-10{max-width:100%;max-height:10%}.layout-lg-row>.flex-lg-10{max-width:10%;max-height:100%}.layout-lg-column>.flex-lg-10,.layout-lg-row>.flex-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{max-width:100%;max-height:10%}.layout-lg-row>.flex-10{max-width:10%;max-height:100%}.layout-lg-column>.flex-10,.layout-lg-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-10{max-width:100%;max-height:10%}.flex-lg-15,.layout-row>.flex-lg-15{max-width:15%;max-height:100%}.flex-lg-15,.layout-column>.flex-lg-15,.layout-row>.flex-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-15{max-width:100%;max-height:15%}.layout-lg-row>.flex-lg-15{max-width:15%;max-height:100%}.layout-lg-column>.flex-lg-15,.layout-lg-row>.flex-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{max-width:100%;max-height:15%}.layout-lg-row>.flex-15{max-width:15%;max-height:100%}.layout-lg-column>.flex-15,.layout-lg-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-15{max-width:100%;max-height:15%}.flex-lg-20,.layout-row>.flex-lg-20{max-width:20%;max-height:100%}.flex-lg-20,.layout-column>.flex-lg-20,.layout-row>.flex-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-20{max-width:100%;max-height:20%}.layout-lg-row>.flex-lg-20{max-width:20%;max-height:100%}.layout-lg-column>.flex-lg-20,.layout-lg-row>.flex-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{max-width:100%;max-height:20%}.layout-lg-row>.flex-20{max-width:20%;max-height:100%}.layout-lg-column>.flex-20,.layout-lg-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-20{max-width:100%;max-height:20%}.flex-lg-25,.layout-row>.flex-lg-25{max-width:25%;max-height:100%}.flex-lg-25,.layout-column>.flex-lg-25,.layout-row>.flex-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-25{max-width:100%;max-height:25%}.layout-lg-row>.flex-lg-25{max-width:25%;max-height:100%}.layout-lg-column>.flex-lg-25,.layout-lg-row>.flex-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{max-width:100%;max-height:25%}.layout-lg-row>.flex-25{max-width:25%;max-height:100%}.layout-lg-column>.flex-25,.layout-lg-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-25{max-width:100%;max-height:25%}.flex-lg-30,.layout-row>.flex-lg-30{max-width:30%;max-height:100%}.flex-lg-30,.layout-column>.flex-lg-30,.layout-row>.flex-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-30{max-width:100%;max-height:30%}.layout-lg-row>.flex-lg-30{max-width:30%;max-height:100%}.layout-lg-column>.flex-lg-30,.layout-lg-row>.flex-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{max-width:100%;max-height:30%}.layout-lg-row>.flex-30{max-width:30%;max-height:100%}.layout-lg-column>.flex-30,.layout-lg-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-30{max-width:100%;max-height:30%}.flex-lg-35,.layout-row>.flex-lg-35{max-width:35%;max-height:100%}.flex-lg-35,.layout-column>.flex-lg-35,.layout-row>.flex-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-35{max-width:100%;max-height:35%}.layout-lg-row>.flex-lg-35{max-width:35%;max-height:100%}.layout-lg-column>.flex-lg-35,.layout-lg-row>.flex-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{max-width:100%;max-height:35%}.layout-lg-row>.flex-35{max-width:35%;max-height:100%}.layout-lg-column>.flex-35,.layout-lg-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-35{max-width:100%;max-height:35%}.flex-lg-40,.layout-row>.flex-lg-40{max-width:40%;max-height:100%}.flex-lg-40,.layout-column>.flex-lg-40,.layout-row>.flex-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-40{max-width:100%;max-height:40%}.layout-lg-row>.flex-lg-40{max-width:40%;max-height:100%}.layout-lg-column>.flex-lg-40,.layout-lg-row>.flex-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{max-width:100%;max-height:40%}.layout-lg-row>.flex-40{max-width:40%;max-height:100%}.layout-lg-column>.flex-40,.layout-lg-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-40{max-width:100%;max-height:40%}.flex-lg-45,.layout-row>.flex-lg-45{max-width:45%;max-height:100%}.flex-lg-45,.layout-column>.flex-lg-45,.layout-row>.flex-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-45{max-width:100%;max-height:45%}.layout-lg-row>.flex-lg-45{max-width:45%;max-height:100%}.layout-lg-column>.flex-lg-45,.layout-lg-row>.flex-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{max-width:100%;max-height:45%}.layout-lg-row>.flex-45{max-width:45%;max-height:100%}.layout-lg-column>.flex-45,.layout-lg-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-45{max-width:100%;max-height:45%}.flex-lg-50,.layout-row>.flex-lg-50{max-width:50%;max-height:100%}.flex-lg-50,.layout-column>.flex-lg-50,.layout-row>.flex-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-50{max-width:100%;max-height:50%}.layout-lg-row>.flex-lg-50{max-width:50%;max-height:100%}.layout-lg-column>.flex-lg-50,.layout-lg-row>.flex-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{max-width:100%;max-height:50%}.layout-lg-row>.flex-50{max-width:50%;max-height:100%}.layout-lg-column>.flex-50,.layout-lg-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-50{max-width:100%;max-height:50%}.flex-lg-55,.layout-row>.flex-lg-55{max-width:55%;max-height:100%}.flex-lg-55,.layout-column>.flex-lg-55,.layout-row>.flex-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-55{max-width:100%;max-height:55%}.layout-lg-row>.flex-lg-55{max-width:55%;max-height:100%}.layout-lg-column>.flex-lg-55,.layout-lg-row>.flex-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{max-width:100%;max-height:55%}.layout-lg-row>.flex-55{max-width:55%;max-height:100%}.layout-lg-column>.flex-55,.layout-lg-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-55{max-width:100%;max-height:55%}.flex-lg-60,.layout-row>.flex-lg-60{max-width:60%;max-height:100%}.flex-lg-60,.layout-column>.flex-lg-60,.layout-row>.flex-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-60{max-width:100%;max-height:60%}.layout-lg-row>.flex-lg-60{max-width:60%;max-height:100%}.layout-lg-column>.flex-lg-60,.layout-lg-row>.flex-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{max-width:100%;max-height:60%}.layout-lg-row>.flex-60{max-width:60%;max-height:100%}.layout-lg-column>.flex-60,.layout-lg-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-60{max-width:100%;max-height:60%}.flex-lg-65,.layout-row>.flex-lg-65{max-width:65%;max-height:100%}.flex-lg-65,.layout-column>.flex-lg-65,.layout-row>.flex-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-65{max-width:100%;max-height:65%}.layout-lg-row>.flex-lg-65{max-width:65%;max-height:100%}.layout-lg-column>.flex-lg-65,.layout-lg-row>.flex-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{max-width:100%;max-height:65%}.layout-lg-row>.flex-65{max-width:65%;max-height:100%}.layout-lg-column>.flex-65,.layout-lg-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-65{max-width:100%;max-height:65%}.flex-lg-70,.layout-row>.flex-lg-70{max-width:70%;max-height:100%}.flex-lg-70,.layout-column>.flex-lg-70,.layout-row>.flex-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-70{max-width:100%;max-height:70%}.layout-lg-row>.flex-lg-70{max-width:70%;max-height:100%}.layout-lg-column>.flex-lg-70,.layout-lg-row>.flex-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{max-width:100%;max-height:70%}.layout-lg-row>.flex-70{max-width:70%;max-height:100%}.layout-lg-column>.flex-70,.layout-lg-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-70{max-width:100%;max-height:70%}.flex-lg-75,.layout-row>.flex-lg-75{max-width:75%;max-height:100%}.flex-lg-75,.layout-column>.flex-lg-75,.layout-row>.flex-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-75{max-width:100%;max-height:75%}.layout-lg-row>.flex-lg-75{max-width:75%;max-height:100%}.layout-lg-column>.flex-lg-75,.layout-lg-row>.flex-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{max-width:100%;max-height:75%}.layout-lg-row>.flex-75{max-width:75%;max-height:100%}.layout-lg-column>.flex-75,.layout-lg-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-75{max-width:100%;max-height:75%}.flex-lg-80,.layout-row>.flex-lg-80{max-width:80%;max-height:100%}.flex-lg-80,.layout-column>.flex-lg-80,.layout-row>.flex-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-80{max-width:100%;max-height:80%}.layout-lg-row>.flex-lg-80{max-width:80%;max-height:100%}.layout-lg-column>.flex-lg-80,.layout-lg-row>.flex-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{max-width:100%;max-height:80%}.layout-lg-row>.flex-80{max-width:80%;max-height:100%}.layout-lg-column>.flex-80,.layout-lg-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-80{max-width:100%;max-height:80%}.flex-lg-85,.layout-row>.flex-lg-85{max-width:85%;max-height:100%}.flex-lg-85,.layout-column>.flex-lg-85,.layout-row>.flex-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-85{max-width:100%;max-height:85%}.layout-lg-row>.flex-lg-85{max-width:85%;max-height:100%}.layout-lg-column>.flex-lg-85,.layout-lg-row>.flex-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{max-width:100%;max-height:85%}.layout-lg-row>.flex-85{max-width:85%;max-height:100%}.layout-lg-column>.flex-85,.layout-lg-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-85{max-width:100%;max-height:85%}.flex-lg-90,.layout-row>.flex-lg-90{max-width:90%;max-height:100%}.flex-lg-90,.layout-column>.flex-lg-90,.layout-row>.flex-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-90{max-width:100%;max-height:90%}.layout-lg-row>.flex-lg-90{max-width:90%;max-height:100%}.layout-lg-column>.flex-lg-90,.layout-lg-row>.flex-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{max-width:100%;max-height:90%}.layout-lg-row>.flex-90{max-width:90%;max-height:100%}.layout-lg-column>.flex-90,.layout-lg-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-90{max-width:100%;max-height:90%}.flex-lg-95,.layout-row>.flex-lg-95{max-width:95%;max-height:100%}.flex-lg-95,.layout-column>.flex-lg-95,.layout-row>.flex-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-lg-95{max-width:100%;max-height:95%}.layout-lg-row>.flex-lg-95{max-width:95%;max-height:100%}.layout-lg-column>.flex-lg-95,.layout-lg-row>.flex-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{max-width:100%;max-height:95%}.layout-lg-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-95{max-height:95%}.flex-lg-100,.layout-lg-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-lg-100{max-height:100%}.layout-column>.flex-lg-100,.layout-lg-column>.flex-100,.layout-lg-column>.flex-lg-100,.layout-lg-row>.flex-100,.layout-lg-row>.flex-lg-100,.layout-row>.flex-lg-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-lg-33,.layout-row>.flex-lg-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-lg-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}.layout-column>.flex-lg-33,.layout-column>.flex-lg-66{-webkit-box-flex:1;max-width:100%;box-sizing:border-box}.layout-column>.flex-lg-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}.layout-lg-row>.flex-lg-33{max-width:33.33%}.layout-lg-row>.flex-lg-33,.layout-lg-row>.flex-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{max-width:66.66%}.layout-lg-column>.flex-lg-33{max-height:33.33%}.layout-lg-column>.flex-lg-33,.layout-lg-column>.flex-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{max-height:66.66%}.layout-lg-row>.flex-33{max-width:33.33%}.layout-lg-row>.flex-33,.layout-lg-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-66{max-width:66.66%}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-33{max-height:33.33%}.layout-lg-column>.flex-33,.layout-lg-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-lg-column>.flex-66{max-height:66.66%}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-lg-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-lg-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-lg--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-lg--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-lg--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-lg--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-lg--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-lg--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-lg--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-lg--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-lg--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-lg--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-lg--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-lg--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-lg--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-lg--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-lg--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-lg--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-lg--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-lg--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-lg--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-lg-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-lg-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-lg-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-lg-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-lg-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-lg-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-lg-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-lg-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-lg-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-lg-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-lg-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-lg-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-lg-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-lg-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-lg-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-lg-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-lg-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-lg-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-lg-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-lg-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-lg-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:33.33333%}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:66.66667%}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:66.66667%}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-gt-lg,.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-lg{-webkit-flex:1;flex:1}.flex-gt-lg,.flex-gt-lg-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-gt-lg-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-lg-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0,.layout-row>.flex-gt-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{min-width:0}.layout-column>.flex-gt-lg-0{max-width:100%;max-height:0%}.layout-column>.flex-gt-lg-0,.layout-gt-lg-row>.flex-gt-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{max-width:0;max-height:100%;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{max-width:100%;max-height:0%;min-height:0}.layout-gt-lg-column>.flex-gt-lg-0,.layout-gt-lg-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-gt-lg-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5,.layout-row>.flex-gt-lg-5{max-width:5%;max-height:100%}.flex-gt-lg-5,.layout-column>.flex-gt-lg-5,.layout-row>.flex-gt-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{max-width:100%;max-height:5%}.layout-gt-lg-row>.flex-gt-lg-5{max-width:5%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-5,.layout-gt-lg-row>.flex-gt-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{max-width:100%;max-height:5%}.layout-gt-lg-row>.flex-5{max-width:5%;max-height:100%}.layout-gt-lg-column>.flex-5,.layout-gt-lg-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-5{max-width:100%;max-height:5%}.flex-gt-lg-10,.layout-row>.flex-gt-lg-10{max-width:10%;max-height:100%}.flex-gt-lg-10,.layout-column>.flex-gt-lg-10,.layout-row>.flex-gt-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{max-width:100%;max-height:10%}.layout-gt-lg-row>.flex-gt-lg-10{max-width:10%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-10,.layout-gt-lg-row>.flex-gt-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{max-width:100%;max-height:10%}.layout-gt-lg-row>.flex-10{max-width:10%;max-height:100%}.layout-gt-lg-column>.flex-10,.layout-gt-lg-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-10{max-width:100%;max-height:10%}.flex-gt-lg-15,.layout-row>.flex-gt-lg-15{max-width:15%;max-height:100%}.flex-gt-lg-15,.layout-column>.flex-gt-lg-15,.layout-row>.flex-gt-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{max-width:100%;max-height:15%}.layout-gt-lg-row>.flex-gt-lg-15{max-width:15%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-15,.layout-gt-lg-row>.flex-gt-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{max-width:100%;max-height:15%}.layout-gt-lg-row>.flex-15{max-width:15%;max-height:100%}.layout-gt-lg-column>.flex-15,.layout-gt-lg-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-15{max-width:100%;max-height:15%}.flex-gt-lg-20,.layout-row>.flex-gt-lg-20{max-width:20%;max-height:100%}.flex-gt-lg-20,.layout-column>.flex-gt-lg-20,.layout-row>.flex-gt-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{max-width:100%;max-height:20%}.layout-gt-lg-row>.flex-gt-lg-20{max-width:20%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-20,.layout-gt-lg-row>.flex-gt-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{max-width:100%;max-height:20%}.layout-gt-lg-row>.flex-20{max-width:20%;max-height:100%}.layout-gt-lg-column>.flex-20,.layout-gt-lg-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-20{max-width:100%;max-height:20%}.flex-gt-lg-25,.layout-row>.flex-gt-lg-25{max-width:25%;max-height:100%}.flex-gt-lg-25,.layout-column>.flex-gt-lg-25,.layout-row>.flex-gt-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{max-width:100%;max-height:25%}.layout-gt-lg-row>.flex-gt-lg-25{max-width:25%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-25,.layout-gt-lg-row>.flex-gt-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{max-width:100%;max-height:25%}.layout-gt-lg-row>.flex-25{max-width:25%;max-height:100%}.layout-gt-lg-column>.flex-25,.layout-gt-lg-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-25{max-width:100%;max-height:25%}.flex-gt-lg-30,.layout-row>.flex-gt-lg-30{max-width:30%;max-height:100%}.flex-gt-lg-30,.layout-column>.flex-gt-lg-30,.layout-row>.flex-gt-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{max-width:100%;max-height:30%}.layout-gt-lg-row>.flex-gt-lg-30{max-width:30%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-30,.layout-gt-lg-row>.flex-gt-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{max-width:100%;max-height:30%}.layout-gt-lg-row>.flex-30{max-width:30%;max-height:100%}.layout-gt-lg-column>.flex-30,.layout-gt-lg-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-30{max-width:100%;max-height:30%}.flex-gt-lg-35,.layout-row>.flex-gt-lg-35{max-width:35%;max-height:100%}.flex-gt-lg-35,.layout-column>.flex-gt-lg-35,.layout-row>.flex-gt-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{max-width:100%;max-height:35%}.layout-gt-lg-row>.flex-gt-lg-35{max-width:35%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-35,.layout-gt-lg-row>.flex-gt-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{max-width:100%;max-height:35%}.layout-gt-lg-row>.flex-35{max-width:35%;max-height:100%}.layout-gt-lg-column>.flex-35,.layout-gt-lg-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-35{max-width:100%;max-height:35%}.flex-gt-lg-40,.layout-row>.flex-gt-lg-40{max-width:40%;max-height:100%}.flex-gt-lg-40,.layout-column>.flex-gt-lg-40,.layout-row>.flex-gt-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{max-width:100%;max-height:40%}.layout-gt-lg-row>.flex-gt-lg-40{max-width:40%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-40,.layout-gt-lg-row>.flex-gt-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{max-width:100%;max-height:40%}.layout-gt-lg-row>.flex-40{max-width:40%;max-height:100%}.layout-gt-lg-column>.flex-40,.layout-gt-lg-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-40{max-width:100%;max-height:40%}.flex-gt-lg-45,.layout-row>.flex-gt-lg-45{max-width:45%;max-height:100%}.flex-gt-lg-45,.layout-column>.flex-gt-lg-45,.layout-row>.flex-gt-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{max-width:100%;max-height:45%}.layout-gt-lg-row>.flex-gt-lg-45{max-width:45%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-45,.layout-gt-lg-row>.flex-gt-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{max-width:100%;max-height:45%}.layout-gt-lg-row>.flex-45{max-width:45%;max-height:100%}.layout-gt-lg-column>.flex-45,.layout-gt-lg-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-45{max-width:100%;max-height:45%}.flex-gt-lg-50,.layout-row>.flex-gt-lg-50{max-width:50%;max-height:100%}.flex-gt-lg-50,.layout-column>.flex-gt-lg-50,.layout-row>.flex-gt-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{max-width:100%;max-height:50%}.layout-gt-lg-row>.flex-gt-lg-50{max-width:50%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-50,.layout-gt-lg-row>.flex-gt-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{max-width:100%;max-height:50%}.layout-gt-lg-row>.flex-50{max-width:50%;max-height:100%}.layout-gt-lg-column>.flex-50,.layout-gt-lg-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-50{max-width:100%;max-height:50%}.flex-gt-lg-55,.layout-row>.flex-gt-lg-55{max-width:55%;max-height:100%}.flex-gt-lg-55,.layout-column>.flex-gt-lg-55,.layout-row>.flex-gt-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{max-width:100%;max-height:55%}.layout-gt-lg-row>.flex-gt-lg-55{max-width:55%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-55,.layout-gt-lg-row>.flex-gt-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{max-width:100%;max-height:55%}.layout-gt-lg-row>.flex-55{max-width:55%;max-height:100%}.layout-gt-lg-column>.flex-55,.layout-gt-lg-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-55{max-width:100%;max-height:55%}.flex-gt-lg-60,.layout-row>.flex-gt-lg-60{max-width:60%;max-height:100%}.flex-gt-lg-60,.layout-column>.flex-gt-lg-60,.layout-row>.flex-gt-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{max-width:100%;max-height:60%}.layout-gt-lg-row>.flex-gt-lg-60{max-width:60%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-60,.layout-gt-lg-row>.flex-gt-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{max-width:100%;max-height:60%}.layout-gt-lg-row>.flex-60{max-width:60%;max-height:100%}.layout-gt-lg-column>.flex-60,.layout-gt-lg-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-60{max-width:100%;max-height:60%}.flex-gt-lg-65,.layout-row>.flex-gt-lg-65{max-width:65%;max-height:100%}.flex-gt-lg-65,.layout-column>.flex-gt-lg-65,.layout-row>.flex-gt-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{max-width:100%;max-height:65%}.layout-gt-lg-row>.flex-gt-lg-65{max-width:65%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-65,.layout-gt-lg-row>.flex-gt-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{max-width:100%;max-height:65%}.layout-gt-lg-row>.flex-65{max-width:65%;max-height:100%}.layout-gt-lg-column>.flex-65,.layout-gt-lg-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-65{max-width:100%;max-height:65%}.flex-gt-lg-70,.layout-row>.flex-gt-lg-70{max-width:70%;max-height:100%}.flex-gt-lg-70,.layout-column>.flex-gt-lg-70,.layout-row>.flex-gt-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{max-width:100%;max-height:70%}.layout-gt-lg-row>.flex-gt-lg-70{max-width:70%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-70,.layout-gt-lg-row>.flex-gt-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{max-width:100%;max-height:70%}.layout-gt-lg-row>.flex-70{max-width:70%;max-height:100%}.layout-gt-lg-column>.flex-70,.layout-gt-lg-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-70{max-width:100%;max-height:70%}.flex-gt-lg-75,.layout-row>.flex-gt-lg-75{max-width:75%;max-height:100%}.flex-gt-lg-75,.layout-column>.flex-gt-lg-75,.layout-row>.flex-gt-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{max-width:100%;max-height:75%}.layout-gt-lg-row>.flex-gt-lg-75{max-width:75%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-75,.layout-gt-lg-row>.flex-gt-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{max-width:100%;max-height:75%}.layout-gt-lg-row>.flex-75{max-width:75%;max-height:100%}.layout-gt-lg-column>.flex-75,.layout-gt-lg-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-75{max-width:100%;max-height:75%}.flex-gt-lg-80,.layout-row>.flex-gt-lg-80{max-width:80%;max-height:100%}.flex-gt-lg-80,.layout-column>.flex-gt-lg-80,.layout-row>.flex-gt-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{max-width:100%;max-height:80%}.layout-gt-lg-row>.flex-gt-lg-80{max-width:80%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-80,.layout-gt-lg-row>.flex-gt-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{max-width:100%;max-height:80%}.layout-gt-lg-row>.flex-80{max-width:80%;max-height:100%}.layout-gt-lg-column>.flex-80,.layout-gt-lg-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-80{max-width:100%;max-height:80%}.flex-gt-lg-85,.layout-row>.flex-gt-lg-85{max-width:85%;max-height:100%}.flex-gt-lg-85,.layout-column>.flex-gt-lg-85,.layout-row>.flex-gt-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{max-width:100%;max-height:85%}.layout-gt-lg-row>.flex-gt-lg-85{max-width:85%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-85,.layout-gt-lg-row>.flex-gt-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{max-width:100%;max-height:85%}.layout-gt-lg-row>.flex-85{max-width:85%;max-height:100%}.layout-gt-lg-column>.flex-85,.layout-gt-lg-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-85{max-width:100%;max-height:85%}.flex-gt-lg-90,.layout-row>.flex-gt-lg-90{max-width:90%;max-height:100%}.flex-gt-lg-90,.layout-column>.flex-gt-lg-90,.layout-row>.flex-gt-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{max-width:100%;max-height:90%}.layout-gt-lg-row>.flex-gt-lg-90{max-width:90%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-90,.layout-gt-lg-row>.flex-gt-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{max-width:100%;max-height:90%}.layout-gt-lg-row>.flex-90{max-width:90%;max-height:100%}.layout-gt-lg-column>.flex-90,.layout-gt-lg-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-90{max-width:100%;max-height:90%}.flex-gt-lg-95,.layout-row>.flex-gt-lg-95{max-width:95%;max-height:100%}.flex-gt-lg-95,.layout-column>.flex-gt-lg-95,.layout-row>.flex-gt-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{max-width:100%;max-height:95%}.layout-gt-lg-row>.flex-gt-lg-95{max-width:95%;max-height:100%}.layout-gt-lg-column>.flex-gt-lg-95,.layout-gt-lg-row>.flex-gt-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{max-width:100%;max-height:95%}.layout-gt-lg-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-95{max-height:95%}.flex-gt-lg-100,.layout-gt-lg-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-gt-lg-100{max-height:100%}.layout-column>.flex-gt-lg-100,.layout-gt-lg-column>.flex-100,.layout-gt-lg-column>.flex-gt-lg-100,.layout-gt-lg-row>.flex-100,.layout-gt-lg-row>.flex-gt-lg-100,.layout-row>.flex-gt-lg-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-lg-33,.layout-row>.flex-gt-lg-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{max-width:33.33%}.layout-gt-lg-row>.flex-gt-lg-33,.layout-gt-lg-row>.flex-gt-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{max-width:66.66%}.layout-gt-lg-column>.flex-gt-lg-33{max-height:33.33%}.layout-gt-lg-column>.flex-gt-lg-33,.layout-gt-lg-column>.flex-gt-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{max-height:66.66%}.layout-gt-lg-row>.flex-33{max-width:33.33%}.layout-gt-lg-row>.flex-33,.layout-gt-lg-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-66{max-width:66.66%}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-33{max-height:33.33%}.layout-gt-lg-column>.flex-33,.layout-gt-lg-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-66{max-height:66.66%}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-lg-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-lg-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.flex-order-xl--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-xl--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-xl--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-xl--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-xl--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-xl--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-xl--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-xl--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-xl--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-xl--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-xl--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-xl--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-xl--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-xl--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-xl--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-xl--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-xl--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-xl--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-xl--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-xl--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-xl-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-xl-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-xl-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-xl-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-xl-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-xl-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-xl-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-xl-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-xl-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-xl-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-xl-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-xl-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-xl-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-xl-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-xl-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-xl-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-xl-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-xl-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-xl-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-xl-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-xl-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:33.33333%}.flex-offset-xl-66,.offset-xl-66{margin-left:66.66667%}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:66.66667%}.layout-align-xl,.layout-align-xl-start-stretch{-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch}.layout-align-xl,.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-xl{-webkit-flex:1;flex:1}.flex-xl,.flex-xl-grow{-webkit-box-flex:1;box-sizing:border-box}.flex-xl-grow{-webkit-flex:1 1 100%;flex:1 1 100%}.flex-xl-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-xl-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xl-0,.layout-row>.flex-xl-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{min-width:0}.layout-column>.flex-xl-0{max-width:100%;max-height:0%}.layout-column>.flex-xl-0,.layout-xl-row>.flex-xl-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{max-width:0;max-height:100%;min-width:0}.layout-xl-column>.flex-xl-0{max-width:100%;max-height:0%;min-height:0}.layout-xl-column>.flex-xl-0,.layout-xl-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-row>.flex-0{max-width:0;max-height:100%;min-width:0}.layout-xl-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5,.layout-row>.flex-xl-5{max-width:5%;max-height:100%}.flex-xl-5,.layout-column>.flex-xl-5,.layout-row>.flex-xl-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-5{max-width:100%;max-height:5%}.layout-xl-row>.flex-xl-5{max-width:5%;max-height:100%}.layout-xl-column>.flex-xl-5,.layout-xl-row>.flex-xl-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{max-width:100%;max-height:5%}.layout-xl-row>.flex-5{max-width:5%;max-height:100%}.layout-xl-column>.flex-5,.layout-xl-row>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-5{max-width:100%;max-height:5%}.flex-xl-10,.layout-row>.flex-xl-10{max-width:10%;max-height:100%}.flex-xl-10,.layout-column>.flex-xl-10,.layout-row>.flex-xl-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-10{max-width:100%;max-height:10%}.layout-xl-row>.flex-xl-10{max-width:10%;max-height:100%}.layout-xl-column>.flex-xl-10,.layout-xl-row>.flex-xl-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{max-width:100%;max-height:10%}.layout-xl-row>.flex-10{max-width:10%;max-height:100%}.layout-xl-column>.flex-10,.layout-xl-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-10{max-width:100%;max-height:10%}.flex-xl-15,.layout-row>.flex-xl-15{max-width:15%;max-height:100%}.flex-xl-15,.layout-column>.flex-xl-15,.layout-row>.flex-xl-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-15{max-width:100%;max-height:15%}.layout-xl-row>.flex-xl-15{max-width:15%;max-height:100%}.layout-xl-column>.flex-xl-15,.layout-xl-row>.flex-xl-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{max-width:100%;max-height:15%}.layout-xl-row>.flex-15{max-width:15%;max-height:100%}.layout-xl-column>.flex-15,.layout-xl-row>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-15{max-width:100%;max-height:15%}.flex-xl-20,.layout-row>.flex-xl-20{max-width:20%;max-height:100%}.flex-xl-20,.layout-column>.flex-xl-20,.layout-row>.flex-xl-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-20{max-width:100%;max-height:20%}.layout-xl-row>.flex-xl-20{max-width:20%;max-height:100%}.layout-xl-column>.flex-xl-20,.layout-xl-row>.flex-xl-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{max-width:100%;max-height:20%}.layout-xl-row>.flex-20{max-width:20%;max-height:100%}.layout-xl-column>.flex-20,.layout-xl-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-20{max-width:100%;max-height:20%}.flex-xl-25,.layout-row>.flex-xl-25{max-width:25%;max-height:100%}.flex-xl-25,.layout-column>.flex-xl-25,.layout-row>.flex-xl-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-25{max-width:100%;max-height:25%}.layout-xl-row>.flex-xl-25{max-width:25%;max-height:100%}.layout-xl-column>.flex-xl-25,.layout-xl-row>.flex-xl-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{max-width:100%;max-height:25%}.layout-xl-row>.flex-25{max-width:25%;max-height:100%}.layout-xl-column>.flex-25,.layout-xl-row>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-25{max-width:100%;max-height:25%}.flex-xl-30,.layout-row>.flex-xl-30{max-width:30%;max-height:100%}.flex-xl-30,.layout-column>.flex-xl-30,.layout-row>.flex-xl-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-30{max-width:100%;max-height:30%}.layout-xl-row>.flex-xl-30{max-width:30%;max-height:100%}.layout-xl-column>.flex-xl-30,.layout-xl-row>.flex-xl-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{max-width:100%;max-height:30%}.layout-xl-row>.flex-30{max-width:30%;max-height:100%}.layout-xl-column>.flex-30,.layout-xl-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-30{max-width:100%;max-height:30%}.flex-xl-35,.layout-row>.flex-xl-35{max-width:35%;max-height:100%}.flex-xl-35,.layout-column>.flex-xl-35,.layout-row>.flex-xl-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-35{max-width:100%;max-height:35%}.layout-xl-row>.flex-xl-35{max-width:35%;max-height:100%}.layout-xl-column>.flex-xl-35,.layout-xl-row>.flex-xl-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{max-width:100%;max-height:35%}.layout-xl-row>.flex-35{max-width:35%;max-height:100%}.layout-xl-column>.flex-35,.layout-xl-row>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-35{max-width:100%;max-height:35%}.flex-xl-40,.layout-row>.flex-xl-40{max-width:40%;max-height:100%}.flex-xl-40,.layout-column>.flex-xl-40,.layout-row>.flex-xl-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-40{max-width:100%;max-height:40%}.layout-xl-row>.flex-xl-40{max-width:40%;max-height:100%}.layout-xl-column>.flex-xl-40,.layout-xl-row>.flex-xl-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{max-width:100%;max-height:40%}.layout-xl-row>.flex-40{max-width:40%;max-height:100%}.layout-xl-column>.flex-40,.layout-xl-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-40{max-width:100%;max-height:40%}.flex-xl-45,.layout-row>.flex-xl-45{max-width:45%;max-height:100%}.flex-xl-45,.layout-column>.flex-xl-45,.layout-row>.flex-xl-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-45{max-width:100%;max-height:45%}.layout-xl-row>.flex-xl-45{max-width:45%;max-height:100%}.layout-xl-column>.flex-xl-45,.layout-xl-row>.flex-xl-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{max-width:100%;max-height:45%}.layout-xl-row>.flex-45{max-width:45%;max-height:100%}.layout-xl-column>.flex-45,.layout-xl-row>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-45{max-width:100%;max-height:45%}.flex-xl-50,.layout-row>.flex-xl-50{max-width:50%;max-height:100%}.flex-xl-50,.layout-column>.flex-xl-50,.layout-row>.flex-xl-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-50{max-width:100%;max-height:50%}.layout-xl-row>.flex-xl-50{max-width:50%;max-height:100%}.layout-xl-column>.flex-xl-50,.layout-xl-row>.flex-xl-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{max-width:100%;max-height:50%}.layout-xl-row>.flex-50{max-width:50%;max-height:100%}.layout-xl-column>.flex-50,.layout-xl-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-50{max-width:100%;max-height:50%}.flex-xl-55,.layout-row>.flex-xl-55{max-width:55%;max-height:100%}.flex-xl-55,.layout-column>.flex-xl-55,.layout-row>.flex-xl-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-55{max-width:100%;max-height:55%}.layout-xl-row>.flex-xl-55{max-width:55%;max-height:100%}.layout-xl-column>.flex-xl-55,.layout-xl-row>.flex-xl-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{max-width:100%;max-height:55%}.layout-xl-row>.flex-55{max-width:55%;max-height:100%}.layout-xl-column>.flex-55,.layout-xl-row>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-55{max-width:100%;max-height:55%}.flex-xl-60,.layout-row>.flex-xl-60{max-width:60%;max-height:100%}.flex-xl-60,.layout-column>.flex-xl-60,.layout-row>.flex-xl-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-60{max-width:100%;max-height:60%}.layout-xl-row>.flex-xl-60{max-width:60%;max-height:100%}.layout-xl-column>.flex-xl-60,.layout-xl-row>.flex-xl-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{max-width:100%;max-height:60%}.layout-xl-row>.flex-60{max-width:60%;max-height:100%}.layout-xl-column>.flex-60,.layout-xl-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-60{max-width:100%;max-height:60%}.flex-xl-65,.layout-row>.flex-xl-65{max-width:65%;max-height:100%}.flex-xl-65,.layout-column>.flex-xl-65,.layout-row>.flex-xl-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-65{max-width:100%;max-height:65%}.layout-xl-row>.flex-xl-65{max-width:65%;max-height:100%}.layout-xl-column>.flex-xl-65,.layout-xl-row>.flex-xl-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{max-width:100%;max-height:65%}.layout-xl-row>.flex-65{max-width:65%;max-height:100%}.layout-xl-column>.flex-65,.layout-xl-row>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-65{max-width:100%;max-height:65%}.flex-xl-70,.layout-row>.flex-xl-70{max-width:70%;max-height:100%}.flex-xl-70,.layout-column>.flex-xl-70,.layout-row>.flex-xl-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-70{max-width:100%;max-height:70%}.layout-xl-row>.flex-xl-70{max-width:70%;max-height:100%}.layout-xl-column>.flex-xl-70,.layout-xl-row>.flex-xl-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{max-width:100%;max-height:70%}.layout-xl-row>.flex-70{max-width:70%;max-height:100%}.layout-xl-column>.flex-70,.layout-xl-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-70{max-width:100%;max-height:70%}.flex-xl-75,.layout-row>.flex-xl-75{max-width:75%;max-height:100%}.flex-xl-75,.layout-column>.flex-xl-75,.layout-row>.flex-xl-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-75{max-width:100%;max-height:75%}.layout-xl-row>.flex-xl-75{max-width:75%;max-height:100%}.layout-xl-column>.flex-xl-75,.layout-xl-row>.flex-xl-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{max-width:100%;max-height:75%}.layout-xl-row>.flex-75{max-width:75%;max-height:100%}.layout-xl-column>.flex-75,.layout-xl-row>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-75{max-width:100%;max-height:75%}.flex-xl-80,.layout-row>.flex-xl-80{max-width:80%;max-height:100%}.flex-xl-80,.layout-column>.flex-xl-80,.layout-row>.flex-xl-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-80{max-width:100%;max-height:80%}.layout-xl-row>.flex-xl-80{max-width:80%;max-height:100%}.layout-xl-column>.flex-xl-80,.layout-xl-row>.flex-xl-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{max-width:100%;max-height:80%}.layout-xl-row>.flex-80{max-width:80%;max-height:100%}.layout-xl-column>.flex-80,.layout-xl-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-80{max-width:100%;max-height:80%}.flex-xl-85,.layout-row>.flex-xl-85{max-width:85%;max-height:100%}.flex-xl-85,.layout-column>.flex-xl-85,.layout-row>.flex-xl-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-85{max-width:100%;max-height:85%}.layout-xl-row>.flex-xl-85{max-width:85%;max-height:100%}.layout-xl-column>.flex-xl-85,.layout-xl-row>.flex-xl-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{max-width:100%;max-height:85%}.layout-xl-row>.flex-85{max-width:85%;max-height:100%}.layout-xl-column>.flex-85,.layout-xl-row>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-85{max-width:100%;max-height:85%}.flex-xl-90,.layout-row>.flex-xl-90{max-width:90%;max-height:100%}.flex-xl-90,.layout-column>.flex-xl-90,.layout-row>.flex-xl-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-90{max-width:100%;max-height:90%}.layout-xl-row>.flex-xl-90{max-width:90%;max-height:100%}.layout-xl-column>.flex-xl-90,.layout-xl-row>.flex-xl-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{max-width:100%;max-height:90%}.layout-xl-row>.flex-90{max-width:90%;max-height:100%}.layout-xl-column>.flex-90,.layout-xl-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-90{max-width:100%;max-height:90%}.flex-xl-95,.layout-row>.flex-xl-95{max-width:95%;max-height:100%}.flex-xl-95,.layout-column>.flex-xl-95,.layout-row>.flex-xl-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-column>.flex-xl-95{max-width:100%;max-height:95%}.layout-xl-row>.flex-xl-95{max-width:95%;max-height:100%}.layout-xl-column>.flex-xl-95,.layout-xl-row>.flex-xl-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{max-width:100%;max-height:95%}.layout-xl-row>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-95{max-height:95%}.flex-xl-100,.layout-xl-column>.flex-95{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.flex-xl-100{max-height:100%}.layout-column>.flex-xl-100,.layout-row>.flex-xl-100,.layout-xl-column>.flex-100,.layout-xl-column>.flex-xl-100,.layout-xl-row>.flex-100,.layout-xl-row>.flex-xl-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-xl-33,.layout-row>.flex-xl-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-xl-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-height:33.33%}.layout-column>.flex-xl-33,.layout-column>.flex-xl-66{-webkit-box-flex:1;max-width:100%;box-sizing:border-box}.layout-column>.flex-xl-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-height:66.66%}.layout-xl-row>.flex-xl-33{max-width:33.33%}.layout-xl-row>.flex-xl-33,.layout-xl-row>.flex-xl-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{max-width:66.66%}.layout-xl-column>.flex-xl-33{max-height:33.33%}.layout-xl-column>.flex-xl-33,.layout-xl-column>.flex-xl-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{max-height:66.66%}.layout-xl-row>.flex-33{max-width:33.33%}.layout-xl-row>.flex-33,.layout-xl-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-66{max-width:66.66%}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-33{max-height:33.33%}.layout-xl-column>.flex-33,.layout-xl-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;box-sizing:border-box}.layout-xl-column>.flex-66{max-height:66.66%}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-xl-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-xl-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.css b/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.css new file mode 100644 index 00000000..fcab4155 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.css @@ -0,0 +1,6834 @@ +/*! + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + -moz-text-decoration: underline dotted; + text-decoration: underline dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]: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; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: "Glyphicons Halflings"; + src: url("../fonts/glyphicons-halflings-regular.eot"); + src: url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: "Glyphicons Halflings"; + font-style: normal; + font-weight: 400; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\002a"; +} +.glyphicon-plus:before { + content: "\002b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333333; + background-color: #fff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: 400; + line-height: 1; + color: #777777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover, +a.text-primary:focus { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover, +a.text-success:focus { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover, +a.text-info:focus { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover, +a.text-danger:focus { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; + margin-left: -5px; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: 700; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eeeeee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: "\2014 \00A0"; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eeeeee; + border-left: 0; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ""; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: "\00A0 \2014"; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -15px; +} +.row-no-gutters { + margin-right: 0; + margin-left: 0; +} +.row-no-gutters [class*="col-"] { + padding-right: 0; + padding-left: 0; +} +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0%; +} +@media (min-width: 768px) { + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +table { + background-color: transparent; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.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 > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + min-height: 0.01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: 700; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eeeeee; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 34px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 18px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + opacity: 0.65; + -webkit-box-shadow: none; + box-shadow: none; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + background-image: none; + border-color: #adadad; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + background-image: none; + border-color: #204d74; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + background-image: none; + border-color: #398439; +} +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + background-image: none; + border-color: #269abc; +} +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + background-image: none; + border-color: #d58512; +} +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + background-image: none; + border-color: #ac2925; +} +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: 400; + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + -o-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.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; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #333333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777777; + white-space: nowrap; +} +.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 { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group .form-control:focus { + z-index: 3; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #555555; + text-align: center; + background-color: #eeeeee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.nav > li.disabled > a { + color: #777777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-right: 15px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + padding: 10px 15px; + margin-right: -15px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-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); + margin-top: 8px; + margin-bottom: 8px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #777777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eeeeee; + border-color: #ddd; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.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: #777777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: 0.2em 0.6em 0.3em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25em; +} +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eeeeee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 15px; + padding-left: 15px; + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 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: #f5f5f5; + border-radius: 4px; + -webkit-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; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-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-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + 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: -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; + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + 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: -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-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + 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: -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-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + 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: -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-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + 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: -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); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-object.img-thumbnail { + max-width: none; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777777; + cursor: not-allowed; + background-color: #eeeeee; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} +.panel-default { + border-color: #ddd; +} +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #ddd; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-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-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: 0.2; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: 0.5; +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: 0.5; +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.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; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + line-break: auto; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + font-size: 12px; + filter: alpha(opacity=0); + opacity: 0; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: 0.9; +} +.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.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.42857143; + line-break: auto; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + font-size: 14px; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow:after { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + -o-transition: -o-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + left: 0; + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + left: 0; + } +} +.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: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: 0.5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + outline: 0; + filter: alpha(opacity=90); + opacity: 0.9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: "\2039"; +} +.carousel-control .icon-next:before { + content: "\203a"; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css b/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css new file mode 100644 index 00000000..5b96335f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:"Glyphicons Halflings";src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:.65;-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;background-image:none;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;background-image:none;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;background-image:none;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;background-image:none;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;background-image:none;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.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;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.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{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 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:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.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}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.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.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";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,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.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:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css.map b/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css.map new file mode 100644 index 00000000..0ae3de50 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/css/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","less/normalize.less","dist/css/bootstrap.css","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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A,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,EFCJ,yBCzEC,Ub2zDC,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UcnxDI,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,GFUJ,yBClFC,Ubo+DC,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,Uc57DI,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,GFmBJ,0BC3FC,Ub6oEC,WACA,WACA,WAVA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UcrmEI,MAAA,KDvCL,WC+CG,MAAA,KD/CH,WC+CG,MAAA,aD/CH,WC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,ID/CH,UC+CG,MAAA,aD/CH,UC+CG,MAAA,YD/CH,gBC8DG,MAAA,KD9DH,gBC8DG,MAAA,aD9DH,gBC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,ID9DH,eC8DG,MAAA,aD9DH,eC8DG,MAAA,YD9DH,eCmEG,MAAA,KDnEH,gBCoDG,KAAA,KDpDH,gBCoDG,KAAA,aDpDH,gBCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,IDpDH,eCoDG,KAAA,aDpDH,eCoDG,KAAA,YDpDH,eCyDG,KAAA,KDzDH,kBCwEG,YAAA,KDxEH,kBCwEG,YAAA,aDxEH,kBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,IDxEH,iBCwEG,YAAA,aDxEH,iBCwEG,YAAA,YDxEH,iBCwEG,YAAA,GCjEJ,MACE,iBAAA,YADF,uBAQI,SAAA,OACA,QAAA,aACA,MAAA,KAKA,sBf+xEJ,sBe9xEM,SAAA,OACA,QAAA,WACA,MAAA,KAKN,QACE,YAAA,IACA,eAAA,IACA,MAAA,KACA,WAAA,KAGF,GACE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","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"../fonts/glyphicons-halflings-regular.eot\");\n src: url(\"../fonts/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\");\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: 400;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: \"\\2014 \\00A0\";\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: \"\";\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: \"\\00A0 \\2014\";\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.row-no-gutters [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: 700;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-appearance: none;\n appearance: none;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n background-image: none;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: 400;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-right: 15px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #eeeeee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 12px;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: \"\\2039\";\n}\n.carousel-control .icon-next:before {\n content: \"\\203a\";\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n border-bottom: none; // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n -moz-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"../fonts/glyphicons-halflings-regular.eot\");\n src: url(\"../fonts/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\");\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: 400;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: \"\\2014 \\00A0\";\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: \"\";\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: \"\\00A0 \\2014\";\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.row-no-gutters [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: 700;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n background-image: none;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: 400;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n -o-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-right: 15px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n 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);\n 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);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #eeeeee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 12px;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: \"\\2039\";\n}\n.carousel-control .icon-next:before {\n content: \"\\203a\";\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important; // Black prints faster: h5bp.com/s\n text-shadow: none !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n}\n","// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword\n\n//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"@{icon-font-path}@{icon-font-name}.eot\");\n src: url(\"@{icon-font-path}@{icon-font-name}.eot?#iefix\") format(\"embedded-opentype\"),\n url(\"@{icon-font-path}@{icon-font-name}.woff2\") format(\"woff2\"),\n url(\"@{icon-font-path}@{icon-font-name}.woff\") format(\"woff\"),\n url(\"@{icon-font-path}@{icon-font-name}.ttf\") format(\"truetype\"),\n url(\"@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}\") format(\"svg\");\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type\n\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: 400;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n padding: .2em;\n background-color: @state-warning-bg;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: \"\"; }\n &:after {\n content: \"\\00A0 \\2014\"; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n color: @pre-color;\n word-break: break-all;\n word-wrap: break-word;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n padding-right: ceil((@gutter / 2));\n padding-left: floor((@gutter / 2));\n margin-right: auto;\n margin-left: auto;\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-right: floor((@gutter / -2));\n margin-left: ceil((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-right: floor((@grid-gutter-width / 2));\n padding-left: ceil((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type\n\n//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n\n // Table cell sizing\n //\n // Reset default table behavior\n\n col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n display: table-column;\n float: none;\n }\n\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n display: table-cell;\n float: none;\n }\n }\n}\n\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\n\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n overflow-x: auto;\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * .75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix\n\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n // Override content-box in Normalize (* isn't specific enough)\n .box-sizing(border-box);\n\n // Search inputs in iOS\n //\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n -webkit-appearance: none;\n appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n\n // Apply same disabled cursor tweak as for inputs\n // Some special care is needed because <label>s don't inherit their parent's `cursor`.\n //\n // Note: Neither radios nor checkboxes can be readonly.\n &[disabled],\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n // These are used on elements with <label> descendants\n &.disabled,\n fieldset[disabled] & {\n label {\n cursor: @cursor-disabled;\n }\n }\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n vertical-align: middle;\n cursor: pointer;\n\n // These are used directly on <label>s\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n min-height: (@line-height-computed + @font-size-base);\n // Size it appropriately next to real form controls\n padding-top: (@padding-base-vertical + 1);\n padding-bottom: (@padding-base-vertical + 1);\n // Remove default margin from `p`\n margin-bottom: 0;\n\n &.input-lg,\n &.input-sm {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n .form-control {\n height: @input-height-small;\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n border-radius: @input-border-radius-small;\n }\n select.form-control {\n height: @input-height-small;\n line-height: @input-height-small;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-small;\n min-height: (@line-height-computed + @font-size-small);\n padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n }\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n .form-control {\n height: @input-height-large;\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n border-radius: @input-border-radius-large;\n }\n select.form-control {\n height: @input-height-large;\n line-height: @input-height-large;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-large;\n min-height: (@line-height-computed + @font-size-large);\n padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2; // Ensure icon is above input groups\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: @input-height-large;\n height: @input-height-large;\n line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: @input-height-small;\n height: @input-height-small;\n line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n & ~ .form-control-feedback {\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n }\n &.sr-only ~ .form-control-feedback {\n top: 0;\n }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-static {\n display: inline-block;\n }\n\n .input-group {\n display: inline-table;\n vertical-align: middle;\n\n .input-group-addon,\n .input-group-btn,\n .form-control {\n width: auto;\n }\n }\n\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n\n label {\n padding-left: 0;\n }\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n\n // Re-override the feedback icon.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of radios and checkboxes\n //\n // Labels also get some reset styles, but that is scoped to a media query below.\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n margin-top: 0;\n margin-bottom: 0;\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n // Reset spacing and right align labels, but scope to media queries so that\n // labels on narrow viewports stack the same as a default form example.\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n margin-bottom: 0;\n text-align: right;\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n right: floor((@grid-gutter-width / 2));\n }\n\n // Form group sizes\n //\n // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n // inputs and labels within a `.form-group`.\n .form-group-lg {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-large-vertical + 1);\n font-size: @font-size-large;\n }\n }\n }\n .form-group-sm {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-small-vertical + 1);\n font-size: @font-size-small;\n }\n }\n }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n background-color: @background-color;\n border-color: @border-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n background-image: none;\n outline: 0;\n .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: 400;\n color: @link-color;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n background-image: none;\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n @opacity-ie: (@opacity * 100); // IE8 filter\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n opacity: @opacity;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: @dropdown-bg;\n background-clip: padding-box;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0, 0, 0, .175));\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n\n &:hover,\n &:focus {\n color: @dropdown-link-hover-color;\n text-decoration: none;\n background-color: @dropdown-link-hover-bg;\n }\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n background-color: @dropdown-link-active-bg;\n outline: 0;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n cursor: @cursor-disabled;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n right: 0;\n left: auto; // Reset the default from `.dropdown-menu`\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n content: \"\";\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","// stylelint-disable selector-no-qualifying-type */\n\n//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-left-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-top-right-radius: @radius;\n border-bottom-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-top-left-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n\n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: 400;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type, selector-max-type\n\n//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n padding-left: 0; // Override default ul/ol\n margin-bottom: 0;\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n cursor: @cursor-disabled;\n background-color: transparent;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n cursor: default;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n margin-bottom: 5px;\n text-align: center;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, selector-max-class, declaration-no-important, selector-no-qualifying-type\n\n//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n overflow-x: visible;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n\n // Fix the top/bottom navbars when screen real estate supports it\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n height: @navbar-height;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-right: @navbar-padding-horizontal;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n padding: 10px @navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-right: @navbar-padding-horizontal;\n margin-left: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n\n // Dropdown menu items\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n\n // Dropdowns\n > .open > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n padding: 0 5px;\n color: @breadcrumb-color;\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n margin-left: -1px;\n line-height: @line-height-base;\n color: @pagination-color;\n text-decoration: none;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n cursor: default;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n cursor: @cursor-disabled;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n text-align: center;\n list-style: none;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n cursor: @cursor-disabled;\n background-color: @pager-bg;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n line-height: @badge-line-height;\n color: @badge-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n padding-right: (@grid-gutter-width / 2);\n padding-left: (@grid-gutter-width / 2);\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-right: (@jumbotron-padding * 2);\n padding-left: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-right: auto;\n margin-left: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n color: inherit; // Specified for the h4 to prevent conflicts of changing @headings-color\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n// The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissable,\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n color: @text-color;\n background-color: @background;\n border-color: @border;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","// stylelint-disable at-rule-no-vendor-prefix\n\n//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n overflow: hidden;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0, 0, 0, .1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0, 0, 0, .15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 20px;\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n background-color: @list-group-disabled-bg;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n color: @list-group-link-hover-color;\n text-decoration: none;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-max-combinators, no-duplicate-selectors\n\n//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0, 0, 0, .05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-right: @panel-body-padding;\n padding-left: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n border-bottom-left-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n margin-bottom: 0;\n border: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0, 0, 0, .05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, .15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","// stylelint-disable property-no-vendor-prefix\n\n//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0); }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n background-clip: padding-box;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0, 0, 0, .5));\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n margin-left: 5px;\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0, 0, 0, .5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top {\n padding: @tooltip-arrow-width 0;\n margin-top: -3px;\n }\n &.right {\n padding: 0 @tooltip-arrow-width;\n margin-left: 3px;\n }\n &.bottom {\n padding: @tooltip-arrow-width 0;\n margin-top: 3px;\n }\n &.left {\n padding: 0 @tooltip-arrow-width;\n margin-left: -3px;\n }\n\n // Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n right: @tooltip-arrow-width;\n bottom: 0;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: 400;\n line-height: @line-height-base;\n line-break: auto;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0, 0, 0, .2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n\n // Arrows\n // .arrow is outer, .arrow:after is inner\n > .arrow {\n border-width: @popover-arrow-outer-width;\n\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n\n &:after {\n content: \"\";\n border-width: @popover-arrow-width;\n }\n }\n\n &.top > .arrow {\n bottom: -@popover-arrow-outer-width;\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n border-bottom-width: 0;\n &:after {\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n content: \" \";\n border-top-color: @popover-arrow-color;\n border-bottom-width: 0;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n border-left-width: 0;\n &:after {\n bottom: -@popover-arrow-width;\n left: 1px;\n content: \" \";\n border-right-color: @popover-arrow-color;\n border-left-width: 0;\n }\n }\n &.bottom > .arrow {\n top: -@popover-arrow-outer-width;\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n &:after {\n top: 1px;\n margin-left: -@popover-arrow-width;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n right: 1px;\n bottom: -@popover-arrow-width;\n content: \" \";\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n }\n }\n}\n\n.popover-title {\n padding: 8px 14px;\n margin: 0; // reset heading margin\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n","// stylelint-disable media-feature-name-no-unknown\n\n//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n\n > .item {\n position: relative;\n display: none;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~\"0.6s ease-in-out\");\n .backface-visibility(~\"hidden\");\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: @carousel-control-width;\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n .opacity(@carousel-control-opacity);\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0, 0, 0, .5); @end-color: rgba(0, 0, 0, .0001));\n }\n &.right {\n right: 0;\n left: auto;\n #gradient > .horizontal(@start-color: rgba(0, 0, 0, .0001); @end-color: rgba(0, 0, 0, .5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n color: @carousel-control-color;\n text-decoration: none;\n outline: 0;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n }\n\n .icon-prev {\n &:before {\n content: \"\\2039\";// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: \"\\203a\";// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0, 0, 0, 0); // IE9\n\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n }\n\n .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n display: table; // 2\n content: \" \"; // 1\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n","// stylelint-disable font-family-name-quotes, font-family-no-missing-generic-family-keyword\n\n// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","// stylelint-disable declaration-no-important, at-rule-no-vendor-prefix\n\n//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: https://getbootstrap.com/docs/3.4/getting-started/#support-ie10-width\n// Source: https://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: https://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// stylelint-disable declaration-no-important\n\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/js/class-diagram.js b/ui/ui-frontend/projects/pastis/src/assets/js/class-diagram.js new file mode 100644 index 00000000..aa01e28b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/js/class-diagram.js @@ -0,0 +1,468 @@ + +var classDiagram = (function() { + + function addMarkers(defs) { + defs.append('marker') + .attr({ + 'id': 'filledTraiangle', + viewBox: '0 0 10 10', + 'refX': 10, + 'refY': 5, + 'markerWidth': 10, + 'markerHeight': 10, + 'orient': 'auto' + }) + .append('path') + .attr({ + d: 'M10 5 0 0 0 10Z', + 'fill-rule': 'evenodd', + stroke: 'none', + fill: 'black' + }); + + defs.append('marker') + .attr({ + 'id': 'triangle', + viewBox: '0 0 10 10', + 'refX': 10, + 'refY': 5, + 'markerWidth': 10, + 'markerHeight': 10, + 'orient': 'auto' + }) + .append('path') + .attr({ + d: 'M10 5 0 0 0 10 Z M8 5 1 8.4 1 1.6Z', + 'fill-rule': 'evenodd', + stroke: 'none', + fill: 'black' + }); + + defs.append('marker') + .attr({ + 'id': 'arrowhead', + viewBox: '0 0 10 10', + 'refX': 10, + 'refY': 5, + 'markerWidth': 10, + 'markerHeight': 10, + 'orient': 'auto' + }) + .append('path') + .attr({ + d: 'M10 5 0 10 0 8.7 6.8 5.5 0 5.5 0 4.5 6.8 4.5 0 1.3 0 0Z', + stroke: 'none', + fill: 'black' + }); + + defs.append('marker') + .attr({ + id: 'diamond', + viewBox: '0 0 16 10', + refX: 16, + refY: 5, + markerWidth: 16, + markerHeight: 10, + orient: 'auto' + }) + .append('path') + .attr({ + d: 'M-1 5 7.5 0 16 5 7.5 10Z M1.3 5 7.5 8.7 14 5 7.5 1.3Z', + 'fill-rule': 'evenodd', + stroke: 'none', + fill: 'black' + }); + + defs.append('marker') + .attr({ + id: 'filledDiamond', + viewBox: '0 0 16 10', + refX: 16, + refY: 5, + markerWidth: 16, + markerHeight: 10, + orient: 'auto' + }) + .append('path') + .attr({ + d: 'M-1 5 7.5 0 16 5 7.5 10Z', + stroke: 'none', + fill: 'black' + }); + } + + function multilineText() { + var lineHeight = 1.4; + var horizontalAlign = 'center'; // 'left', 'center', or 'right' + var verticalAlign = 'center'; // 'top', 'center', or 'bottom' + var paddingTop = 10; + var paddingBottom = 10; + var paddingLeft = 10; + var paddingRight = 10; + var textAnchorsByHorizontalAlign = { + 'center': 'middle', + 'left': 'start', + 'right': 'end' + }; + var text = function(d) { return d.text; }; + var width = function(d) { return d.width; }; + var height = function(d) { return d.height; }; + + function my(selection) { + selection.each(function(d, i) { + var textElem = d3.select(this), + lines, + lineCount, + lineI, + line; + + lines = result(d, text); + if (typeof lines === 'string') { + lines = lines.split(/\n/); + } + if (lines === undefined) { + return; + } + lineCount = lines.length; + + textElem.attr({ + 'text-anchor': textAnchorsByHorizontalAlign[horizontalAlign], + 'fill': 'black', + transform: function(d) { + return 'translate(' + translateX(d) + ',' + translateY(d) + ')'; + }, + }); + + for (lineI = 0; lineI < lineCount; lineI++) { + line = lines[lineI]; + textElem.append('tspan') + .attr({ + 'x': 0, + 'y': lineTspanY(lineI, lineCount) + }) + .attr(lineTspanAttrs()) + .text(line); + } + }); + } + + function translateX(d) { + var w = result(d, width); + switch (horizontalAlign) { + case 'center': + return w / 2; + case 'left': + return paddingLeft; + case 'right': + return w - paddingRight; + } + } + + function translateY(d) { + var h = result(d, height); + switch (verticalAlign) { + case 'center': + return h / 2; + case 'top': + return paddingTop; + case 'bottom': + return h - paddingBottom; + } + } + + function lineTspanY(lineI, lineCount) { + var y; + switch (verticalAlign) { + case 'center': + y = (lineI - (lineCount - 1) / 2) * lineHeight; + break; + case 'top': + y = lineI * lineHeight; + break; + case 'bottom': + y = -((lineCount - 1) - lineI) * lineHeight; + break; + } + return y ? y + 'em' : 0; + } + + function lineTspanAttrs() { + switch (verticalAlign) { + case 'center': + return {dy: '.35em'}; + case 'top': + return {dy: '1em'}; + case 'bottom': + return {dy: 0}; + } + } + + function result(d, property) { + return typeof property === 'function' ? property(d) : property; + } + + my.lineHeight = function(value) { + if (!arguments.length) return lineHeight; + lineHeight = value; + return my; + }; + + my.horizontalAlign = function(value) { + if (!arguments.length) return horizontalAlign; + horizontalAlign = value; + return my; + }; + + my.verticalAlign = function(value) { + if (!arguments.length) return verticalAlign; + verticalAlign = value; + return my; + }; + + my.paddingTop = function(value) { + if (!arguments.length) return paddingTop; + paddingTop = value; + return my; + }; + + my.paddingRight = function(value) { + if (!arguments.length) return paddingRight; + paddingRight = value; + return my; + }; + + my.paddingBottom = function(value) { + if (!arguments.length) return paddingBottom; + paddingBottom = value; + return my; + }; + + my.paddingLeft = function(value) { + if (!arguments.length) return paddingLeft; + paddingLeft = value; + return my; + }; + + my.width = function(value) { + if (!arguments.length) return width; + width = value; + return my; + }; + + my.height = function(value) { + if (!arguments.length) return height; + height = value; + return my; + }; + + my.text = function(value) { + if (!arguments.length) return text; + text = value; + return my; + }; + + return my; + } + + function createClasses(classes,svg) { + var g = svg.selectAll('g.class') + .data(classes).enter().append('g') + .attr({ + id: function(d) { return d.classname + 'Class'; }, + 'class': 'class', + transform: function(d) { + return "translate(" + d.x + "," + d.y + ")"; + }, + }); + + g.append('rect') + .attr({ + 'width': function(d) { return d.width; }, + 'fill': '#FFFFC2', + 'stroke': 'black', + 'stroke-width': 1 + }); + + g.append('text') + .attr('font-size', 12) + .attr('x',110) + .attr('y',-5) + .text( function (d) { return d.classname !== 'ArchiveTransfer' ? (d.cardinality ? d.cardinality : '1') : '' }) + + + + + var classNameG = g.append('g') + .attr('class', 'classname'); + var classNameRects = classNameG.append('rect') + .attr({ + 'width': function(d) { return d.width; }, + 'fill': 'none', + 'stroke': 'black', + 'stroke-width': 1 + }); + var classNameTexts = classNameG.append('text') + .attr('font-size', 12) + .call(multilineText() + .verticalAlign('top') + .paddingTop(4) + .paddingBottom(4) + .text(function(d) { return d.classname; }) + ); + + adjustHeight(classNameRects[0], classNameTexts[0], 4, 4); + + function adjustHeight(rects, texts, paddingTop, paddingBottom) { + var i, + n = rects.length, + rect, + text, + height; + for (i = 0; i < n; i++) { + rect = rects[i]; + text = texts[i]; + if (text) { + height = text.getBBox().height + paddingTop + paddingBottom; + d3.select(rect).attr('height', height); + } + } + } + + var attributesG = g.append('g') + .attr({ + 'class': 'attributes', + 'transform': function(d) { + var classNameG = d3.select(this).node().previousSibling, + height = classNameG.getBBox().height; + return 'translate(0,' + height + ')'; + } + }); + var attributesRects = attributesG.append('rect') + .attr({ + 'width': function(d) { return d.width; }, + 'fill': 'none', + 'stroke': 'black', + 'stroke-width': 1 + }); + var attributesTexts = attributesG.append('text') + .attr('font-size', 12) + .call(multilineText() + .text(function(d) { return d.attributes; }) + .verticalAlign('top') + .horizontalAlign('left') + .paddingTop(4) + .paddingLeft(4) + ); + if (attributesRects.length > 0) { + adjustHeight(attributesRects[0], attributesTexts[0], 4, 4); + } + + var methodsG = g.append('g') + .attr({ + 'class': 'methods', + 'transform': function(d) { + var attributesG = d3.select(this).node().previousSibling, + classNameText = attributesG.previousSibling, + classNameBBox = classNameText.getBBox(), + attributesBBox = attributesG.getBBox(); + return 'translate(0,' + (classNameBBox.height + attributesBBox.height) + ')'; + } + }); + /* + var methodsRects = methodsG.append('rect') + .attr({ + 'width': function(d) { return d.width; }, + 'fill': 'none', + 'stroke': 'black', + 'stroke-width': 1 + }); + var methodsTexts = methodsG.append('text') + .attr('font-size', 12) + .call(multilineText() + .text(function(d) { return d.methods; }) + .verticalAlign('top') + .horizontalAlign('left') + .paddingTop(4) + .paddingLeft(4) + ); + adjustHeight(methodsRects[0], methodsTexts[0], 4, 4); + */ + svg.selectAll('g.class') + .each(function(d, i) { + var classG = d3.select(this), + classRect = classG.node().firstChild, + classNameG = classRect.nextSibling, + attributesG = classNameG.nextSibling, + methodsG = attributesG.nextSibling, + height = + classNameG.getBBox().height + + attributesG.getBBox().height + + methodsG.getBBox().height; + d3.select(classRect).attr('height', height); + }); + + var boxes = {}; + svg.selectAll('g.class') + .each(function(d, i) { + var classG = d3.select(this), + bbox = classG.node().getBBox(); + boxes[d.id] = new classDiagram.Box(d.x, d.y, bbox.width, bbox.height,d.id); + + }); + + return boxes; + } + + function Box(x, y, width, height,id) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.id = id; + } + Box.prototype.midX = function() { return this.x + this.width / 2; }; + Box.prototype.rightX = function() { return this.x + this.width; } + Box.prototype.midY = function() { return this.y + this.height / 2; } + Box.prototype.bottomY = function() { return this.y + this.height; } + + function createConnectors(connectors,mysvg) { + var line = d3.svg.line() + .x(function(d) {return d.x;}) + .y(function(d) {return d.y;}); + + mysvg.selectAll('path.connector') + .data(connectors).enter().append('path') + .each(function(d, i) { + var path = d3.select(this); + path.attr({ + 'class': 'connector', + 'd': line(d.points), + 'stroke': 'gray', + 'stroke-width': 1, + 'fill': 'none' + }); + if (d.markerEnd) { + path.attr('marker-end', 'url(#' + d.markerEnd + ')'); + } + }); + + mysvg.selectAll('path.connector') + .attr({ + 'stroke-dasharray': function(d) { + var path = d3.select(this), + totalLength = path.node().getTotalLength(), + marker = mysvg.select('#' + d['markerEnd'])[0][0], + markerWidth = marker.markerWidth.baseVal.value; + return '' + (totalLength - markerWidth) + ' ' + markerWidth; + }, + 'stroke-dashoffset': 0 + }); + } + + return { + Box: Box, + addMarkers: addMarkers, + createClasses: createClasses, + createConnectors: createConnectors + }; +})(); diff --git a/ui/ui-frontend/projects/pastis/src/assets/js/d3.min.js b/ui/ui-frontend/projects/pastis/src/assets/js/d3.min.js new file mode 100644 index 00000000..16648730 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/js/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){ao.event.preventDefault()}function k(){for(var n,t=ao.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=ao.event;i.target=n,ao.event=i,t[i.type].apply(e,r)}finally{ao.event=u}}},t}function E(n){return ko(n,Co),n}function A(n){return"function"==typeof n?n:function(){return No(n,this)}}function C(n){return"function"==typeof n?n:function(){return Eo(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function i(){this.setAttribute(n,t)}function u(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ao.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?u:i}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+ao.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<i;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<i;)n[e](this,r)}n=T(n).map(D);var i=n.length;return"function"==typeof t?r:e}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function i(){this.style.setProperty(n,t,e)}function u(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?u:i}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function i(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?i:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e===zo&&t.documentElement.namespaceURI===zo?t.createElement(n):t.createElementNS(e,n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ao.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return Ao(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function i(){var i=l(t,co(arguments));r.call(this),this.addEventListener(n,this[o]=i,i.$=e),i._=t}function u(){var t,e=new RegExp("^__on([^.]+)"+ao.requote(n)+"$");for(var r in this)if(t=r.match(e)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),l=$;a>0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t<e&&(e=t.t),t=(n=t).n):t=n?n.n=t.n:oa=t.n;return aa=n,e}function Pn(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Un(n,t){var e=Math.pow(10,3*xo(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(l,a)),null!=(i=ya[e=n.charAt(++a)])&&(e=n.charAt(++a)),(u=A[e])&&(e=u(t,null==i?"e"===e?" ":"0":i)),o.push(e),l=a+1);return o.push(n.slice(l,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,n,t,0);if(i!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var u=null!=r.Z&&va!==Hn,o=new(u?Hn:va);return"j"in r?o.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),u?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;l>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function $n(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Bn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function Wn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Jn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Gn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.y=Qn(+r[0]),e+r[0].length):-1}function Kn(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Qn(n){return n+(n>68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ft(){}function st(n,t,e){var r=e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function ht(n,t){n&&wa.hasOwnProperty(n.type)&&wa[n.type](n,t)}function pt(n,t,e){var r,i=-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function gt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)pt(n[e],t,1);t.polygonEnd()}function vt(){function n(n,t){n*=Yo,t=t*Yo/2+Fo/4;var e=n-r,o=e>=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])<Uo&&xo(n[1]-t[1])<Uo}function St(n,t){n*=Yo;var e=Math.cos(t*=Yo);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function kt(n,t,e){++Ea,Ca+=(n-Ca)/Ea,za+=(t-za)/Ea,La+=(e-La)/Ea}function Nt(){function n(n,i){n*=Yo;var u=Math.cos(i*=Yo),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);Aa+=c,qa+=c*(t+(t=o)),Ta+=c*(e+(e=a)),Ra+=c*(r+(r=l)),kt(t,e,r)}var t,e,r;ja.point=function(i,u){i*=Yo;var o=Math.cos(u*=Yo);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),ja.point=n,kt(t,e,r)}}function Et(){ja.point=St}function At(){function n(n,t){n*=Yo;var e=Math.cos(t*=Yo),o=e*Math.cos(n),a=e*Math.sin(n),l=Math.sin(t),c=i*l-u*a,f=u*o-r*l,s=r*a-i*o,h=Math.sqrt(c*c+f*f+s*s),p=r*o+i*a+u*l,g=h&&-nn(p)/h,v=Math.atan2(h,p);Da+=g*c,Pa+=g*f,Ua+=g*s,Aa+=v,qa+=v*(r+(r=o)),Ta+=v*(i+(i=a)),Ra+=v*(u+(u=l)),kt(r,i,u)}var t,e,r,i,u;ja.point=function(o,a){t=o,e=a,ja.point=n,o*=Yo;var l=Math.cos(a*=Yo);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},ja.lineEnd=function(){n(t,e),ja.lineEnd=Et,ja.point=St}}function Ct(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function zt(){return!0}function Lt(n,t,e,r,i){var u=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var a=0;t>a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function Tt(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Rt(n,t,e,r){return function(i,u){function o(t,e){var r=i(t,e);n(t=r[0],e=r[1])&&u.point(t,e)}function a(n,t){var e=i(n,t);d.point(e[0],e[1])}function l(){m.point=a,d.lineStart()}function c(){m.point=o,d.lineEnd()}function f(n,t){v.push([n,t]);var e=i(n,t);x.point(e[0],e[1])}function s(){x.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),g.push(v),v=null,r)if(1&t){n=e[0];var i,r=n.length-1,o=-1;if(r>0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)<Uo?(n.point(e,r=(r+o)/2>0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)<Uo&&(e-=i*Uo),xo(u-a)<Uo&&(u-=a*Uo),r=Ft(e,r,u,o),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineEnd:function(){n.lineEnd(),e=r=NaN},clean:function(){return 2-t}}}function Ft(n,t,e,r){var i,u,o=Math.sin(n-e);return xo(o)>Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]<t[0]?Fo:-Fo;i=e*u/2,r.point(-u,i),r.point(0,i),r.point(u,i)}else r.point(t[0],t[1])}function Ot(n,t){var e=n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;ka.reset();for(var a=0,l=t.length;l>a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)<Uo,C=A||Uo>E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)<Uo?k:N):k<=b[1]&&b[1]<=N:E>Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)<Uo?i>0?0:3:xo(r[0]-e)<Uo?i>0?2:1:xo(r[1]-t)<Uo?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)<Uo||xo(r-h)<Uo?(r+h)/2:Math.atan2(_,b),E=n(N,k),A=E[0],C=E[1],z=A-t,L=C-e,q=M*z-m*L;(q*q/x>u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)<Uo?ce:(e.invert=function(n,t){var e=u-t;return[Math.atan2(n,e)/i,u-K(i)*Math.sqrt(n*n+e*e)]},e)}function Ne(n,t){return[n,Math.log(Math.tan(Fo/4+t/2))]}function Ee(n){var t,e=oe(n),r=e.scale,i=e.translate,u=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=i.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=u.apply(e,arguments);if(o===e){if(t=null==n){var a=Fo*r(),l=i();u([[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ae(n,t){return[Math.log(Math.tan(Fo/4+t/2)),-n]}function Ce(n){return n[0]}function ze(n){return n[1]}function Le(n){for(var t=n.length,e=[0,1],r=2,i=2;t>i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)<Uo&&xo(r-l.circle.cy)<Uo;)u=l.P,a.unshift(l),je(l),l=u;a.unshift(l),Be(l);for(var c=o;c.circle&&xo(e-c.circle.x)<Uo&&xo(r-c.circle.cy)<Uo;)o=c.N,a.push(c),je(c),c=o;a.push(c),Be(c);var f,s=a.length;for(f=1;s>f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)<Uo&&g-i>Uo?{x:s,y:xo(t-s)<Uo?e:g}:xo(i-g)<Uo&&h-r>Uo?{x:xo(e-g)<Uo?t:h,y:g}:xo(r-h)<Uo&&i-p>Uo?{x:h,y:xo(t-h)<Uo?e:p}:xo(i-p)<Uo&&r-s>Uo?{x:xo(e-p)<Uo?t:s,y:p}:null),u.site,null)),++l)}function Ve(n,t){return t.angle-n.angle}function Xe(){rr(this),this.x=this.y=this.arc=this.site=this.cy=null}function $e(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,i=n.site,u=e.site;if(r!==u){var o=i.x,a=i.y,l=r.x-o,c=r.y-a,f=u.x-o,s=u.y-a,h=2*(l*s-c*f);if(!(h>=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.y<M.y||y.y===M.y&&y.x<=M.x){if(!M.L){m=M.P;break}M=M.L}else{if(!M.R){m=M;break}M=M.R}ll.insert(m,y),m||(al=y)}}}}function Be(n){var t=n.circle;t&&(t.P||(al=t.N),ll.remove(t),fl.push(t),rr(t),n.circle=null)}function We(n){for(var t,e=il,r=Yt(n[0][0],n[0][1],n[1][0],n[1][1]),i=e.length;i--;)t=e[i],(!Je(t,n)||!r(t)||xo(t.a.x-t.b.x)<Uo&&xo(t.a.y-t.b.y)<Uo)&&(t.a=t.b=null,e.splice(i,1))}function Je(n,t){var e=n.b;if(e)return!0;var r,i,u=n.a,o=t[0][0],a=t[1][0],l=t[0][1],c=t[1][1],f=n.l,s=n.r,h=f.x,p=f.y,g=s.x,v=s.y,d=(h+g)/2,y=(p+v)/2;if(v===p){if(o>d||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.y<l)return}else u={x:d,y:c};e={x:d,y:l}}}else if(r=(h-g)/(v-p),i=y-r*d,-1>r||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y<l)return}else u={x:(c-i)/r,y:c};e={x:(l-i)/r,y:l}}else if(v>p){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.x<o)return}else u={x:a,y:r*a+i};e={x:o,y:r*o+i}}return n.a=u,n.b=e,!0}function Ge(n,t){this.l=n,this.r=t,this.a=this.b=null}function Ke(n,t,e,r){var i=new Ge(n,t);return il.push(i),e&&nr(i,n,t,e),r&&nr(i,t,n,r),ul[n.i].edges.push(new tr(i,n,t)),ul[t.i].edges.push(new tr(i,t,n)),i}function Qe(n,t,e){var r=new Ge(n,null);return r.a=t,r.b=e,il.push(r),r}function nr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function tr(n,t,e){var r=n.a,i=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function er(){this._=null}function rr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function ir(n,t){var e=t,r=t.R,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ur(n,t){var e=t,r=t.L,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function or(n){for(;n.L;)n=n.L;return n}function ar(n,t){var e,r,i,u=n.sort(lr).pop();for(il=[],ul=new Array(n.length),ol=new er,ll=new er;;)if(i=al,u&&(!i||u.y<i.y||u.y===i.y&&u.x<i.x))u.x===e&&u.y===r||(ul[u.i]=new Ye(u),He(u),e=u.x,r=u.y),u=n.pop();else{if(!i)break;Fe(i.arc)}t&&(We(t),Ze(t));var o={cells:ul,edges:il};return ol=ll=il=ul=null,o}function lr(n,t){return t.y-n.y||t.x-n.x}function cr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function fr(n){return n.x}function sr(n){return n.y}function hr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function pr(n,t,e,r,i,u){if(!n(t,e,r,i,u)){var o=.5*(e+i),a=.5*(r+u),l=t.nodes;l[0]&&pr(n,l[0],e,r,o,a),l[1]&&pr(n,l[1],o,r,i,a),l[2]&&pr(n,l[2],e,a,o,u),l[3]&&pr(n,l[3],o,a,i,u)}}function gr(n,t,e,r,i,u,o){var a,l=1/0;return function c(n,f,s,h,p){if(!(f>u||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return u<t.length&&(i=t.slice(u),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?(t=l[0].x,function(n){return t(n)+""}):function(){return t}:(t=l.length,function(n){for(var e,r=0;t>r;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Zo,this.translate=[n.e,n.f],this.scale=[r,u],this.skew=u?Math.atan2(i,u)*Zo:0}function Fr(n,t){return n[0]*t[0]+n[1]*t[1]}function Hr(n){var t=Math.sqrt(Fr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Or(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Ir(n){return n.length?n.pop()+",":""}function Yr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push("translate(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else(t[0]||t[1])&&e.push("translate("+t+")")}function Zr(n,t,e,r){n!==t?(n-t>180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i<u;)e[(t=r[i]).i]=t.x(n);return e.join("")}}function Br(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Wr(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Jr(n){for(var t=n.source,e=n.target,r=Kr(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var u=i.length;e!==r;)i.splice(u,0,e),e=e.parent;return i}function Gr(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Kr(n,t){if(n===t)return n;for(var e=Gr(n),r=Gr(t),i=e.pop(),u=r.pop(),o=null;i===u;)o=i,i=e.pop(),u=r.pop();return o}function Qr(n){n.fixed|=2}function ni(n){n.fixed&=-7}function ti(n){n.fixed|=4,n.px=n.x,n.py=n.y}function ei(n){n.fixed&=-5}function ri(n,t,e){var r=0,i=0;if(n.charge=0,!n.leaf)for(var u,o=n.nodes,a=o.length,l=-1;++l<a;)u=o[l],null!=u&&(ri(u,t,e),n.charge+=u.charge,r+=u.charge*u.cx,i+=u.charge*u.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var c=t*e[n.point.index];n.charge+=n.pointCharge=c,r+=c*n.point.x,i+=c*n.point.y}n.cx=r/n.charge,n.cy=i/n.charge}function ii(n,t){return ao.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=fi,n}function ui(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(i=n.children)&&(r=i.length))for(var r,i;--r>=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++o<i;)e.push(u[o]);for(;null!=(n=r.pop());)t(n)}function ai(n){return n.children}function li(n){return n.value}function ci(n,t){return t.value-n.value}function fi(n){return ao.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function si(n){return n.x}function hi(n){return n.y}function pi(n,t,e){n.y0=t,n.y=e}function gi(n){return ao.range(n.length)}function vi(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function di(n){for(var t,e=1,r=0,i=n[0][1],u=n.length;u>e;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.r<r.r?Si(r,i=a):Si(r=l,i),o--):(wi(r,u),i=u,t(u))}var y=(f+s)/2,m=(h+p)/2,M=0;for(o=0;c>o;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u<o;)Ci(i[u],t,e,r)}function zi(n,t,e){var r=n.r+e.r,i=t.x-n.x,u=t.y-n.y;if(r&&(i||u)){var o=t.r+e.r,a=i*i+u*u;o*=o,r*=r;var l=.5+(r-o)/(2*a),c=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+l*i+c*u,e.y=n.y+l*u-c*i}else e.x=n.x+r,e.y=n.y}function Li(n,t){return n.parent==t.parent?1:2}function qi(n){var t=n.children;return t.length?t[0]:n.t}function Ti(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ri(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Di(n){for(var t,e=0,r=0,i=n.children,u=i.length;--u>=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)i.push(e(n[o-1],n[o])),u.push(r(t[o-1],t[o]));return function(t){var e=ao.bisect(n,t,1,a)-1;return u[e](i[e](t))}}function Wi(n,t,e,r){function i(){var i=Math.min(n.length,t.length)>2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++<f;)for(var h=s-1;h>0;h--)o.push(u(c)*h);for(c=0;o[c]<a;c++);for(f=o.length;o[f-1]>l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++o<a;)i.has(u=r[o])||i.set(u,n.push(u));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(u=n,o=0,t={t:"range",a:arguments},e):u},e.rangePoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=(l+c)/2,0):(c-l)/(n.length-1+a);return u=r(l+f*a/2,f),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=c=Math.round((l+c)/2),0):(c-l)/(n.length-1+a)|0;return u=r(l+Math.round(f*a/2+(c-l-(n.length-1+a)*f)/2),f),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=(s-f)/(n.length-a+2*l);return u=r(f+h*l,h),c&&u.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=Math.floor((s-f)/(n.length-a+2*l));return u=r(f+Math.round((s-f-(n.length-a)*h)/2),h),c&&u.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Yi(t.a[0])},e.copy=function(){return ou(n,t)},e.domain(n)}function au(n,t){function u(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ao.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ao.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(i).sort(e),u()):n},o.range=function(n){return arguments.length?(t=n,u()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[NaN,NaN]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return au(n,t)},u()}function lu(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(u*(t-n))))]}function i(){return u=e.length/(t-n),o=e.length-1,r}var u,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],i()):[n,t]},r.range=function(n){return arguments.length?(e=n,i()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s<h;)i.call(this,l=t[s],s)?f.push([+p.call(this,l,s),+g.call(this,l,s)]):f.length&&(o(),f=[]);return f.length&&o(),c.length?c.join(""):null}var e=Ce,r=ze,i=zt,u=xu,o=u.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(i=n,t):i},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?u=n:(u=Tl.get(n)||xu).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function xu(n){return n.length>1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("V",(r=n[t])[1],"H",r[0]);return i.join("")}function Su(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r=n[t])[0],"V",r[1]);return i.join("")}function ku(n,t){return n.length<4?xu(n):n[1]+Au(n.slice(1,-1),Cu(n,t))}function Nu(n,t){return n.length<3?bu(n):n[0]+Au((n.push(n[0]),n),Cu([n[n.length-2]].concat(n,[n[1]]),t))}function Eu(n,t){return n.length<3?xu(n):n[0]+Au(n,Cu(n,t))}function Au(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return xu(n);var e=n.length!=t.length,r="",i=n[0],u=n[1],o=t[0],a=o,l=1;if(e&&(r+="Q"+(u[0]-2*o[0]/3)+","+(u[1]-2*o[1]/3)+","+u[0]+","+u[1],i=n[1],l=2),t.length>1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c<t.length;c++,l++)u=n[l],a=t[c],r+="S"+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1]}if(e){var f=n[l];r+="Q"+(u[0]+2*a[0]/3)+","+(u[1]+2*a[1]/3)+","+f[0]+","+f[1]}return r}function Cu(n,t){for(var e,r=[],i=(1-t)/2,u=n[0],o=n[1],a=1,l=n.length;++a<l;)e=u,u=o,o=n[a],r.push([i*(o[0]-e[0]),i*(o[1]-e[1])]);return r}function zu(n){if(n.length<3)return xu(n);var t=1,e=n.length,r=n[0],i=r[0],u=r[1],o=[i,i,i,(r=n[1])[0]],a=[u,u,u,r[1]],l=[i,",",u,"L",Ru(Pl,o),",",Ru(Pl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Du(l,o,a);return n.pop(),l.push("L",r),l.join("")}function Lu(n){if(n.length<4)return xu(n);for(var t,e=[],r=-1,i=n.length,u=[0],o=[0];++r<3;)t=n[r],u.push(t[0]),o.push(t[1]);for(e.push(Ru(Pl,u)+","+Ru(Pl,o)),--r;++r<i;)t=n[r],u.shift(),u.push(t[0]),o.shift(),o.push(t[1]),Du(e,u,o);return e.join("")}function qu(n){for(var t,e,r=-1,i=n.length,u=i+4,o=[],a=[];++r<4;)e=n[r%i],o.push(e[0]),a.push(e[1]);for(t=[Ru(Pl,o),",",Ru(Pl,a)],--r;++r<u;)e=n[r%i],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Du(t,o,a);return t.join("")}function Tu(n,t){var e=n.length-1;if(e)for(var r,i,u=n[0][0],o=n[0][1],a=n[e][0]-u,l=n[e][1]-o,c=-1;++c<=e;)r=n[c],i=c/e,r[0]=t*r[0]+(1-t)*(u+i*a),r[1]=t*r[1]+(1-t)*(o+i*l);return zu(n)}function Ru(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Du(n,t,e){n.push("C",Ru(Rl,t),",",Ru(Rl,e),",",Ru(Dl,t),",",Ru(Dl,e),",",Ru(Pl,t),",",Ru(Pl,e))}function Pu(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Uu(n){for(var t=0,e=n.length-1,r=[],i=n[0],u=n[1],o=r[0]=Pu(i,u);++t<e;)r[t]=(o+(o=Pu(i=u,u=n[t+1])))/2;return r[t]=o,r}function ju(n){for(var t,e,r,i,u=[],o=Uu(n),a=-1,l=n.length-1;++a<l;)t=Pu(n[a],n[a+1]),xo(t)<Uo?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,i=e*e+r*r,i>9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i<u;)t=n[i],e=t[0],r=t[1]-Io,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Ou(n){function t(t){function l(){v.push("M",a(n(y),s),f,c(n(d.reverse()),s),"Z")}for(var h,p,g,v=[],d=[],y=[],m=-1,M=t.length,x=En(e),b=En(i),_=e===r?function(){ +return p}:En(r),w=i===u?function(){return g}:En(u);++m<M;)o.call(this,h=t[m],m)?(d.push([p=+x.call(this,h,m),g=+b.call(this,h,m)]),y.push([+_.call(this,h,m),+w.call(this,h,m)])):d.length&&(l(),d=[],y=[]);return d.length&&l(),v.length?v.join(""):null}var e=Ce,r=Ce,i=0,u=ze,o=zt,a=xu,l=a.key,c=a,f="L",s=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(i=u=n,t):u},t.y0=function(n){return arguments.length?(i=n,t):i},t.y1=function(n){return arguments.length?(u=n,t):u},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(l="function"==typeof n?a=n:(a=Tl.get(n)||xu).key,c=a.reverse||a,f=a.closed?"M":"L",t):l},t.tension=function(n){return arguments.length?(s=n,t):s},t}function Iu(n){return n.radius}function Yu(n){return[n.x,n.y]}function Zu(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Io;return[e*Math.cos(r),e*Math.sin(r)]}}function Vu(){return 64}function Xu(){return"circle"}function $u(n){var t=Math.sqrt(n/Fo);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Bu(n){return function(){var t,e,r;(t=this[n])&&(r=t[e=t.active])&&(r.timer.c=null,r.timer.t=NaN,--t.count?delete t[e]:delete this[n],t.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Wu(n,t,e){return ko(n,Yl),n.namespace=t,n.id=e,n}function Ju(n,t,e,r){var i=n.id,u=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[u][i].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[u][i].tween.set(t,e)}))}function Gu(n){return null==n&&(n=""),function(){this.textContent=n}}function Ku(n){return null==n?"__transition__":"__transition_"+n+"__"}function Qu(n,t,e,r,i){function u(n){var t=v.delay;return f.t=t+l,n>=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]<Kl[u]/i?u-1:u]:[tc,Ki(n,e)[2]]}return r.invert=function(t){return io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,io(+e+1),t).length}var u=r.domain(),o=Yi(u),a=null==n?i(o,10):"number"==typeof n&&i(o,n);return a&&(n=a[0],t=a[1]),r.domain(Xi(u,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&e>r&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&e>r&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&r>e&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&r>e&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u<o;)if(null!=(r=n[u])&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=n[u])&&(e>r&&(e=r),r>i&&(i=r))}else{for(;++u<o;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=t.call(n,n[u],u))&&(e>r&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o<u;)i(e=+n[o])&&(r+=e);else for(;++o<u;)i(e=+t.call(n,n[o],o))&&(r+=e);return r},ao.mean=function(n,t){var e,u=0,o=n.length,a=-1,l=o;if(1===arguments.length)for(;++a<o;)i(e=r(n[a]))?u+=e:--l;else for(;++a<o;)i(e=r(t.call(n,n[a],a)))?u+=e:--l;return l?u/l:void 0},ao.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),i=+n[r-1],u=e-r;return u?i+u*(n[r]-i):i},ao.median=function(n,t){var u,o=[],a=n.length,l=-1;if(1===arguments.length)for(;++l<a;)i(u=r(n[l]))&&o.push(u);else for(;++l<a;)i(u=r(t.call(n,n[l],l)))&&o.push(u);return o.length?ao.quantile(o.sort(e),.5):void 0},ao.variance=function(n,t){var e,u,o=n.length,a=0,l=0,c=-1,f=0;if(1===arguments.length)for(;++c<o;)i(e=r(n[c]))&&(u=e-a,a+=u/++f,l+=u*(e-a));else for(;++c<o;)i(e=r(t.call(n,n[c],c)))&&(u=e-a,a+=u/++f,l+=u*(e-a));return f>1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t<e;)for(var i,u=-1,a=r[t]=new Array(i);++u<i;)a[u]=n[u][t];return r},ao.zip=function(){return ao.transpose(arguments)},ao.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ao.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ao.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ao.merge=function(n){for(var t,e,r,i=n.length,u=-1,o=0;++u<i;)o+=n[u].length;for(e=new Array(o);--i>=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)<t;)i.push(r/u);return i},ao.map=function(n,t){var e=new c;if(n instanceof c)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,i=-1,u=n.length;if(1===arguments.length)for(;++i<u;)e.set(i,n[i]);else for(;++i<u;)e.set(t.call(n,r=n[i],i),r)}else for(var o in n)e.set(o,n[o]);return e};var bo="__proto__",_o="\x00";l(c,{has:h,get:function(n){return this._[f(n)]},set:function(n,t){return this._[f(n)]=t},remove:p,keys:g,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:s(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t),this._[t])}}),ao.nest=function(){function n(t,o,a){if(a>=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p<g;)(h=d.get(l=v(f=o[p])))?h.push(f):d.set(l,[f]);return t?(f=t(),s=function(e,r){f.set(e,n(t,r,a))}):(f={},s=function(e,r){f[e]=n(t,r,a)}),d.forEach(s),f}function t(n,e){if(e>=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r<i;)n[e=arguments[r]]=M(n,t,t[e]);return n};var wo=["webkit","ms","moz","Moz","o","O"];ao.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o<a;){u.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var l=-1,c=r.length;++l<c;)(i=r[l])?(t.push(e=n.call(i,i.__data__,l,o)),e&&"__data__"in i&&(e.__data__=i.__data__)):t.push(null)}return E(u)},Co.selectAll=function(n){var t,e,r=[];n=C(n);for(var i=-1,u=this.length;++i<u;)for(var o=this[i],a=-1,l=o.length;++a<l;)(e=o[a])&&(r.push(t=co(n.call(e,e.__data__,a,i))),t.parentNode=e);return E(r)};var zo="http://www.w3.org/1999/xhtml",Lo={svg:"http://www.w3.org/2000/svg",xhtml:zo,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ao.ns={prefix:Lo,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i<r;)if(!t.contains(n[i]))return!1}else for(t=e.getAttribute("class");++i<r;)if(!q(n[i]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},Co.style=function(n,e,r){var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++r<o;)(i=n[r])&&(y.has(d=t.call(i,i.__data__,r))?v[r]=i:y.set(d,i),m[r]=d);for(r=-1;++r<s;)(i=y.get(d=t.call(e,u=e[r],r)))?i!==!0&&(p[r]=i,i.__data__=u):g[r]=H(u),y.set(d,!0);for(r=-1;++r<o;)r in m&&y.get(m[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],u=e[r],i?(i.__data__=u,p[r]=i):g[r]=H(u);for(;s>r;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++u<o;)(i=r[u])&&(n[u]=i.__data__);return n}var a=Z([]),l=E([]),f=E([]);if("function"==typeof n)for(;++u<o;)e(r=this[u],n.call(r,r.parentNode.__data__,u));else for(;++u<o;)e(r=this[u],n);return l.enter=function(){return a},l.exit=function(){return f},l},Co.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},Co.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],i=r.length-1,u=r[i];--i>=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},Co.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},Co.call=function(n){var t=co(arguments);return n.apply(t[0]=this,t),this},Co.empty=function(){return!this.node()},Co.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++a<l;){r=(i=this[a]).update,o.push(t=[]),t.parentNode=i.parentNode;for(var c=-1,f=i.length;++c<f;)(u=i[c])?(t.push(r[c]=e=n.call(i.parentNode,u.__data__,c,a)),e.__data__=u.__data__):t.push(null)}return E(o)},qo.insert=function(n,t){return arguments.length<2&&(t=V(this)),Co.insert.call(this,n,t)},ao.select=function(t){var e;return"string"==typeof t?(e=[No(t,fo)],e.parentNode=fo.documentElement):(e=[t],e.parentNode=n(t)),E([e])},ao.selectAll=function(n){var t;return"string"==typeof n?(t=co(Eo(n,fo)),t.parentNode=fo.documentElement):(t=co(n),t.parentNode=null),E([t])},Co.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}f=e+2;var r=n.charCodeAt(e+1);return 13===r?(i=!0,10===n.charCodeAt(e+2)&&++f):10===r&&(i=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;c>f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++r<i;)ht(e[r].geometry,t)}},wa={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){pt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)pt(e[r],t,0)},Polygon:function(n,t){gt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)gt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,i=e.length;++r<i;)ht(e[r],t)}};ao.geo.area=function(n){return Sa=0,ao.geo.stream(n,Na),Sa};var Sa,ka=new ft,Na={sphere:function(){Sa+=4*Fo},point:b,lineStart:b,lineEnd:b,polygonStart:function(){ka.reset(),Na.lineStart=vt},polygonEnd:function(){var n=2*ka;Sa+=0>n?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var f,s,h,p,g,v,d,y,m,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=i,b.lineStart=u,b.lineEnd=o,m=0,Na.polygonStart()},polygonEnd:function(){Na.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>ka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t<f.length-h;++t)p.push(n[a[f[t]][2]]);return p}var e=Ce,r=ze;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ao.geom.polygon=function(n){return ko(n,rl),n};var rl=ao.geom.polygon.prototype=[];rl.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e;)n=r,r=this[t],i+=n[1]*r[0]-n[0]*r[1];return.5*i},rl.centroid=function(n){var t,e,r=-1,i=this.length,u=0,o=0,a=this[i-1];for(arguments.length||(n=-1/(6*this.area()));++r<i;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],u+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[u*n,o*n]},rl.clip=function(n){for(var t,e,r,i,u,o,a=De(n),l=-1,c=this.length-De(this),f=this[c-1];++l<c;){for(t=n.slice(),n.length=0,i=this[l],u=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Te(o,f,i)?(Te(u,f,i)||n.push(Re(u,o,f,i)),n.push(o)):Te(u,f,i)&&n.push(Re(u,o,f,i)),u=o;a&&n.push(n[0]),f=i}return n};var il,ul,ol,al,ll,cl=[],fl=[];Ye.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ve),t.length},tr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},er.prototype={insert:function(n,t){var e,r,i;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=or(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.R&&(ir(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ur(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.L&&(ur(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ir(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,i=n.U,u=n.L,o=n.R;if(e=u?o?or(o):u:o,i?i.L===n?i.L=e:i.R=e:this._=e,u&&o?(r=e.C,e.C=n.C,e.L=u,u.U=e,e!==o?(i=e.U,e.U=n.U,n=e.R,i.L=n,e.R=o,o.U=e):(e.U=i,i=e,n=e.R)):(r=n.C,n=e),n&&(n.U=i),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===i.L){if(t=i.R,t.C&&(t.C=!1,i.C=!0,ir(this,i),t=i.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ur(this,t),t=i.R),t.C=i.C,i.C=t.R.C=!1,ir(this,i),n=this._;break}}else if(t=i.L,t.C&&(t.C=!1,i.C=!0,ur(this,i),t=i.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ir(this,t),t=i.L),t.C=i.C,i.C=t.L.C=!1,ur(this,i),n=this._;break}t.C=!0,n=i,i=i.U}while(!n.C);n&&(n.C=!1)}}},ao.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],i=a[0][1],u=a[1][0],o=a[1][1];return ar(e(n),a).cells.forEach(function(e,a){var l=e.edges,c=e.site,f=t[a]=l.length?l.map(function(n){var t=n.start();return[t.x,t.y]}):c.x>=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l<c;)i=f,u=s,f=a[l].edge,s=f.l===o?f.r:f.l,r<u.i&&r<s.i&&cr(o,u,s)<0&&t.push([n[r],n[u.i],n[s.i]])}),t},t.x=function(n){return arguments.length?(u=En(r=n),t):r},t.y=function(n){return arguments.length?(o=En(i=n),t):i},t.clipExtent=function(n){return arguments.length?(a=null==n?sl:n,t):a===sl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===sl?null:a&&a[1]},t)};var sl=[[-1e6,-1e6],[1e6,1e6]];ao.geom.delaunay=function(n){return ao.geom.voronoi().triangles(n)},ao.geom.quadtree=function(n,t,e,r,i){function u(n){function u(n,t,e,r,i,u,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var l=n.x,f=n.y;if(null!=l)if(xo(l-e)+xo(f-r)<.01)c(n,t,e,r,i,u,o,a);else{var s=n.point;n.x=n.y=n.point=null,c(n,s,l,f,i,u,o,a),c(n,t,e,r,i,u,o,a)}else n.x=e,n.y=r,n.point=t}else c(n,t,e,r,i,u,o,a)}function c(n,t,e,r,i,o,a,l){var c=.5*(i+a),f=.5*(o+l),s=e>=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.x<v&&(v=f.x),f.y<d&&(d=f.y),f.x>y&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p<g;)u(k,n[p],s[p],h[p],v,d,y,m);--p}else n.forEach(k.add);return s=h=n=f=null,k}var o,a=Ce,l=ze;return(o=arguments.length)?(a=fr,l=sr,3===o&&(i=e,r=t,e=t=0),u(n)):(u.x=function(n){return arguments.length?(a=n,u):a},u.y=function(n){return arguments.length?(l=n,u):l},u.extent=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],i=+n[1][1]),u):null==t?null:[[t,e],[r,i]]},u.size=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=e=0,r=+n[0],i=+n[1]),u):null==t?null:[r-t,i-e]},u)},ao.interpolateRgb=vr,ao.interpolateObject=dr,ao.interpolateNumber=yr,ao.interpolateString=mr;var hl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pl=new RegExp(hl.source,"g");ao.interpolate=Mr,ao.interpolators=[function(n,t){var e=typeof t;return("string"===e?ua.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?vr:mr:t instanceof an?vr:Array.isArray(t)?xr:"object"===e&&isNaN(t)?dr:yr)(n,t)}],ao.interpolateArray=xr;var gl=function(){return m},vl=ao.map({linear:gl,poly:Er,quad:function(){return Sr},cubic:function(){return kr},sin:function(){return Ar},exp:function(){return Cr},circle:function(){return zr},elastic:Lr,back:qr,bounce:function(){return Tr}}),dl=ao.map({"in":m,out:_r,"in-out":wr,"out-in":function(n){return wr(_r(n))}});ao.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Jr(n[e]));return t}},ao.layout.chord=function(){function n(){var n,c,s,h,p,g={},v=[],d=ao.range(u),y=[];for(e=[],r=[],n=0,h=-1;++h<u;){for(c=0,p=-1;++p<u;)c+=i[h][p];v.push(c),y.push(ao.range(u)),n+=c}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&y.forEach(function(n,t){n.sort(function(n,e){return a(i[t][n],i[t][e])})}),n=(Ho-f*u)/n,c=0,h=-1;++h<u;){for(s=c,p=-1;++p<u;){var m=d[h],M=y[m][p],x=i[m][M],b=c,_=c+=x*n;g[m+"-"+M]={index:m,subindex:M,startAngle:b,endAngle:_,value:x}}r[m]={index:m,startAngle:s,endAngle:c,value:v[m]},c+=f}for(h=-1;++h<u;)for(p=h-1;++p<u;){var w=g[h+"-"+p],S=g[p+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}l&&t()}function t(){e.sort(function(n,t){return l((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,i,u,o,a,l,c={},f=0;return c.matrix=function(n){return arguments.length?(u=(i=n)&&i.length,e=r=null,c):i},c.padding=function(n){return arguments.length?(f=n,e=r=null,c):f},c.sortGroups=function(n){return arguments.length?(o=n,e=r=null,c):o},c.sortSubgroups=function(n){return arguments.length?(a=n,e=null,c):a},c.sortChords=function(n){return arguments.length?(l=n,e&&t(),c):l},c.chords=function(){return e||n(),e},c.groups=function(){return r||n(),r},c},ao.layout.force=function(){function n(n){return function(t,e,r,i){if(t.point!==n){var u=t.cx-n.x,o=t.cy-n.y,a=i-e,l=u*u+o*o;if(l>a*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++l<f;)if(!isNaN(o=a[l][n]))return o;return Math.random()*r}var t,e,r,i=M.length,c=x.length,s=f[0],v=f[1];for(t=0;i>t;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++c<o;)n(a=u[c],e,l=a.value*r,i),e+=l}}function t(n){var e=n.children,r=0;if(e&&(i=e.length))for(var i,u=-1;++u<i;)r=Math.max(r,t(e[u]));return 1+r}function e(e,u){var o=r.call(this,e,u);return n(o[0],0,i[0],i[1]/t(o[0])),o}var r=ao.layout.hierarchy(),i=[1,1];return e.size=function(n){return arguments.length?(i=n,e):i},ii(e,r)},ao.layout.pie=function(){function n(o){var a,l=o.length,c=o.map(function(e,r){return+t.call(n,e,r)}),f=+("function"==typeof r?r.apply(this,arguments):r),s=("function"==typeof i?i.apply(this,arguments):i)-f,h=Math.min(Math.abs(s)/l,+("function"==typeof u?u.apply(this,arguments):u)),p=h*(0>s?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u<p;)o=l[u]=[],o.dx=s[u+1]-(o.x=s[u]),o.y=0;if(p>0)for(u=-1;++u<h;)a=c[u],a>=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.x<p.x&&(p=n),n.x>g.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++i<u;)r=(e=n[i]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(u>e&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++u<o;)i=n[u],i.x=a,i.y=c,i.dy=f,a+=i.dx=Math.min(e.x+e.dx-a,f?l(i.area/f):0);i.z=!0,i.dx+=e.x+e.dx-a,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);++u<o;)i=n[u],i.x=a,i.y=c,i.dx=f,c+=i.dy=Math.min(e.y+e.dy-c,f?l(i.area/f):0);i.z=!1,i.dy+=e.y+e.dy-c,e.x+=f,e.dx-=f}}function u(r){var i=o||a(r),u=i[0];return u.x=u.y=0,u.value?(u.dx=c[0],u.dy=c[1]):u.dx=u.dy=0,o&&a.revalue(u),n([u],u.dx*u.dy/u.value),(o?e:t)(u),h&&(o=i),i}var o,a=ao.layout.hierarchy(),l=Math.round,c=[1,1],f=null,s=Oi,h=!1,p="squarify",g=.5*(1+Math.sqrt(5));return u.size=function(n){return arguments.length?(c=n,u):c},u.padding=function(n){function t(t){var e=n.call(u,t,t.depth);return null==e?Oi(t):Ii(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ii(t,n)}if(!arguments.length)return f;var r;return s=null==(f=n)?Oi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,u},u.round=function(n){return arguments.length?(l=n?Math.round:Number,u):l!=Number},u.sticky=function(n){return arguments.length?(h=n,o=null,u):h},u.ratio=function(n){return arguments.length?(g=n,u):g},u.mode=function(n){return arguments.length?(p=n+"",u):p},ii(u,a)},ao.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++a<l;){u.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(e=c[f])&&Qu(e,f,i,r,o),t.push(e)}return Wu(u,i,r)},Co.interrupt=function(n){return this.each(null==n?Il:Bu(Ku(n)))};var Hl,Ol,Il=Bu(Ku()),Yl=[],Zl=0;Yl.call=Co.call,Yl.empty=Co.empty,Yl.node=Co.node,Yl.size=Co.size,ao.transition=function(n,t){return n&&n.transition?Hl?n.transition(t):n:ao.selection().transition(n)},ao.transition.prototype=Yl,Yl.select=function(n){var t,e,r,i=this.id,u=this.namespace,o=[];n=A(n);for(var a=-1,l=this.length;++a<l;){o.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(r=c[f])&&(e=n.call(r,r.__data__,f,a))?("__data__"in r&&(e.__data__=r.__data__),Qu(e,f,u,i,r[u][i]),t.push(e)):t.push(null)}return Wu(o,u,i)},Yl.selectAll=function(n){var t,e,r,i,u,o=this.id,a=this.namespace,l=[];n=C(n);for(var c=-1,f=this.length;++c<f;)for(var s=this[c],h=-1,p=s.length;++h<p;)if(r=s[h]){u=r[a][o],e=n.call(r,r.__data__,h,c),l.push(t=[]);for(var g=-1,v=e.length;++g<v;)(i=e[g])&&Qu(i,g,a,o,u),t.push(i)}return Wu(l,a,o)},Yl.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]<M[0])],L[1]=h[+(n[1]<M[1])]):M=null),E&&y(n,c,0)&&(r(k),t=!0),A&&y(n,f,1)&&(i(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function y(n,t,e){var r,i,u=Zi(t),l=u[0],c=u[1],f=L[e],v=e?h:s,d=v[1]-v[0];return C&&(l-=f,c-=d+f),r=(e?g:p)?Math.max(l,Math.min(c,n[e])):n[e],C?i=(r+=f)+d:(M&&(f=Math.max(l,Math.min(c,2*M[e]-r))),r>f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/js/multiline-text.js b/ui/ui-frontend/projects/pastis/src/assets/js/multiline-text.js new file mode 100644 index 00000000..1e325f2e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/js/multiline-text.js @@ -0,0 +1,172 @@ +var multilineText = (function() { + var lineHeight = 1.4; + var horizontalAlign = 'center'; // 'left', 'center', or 'right' + var verticalAlign = 'center'; // 'top', 'center', or 'bottom' + var paddingTop = 10; + var paddingBottom = 10; + var paddingLeft = 10; + var paddingRight = 10; + var textAnchorsByHorizontalAlign = { + 'center': 'middle', + 'left': 'start', + 'right': 'end' + }; + var text = function(d) { return d.text; }; + var width = function(d) { return d.width; }; + var height = function(d) { return d.height; }; + + function my(selection) { + selection.each(function(d, i) { + var textElem = d3.select(this), + lines, + lineCount, + lineI, + line; + + lines = result(d, text); + if (typeof lines === 'string') { + lines = lines.split(/\n/); + } + if (lines === undefined) { + return; + } + lineCount = lines.length; + + textElem.attr({ + 'text-anchor': textAnchorsByHorizontalAlign[horizontalAlign], + 'fill': 'black', + transform: function(d) { + return 'translate(' + translateX(d) + ',' + translateY(d) + ')'; + }, + }); + + for (lineI = 0; lineI < lineCount; lineI++) { + line = lines[lineI]; + textElem.append('tspan') + .attr({ + 'x': 0, + 'y': lineTspanY(lineI, lineCount) + }) + .attr(lineTspanAttrs()) + .text(line); + } + }); + } + + function translateX(d) { + var w = result(d, width); + switch (horizontalAlign) { + case 'center': + return w / 2; + case 'left': + return paddingLeft; + case 'right': + return w - paddingRight; + } + } + + function translateY(d) { + var h = result(d, height); + switch (verticalAlign) { + case 'center': + return h / 2; + case 'top': + return paddingTop; + case 'bottom': + return h - paddingBottom; + } + } + + function lineTspanY(lineI, lineCount) { + var y; + switch (verticalAlign) { + case 'center': + y = (lineI - (lineCount - 1) / 2) * lineHeight; + break; + case 'top': + y = lineI * lineHeight; + break; + case 'bottom': + y = -((lineCount - 1) - lineI) * lineHeight; + break; + } + return y ? y + 'em' : 0; + } + + function lineTspanAttrs() { + switch (verticalAlign) { + case 'center': + return {dy: '.35em'}; + case 'top': + return {dy: '1em'}; + case 'bottom': + return {dy: 0}; + } + } + + function result(d, property) { + return typeof property === 'function' ? property(d) : property; + } + + my.lineHeight = function(value) { + if (!arguments.length) return lineHeight; + lineHeight = value; + return my; + }; + + my.horizontalAlign = function(value) { + if (!arguments.length) return horizontalAlign; + horizontalAlign = value; + return my; + }; + + my.verticalAlign = function(value) { + if (!arguments.length) return verticalAlign; + verticalAlign = value; + return my; + }; + + my.paddingTop = function(value) { + if (!arguments.length) return paddingTop; + paddingTop = value; + return my; + }; + + my.paddingRight = function(value) { + if (!arguments.length) return paddingRight; + paddingRight = value; + return my; + }; + + my.paddingBottom = function(value) { + if (!arguments.length) return paddingBottom; + paddingBottom = value; + return my; + }; + + my.paddingLeft = function(value) { + if (!arguments.length) return paddingLeft; + paddingLeft = value; + return my; + }; + + my.width = function(value) { + if (!arguments.length) return width; + width = value; + return my; + }; + + my.height = function(value) { + if (!arguments.length) return height; + height = value; + return my; + }; + + my.text = function(value) { + if (!arguments.length) return text; + text = value; + return my; + }; + + return my; +})(); \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js b/ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js new file mode 100644 index 00000000..a8113fa7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js @@ -0,0 +1,15 @@ +/* + AngularJS v1.5.3 + (c) 2010-2016 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(r,d,C){'use strict';function x(s,h,g){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,y){function k(){n&&(g.cancel(n),n=null);l&&(l.$destroy(),l=null);m&&(n=g.leave(m),n.then(function(){n=null}),m=null)}function z(){var b=s.current&&s.current.locals;if(d.isDefined(b&&b.$template)){var b=a.$new(),f=s.current;m=y(b,function(b){g.enter(b,null,m||c).then(function(){!d.isDefined(u)||u&&!a.$eval(u)||h()});k()});l=f.scope=b;l.$emit("$viewContentLoaded"); +l.$eval(v)}else k()}var l,m,n,u=b.autoscroll,v=b.onload||"";a.$on("$routeChangeSuccess",z);z()}}}function A(d,h,g){return{restrict:"ECA",priority:-400,link:function(a,c){var b=g.current,f=b.locals;c.html(f.$template);var y=d(c.contents());if(b.controller){f.$scope=a;var k=h(b.controller,f);b.controllerAs&&(a[b.controllerAs]=k);c.data("$ngControllerController",k);c.children().data("$ngControllerController",k)}a[b.resolveAs||"$resolve"]=f;y(a)}}}r=d.module("ngRoute",["ng"]).provider("$route",function(){function s(a, +c){return d.extend(Object.create(a),c)}function h(a,d){var b=d.caseInsensitiveMatch,f={originalPath:a,regexp:a},g=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[\?\*])?/g,function(a,d,b,c){a="?"===c||"*?"===c?"?":null;c="*"===c||"*?"===c?"*":null;g.push({name:b,optional:!!a});d=d||"";return""+(a?"":d)+"(?:"+(a?d:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=new RegExp("^"+a+"$",b?"i":"");return f}var g={};this.when=function(a,c){var b= +d.copy(c);d.isUndefined(b.reloadOnSearch)&&(b.reloadOnSearch=!0);d.isUndefined(b.caseInsensitiveMatch)&&(b.caseInsensitiveMatch=this.caseInsensitiveMatch);g[a]=d.extend(b,a&&h(a,b));if(a){var f="/"==a[a.length-1]?a.substr(0,a.length-1):a+"/";g[f]=d.extend({redirectTo:a},h(f,b))}return this};this.caseInsensitiveMatch=!1;this.otherwise=function(a){"string"===typeof a&&(a={redirectTo:a});this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest", +"$sce",function(a,c,b,f,h,k,r){function l(b){var e=t.current;(x=(p=n())&&e&&p.$$route===e.$$route&&d.equals(p.pathParams,e.pathParams)&&!p.reloadOnSearch&&!v)||!e&&!p||a.$broadcast("$routeChangeStart",p,e).defaultPrevented&&b&&b.preventDefault()}function m(){var w=t.current,e=p;if(x)w.params=e.params,d.copy(w.params,b),a.$broadcast("$routeUpdate",w);else if(e||w)v=!1,(t.current=e)&&e.redirectTo&&(d.isString(e.redirectTo)?c.path(u(e.redirectTo,e.params)).search(e.params).replace():c.url(e.redirectTo(e.pathParams, +c.path(),c.search())).replace()),f.when(e).then(function(){if(e){var a=d.extend({},e.resolve),b,c;d.forEach(a,function(b,e){a[e]=d.isString(b)?h.get(b):h.invoke(b,null,null,e)});d.isDefined(b=e.template)?d.isFunction(b)&&(b=b(e.params)):d.isDefined(c=e.templateUrl)&&(d.isFunction(c)&&(c=c(e.params)),d.isDefined(c)&&(e.loadedTemplateUrl=r.valueOf(c),b=k(c)));d.isDefined(b)&&(a.$template=b);return f.all(a)}}).then(function(c){e==t.current&&(e&&(e.locals=c,d.copy(e.params,b)),a.$broadcast("$routeChangeSuccess", +e,w))},function(b){e==t.current&&a.$broadcast("$routeChangeError",e,w,b)})}function n(){var a,b;d.forEach(g,function(f,g){var q;if(q=!b){var h=c.path();q=f.keys;var l={};if(f.regexp)if(h=f.regexp.exec(h)){for(var k=1,n=h.length;k<n;++k){var m=q[k-1],p=h[k];m&&p&&(l[m.name]=p)}q=l}else q=null;else q=null;q=a=q}q&&(b=s(f,{params:d.extend({},c.search(),a),pathParams:a}),b.$$route=f)});return b||g[null]&&s(g[null],{params:{},pathParams:{}})}function u(a,b){var c=[];d.forEach((a||"").split(":"),function(a, +d){if(0===d)c.push(a);else{var f=a.match(/(\w+)(?:[?*])?(.*)/),g=f[1];c.push(b[g]);c.push(f[2]||"");delete b[g]}});return c.join("")}var v=!1,p,x,t={routes:g,reload:function(){v=!0;var b={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0;v=!1}};a.$evalAsync(function(){l(b);b.defaultPrevented||m()})},updateParams:function(a){if(this.current&&this.current.$$route)a=d.extend({},this.current.params,a),c.path(u(this.current.$$route.originalPath,a)),c.search(a);else throw B("norout"); +}};a.$on("$locationChangeStart",l);a.$on("$locationChangeSuccess",m);return t}]}).run(["$route",d.noop]);var B=d.$$minErr("ngRoute");r.provider("$routeParams",function(){this.$get=function(){return{}}});r.directive("ngView",x);r.directive("ngView",A);x.$inject=["$route","$anchorScroll","$animate"];A.$inject=["$compile","$controller","$route"]})(window,window.angular); +//# sourceMappingURL=angular-route.min.js.map diff --git a/ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js.map b/ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js.map new file mode 100644 index 00000000..64368c25 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/lib/angular-route.min.js.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"angular-route.min.js", +"lineCount":14, +"mappings":"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", +"sources":["angular-route.js"], +"names":["window","angular","undefined","ngViewFactory","$route","$anchorScroll","$animate","restrict","terminal","priority","transclude","link","scope","$element","attr","ctrl","$transclude","cleanupLastView","previousLeaveAnimation","cancel","currentScope","$destroy","currentElement","leave","then","update","locals","current","isDefined","$template","newScope","$new","clone","enter","onNgViewEnter","autoScrollExp","$eval","$emit","onloadExp","autoscroll","onload","$on","ngViewFillContentFactory","$compile","$controller","html","contents","controller","$scope","controllerAs","data","children","resolveAs","ngRouteModule","module","provider","$RouteProvider","inherit","parent","extra","extend","Object","create","pathRegExp","path","opts","insensitive","caseInsensitiveMatch","ret","originalPath","regexp","keys","replace","_","slash","key","option","optional","star","push","name","RegExp","routes","when","this.when","route","routeCopy","copy","isUndefined","reloadOnSearch","redirectPath","length","substr","redirectTo","otherwise","this.otherwise","params","$get","$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce","prepareRoute","$locationEvent","lastRoute","preparedRouteIsUpdateOnly","preparedRoute","parseRoute","$$route","equals","pathParams","forceReload","$broadcast","defaultPrevented","preventDefault","commitRoute","nextRoute","isString","interpolate","search","url","resolve","template","templateUrl","forEach","value","get","invoke","isFunction","loadedTemplateUrl","valueOf","all","error","match","m","exec","on","i","len","val","string","result","split","segment","segmentMatch","join","reload","fakeLocationEvent","fakePreventDefault","$evalAsync","updateParams","newParams","$routeMinErr","run","noop","$$minErr","$RouteParamsProvider","this.$get","directive","$inject"] +} diff --git a/ui/ui-frontend/projects/pastis/src/assets/pastis-logo7.png b/ui/ui-frontend/projects/pastis/src/assets/pastis-logo7.png new file mode 100644 index 0000000000000000000000000000000000000000..c04139cb780835a52eefa630309ee4e156132a51 GIT binary patch literal 37754 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¨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 literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/pastis-marseille.jpg b/ui/ui-frontend/projects/pastis/src/assets/pastis-marseille.jpg new file mode 100644 index 0000000000000000000000000000000000000000..36a88e98ca088acf5661c0c4a0f14bf38367e265 GIT binary patch literal 212907 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≫I~+WW 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 P{qEXNq;?iVUVi;A%%$f~ literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/pastis-marseille_blue_crop.jpg b/ui/ui-frontend/projects/pastis/src/assets/pastis-marseille_blue_crop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a86cff07edad8151363a9b098f7588e32b3c89d8 GIT binary patch literal 72118 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�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 literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/pastis7.png b/ui/ui-frontend/projects/pastis/src/assets/pastis7.png new file mode 100644 index 0000000000000000000000000000000000000000..f61fd5b4c12c11ff4d54aabb1d72ba32c28d164b GIT binary patch literal 30400 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 literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/profile_background.png b/ui/ui-frontend/projects/pastis/src/assets/profile_background.png new file mode 100644 index 0000000000000000000000000000000000000000..e78e96b2a1650e4dd38bdf2a2ffebc5f7c0827ae GIT binary patch literal 160003 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�xx-Lrtxe!Hc&BWJoBtF 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 J3gy?K{{sk_o)-WB literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/seda.json b/ui/ui-frontend/projects/pastis/src/assets/seda.json new file mode 100644 index 00000000..5107c6cc --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/seda.json @@ -0,0 +1,12985 @@ +[ + { + "Name": "ArchiveTransfer", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Transfert d'archives.", + "Collection": "Entête", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "Comment", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Commentaire sur la transaction.", + "Collection": "Entête", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "Date", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date du message.", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "MessageIdentifier", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du message.", + "Collection": "Entête", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "Signature", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Signature du message.", + "Collection": "Entête", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "ArchivalAgreement", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Accord de service.", + "Collection": "Entête", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "CodeListVersions", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Listes de codes de références utilisés dans le message.", + "Collection": "Entête", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "ReplyCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Liste des codes de réponses à utiliser.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "MessageDigestAlgorithmCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Liste de l'algorithme de hachage utilisé dans le message.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "MimeTypeCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code du type Mime.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "EncodingCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code d'encodage du fichier.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "FileFormatCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code d'identification du format.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "CompressionAlgorithmCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code de l'algorithme de compression.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "DataObjectVersionCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Liste de codes correspondant aux diverses versions d'un objet-données au sein d\u2019un groupe d'objets-données (ex. original papier, conservation, diffusion, vignette, txt).", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "StorageRuleCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de durée d'utilité courante.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "AppraisalRuleCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de durée d'utilité administrative.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "AccessRuleCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de communicabilité.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "DisseminationRuleCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de diffusion.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "ReuseRuleCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de réutilisation.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "ClassificationRuleCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de classification.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "AcquisitionInformationCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de codes des modalités d'entrée.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "AuthorizationReasonCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de codes d'autorisation.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "RelationshipCodeListVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de codes des relations.", + "Collection": "Entête", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + } + ] + }, + { + "Name": "DataObjectPackage", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Objets-données échangés dans le message.", + "Collection": "Objets", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroup", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "BinaryDataObject", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données numériques. Le caractère facultatif est requis afin de permettre le transfert d'un plan de classement sans DataObject joint.", + "Collection": "Objets", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection": "Objets", + "Children": [ + { + "Name": "target", + "Element": "Attribute", + "Cardinality": "1", + "Type": "NCName", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Attachment", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "base64Binary", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Objet-données (contenu binaire ou fichier joint).", + "Collection": "Objets", + "Children": [ + { + "Name": "filename", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "uri", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Uri", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'URI spécifie où se trouve l'objet-données numérique. Peut correspondre à un chemin relatif.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "MessageDigest", + "Element": "Simple", + "Cardinality": "1", + "Type": "base64Binary", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Empreinte de l'objet-données.", + "Collection": "Objets", + "Children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Size", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "positiveInteger", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier la taille de l'objet-données en octet.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Compressed", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si l\u2019objet-données est compressé et doit être décompressé.", + "Collection": "Objets", + "Children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "unCompressedSize", + "Element": "Attribute", + "Cardinality": "1", + "Type": "positiveInteger", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "FormatIdentification", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identification du format de l'objet-données.", + "Collection": "Objets", + "Children": [ + { + "Name": "FormatLitteral", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Forme littérale du nom du format. Exemple : Microsoft Word Document.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "MimeType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type Mime associé, potentiellement stable mais pas assez précis. Exemple : application/msword", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "FormatId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type spécifique du format tel que défini dans FormatIdCodeList. Exemple : (Pronom)fmt/40", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Encoding", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Encodage du fichier tel que défini dans EncodingIdCodeList. Exemple : Utf-8", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "FileInfo", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétés techniques génériques du fichier (nom d\u2019origine, logiciel de création, système d\u2019exploitation de création).", + "Collection": "Objets", + "Children": [ + { + "Name": "Filename", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom du fichier d'origine.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingApplicationName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de l'application utilisée pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingApplicationVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de l'application utilisée pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DateCreatedByApplication", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de création du fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingOs", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Système d\u2019exploitation utilisé pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingOsVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version du système d'exploitation utilisé pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "LastModified", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la dernière modification du fichier.", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Metadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Propriétés techniques spécifiques du fichier en fonction de sa nature technique (texte, document, image, audio, vidéo, etc.).", + "Collection": "Objets", + "Children": [ + { + "Name": "Text", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type textuel.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Document", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type document.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Image", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type image.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Audio", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type audio.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Video", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type vidéo.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + }, + { + "Name": "OtherMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Autres métadonnées techniques si celles définies précédemment ne suffisent pas.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + }, + { + "Name": "PhysicalDataObject", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données physiques.", + "Collection": "Objets", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection": "Objets", + "Children": [ + { + "Name": "target", + "Element": "Attribute", + "Cardinality": "1", + "Type": "NCName", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "PhysicalId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant physique d\u2019un objet-données physique, externe à celui-ci (ex. code-barres).", + "Collection": "Objets", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "PhysicalDimensions", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Dimensions d'un objet-données physique.", + "Collection": "Objets", + "Children": [ + { + "Name": "Width", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : largeur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Height", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : hauteur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Depth", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : profondeur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Shape", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : forme.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Diameter", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : diamètre.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Length", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : longueur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Thickness", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Weight", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "microgram", + "MC", + "milligram", + "MGM", + "gram", + "GRM", + "kilogram", + "KGM" + ], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "NumberOfPage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "int", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : nombre de pages.", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + }, + { + "Name": "LogBook", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion des traces.", + "Collection": "Objets", + "Children": [ + { + "Name": "Event", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection": "Objets", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de faire référence à un objet-donnée binaire ou physique déjà présent dans les métadonnées du bordereau.", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + } + ] + }, + { + "Name": "BinaryDataObject", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données numériques. Le caractère facultatif est requis afin de permettre le transfert d'un plan de classement sans DataObject joint.", + "Collection": "Objets", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection": "Objets", + "Children": [ + { + "Name": "target", + "Element": "Attribute", + "Cardinality": "1", + "Type": "NCName", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Attachment", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "base64Binary", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Objet-données (contenu binaire ou fichier joint).", + "Collection": "Objets", + "Children": [ + { + "Name": "filename", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "uri", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Uri", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'URI spécifie où se trouve l'objet-données numérique. Peut correspondre à un chemin relatif.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "MessageDigest", + "Element": "Simple", + "Cardinality": "1", + "Type": "base64Binary", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Empreinte de l'objet-données.", + "Collection": "Objets", + "Children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Size", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "positiveInteger", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier la taille de l'objet-données en octet.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Compressed", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si l\u2019objet-données est compressé et doit être décompressé.", + "Collection": "Objets", + "Children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "unCompressedSize", + "Element": "Attribute", + "Cardinality": "1", + "Type": "positiveInteger", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "FormatIdentification", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identification du format de l'objet-données.", + "Collection": "Objets", + "Children": [ + { + "Name": "FormatLitteral", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Forme littérale du nom du format. Exemple : Microsoft Word Document.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "MimeType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type Mime associé, potentiellement stable mais pas assez précis. Exemple : application/msword", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "FormatId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type spécifique du format tel que défini dans FormatIdCodeList. Exemple : (Pronom)fmt/40", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Encoding", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Encodage du fichier tel que défini dans EncodingIdCodeList. Exemple : Utf-8", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "FileInfo", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétés techniques génériques du fichier (nom d\u2019origine, logiciel de création, système d\u2019exploitation de création).", + "Collection": "Objets", + "Children": [ + { + "Name": "Filename", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom du fichier d'origine.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingApplicationName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de l'application utilisée pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingApplicationVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de l'application utilisée pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DateCreatedByApplication", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de création du fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingOs", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Système d\u2019exploitation utilisé pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "CreatingOsVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version du système d'exploitation utilisé pour créer le fichier.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "LastModified", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la dernière modification du fichier.", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Metadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Propriétés techniques spécifiques du fichier en fonction de sa nature technique (texte, document, image, audio, vidéo, etc.).", + "Collection": "Objets", + "Children": [ + { + "Name": "Text", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type textuel.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Document", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type document.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Image", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type image.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Audio", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type audio.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Video", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type vidéo.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + }, + { + "Name": "OtherMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Autres métadonnées techniques si celles définies précédemment ne suffisent pas.", + "Collection": "Objets", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + }, + { + "Name": "PhysicalDataObject", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données physiques.", + "Collection": "Objets", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection": "Objets", + "Children": [ + { + "Name": "target", + "Element": "Attribute", + "Cardinality": "1", + "Type": "NCName", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "PhysicalId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant physique d\u2019un objet-données physique, externe à celui-ci (ex. code-barres).", + "Collection": "Objets", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "PhysicalDimensions", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Dimensions d'un objet-données physique.", + "Collection": "Objets", + "Children": [ + { + "Name": "Width", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : largeur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Height", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : hauteur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Depth", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : profondeur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Shape", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : forme.", + "Collection": "Objets", + "Children": [] + }, + { + "Name": "Diameter", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : diamètre.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Length", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : longueur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Thickness", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "Weight", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "decimal", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "microgram", + "MC", + "milligram", + "MGM", + "gram", + "GRM", + "kilogram", + "KGM" + ], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection": "Objets", + "Children": [ + { + "Name": "unit", + "Element": "Attribute", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Objets", + "Children": [] + } + ] + }, + { + "Name": "NumberOfPage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "int", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : nombre de pages.", + "Collection": "Objets", + "Children": [] + } + ] + } + ] + }, + { + "Name": "DescriptiveMetadata", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées descriptives des objets-données.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "ArchiveUnit", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Correspond à la notion de composant en ISAD(G). ArchiveUnit permet à la fois de gérer la hiérarchie intellectuelle, tout en contenant les métadonnées de description et de gestion propres à chaque niveau de description archivistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'unité d'archives utilisé par exemple dans le cas de multiples héritages, pour savoir quel noeud contient une erreur.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de faire une référence à d'autres ArchiveUnit dans la même transaction.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ArchiveUnitProfile", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à une partie d'un profil d\u2019archivage applicable à un ArchiveUnit en particulier. Permet par exemple de faire référence à une typologie documentaire dans un profil d'archivage.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Management", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de gestion applicables à l\u2019ArchiveUnit concernée et à ses héritiers.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "StorageRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d\u2019utilité courante.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité courante.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité courante.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "RestrictAccess", + "Transfer", + "Copy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "AppraisalRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d\u2019utilité administrative.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité administrative.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité administrative.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Keep", + "Destroy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "AccessRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la communicabilité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de communicabilité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de communicabilité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "DisseminationRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la diffusion.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de diffusion.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de diffusion.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "ReuseRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la réutilisation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de réutilisation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de réutilisation.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "ClassificationRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la classification.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de classification.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de classification.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ClassificationAudience", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de gérer les questions de diffusion restreinte, de spécial France et de Confidentiel Industrie.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "ClassificationLevel", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence au niveau de classification.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ClassificationOwner", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétaire de la classification. Service émetteur au sens de l\u2019IGI 1300.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ClassificationReassessingDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de réévaluation de la classification.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "NeedReassessingAuthorization", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "true", + "false" + ], + "Definition": "Indique si une autorisation humaine est nécessaire pour réévaluer la classification.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "LogBook", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion des traces.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Event", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "", + "Collection": "Arborescence", + "Children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "NeedAuthorization", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "true", + "false" + ], + "Definition": "Indique si une autorisation humaine est nécessaire pour vérifier ou valider les opérations de gestion des ArchiveUnit.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Content", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description associées à un ArchiveUnit.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "DescriptionLevel", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Fonds", + "Subfonds", + "Class", + "Collection", + "Series", + "Subseries", + "RecordGrp", + "SubGrp", + "File", + "Item", + "OtherLevel" + ], + "Definition": "Niveau de description au sens de la norme ISAD (G). Indique si l\u2019ArchiveUnit correspond à un fonds, à un sous-fonds, à une classe, à une série organique, à une sous-série organique, à un dossier, à un sous-dossier ou à une pièce. Référence : seda.DescriptionLevel", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Title", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé de l'ArchiveUnit. Références : DC.Title ead.unittitle", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": null, + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "FilePlanPosition", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Position de l\u2019ArchiveUnit dans le plan de classement du service producteur. Références : seda.FilePlanPosition", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "SystemId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets. Il est attribué par le SAE et correspond à un identifiant interne. Références : ARMS", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "OriginatingSystemId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant système attribué à l\u2019ArchiveUnit par l\u2019application du service producteur.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ArchivalAgencyArchiveUnitIdentifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant métier attribué à l'ArchiveUnit par le service d'archives. Peut être comparé à une cote.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "OriginatingAgencyArchiveUnitIdentifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant métier attribué à l\u2019ArchiveUnit par le service producteur.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "TransferringAgencyArchiveUnitIdentifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué à l'ArchiveUnit par le service versant.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Description", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Description détaillée de l\u2019ArchiveUnit. Correspond à la présentation du contenu au sens de la norme ISAD(G). Références : DC:Documentation", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "CustodialHistory", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Énumère les changements successifs de propriété, de responsabilité et de conservation des ArchiveUnit avant leur entrée dans le lieu de conservation. On peut notamment y indiquer comment s'est effectué le passage de l'application d'origine au fichier archivable. Correspond à l'historique de la conservation en ISAD(G). Références : seda.CustodialHistory", + "Collection": "Arborescence", + "Children": [ + { + "Name": "CustodialHistoryItem", + "Element": "Simple", + "Cardinality": "1-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Description d'une période ou d'un événement précis dans l'historique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "when", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "CustodialHistoryFile", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un fichier de journalisation externe.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Type", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d\u2019information au sens de l\u2019OAIS (information de représentation, information de pérennisation, etc.). Références : seda.DocumentType", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DocumentType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type de document au sens diplomatique du terme (ex. compte-rendu de réunion, note, correspondance, etc.). Ne pas confondre avec Type.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Language", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Langue du contenu des objets-données. Références : seda.Language", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DescriptionLanguage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Langue utilisée pour les informations de représentation et de pérennisation. Références : seda.DescriptionLanguage", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Status", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Etat de l'objet-données (par rapport avec son cycle de vie). Permet par exemple d'indiquer si la signature du fichier a été vérifiée avant le transfert aux archives. Références : seda.Status", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Version", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet d'indiquer quelle est la version du document.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Tag", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Mots-clés ou liste de mots-clés génériques. En ce qui concerne l'indexation, on pourra utiliser Tag ou Keyword en fonction de ce que l'on souhaite décrire.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Keyword", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Mots-clef avec contexte inspiré du SEDA 1.0. En ce qui concerne l'indexation, on pourra utiliser Tag ou Keyword en fonction de ce que l'on souhaite décrire. Références : seda.Keyword", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "KeywordContent", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Valeur du mot-clé. A utiliser avec Keyword.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "KeywordReference", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du mot clé dans un référentiel donné. Par exemple, pour un lieu, il pourrait s'agir de son code officiel géographique selon l'INSEE.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "KeywordType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "corpname", + "famname", + "geogname", + "name", + "occupation", + "persname", + "subject", + "genreform", + "function" + ], + "Definition": "Type de mot clé.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Coverage", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Couverture spatiale, temporelle ou juridictionnelle de l\u2019ArchiveUnit. Références : DC.Coverage", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Spatial", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Couverture spatiale ou couverture géographique. Références: AGKRMS.spatialCoverage", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Temporal", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Couverture temporelle. Références: AGKRMS.temporalCoverage", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Juridictional", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Juridiction administrative ou ressort administratif. Références: AGKRMS.juridictionalCoverage", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "OriginatingAgency", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service producteur. Personne physique ou morale, publique ou privée, qui a produit, reçu et conservé des archives dans l'exercice de son activité, Dictionnaire de terminologie archivistique, direction des archives de France, 2002. Références : seda.OriginatingAgency", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "SubmissionAgency", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service versant responsable du transfert des données. Références : seda.SubmissionAgency", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "AuthorizedAgent", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Titulaire des droits de propriété intellectuelle.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Writer", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Rédacteur de l\u2019ArchiveUnit. Références : interpares.Writer", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Addressee", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Destinataire pour action. Utilisé pour indiquer le nom du destinatire par exemple dans un courrier électronique. Références : ARMS.Addressee, Interpares.Addressee", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Recipient", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Destinataire pour information. Utilisé pour indiquer le nom du destinatire en copie, pour information, par exemple dans un courrier électronique. Références : Interpares.Recipient", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Transmitter", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Emetteur du message.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Sender", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Expéditeur du message.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Source", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En cas de substitution numérique, permet de faire référence au papier.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RelatedObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet faisant ou ne faisant pas partie du présent paquet d'information.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "IsVersionOf", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Est une partie de. Cette relation permet d'indique qu'un objet est une partie d'un autre.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "NCName", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Replaces", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Remplace. Cette relation permet d'indiquer les objets remplacés par le niveau courant de description. DC.Relation.replaces", + "Collection": "Arborescence", + "Children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "NCName", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Requires", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Requiert. Cette relation permet d'indiquer les objets nécessaire à la compréhension du niveau courant de description. Références : DC.Relation.requires", + "Collection": "Arborescence", + "Children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "NCName", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "IsPartOf", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Est une partie de. Cette relation permet d'indique qu'un objet est une partie d'un autre. Références : DC.Relation.isPartOf", + "Collection": "Arborescence", + "Children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "NCName", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "References", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence. Cette relation permet d'indiquer qu'un objet en référence un autre. DC.Relation.references", + "Collection": "Arborescence", + "Children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "NCName", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "CreatedDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de création. Références : ARKMS.DateCreated", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "TransactedDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la transaction. Références : ARKMS.DateTransacted", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "AcquiredDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de numérisation. Références : ARKMS.DateAcquired", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "SentDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date d'envoi.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ReceivedDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de réception.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "RegisteredDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date d'enregistrement. Références : ARMS.DateDeclared", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date d'ouverture / date de début. Références : AGKRMS.StartDate", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EndDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de fermeture / Date de fin. Références : AGKRMS.EndDate", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Event", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection": "Arborescence", + "Children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Signature", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Contient toutes les informations relatives à la signature.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Signer", + "Element": "Complex", + "Cardinality": "1-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Signataire(s) de la transaction ou de l'objet. Références : premis.signer", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "SigningTime", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de signature.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Validator", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Validateur de la signature.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "FirstName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "Geogname", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "City", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "ValidationTime", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la validation de la signature.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "Masterdata", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référentiel des personnes et des organisations au moment de la vérification de la signature et de sa validation.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "listID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + }, + { + "Name": "ReferencedObject", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à l'objet signé.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "SignedObjectId", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'objet-données signé.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "SignedObjectDigest", + "Element": "Simple", + "Cardinality": "1", + "Type": "base64Binary", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Empreinte obligatoire jusqu'au processus de versement pour assurer la portabilité de la valeur probante. Le SAE peut ne pas la conserver si l'on considère que l'identifiant de l'objet correspondant suffit. Ce procédé permet de résister au temps lorsque les informations binaires du paquet seront converties au gré des opérations de préservation de la lisibilité des formats. Au cours de ces opérations, l'identifiant ne changera pas, contrairement au format dufichier et donc à son empreinte.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + } + ] + }, + { + "Name": "Gps", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Coordonnées gps complétées ou vérifiées par un utilisateur. Fait référence à des coordonnées traitées par un utilisateur et non à des coordonnées captées.", + "Collection": "Arborescence", + "Children": [ + { + "Name": "GpsVersionID", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la version du GPS.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsAltitude", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique l'altitude basée sur la référence dans GPSAltitudeRef. L'altitude est exprimée en mètres.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsAltitudeRef", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique l'altitude utilisée comme altitude de référence. Si l'altitude est au dessus du niveau de la mer, la valeur 0 est normalement donnée. Si l'altitude est au-dessous du niveau de la mer, la veleur 1 est normalement donnée.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsLatitude", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "La latitude peut être exprimée de deux manières différentes : 1)degrés, décimaux ou 2)degrés, minutes et secondes. 1)Si la latitude est exprimée en degrés, décimaux, le format type est dd, dd. Par ex: 45.3130339. 2)Si la latitude est exprimée en degrés, minutes et secondes, le format type est dd, mm, ss. Par ex: 45 18 46.922.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsLatitudeRef", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si la latitude est nord ou sud. La valeur 'N' indique la latitude nord, et 'S' indique la latitude sud.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsLongitude", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "La longitude peut être exprimée de deux manières différentes : 1)degrés, décimaux ou 2)degrés, minutes et secondes. 1)Si la longitude est exprimée en degrés, décimaux, le format type est dd, dd. Par ex: 5.392285833333334. 2)Si la longitude est exprimée en degrés, minutes et secondes, le format type est dd, mm, ss. Par ex: 5 23 32.229.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsLongitudeRef", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si la longitude est est ou ouest. La valeur 'E' indique la longitude est, et 'W' indique la longitude Ouest.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "GpsDateStamp", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Heure et Date de la position GPS.", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "ArchiveUnit", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "yes", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Gestion de la récursivité. Une ArchiveUnit peut être contenu dans une autre ArchiveUnit.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection": "Arborescence", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + } + ] + }, + { + "Name": "ManagementMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Bloc des métadonnées de gestion par défaut des objets-données.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "ArchivalProfile", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Profil d\u2019archivage applicable aux ArchiveUnit.", + "Collection": "Règles", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "ServiceLevel", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Niveau de service applicable aux unités d\u2019archives.", + "Collection": "Règles", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "AcquisitionInformation", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Modalités d'entrée des archives.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "LegalStatus", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Public Archive", + "Private Archive", + "Public and Private Archive" + ], + "Definition": "Statut des archives échangées.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "OriginatingAgencyIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du service producteur - information de gestion à ne pas confondre avec OriginatingAgency dans les métadonnées de description.", + "Collection": "Règles", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "SubmissionAgencyIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du service versant - information de gestion à ne pas confondre avec SubmissionAgency dans les métadonnées de description.", + "Collection": "Règles", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StorageRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d\u2019utilité courante.", + "Collection": "Règles", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité courante.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité courante.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "RestrictAccess", + "Transfer", + "Copy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "AppraisalRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d'utilité administrative.", + "Collection": "Règles", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité administrative.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité administrative.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Keep", + "Destroy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "AccessRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la communicabilité.", + "Collection": "Règles", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de communicabilité.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de communicabilité.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + } + ] + }, + { + "Name": "DisseminationRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la diffusion.", + "Collection": "Règles", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de diffusion.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de diffusion.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + } + ] + }, + { + "Name": "ReuseRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la réutilisation.", + "Collection": "Règles", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de réutilisation.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de réutilisation.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + } + ] + }, + { + "Name": "ClassificationRule", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la classification.", + "Collection": "Règles", + "Children": [ + { + "Name": "Rule", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de classification.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de classification.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "ClassificationAudience", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de gérer les questions de diffusion restreinte, de spécial France et de Confidentiel Industrie.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [ + "false", + "true" + ], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection": "Règles", + "Children": [ + { + "Name": "id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "ClassificationLevel", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence au niveau de classification.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "ClassificationOwner", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétaire de la classification. Service émetteur au sens de l\u2019IGI 1300.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "ClassificationReassessingDate", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de réévaluation de la classification.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "NeedReassessingAuthorization", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "true", + "false" + ], + "Definition": "Indique si une autorisation humaine est nécessaire pour réévaluer la classification.", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "LogBook", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion des traces.", + "Collection": "Règles", + "Children": [ + { + "Name": "Event", + "Element": "Complex", + "Cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "", + "Collection": "Règles", + "Children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "Cardinality": "1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection": "Règles", + "Children": [ + { + "Name": "xml:lang", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Règles", + "Children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection": "Règles", + "Children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection": "Règles", + "Children": [] + } + ] + } + ] + }, + { + "Name": "NeedAuthorization", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "true", + "false" + ], + "Definition": "Indique si une autorisation humaine est nécessaire pour vérifier ou valider les opérations de gestion des ArchiveUnit.", + "Collection": "Règles", + "Children": [] + } + ] + } + ] + }, + { + "Name": "RelatedTransferReference", + "Element": "Simple", + "Cardinality": "0-N", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant d'un transfert associé.", + "Collection": "Entête", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "TransferRequestReplyIdentifier", + "Element": "Simple", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la réponse à une demande de transfert.", + "Collection": "Entête", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "ArchivalAgency", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service d'archives responsable du transfert.", + "Collection": "Entête", + "Children": [ + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection": "Entête", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection": "Entête", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + }, + { + "Name": "TransferringAgency", + "Element": "Complex", + "Cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service versant chargé de réaliser le transport.", + "Collection": "Entête", + "Children": [ + { + "Name": "Identifier", + "Element": "Simple", + "Cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection": "Entête", + "Children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "Children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Complex", + "Cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection": "Entête", + "Children": [ + { + "Name": "xlink:href", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + }, + { + "Name": "xml:id", + "Element": "Attribute", + "Cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Arborescence", + "Children": [] + } + ] + } + ] + } + ] + } +] \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/seda_lower.json b/ui/ui-frontend/projects/pastis/src/assets/seda_lower.json new file mode 100644 index 00000000..25ecd49a --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/seda_lower.json @@ -0,0 +1,13676 @@ +[ + { + "Name": "ArchiveTransfer", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Transfert d'archives.", + "Collection": "Entête", + "children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "Entête", + "children": [] + }, + { + "Name": "Comment", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Commentaire sur la transaction.", + "Collection" : "Entête", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "Date", + "Element": "Simple", + "cardinality": "1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date du message.", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "MessageIdentifier", + "Element": "Simple", + "cardinality": "1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du message.", + "Collection" : "Entête", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "Signature", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Signature du message.", + "Collection" : "Entête", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "ArchivalAgreement", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Accord de service.", + "Collection" : "Entête", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "CodeListVersions", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Listes de codes de références utilisés dans le message.", + "Collection" : "Entête", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "ReplyCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Liste des codes de réponses à utiliser.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "MessageDigestAlgorithmCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Liste de l'algorithme de hachage utilisé dans le message.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "MimeTypeCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code du type Mime.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "EncodingCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code d'encodage du fichier.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "FileFormatCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code d'identification du format.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "CompressionAlgorithmCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de code de l'algorithme de compression.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "DataObjectVersionCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Liste de codes correspondant aux diverses versions d'un objet-données au sein d\u2019un groupe d'objets-données (ex. original papier, conservation, diffusion, vignette, txt).", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "StorageRuleCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de durée d'utilité courante.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "AppraisalRuleCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de durée d'utilité administrative.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "AccessRuleCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de communicabilité.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "DisseminationRuleCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de diffusion.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "ReuseRuleCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de réutilisation.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "ClassificationRuleCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version des listes de codes pour les règles de classification.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "AcquisitionInformationCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de codes des modalités d'entrée.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "AuthorizationReasonCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de codes d'autorisation.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "RelationshipCodeListVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de la liste de codes des relations.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "OtherCodeListAbstract", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'ajouter de nouvelles listes de codes si l'ajout d'autres métadonnées l'impose.", + "Collection" : "Entête", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + } + ] + }, + { + "Name": "DataObjectPackage", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Objets-données échangés dans le message.", + "Collection": "Objets", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection": "", + "children": [] + }, + { + "Name": "DataObjectGroup", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "1", + "Type": "GroupIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "BinaryDataObject", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données numériques. Le caractère facultatif est requis afin de permettre le transfert d'un plan de classement sans DataObject joint.", + "Collection" : "Objets", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "1", + "Type": "DataObjectIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "cardinality": "0-N", + "Type": "RelationshipType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection" : "Objets", + "_children": [ + { + "Name": "target", + "Element": "Attribute", + "cardinality": "1", + "Type": "IDREF", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "VersionIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Attachment", + "Element": "Simple", + "cardinality": "0-1", + "Type": "BinaryObjectType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Objet-données (contenu binaire ou fichier joint).", + "Collection" : "Objets", + "_children": [ + { + "Name": "filename", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "uri", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Uri", + "Element": "Simple", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'URI spécifie où se trouve l'objet-données numérique. Peut correspondre à un chemin relatif.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "MessageDigest", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MessageDigestBinaryObjectType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Empreinte de l'objet-données.", + "Collection" : "Objets", + "_children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "cardinality": "1", + "Type": "DigestAlgorithmCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Size", + "Element": "Simple", + "cardinality": "0-1", + "Type": "SizeInBytesType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier la taille de l'objet-données en octet.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Compressed", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CompressedType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si l\u2019objet-données est compressé et doit être décompressé.", + "Collection" : "Objets", + "_children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "cardinality": "1", + "Type": "CompressionAlgorithmType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "unCompressedSize", + "Element": "Attribute", + "cardinality": "1", + "Type": "SizeInBytesType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "FormatIdentification", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identification du format de l'objet-données.", + "Collection" : "Objets", + "_children": [ + { + "Name": "FormatLitteral", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Forme littérale du nom du format. Exemple : Microsoft Word Document.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "MimeType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MimeTypeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type Mime associé, potentiellement stable mais pas assez précis. Exemple : application/msword", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "FormatId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "FileFormatType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type spécifique du format tel que défini dans FormatIdCodeList. Exemple : (Pronom)fmt/40", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Encoding", + "Element": "Simple", + "cardinality": "0-1", + "Type": "EncodingType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Encodage du fichier tel que défini dans EncodingIdCodeList. Exemple : Utf-8", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "FileInfo", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétés techniques génériques du fichier (nom d\u2019origine, logiciel de création, système d\u2019exploitation de création).", + "Collection" : "Objets", + "_children": [ + { + "Name": "Filename", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom du fichier d'origine.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingApplicationName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de l'application utilisée pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingApplicationVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de l'application utilisée pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DateCreatedByApplication", + "Element": "Simple", + "cardinality": "0-1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de création du fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingOs", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Système d\u2019exploitation utilisé pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingOsVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version du système d'exploitation utilisé pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "LastModified", + "Element": "Simple", + "cardinality": "0-1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la dernière modification du fichier.", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Metadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétés techniques spécifiques du fichier en fonction de sa nature technique (texte, document, image, audio, vidéo, etc.).", + "Collection" : "Objets", + "_children": [ + { + "Name": "Text", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type textuel.", + "Collection" : "Objets", + "children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Document", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type document.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Image", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type image.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Audio", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type audio.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Video", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type vidéo.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "OtherCoreTechnicalMetadataAbstract", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Contient toutes les métadonnées techniques de base pour d'autres types.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + } + ] + }, + { + "Name": "OtherMetadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Autres métadonnées techniques si celles définies précédemment ne suffisent pas.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "null", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "null", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + } + ] + }, + { + "Name": "PhysicalDataObject", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données physiques.", + "Collection" : "Objets", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "1", + "Type": "DataObjectIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "cardinality": "0-N", + "Type": "RelationshipType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection" : "Objets", + "_children": [ + { + "Name": "target", + "Element": "Attribute", + "cardinality": "1", + "Type": "IDREF", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "VersionIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "PhysicalId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant physique d\u2019un objet-données physique, externe à celui-ci (ex. code-barres).", + "Collection" : "Objets", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "PhysicalDimensions", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Dimensions d'un objet-données physique.", + "Collection" : "Objets", + "_children": [ + { + "Name": "Width", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : largeur.", + "Collection" : "Objets", + "children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Height", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : hauteur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Depth", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : profondeur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Shape", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : forme.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Diameter", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : diamètre.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Length", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : longueur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Thickness", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Weight", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementWeightType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "microgram", + "MC", + "milligram", + "MGM", + "gram", + "GRM", + "kilogram", + "KGM" + ], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementWeightUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "NumberOfPage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "int", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : nombre de pages.", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "OtherDimensionsAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'étendre <OtherDimensions> avec d'autres métadonnées de description des objets-données physiques.", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "LogBook", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion des traces.", + "Collection" : "Objets", + "_children": [ + { + "Name": "Event", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "_children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "cardinality": "1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection" : "Objets", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "EventAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'ajouter de nouveaux types d'événements dans l'ontologie.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de faire référence à un objet-donnée binaire ou physique déjà présent dans les métadonnées du bordereau.", + "Collection" : "Objets", + "children": [] + } + ] + } + ] + } + ] + }, + { + "Name": "BinaryDataObject", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données numériques. Le caractère facultatif est requis afin de permettre le transfert d'un plan de classement sans DataObject joint.", + "Collection" : "Objets", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "1", + "Type": "DataObjectIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "cardinality": "0-N", + "Type": "RelationshipType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection" : "Objets", + "_children": [ + { + "Name": "target", + "Element": "Attribute", + "cardinality": "1", + "Type": "IDREF", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "VersionIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Attachment", + "Element": "Simple", + "cardinality": "0-1", + "Type": "BinaryObjectType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Objet-données (contenu binaire ou fichier joint).", + "Collection" : "Objets", + "_children": [ + { + "Name": "filename", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "uri", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Uri", + "Element": "Simple", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'URI spécifie où se trouve l'objet-données numérique. Peut correspondre à un chemin relatif.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "MessageDigest", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MessageDigestBinaryObjectType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Empreinte de l'objet-données.", + "Collection" : "Objets", + "_children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "cardinality": "1", + "Type": "DigestAlgorithmCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Size", + "Element": "Simple", + "cardinality": "0-1", + "Type": "SizeInBytesType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier la taille de l'objet-données en octet.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Compressed", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CompressedType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si l\u2019objet-données est compressé et doit être décompressé.", + "Collection" : "Objets", + "_children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "cardinality": "1", + "Type": "CompressionAlgorithmType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "unCompressedSize", + "Element": "Attribute", + "cardinality": "1", + "Type": "SizeInBytesType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "FormatIdentification", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identification du format de l'objet-données.", + "Collection" : "Objets", + "_children": [ + { + "Name": "FormatLitteral", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Forme littérale du nom du format. Exemple : Microsoft Word Document.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "MimeType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MimeTypeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type Mime associé, potentiellement stable mais pas assez précis. Exemple : application/msword", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "FormatId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "FileFormatType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type spécifique du format tel que défini dans FormatIdCodeList. Exemple : (Pronom)fmt/40", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Encoding", + "Element": "Simple", + "cardinality": "0-1", + "Type": "EncodingType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Encodage du fichier tel que défini dans EncodingIdCodeList. Exemple : Utf-8", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "FileInfo", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétés techniques génériques du fichier (nom d\u2019origine, logiciel de création, système d\u2019exploitation de création).", + "Collection" : "Objets", + "_children": [ + { + "Name": "Filename", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom du fichier d'origine.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingApplicationName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de l'application utilisée pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingApplicationVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version de l'application utilisée pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DateCreatedByApplication", + "Element": "Simple", + "cardinality": "0-1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de création du fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingOs", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Système d\u2019exploitation utilisé pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "CreatingOsVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version du système d'exploitation utilisé pour créer le fichier.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "LastModified", + "Element": "Simple", + "cardinality": "0-1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la dernière modification du fichier.", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Metadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Propriétés techniques spécifiques du fichier en fonction de sa nature technique (texte, document, image, audio, vidéo, etc.).", + "Collection" : "Objets", + "_children": [ + { + "Name": "Text", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type textuel.", + "Collection" : "Objets", + "children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Document", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type document.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Image", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type image.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Audio", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type audio.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Video", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées pour un objet-données de type vidéo.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "OtherCoreTechnicalMetadataAbstract", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Contient toutes les métadonnées techniques de base pour d'autres types.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + } + ] + }, + { + "Name": "OtherMetadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Autres métadonnées techniques si celles définies précédemment ne suffisent pas.", + "Collection" : "Objets", + "_children": [ + { + "Name": "href", + "Element": "Attribute", + "cardinality": "null", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "ID", + "Element": "Attribute", + "cardinality": "null", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + } + ] + }, + { + "Name": "PhysicalDataObject", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées techniques des objets-données physiques.", + "Collection" : "Objets", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "1", + "Type": "DataObjectIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupSystemId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux groupes d'objets de données. Il est attribué par le SAE et correspond à un identifiant interne.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Relationship", + "Element": "Simple", + "cardinality": "0-N", + "Type": "RelationshipType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de spécifier un lien technique entre un objet-données et une signature.", + "Collection" : "Objets", + "_children": [ + { + "Name": "target", + "Element": "Attribute", + "cardinality": "1", + "Type": "IDREF", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "type", + "Element": "Attribute", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Référence à un Identifiant du groupe d'objets-données DataObjectVersionGroup.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectGroupId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Groupe d\u2019objets-données (numériques ou physiques), correspondant aux différentes versions d\u2019un même objet intellectuellement unique. Chaque version peut être par exemple : original papier, version de conservation, version de diffusion, version vignette, version texte ascii\u2026 Lorsqu'un objet-donnée fait partie d'un groupe, le référencement dans les ArchiveUnit ne peut se faire que via ce groupe(DataObjectGroupId). Identifiant du groupe d'objets-données DataObjectVersionGroup (première et unique définition).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "DataObjectVersion", + "Element": "Simple", + "cardinality": "0-1", + "Type": "VersionIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Version d\u2019un objet-données (par exemple : original papier, conservation, diffusion, vignette, txt, \u2026).", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "PhysicalId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant physique d\u2019un objet-données physique, externe à celui-ci (ex. code-barres).", + "Collection" : "Objets", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "PhysicalDimensions", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Dimensions d'un objet-données physique.", + "Collection" : "Objets", + "_children": [ + { + "Name": "Width", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : largeur.", + "Collection" : "Objets", + "children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Height", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : hauteur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Depth", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : profondeur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Shape", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : forme.", + "Collection" : "Objets", + "children": [] + }, + { + "Name": "Diameter", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : diamètre.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Length", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : longueur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Thickness", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "micrometre", + "4H", + "millimetre", + "MMT", + "centimetre", + "CMT", + "metre", + "inch", + "INH", + "foot", + "FOT" + ], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "Weight", + "Element": "Simple", + "cardinality": "0-1", + "Type": "MeasurementWeightType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "microgram", + "MC", + "milligram", + "MGM", + "gram", + "GRM", + "kilogram", + "KGM" + ], + "Definition": "Métadonnée de dimension physique : épaisseur.", + "Collection" : "Objets", + "_children": [ + { + "Name": "unit", + "Element": "Attribute", + "cardinality": "1", + "Type": "MeasurementWeightUnitsType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "NumberOfPage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "int", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnée de dimension physique : nombre de pages.", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "OtherDimensionsAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'étendre <OtherDimensions> avec d'autres métadonnées de description des objets-données physiques.", + "Collection" : "Objets", + "children": [] + } + ] + }, + { + "Name": "DescriptiveMetadata", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc de métadonnées descriptives des objets-données.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "ArchiveUnit", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Correspond à la notion de composant en ISAD(G). ArchiveUnit permet à la fois de gérer la hiérarchie intellectuelle, tout en contenant les métadonnées de description et de gestion propres à chaque niveau de description archivistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "1", + "Type": "ArchiveUnitidType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'unité d'archives utilisé par exemple dans le cas de multiples héritages, pour savoir quel noeud contient une erreur.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "ArchiveUnitRefIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de faire une référence à d'autres ArchiveUnit dans la même transaction.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ArchiveUnitProfile", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à une partie d'un profil d\u2019archivage applicable à un ArchiveUnit en particulier. Permet par exemple de faire référence à une typologie documentaire dans un profil d'archivage.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Management", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Métadonnées de gestion applicables à l\u2019ArchiveUnit concernée et à ses héritiers.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "StorageRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d\u2019utilité courante.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité courante.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité courante.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "cardinality": "1", + "Type": "FinalActionStorageCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "RestrictAccess", + "Transfer", + "Copy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "AppraisalRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "AppraisalRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d\u2019utilité administrative.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité administrative.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité administrative.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "cardinality": "1", + "Type": "FinalActionAppraisalCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Keep", + "Destroy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "AccessRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "AccessRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la communicabilité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de communicabilité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de communicabilité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "DisseminationRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "DisseminationRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la diffusion.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de diffusion.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de diffusion.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "ReuseRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "ReuseRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la réutilisation.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de réutilisation.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de réutilisation.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "ClassificationRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "ClassificationRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la classification.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de classification.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de classification.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ClassificationAudience", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de gérer les questions de diffusion restreinte, de spécial France et de Confidentiel Industrie.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "ClassificationLevel", + "Element": "Simple", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence au niveau de classification.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ClassificationOwner", + "Element": "Simple", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Enumeration": [], + "Definition": "Propriétaire de la classification. Service émetteur au sens de l\u2019IGI 1300.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ClassificationReassessingDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de réévaluation de la classification.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "NeedReassessingAuthorization", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si une autorisation humaine est nécessaire pour réévaluer la classification.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "LogBook", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion des traces.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Event", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Arborescence", + "children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "cardinality": "1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'ajouter de nouveaux types d'événements dans l'ontologie.", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "NeedAuthorization", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si une autorisation humaine est nécessaire pour vérifier ou valider les opérations de gestion des ArchiveUnit.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OtherManagementAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Utilisé par exemple pour manipuler un ArchiveUnit déjà existant dans le système d'archivage électronique.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Content", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description associées à un ArchiveUnit.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "DescriptionLevel", + "Element": "Simple", + "cardinality": "0-1", + "Type": "LevelType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Fonds", + "Subfonds", + "Class", + "Collection", + "Series", + "Subseries", + "RecordGrp", + "SubGrp", + "File", + "Item", + "OtherLevel" + ], + "Definition": "Niveau de description au sens de la norme ISAD (G). Indique si l\u2019ArchiveUnit correspond à un fonds, à un sous-fonds, à une classe, à une série organique, à une sous-série organique, à un dossier, à un sous-dossier ou à une pièce. Référence : seda.DescriptionLevel", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Title", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé de l'ArchiveUnit. Références : DC.Title ead.unittitle", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "FilePlanPosition", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Position de l\u2019ArchiveUnit dans le plan de classement du service producteur. Références : seda.FilePlanPosition", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "SystemId", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué aux objets. Il est attribué par le SAE et correspond à un identifiant interne. Références : ARMS", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OriginatingSystemId", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant système attribué à l\u2019ArchiveUnit par l\u2019application du service producteur.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ArchivalAgencyArchiveUnitIdentifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant métier attribué à l'ArchiveUnit par le service d'archives. Peut être comparé à une cote.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OriginatingAgencyArchiveUnitIdentifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant métier attribué à l\u2019ArchiveUnit par le service producteur.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "TransferringAgencyArchiveUnitIdentifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant attribué à l'ArchiveUnit par le service versant.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Description", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Description détaillée de l\u2019ArchiveUnit. Correspond à la présentation du contenu au sens de la norme ISAD(G). Références : DC:Documentation", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "CustodialHistory", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Énumère les changements successifs de propriété, de responsabilité et de conservation des ArchiveUnit avant leur entrée dans le lieu de conservation. On peut notamment y indiquer comment s'est effectué le passage de l'application d'origine au fichier archivable. Correspond à l'historique de la conservation en ISAD(G). Références : seda.CustodialHistory", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "CustodialHistoryItem", + "Element": "Simple", + "cardinality": "1-N", + "Type": "CustodialHistoryItemType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Description d'une période ou d'un événement précis dans l'historique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "when", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "CustodialHistoryFile", + "Element": "Complex", + "cardinality": "0-1", + "Type": "DataObjectRefType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un fichier de journalisation externe.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Type", + "Element": "Simple", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d\u2019information au sens de l\u2019OAIS (information de représentation, information de pérennisation, etc.). Références : seda.DocumentType", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DocumentType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type de document au sens diplomatique du terme (ex. compte-rendu de réunion, note, correspondance, etc.). Ne pas confondre avec Type.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Language", + "Element": "Simple", + "cardinality": "0-N", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Langue du contenu des objets-données. Références : seda.Language", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DescriptionLanguage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Langue utilisée pour les informations de représentation et de pérennisation. Références : seda.DescriptionLanguage", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Status", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Etat de l'objet-données (par rapport avec son cycle de vie). Permet par exemple d'indiquer si la signature du fichier a été vérifiée avant le transfert aux archives. Références : seda.Status", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Version", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet d'indiquer quelle est la version du document.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Tag", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Mots-clés ou liste de mots-clés génériques. En ce qui concerne l'indexation, on pourra utiliser Tag ou Keyword en fonction de ce que l'on souhaite décrire.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Keyword", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Mots-clef avec contexte inspiré du SEDA 1.0. En ce qui concerne l'indexation, on pourra utiliser Tag ou Keyword en fonction de ce que l'on souhaite décrire. Références : seda.Keyword", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "KeywordContent", + "Element": "Simple", + "cardinality": "1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Valeur du mot-clé. A utiliser avec Keyword.", + "Collection" : "Arborescence", + "children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "KeywordReference", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du mot clé dans un référentiel donné. Par exemple, pour un lieu, il pourrait s'agir de son code officiel géographique selon l'INSEE.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "KeywordType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "KeyType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "corpname", + "famname", + "geogname", + "name", + "occupation", + "persname", + "subject", + "genreform", + "function" + ], + "Definition": "Type de mot clé.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Coverage", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Couverture spatiale, temporelle ou juridictionnelle de l\u2019ArchiveUnit. Références : DC.Coverage", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Spatial", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Couverture spatiale ou couverture géographique. Références: AGKRMS.spatialCoverage", + "Collection" : "Arborescence", + "children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Temporal", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Couverture temporelle. Références: AGKRMS.temporalCoverage", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Juridictional", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Juridiction administrative ou ressort administratif. Références: AGKRMS.juridictionalCoverage", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "OriginatingAgency", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service producteur. Personne physique ou morale, publique ou privée, qui a produit, reçu et conservé des archives dans l'exercice de son activité, Dictionnaire de terminologie archivistique, direction des archives de France, 2002. Références : seda.OriginatingAgency", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection" : "Arborescence", + "children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "OrganizationDescriptiveMetadataType", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "SubmissionAgency", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service versant responsable du transfert des données. Références : seda.SubmissionAgency", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "OrganizationDescriptiveMetadataType", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "AgentAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet d'ajouter de nouveaux types d'agents dans l'ontologie.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "AuthorizedAgent", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Titulaire des droits de propriété intellectuelle.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Writer", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Rédacteur de l\u2019ArchiveUnit. Références : interpares.Writer", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Addressee", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Destinataire pour action. Utilisé pour indiquer le nom du destinatire par exemple dans un courrier électronique. Références : ARMS.Addressee, Interpares.Addressee", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Recipient", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Destinataire pour information. Utilisé pour indiquer le nom du destinatire en copie, pour information, par exemple dans un courrier électronique. Références : Interpares.Recipient", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Transmitter", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Emetteur du message.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Sender", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Expéditeur du message.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "_children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Source", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En cas de substitution numérique, permet de faire référence au papier.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RelatedObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet faisant ou ne faisant pas partie du présent paquet d'information.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "IsVersionOf", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Est une partie de. Cette relation permet d'indique qu'un objet est une partie d'un autre.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "ArchiveUnitRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection" : "Arborescence", + "children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Replaces", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Remplace. Cette relation permet d'indiquer les objets remplacés par le niveau courant de description. DC.Relation.replaces", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "ArchiveUnitRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Requires", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Requiert. Cette relation permet d'indiquer les objets nécessaire à la compréhension du niveau courant de description. Références : DC.Relation.requires", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "ArchiveUnitRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection" : "Arborescence", + "children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "IsPartOf", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Est une partie de. Cette relation permet d'indique qu'un objet est une partie d'un autre. Références : DC.Relation.isPartOf", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "ArchiveUnitRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "References", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence. Cette relation permet d'indiquer qu'un objet en référence un autre. DC.Relation.references", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "ArchiveUnitRefId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "ArchiveUnitRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit interne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection" : "Arborescence", + "children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "RepositoryArchiveUnitPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un ArchiveUnit déjà conservé dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RepositoryObjectPID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un un objet-données ou à un groupe d'objets-données déjà conservé(s) dans un système d'archivage.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ExternalReference", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence externe.", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "CreatedDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de création. Références : ARKMS.DateCreated", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "TransactedDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la transaction. Références : ARKMS.DateTransacted", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "AcquiredDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de numérisation. Références : ARKMS.DateAcquired", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "SentDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date d'envoi.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ReceivedDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de réception.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "RegisteredDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date d'enregistrement. Références : ARMS.DateDeclared", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date d'ouverture / date de début. Références : AGKRMS.StartDate", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EndDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de fermeture / Date de fin. Références : AGKRMS.EndDate", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Event", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "cardinality": "1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "EventAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'ajouter de nouveaux types d'événements dans l'ontologie.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Signature", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Contient toutes les informations relatives à la signature.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Signer", + "Element": "Complex", + "cardinality": "1-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Signataire(s) de la transaction ou de l'objet. Références : premis.signer", + "Collection" : "Arborescence", + "children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "SigningTime", + "Element": "Simple", + "cardinality": "1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de signature.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Validator", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Validateur de la signature.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "FirstName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Prénom d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom de naissance d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "FullName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom complet d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GivenName", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'usage d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Gender", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Sexe de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de naissance de la personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "BirthPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de naissance de la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "DeathDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de décès d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DeathPlace", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Lieu de décès d'une personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "Geogname", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Nom géographique. Références : ead.geogname", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Address", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Adresse. Références : ead.address", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "PostalCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Code postal.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "City", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Ville.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Region", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Région.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Country", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Pays.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Nationality", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nationalité d'une personne.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Corpname", + "Element": "Simple", + "cardinality": "1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Nom d'une entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "0-N", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la personne (par exemple, le numéro matricule) ou de l'entité.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ValidationTime", + "Element": "Simple", + "cardinality": "1", + "Type": "dateTime", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de la validation de la signature.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "Function", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Fonction.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Activity", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "En plus des balises Tag et Keyword, il est possible d'indexer les objets avec des éléments pré-définis : Activité.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Position", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Intitulé du poste de travail occupé par la personne.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Enumeration": [], + "Definition": "null", + "Choice": "no", + "Extensible": "no", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Role", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Droits avec lesquels un utilisateur a réalisé une opération, notamment dans une application. Références : moreq.role", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Enumeration": [], + "Definition": "null", + "Choice": "no", + "Extensible": "no", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "Mandate", + "Element": "Simple", + "cardinality": "0-N", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Définit la propriété intellectuelle et artistique.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + }, + { + "Name": "Masterdata", + "Element": "Simple", + "cardinality": "0-1", + "Type": "CodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référentiel des personnes et des organisations au moment de la vérification de la signature et de sa validation.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "listID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "listAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "listAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "listName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "listVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "name", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "languageID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "language", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "listURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "listSchemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "ReferencedObject", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à l'objet signé.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "SignedObjectId", + "Element": "Simple", + "cardinality": "1", + "Type": "DataObjectRefIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'objet-données signé.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "SignedObjectDigest", + "Element": "Simple", + "cardinality": "1", + "Type": "MessageDigestBinaryObjectType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Empreinte obligatoire jusqu'au processus de versement pour assurer la portabilité de la valeur probante. Le SAE peut ne pas la conserver si l'on considère que l'identifiant de l'objet correspondant suffit. Ce procédé permet de résister au temps lorsque les informations binaires du paquet seront converties au gré des opérations de préservation de la lisibilité des formats. Au cours de ces opérations, l'identifiant ne changera pas, contrairement au format dufichier et donc à son empreinte.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "algorithm", + "Element": "Attribute", + "cardinality": "1", + "Type": "DigestAlgorithmCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + } + ] + }, + { + "Name": "Gps", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Coordonnées gps complétées ou vérifiées par un utilisateur. Fait référence à des coordonnées traitées par un utilisateur et non à des coordonnées captées.", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "GpsVersionID", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la version du GPS.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsAltitude", + "Element": "Simple", + "cardinality": "0-1", + "Type": "integer", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique l'altitude basée sur la référence dans GPSAltitudeRef. L'altitude est exprimée en mètres.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsAltitudeRef", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique l'altitude utilisée comme altitude de référence. Si l'altitude est au dessus du niveau de la mer, la valeur 0 est normalement donnée. Si l'altitude est au-dessous du niveau de la mer, la veleur 1 est normalement donnée.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsLatitude", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "La latitude peut être exprimée de deux manières différentes : 1)degrés, décimaux ou 2)degrés, minutes et secondes. 1)Si la latitude est exprimée en degrés, décimaux, le format type est dd, dd. Par ex: 45.3130339. 2)Si la latitude est exprimée en degrés, minutes et secondes, le format type est dd, mm, ss. Par ex: 45 18 46.922.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsLatitudeRef", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si la latitude est nord ou sud. La valeur 'N' indique la latitude nord, et 'S' indique la latitude sud.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsLongitude", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "La longitude peut être exprimée de deux manières différentes : 1)degrés, décimaux ou 2)degrés, minutes et secondes. 1)Si la longitude est exprimée en degrés, décimaux, le format type est dd, dd. Par ex: 5.392285833333334. 2)Si la longitude est exprimée en degrés, minutes et secondes, le format type est dd, mm, ss. Par ex: 5 23 32.229.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsLongitudeRef", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si la longitude est est ou ouest. La valeur 'E' indique la longitude est, et 'W' indique la longitude Ouest.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "GpsDateStamp", + "Element": "Simple", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Heure et Date de la position GPS.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "ObjectGroupExtenstionAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'étendre ObjectGroup avec d'autres métadonnées descriptives.", + "Collection" : "Arborescence", + "children": [] + } + ] + }, + { + "Name": "ArchiveUnit", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la récursivité. Une ArchiveUnit peut être contenu dans une ature ArchiveUnit.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "ArchiveUnitReferenceAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Contient les requêtes nécessaires pour trouver un ArchiveUnit et pointer sur lui dans un prochain ArchiveUnit. Permet de référencer un noeud déjà existant dans un arbre à partir d'un transfert précédent.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReference", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données ou à un groupe d'objets-données interne(s).", + "Collection" : "Arborescence", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "DataObjectRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un objet-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + }, + { + "Name": "DataObjectGroupReferenceId", + "Element": "Simple", + "cardinality": "0-1", + "Type": "GroupRefIdType", + "Choice": "yes", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à un groupe d'objets-données listé dans les métadonnées de transport.", + "Collection" : "Arborescence", + "children": [] + } + ] + } + ] + } + ] + }, + { + "Name": "ManagementMetadata", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Bloc des métadonnées de gestion par défaut des objets-données.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "ArchivalProfile", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Profil d\u2019archivage applicable aux ArchiveUnit.", + "Collection" : "Règles", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "ServiceLevel", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Niveau de service applicable aux unités d\u2019archives.", + "Collection" : "Règles", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "AcquisitionInformation", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Modalités d'entrée des archives.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "LegalStatus", + "Element": "Simple", + "cardinality": "0-1", + "Type": "LegalStatusType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Public Archive", + "Private Archive", + "Public and Private Archive" + ], + "Definition": "Statut des archives échangées.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "OriginatingAgencyIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du service producteur - information de gestion à ne pas confondre avec OriginatingAgency dans les métadonnées de description.", + "Collection" : "Règles", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "SubmissionAgencyIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant du service versant - information de gestion à ne pas confondre avec SubmissionAgency dans les métadonnées de description.", + "Collection" : "Règles", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StorageRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d\u2019utilité courante.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité courante.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité courante.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "cardinality": "1", + "Type": "FinalActionStorageCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "RestrictAccess", + "Transfer", + "Copy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "AppraisalRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "AppraisalRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la durée d'utilité administrative.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de durée d'utilité administrative.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle d'utilité administrative.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "FinalAction", + "Element": "Simple", + "cardinality": "1", + "Type": "FinalActionAppraisalCodeType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [ + "Keep", + "Destroy" + ], + "Definition": "Action à mettre en œuvre au terme de la durée de gestion.", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "AccessRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "AccessRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la communicabilité.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de communicabilité.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de communicabilité.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + } + ] + }, + { + "Name": "DisseminationRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "DisseminationRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la diffusion.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de diffusion.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de diffusion.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + } + ] + }, + { + "Name": "ReuseRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "ReuseRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la réutilisation.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de réutilisation.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de réutilisation.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + } + ] + }, + { + "Name": "ClassificationRule", + "Element": "Complex", + "cardinality": "0-1", + "Type": "ClassificationRuleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion de la classification.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Rule", + "Element": "Simple", + "cardinality": "1", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence à la règle de classification.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "StartDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de départ de calcul de la règle de classification.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "ClassificationAudience", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Permet de gérer les questions de diffusion restreinte, de spécial France et de Confidentiel Industrie.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "PreventInheritance", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si les règles de gestion héritées des ArchiveUnit parents doivent être ignorées pour l\u2019ArchiveUnit concerné.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "RefNonRuleId", + "Element": "Simple", + "cardinality": "1-N", + "Type": "RuleIdType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "L'identifiant de la règle spécifiée pourra être retirée de l'héritage dans ce noeud.", + "Collection" : "Règles", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "ClassificationLevel", + "Element": "Simple", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Référence au niveau de classification.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "ClassificationOwner", + "Element": "Simple", + "cardinality": "1", + "Type": "NonEmptyTokenType", + "Enumeration": [], + "Definition": "Propriétaire de la classification. Service émetteur au sens de l\u2019IGI 1300.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "ClassificationReassessingDate", + "Element": "Simple", + "cardinality": "0-1", + "Type": "date", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date de réévaluation de la classification.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "NeedReassessingAuthorization", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si une autorisation humaine est nécessaire pour réévaluer la classification.", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "LogBook", + "Element": "Complex", + "cardinality": "0-1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Gestion des traces.", + "Collection" : "Règles", + "_children": [ + { + "Name": "Event", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "", + "Collection" : "Règles", + "_children": [ + { + "Name": "EventIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'événement. Références : premis.eventIdentifier", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "EventTypeCode", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Code du type d'événement.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "EventType", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Type d'événement.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "EventDateTime", + "Element": "Simple", + "cardinality": "1", + "Type": "DateType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Date et heure de l'événement.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "EventDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "TextType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur l'événement.", + "Collection" : "Règles", + "_children": [ + { + "Name": "lang", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anySimpleType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Règles", + "children": [] + } + ] + }, + { + "Name": "Outcome", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Résultat du traitement.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "OutcomeDetail", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Détail sur le résultat du traitement.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "OutcomeDetailMessage", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message détaillé sur le résultat du traitement.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "EventDetailData", + "Element": "Simple", + "cardinality": "0-1", + "Type": "NonEmptyTokenType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Message technique détaillant l'erreur.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "EventAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Permet d'ajouter de nouveaux types d'événements dans l'ontologie.", + "Collection" : "Règles", + "children": [] + } + ] + } + ] + }, + { + "Name": "NeedAuthorization", + "Element": "Simple", + "cardinality": "0-1", + "Type": "boolean", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Indique si une autorisation humaine est nécessaire pour vérifier ou valider les opérations de gestion des ArchiveUnit.", + "Collection" : "Règles", + "children": [] + }, + { + "Name": "OtherManagementAbstract", + "Element": "Complex", + "cardinality": "0-N", + "Type": "null", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Utilisé par exemple pour manipuler un ArchiveUnit déjà existant dans le système d'archivage électronique.", + "Collection" : "Règles", + "children": [] + } + ] + } + ] + }, + { + "Name": "RelatedTransferReference", + "Element": "Simple", + "cardinality": "0-N", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant d\u2019un transfert associé.", + "Collection" : "Entête", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "TransferRequestReplyIdentifier", + "Element": "Simple", + "cardinality": "0-1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de la réponse à une demande de transfert.", + "Collection" : "Entête", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "ArchivalAgency", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service d'archives responsable du transfert.", + "Collection" : "Entête", + "_children": [ + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection" : "Entête", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Simple", + "cardinality": "0-1", + "Type": "OrganizationDescriptiveMetadataType", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection" : "Entête", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + } + ] + }, + { + "Name": "TransferringAgency", + "Element": "Complex", + "cardinality": "1", + "Type": "null", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Service versant chargé de réaliser le transport.", + "Collection" : "Entête", + "_children": [ + { + "Name": "Identifier", + "Element": "Simple", + "cardinality": "1", + "Type": "IdentifierType", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "Identifiant de l'organisation.", + "Collection" : "Entête", + "_children": [ + { + "Name": "schemeID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeAgencyName", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "string", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeVersionID", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "token", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeDataURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "schemeURI", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + }, + { + "Name": "OrganizationDescriptiveMetadata", + "Element": "Simple", + "cardinality": "0-1", + "Type": "OrganizationDescriptiveMetadataType", + "Choice": "no", + "Extensible": "yes", + "Enumeration": [], + "Definition": "Métadonnées de description de l'organisation.", + "Collection" : "Entête", + "_children": [ + { + "Name": "id", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "ID", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + }, + { + "Name": "href", + "Element": "Attribute", + "cardinality": "0-1", + "Type": "anyURI", + "Choice": "no", + "Extensible": "no", + "Enumeration": [], + "Definition": "null", + "Collection" : "Entête", + "children": [] + } + ] + } + ] + } + ] + } +] diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/attribute_icon.png b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/attribute_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..904ce440887841928c194a74dc40ad1757d40ef0 GIT binary patch literal 10753 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 literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/check.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/check.svg new file mode 100644 index 00000000..61a081f1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/check.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#65B2E4" width="18px" height="18px"><path d="M0 0h24v24H0z" fill="none"/><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-popup.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-popup.svg new file mode 100644 index 00000000..7cd9d1f3 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-popup.svg @@ -0,0 +1,4 @@ +<svg width="22" height="23" viewBox="0 0 22 23" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M21 1.11914L1 21.1959" stroke="#444444" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> +<path d="M1 1.11914L21 21.1959" stroke="#444444" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-sidenav.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-sidenav.svg new file mode 100644 index 00000000..d0c1a163 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/close-sidenav.svg @@ -0,0 +1,17 @@ +<svg width="28" height="30" viewBox="0 0 28 30" fill="none" xmlns="http://www.w3.org/2000/svg"> +<g filter="url(#filter0_d)"> +<path d="M23 3L5 21" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> +<path d="M5 3L23 21" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> +</g> +<defs> +<filter id="filter0_d" x="0" y="2" width="28" height="28" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> +<feFlood flood-opacity="0" result="BackgroundImageFix"/> +<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/> +<feOffset dy="4"/> +<feGaussianBlur stdDeviation="2"/> +<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/> +<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/> +<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/> +</filter> +</defs> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white.svg new file mode 100644 index 00000000..d94c0a36 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="white"> +<line x1="5.5" y1="9.99951" x2="5.5" y2="15.9995" stroke="#747272"/> +<line x1="18.5" y1="15.4993" x2="5.5" y2="15.4993" stroke="#747272" stroke-linecap="round" stroke-linejoin="round"/> +<rect x="10.5" y="12.501" width="6" height="6.00006" rx="0.5" fill="white" stroke="#747272"/> +<rect x="0.5" y="0.5" width="10" height="10" rx="0.5" stroke="#747272"/> +</svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white2.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white2.svg new file mode 100644 index 00000000..49462e4e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element-white2.svg @@ -0,0 +1,10 @@ +<svg width="23" height="20" viewBox="0 0 23 20" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect x="11.0264" y="13.1316" width="6.36842" height="6.36842" rx="0.5" stroke="#9D9D9D"/> +<rect x="0.5" y="0.5" width="10.5789" height="10.5789" rx="0.5" stroke="#9D9D9D"/> +<rect x="5" y="11" width="1" height="5" fill="#9D9D9D"/> +<rect x="5" y="11" width="1" height="5" fill="#9D9D9D"/> +<path d="M11 16L11 17L6 17C5.44772 17 5 16.5523 5 16L11 16Z" fill="#9D9D9D"/> +<path d="M11 16L11 17L6 17C5.44772 17 5 16.5523 5 16L11 16Z" fill="#9D9D9D"/> +<path d="M22.5 16C22.7761 16 23 16.2239 23 16.5C23 16.7761 22.7761 17 22.5 17L17 17L17 16L22.5 16Z" fill="#9D9D9D"/> +<path d="M22.5 16C22.7761 16 23 16.2239 23 16.5C23 16.7761 22.7761 17 22.5 17L17 17L17 16L22.5 16Z" fill="#9D9D9D"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.png b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.png new file mode 100644 index 0000000000000000000000000000000000000000..59aebd23aa64e6a9bc58048e7abe4f9c1a3cf06f GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^;y^6I!3HGL_ATQBQk(@Ik;M!Q+`=Ht$S`Y;1W=H% zILO_JVcj{Imp~3nx}&cn1H;CC?mvmFK>l-27srqa#<x>0ayA<XwCO9^SvSo+B5Kv7 zWcTBW;1=mGu`b~+Sgf4PGs0f1Zh9&2rFcVF+4UB?{e;V(->H|MbPWkDRbSNbrem^7 zrcUz7tA{)Uyc;82ScD&Co)Bs`OA)_+^uJ3C|HW#DX&h67_@f%d`d^w>stFoSw%|G3 z8g`)1Rx9wb_QG}9^)knm#qWQwot`>#&ac=_F5KLTei>)aetCTRyN&+w*AJyXGCZ5L zEHm*}U|>VN?)1%nGZQE5dLOJFRxz)We@4a0u4H5TU*XeI9Y1^MJy*|t_(JA*W?)^O g)kUpbDZPiBD~p1zW{Zc<26~yn)78&qol`;+0Qj<if&c&j literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.svg new file mode 100644 index 00000000..acc611bc --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex-element.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> +<line x1="5.5" y1="9.99951" x2="5.5" y2="15.9995" stroke="#9D9D9D"/> +<line x1="18.5" y1="15.4993" x2="5.5" y2="15.4993" stroke="#9D9D9D" stroke-linecap="round" stroke-linejoin="round"/> +<rect x="10.5" y="12.501" width="6" height="6.00006" rx="0.5" fill="white" stroke="#9D9D9D"/> +<rect x="0.5" y="0.5" width="10" height="10" rx="0.5" stroke="#9D9D9D"/> +</svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex_icon.png b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/complex_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8b06be03552d13c684116ca9aae33e83db41c6 GIT binary patch literal 15079 zcmbVzhgVb0^EVKhARr(hp-Jx`9YjD8A)!hKsiH{l9Sjgb1(BA}t7wqk1nDIzQl&+j zv_$DO^cKo{dA{#o@H@ca+}*viGqbaMXJ<YW`&eI#h6+qYL_|abg=iQN5fSfS{ZWzw zE&b!zcfdb#2OTX9qRXqF4{b$ABBI+wP>lyB!8x0=K{<A&na4Xrx}k*v{*;uYE=Hu( z1Fzo6_V;Z)xo<vEUl}LV*L-TcQR!xB%{I=&G&%W`?7^R}w|R^}4}4OiIU&yQ{pU+Z z-I>WxGoUX7mX#V_s^KTrTLo??`sIfWsSJrP=YbG>(EsDFJgRJsCTU;M7+w)s0k?!j z%(<dF)-U%+?FH_zW{~LO2|?#CNao4M+BhxbarqM@iA182W3Y$@W(%qrg<>(XwCl&q zOso#6DY4gVMBK>l6jg0ZnJ*D3gKD9%q1tlU@~)!L*mGN)yghfd^YD<C$dr7^e8zC$ z*$ZL<$S*|JXJ}Q_%KWP#lV#sC<QWg{1@5%H19?Ra+;R<_hn_>LqQ3!bRrJNXCQ(FY zN0!0KKo_lF`r;8;ebEx}zh0n!M}i<hSVHm^TF`wZ0#jVUKl=?!^oybr6b`y)vZx8w zvsX`lQ?KHE%R3l51cGmAHx$>-lAM7X%kj&vTotrRxfq*MG+*I=e!6x>i6MB7O*r60 zIQ6zWc;hkYchj!f<hrWiZs9`E#&DN0&jk4qU(BbIIC$JPtu04Sbfvyj{66g&Deg6D zsB_fzh$x+ig-DHzvpmob6)fQY^^YftH2j`7-<_JN0mDb*Nb-sEj1*iIaj57lk8tEQ z8xLvPVDjw=v=5p#)iZu=jTWbF&$;bq^gSIs6kYjwoji{=M?-sI+N?#%HG=@@J)cGe z;nz!N*<ChtS6oY@;Kq^ZNvcvv`7tA07+L|sy9^Vn(v&JF6K;+yO4|BvKoSVBGV0ra z+?rY@Hh1t%N9om*ZQsTGdfLXUL$>$=cOCOj34t<PAx|J5<Q5;X40!8VvyTv{Y>M2E zcHaI{XSDcoq4MsZgniqyfJSue+9oZ|3cU=`>DD&tUhiPbrzkHtZMhTYDC?-=@-GV+ zxdSnx$hy|b)R?-a>=?(dWvSu%TP6ubTP^M_;H@?mgl5*!uq4lU{hPY%4z{2y1r*sp z91-Oflh_GE;XmTpK8mdpPVTJA{oHN8T&Bl_{v)E>KW9Ha`W@_lIxT)0u21xt?v%ia z9tZWA{kZ8d`2_b8$A~^)@`}3)=rg$)QkI!Zd#~l6M+q_&t&ZWHf;)1r5|;Vz8}M7n z`_7`pFg7bW#EuihYJ%op91r%5jT}0n{aGX(oz%^vchI7cpap_itGMYZ@x}FDc+rT3 zk<PZpFBKwgR-AfUVTiPH7{e;{o2@nZG9v{dE{egQE-z9uuh}RCfFj6VQciyQ=OMiM z0CPG`{hztIh3p$PaJuo7z}T;E&}@L%N!*PWHJR!uk14mAtl2e<;{B0x@mP%m5aMIM zFNVs7tCMNgcN$)2pr$d^-CuGMtd&lNGMH;^LYOptf(D^XgWel1dSW*0orvCokh>f5 z@#tX8EMXl|OD^&8^zeqMXJ@BG2~RhPxgks|qveeC_};cJhF~|=Uy0gbwYyEjQ{LRR zAYo3@{e0RAQAa#PB2jdjAZcz%d`7Csl#%VDR`R|r@^@q$)Q-+%HqSS;KhkMoS`V>b zJPZ9@Yc@NwC=@|HD4_Ds->m8|Lp_vi-w@NXS~_i+;7hz6oudpjTF$!m@_ik~WGr{u zqCXUuj?S*}+u&<K=Cz)^8znFGeEUqi48kI8`%)W>^u+Wz#g()_WOK8;5B{|T@!!0! zy_KH4L|NSIkx(eM8uzWxia&nRI8wB@9mM9wpvH*rlxxj(4)pB+EAkL*lSf7ToR`9O z*CT^)#s2Ygm8c@cy^?m0#LxRlOR+)3x1fnq^udw?VE)$kvelbOk>>@2`!{hqs7GF< zo>*RS(a50rS6Yb3qGW-u#m&#aE=})bM<AC}PmMf{A$IrAQr4ykkbWApF>l}-)M>Uh zSg9ppP5D!NDg`uXp5o2MHJ4xmzFa|_l8bwj7M2Eg4cKWU1CpM>txDQKQx+#2-qNcH z&{E7zj5(KH28R##puFJMIcAjTaj9|+O)4km(;(xkLwH>Ytso6&1>tu^2ug09|LZR( zy3GXJd)?eDnHe{!>`DR2+@#HU)Moy=C0}+)!-(3Q+8T1e(eJ%ziwT;qjry1Vae#bI zE9<y$ZO^4~7mI4YZ}c!10>k%RlD2YU6U$USlX%^(V0wITB4^S>p{Obr3g!Ns#7Q>p z!(46!O(g1m`$*E%jl_k>#)grggs!Vz;diW+Jjgj%<HWqTM$W6JyE^i${yU&8Rl6il z$Id%_F!BgUUMjMEbddWK{Uti32Ub_9KbAj<|9HCRV{iEo+=1a>ZbBJOGdISpDaXJa zg-dEPSXt^vg?>X=W&^CgZ5vr9KQ4XE0y;8;6%E^&5#hW4l%oFrB2|U7jq6)bwce3- zhW=pF%0hh62Vo`9Ohc&Tsbtyv6%xzdbS`%)sM{c99(rxe3Er?5E*p6yXK&Vq<}Y^r z?6Z3!`S~f5ms~4PQFwlu-4Kpd7dWbBT>!Qgs4$j4(T3hcQPV&l=ySJysyuyerxz-_ z9H}5&<%0T#3JC6Krz(n1{gQqC<?A(rZClJuL`&Bj(SX)jcwEWFOFUUSrS3Z#^R?^B zB<7FLp_@E(Mj-)~CabRO+aewaC!<6%u0d{^PNd14JI=ZkPq9UoK$T$XT4;`#Gc^w( zktEGy;V4GYhp1M^xDukr(7oS$v@1p)fo~cwHk7QxYkhogm3V$eEah8h1)M*mD@j~? zM`P+*AB*aqHnoLgBlF830Y|d-#AAm{cDx6c2=YH9$6TdtYpU7)6t_z*1dv<f6UH_j zKEl-@{vV8x8&oqI0fLJTxXEoH{zr=7M&#OQBAFtIEeY;%sSRwEp!mwhwb>F)S5nE< z#HPr1PrIbcmQt)Ji*cJC_jQL`TV#dCWV$Hl7S~4;HA&F8(Ln5xvc2ca7=%bQiwjSN z$Z1*ty6ih|it7T6iA+)<#WAHsqR`h_4cs%6y_5CO98)8Xe_SO?d|{NqhVWy)vF;r- z$i#1NyPjkRnyM7FD`+OU9fpe~`-e193rku`FaC%>afTnG{>>T4366%K_*wY_Dp%1F zhI(B4QaPsj;v-~d%8LdczoG<55Tp12G`R0bE1#m7x>N8qtCrk)2A29>%l(&#tYrwW zF$xKVUL^BCpQA#;eq+l%)K97UA;5;*L;{*A1)o32dk}B*%%9lq<5};nhrRYy7nToa zm4Yv7Pe{a$-Om4T2K8mm<3nf`MKmp8&c~dnI|V$xBpMxdTIggIYa+VV#!|S%j!Jlv zq0jbh`|@tk&5O7oc7tiRZ#xpIFU|R+T~hQ5H)6dhyzeLX@CCes!L5X+)7#o0&oPv3 zSzmrP*&2WgMW9U{T7Q1pgl>N=aQ%0)PomD3-ep`6`c4|u80~vL6^dJY#DjdZqmJ=~ z7lO}&pk+c(qdF*>PH3W|f=pkCAyc;J8=5!8ZDaYLm=2;3OmQZ-c-q8-Hr6H;ILHQx zeYWPk<OzQ!Q39S#$rW1nv`^<rE}0)7T{5opi6A!@L6}rX;E*ZnN6bW4H)C}<+(@=% z`s7?E7}87xogP<S5|ma|+EZ*;TxkCp#h<7+eh2&o;mpyYpMoh=-U5r@of1cN1WGD| zdhzt36VljBvT&wT3NLmO$>;Izx6p6F!=xoblKdYT_*jZdBbN}+zPQcZw;x{y|3vi@ zl{UrNm@Z9oSgtMwHPXM-%vALiUPV5285IDT8+|SaXQBv)xPF$vx%cg-P7oRQMHkAS zNIQa86udFFpabJHFXN<POMhNF80oa;Nz?2R6m!c^fww4rebU9A90AQgRLCqIy^Lz5 zWO<T2DuEQL)t=VI^#UCa2gp4I+of#dbv|gj7O|qgb{>6dAg%>idc&%fDcY|b$wB>- z4{AD@m*V}2@LLB8YuLZVCD^_r4$3nTxeYBHZbwIT9+hzkGbLsH{n<H0+CUzxUlPez zLY_c8&M@6@NF*u5l(gnSfr%y?F;Dga9{9$3++y%{=}DY>Wl;gfFO){<(x@N^*A=^1 zyp!ZNC6&8V$}wKgFJIT9p=<6oXoXn37xszB?Xms`os!MIN~<lp&^3P~9Lq4hT=^Z| z&EX{N4XUAWlUhA*<rDsMt?}(-dl2#9(VU^GfqT@GIGuAS=5ZeMtmkOxW}IefsOnCB zaqbf_Fw`}#fpMDRh)D3NIYTe>Cg-1|K~d&-J~?9+7qs_tyO)yH9wm_`bFVw)Kb)ZJ z97Z5Uegn7L@Ch5p2x~DgQ-E|0jT39Nd5tq)$;lyKc<5w0Q=H}_cfHUvhB5olNEYA; zF*UE@&@Cs<-{xtm^D=Hy^gatk5~?Q7mVKRVQQZ)=%sBnHl0<;{YNQj1H-8Q6VCUyY z!x$H|c&A*FR%Fx9kIAURP@d|X#*0w;J8dR+`tZLyZFk!0t%VSyp_ljF^Uq6s3xtY_ zh}L7=Zeb-^-th&z=VF-fs-noVmAJWhhrThnQM2ZjmY%jzv?bc6^8mZ&Gh_UzHNCNG z7<8}bii}SJ_n~opP&)OaYzILH3bU6VuUcycc`CW=h<^z)$9B1M`o!bNt+Cb!?F`+G zGUJKa;-()lVY>77R8SGoQ189uMfDM9f22T2?A`6~t=rJWN8#ZwX@rA{U)bu*Jg|#q zWPlhkeH5e&3ut;Q%ODfk603~UXBC2u#pZk`aN5`U7C1k<h;NL7>3>t?gFaMFZw$Zq zL^eN6evjDV(XR)#>RAi-flb=uSZxjpOQC-B<AmPF+(T0I)>}T8AGT2I2)zFsQy8-k z#Zd=!7dLdOQ3A*C@ATa1W}HT%pOO?s0DraH6=mL9idFg$4QzzvH$_==O{YyEtk|9% zff|Wrr#x?c<x@Q56|0mH2hSv%PvVQ$UnuG`Pv+b#OJbo93OMY0<pV)<3HVCaFj94m zj5J5C$0)^^&&x(4MoE)@!-l%8A9rGJ_z{Ig@={$fA)8F?dv5wo@h(OYC*VLk*K|d6 zafidf_j`PBI_KI=2ih4b`}8ZSyOXK=B|aLS-o7=r86z)wmp-(0T=CVas;leS$a>4} zPC~+thy(2;14i%$0`+3*dShY+yN@qGT%BbVrrG%|H0(+~skukG2^oplLMJ9U(U~^% z{uOZtUBL<u&ScR%t2+tfEh!mM{;s{Z`Je@J`nr{kjn8j*)T>EhS?9=fg#mR6kKe@U zJ0MPp$>wh%1>VnvDNErcRUxON4_r%k(1W19N^~H49GwPpq~_$<R|-exbCHab^hcVa z{GPH_vo|s|dJGR;gwz(^wYqjD>TPy^w#aa=<lFki#|SMPGe*!&X_ji^T6wQ^)lEk~ zTnQQ(c^(Oa3z9HWpI^wK^C89_hw1CvA1w}KGWTQm5;E6qKpUE&Bp;+=p77x1_@k1# z?3FRI=yW()r=C}nu%ozeNkpbB{~j}Um^!#k;l}T!%ddb)(u~1LXA}#U&Ru2X0cjGr zRn#@<%7VOWFZr%ru%KB{f|N$40wmPE*e)(~h)&l+MW_GWDoNJpI(iCZp2n>9!8N5I zOVXF@lgbl=2+hA-u`Uxusn<W!bkYC*HXFw~ZQ3>fkKpkvD7c%}53Oo$Z7~%79h0fz zNiVGB5}hFU*;uL8{yN5<Kw?M2S#U~fWg2qpSj2l+U`xk^PZgr8tXlv4hThS`U9QMf zv^*fyDLZ8jsJ!Sj`bp8QF{TG5+~@9K=0FJVy`AMAhQVdcP~bKY4<Kl6^iZ*?&v+Yf zS8;z&u$aoIO6nM><cGz6jE~8%k5H*L@4Y=b5(pYB%H$m@6H7<ry?`if>iudu9z;Bl zHB@ln$(&KX(BhAJ+?_@BlGH-)ptq*Pkz<<+1&=b4xYWC-KNVb4Q?e?|)6o_5c@7Xu z&bv0FdvL8r+)>zN2emcAPU>=Ni05;zY6~ENOyZgHS<oZi$3=hGkD12=(e-I||AIF9 z=3RFihW6q#hi})$hM0u-0(1-$P`QlXM=Q#SY!$vg<DpqjUGT~-gT!&WB*g@{<GW*@ zr(hK^M-}VEs(%8EGT-9I<pPakGxg6Z_@kU(NjS`@g*QLHu|{c?+@4=~w<*BYG6q}e zwxOzXAs=EqLJ7u|bmp89(yyym1QAJ5t6FH9k0U-0rfRO=cbHn>=8r0FF+fC6*cr-_ ze4X7v`<5EKNYm;s^1j)si5J;z_!%Jzeh?o(FH_wkH<a2hj0Tq)*r#=;<NqqM#_M-J zS#9{Muu8<Pf05gAJ;PR-^6Pj9?!8xlWO{O!JcL&YnL&ogGn0;KK9xNQD&MOYeJfL< zYPl$+f|69-qS(4Eei^K``Q%`e4i#`4m3%C6GL0*Gr+Fv3l#AXUc{gJQIm7jivCsK; zYx)cEhL#(R<j1@&rwdk*El`=tSuO3gADP#Gkpz+lk_6r!(7HsmV^WH26o|Ew9n$0% zR?$^56Cr}D>{G){<E~oCmm;gpAL)zZd6+5tEXPUGL0sf{S{n_2W>K%>ZOLC|?pIc? z9V?hrlE_p4VRX%A>&0Fq2!S6Ayi7P#-sb?;a=P`+8WQu^k!c%*aW}Vm^GHpakR<T? zm}U&0UeH$sLB>GX7<~R-WPYR{?NP*W?r#0!wAcT3YgA%LaQ56RH;FvW4X$7eW8fOh zLla7{M<;5;0_0s4OVd$jn_Henp6iN30+)mP(|++|570kM@?%1wET7fL^XOT<U(BMZ zA$b0>xrp<h-)g2ZV#uuWEM;G1DQ2H3W0V5qm}?=t9cB9W+t7*57uVlv-Kf3Tx9BU2 zdS+Ui``|+U=mg;DK8uTg*kJDDLvVp;d{;2esMO$|Ii?+Nkxyf7@Rbn2@9pjX!L{6` zS8b@%;}LH${Jb~f-_ix?gWSK2CfVLwf&<oL<HEY##8nh&k7reFqZx;sgFE;mvZouI zNtxn;fBCqMP>zy!8*Petvy3Pq3*150_X7y04pU(xD7`)T-G+wWahi{7F8T3;Rt8zu zAA(E%pdCt~5~6Sgqw`LE(_ry28r7G^@Z-^Y=g4mh?r!PK@gLM>dOL=HO2%n^_`J>& z&r`)yBKAF~IgF^I=&arD&Ahv8U4QTNxEV<1o#x|Y7UZP{%n#tg-&ButkNRc$w3iG{ zy^kx3E1gn5-Vb~-Jw<&rP7)E(ty17j>iWe40vgd4MC`$#WdGa{J}5GAZLYZVRA97p z`q}0NHJ}H`R?~+|i@?1x?`30E_{%qgFYQ!~@P!*YjVzPRkms%ltDfmWW~SLwstuhB z<X$;oWW9L?C(px~1@@AUS^7BBFNGM>z<drK$!&oAlheH&Kl1EkN#w>z`{+7P#RT?7 zj-C2AvQ5zvj^B+Q=0Gk2$JhSoL}<?CekI8;x*C`*oc(M0Z_v=Q9o9aMPk=WA9k`S0 zUyxoKZ(}X{>XiUdVp5QkjmgzeX0%Zs|2sPzQDY5Qt7!!92F)Lap8I0`Rdus$n*(UM zFR!g`c!Ogj3azC(Qe|D@yFAJ7<V$z2&!|h4u<8p&uqhWilfG_!eWvW{320KIw)gV6 zbK@5h!T4TBNqeQ8Zg&-Nu11t$?5)Pxz7V7KhjY39I)4VtAHs5^dt1}%dfx4Zs5mA} z7wM3pG#gV}H`mX;WZQM+F3dtX8kWj6J=pqY77s|U;x~<pPB?eEw;tF(0sP4@I{`03 zbKAyJ_jKx+;NN~=!39q5I3iAL&}pw7)?{lV2{CGKssNYT6>qxWW!I8&{q|IEW0c9b zNngBsgkeF(-LY(7ggM|e1~e$2Oq-W|X1gE>2^!3GRIsDj*X-ll^Gc^GjtW3Bc<$Hu z-~V(vt2bAF@aIc5m*|n8&|aTsJNR>)bnSN)l8whgpY@OYcdIOC*YwS^`Hm*z*ZVxf za|R&!Zx&{hyoAB<tR?4v$PmfxN+aTHF?K&L<a0{Rd#8J*>&KIQpU$f!o(axz182tX z9Icnqc9gmjOi4t+B0Jp&kq#rpgFI7HexDSYJFR~=VRgid9wkbq%$lL8sn7C`l9ym+ zO6EzQm)`rUd!M_$DT6XTTJ*PHI^`_VP{%6x!8&*czKPK+GIe5=F6ob7Y~zQARc~2e z?tD8aV;x5zLiGubm3SX*zWsBViKF#j2PHPPmbjqS{C$1h#q(FPIH^7)+yk_3?zb=~ z*W~xq2N@~10HgD<29}yH?D5iUh^V=NYtjrTjXb?Wl;xf42I+2n*%-RBhbE!@AvU|t z-Bo|$d8NVT&IDO_x8TlJtE-)0K!PDHUAfhOkH^xf0D_srwcNNT>~(G3#!}hSO8&#a z&G4MP771U;L)q#XlRLCy)8`8wR#h=GlPk*mGf_lKP5`|c<(+)?+=r)q>SF|3``NI+ zGiTbKJ=S(B=*E@k3)HUzoBSr#uUfGqy>=qo%Cgcd3`bveSWXBMa>iTPJ(`01Gi(vh zmQF`Ghv+IV&C#!L*n;G+q)ACzuo{o0<wE;IIuG;YPXSKJmwSmb%I2GQXcR?`gL1g6 zJ2dfOowHCpvq@DJ{}IP2EvmO_tKZtI(FqxJ=UXTSk%6%nWKh24sS=(o7VvR(!S3b? zt05cPNsr3W_L*98gox_bA0yumE~zZo&y@MbhIrB9nd>>(P3;{qx+{Lt6U&rAG|N4> z(+)=K4%BJid1;XT(&@!V=(X9SWpE#JX9D{s_aUP&^dOD!!uP6+N4fx?)zqFXGf@<% z_-ZonrINR~{W)T7Gcj|$KbP&2=L_!)zaOmO1)#PYDtgOg-wt$28(wFwyIHH}6T9a& z4bCW=ZhAX=pLbAJ+8MQp_gQ1z!Sb*7FBUkKI$p_!A!Q#cY~S$7FH=#!`1zVoPKTu$ z(F*IIqh|vLyj2zSgHc13AAp?=>|fZQr!y+F6{B9Pka_l7JM}y}Dvr(zd&c4jOufB; zJB?rkWO~ta-ghNaWFydbf94}#bQ~X9hVK;Uyn1u}{T{829`i0|>5wa~4}Honr?pj8 zzVy73ZkyI-AT2EPFT9f2jBH%8MCtBnGGXJ_!AWlxdA9BabvN9))ZD1!QRaGfYLn`1 zi2|?8ruG@$>tiqd;6Ct!OVw&m=m3I{Ofbt_2RSgD%GzsporXH&rfR4foV?GeU#+K) zvg`B`R{gi`UF+oApONWQx&I{b3D{ZR`&@x+0+?|;S)is*m|zpCp+3}>taGLBn3oal z*BfQ3!=VF6WfnP}g5~yyM?NiY7&3=haKEAvoT5PzeYv6!8A7*+eFXez9QEyIX=9MG z89^(o8N+fZ93<<9WmM3pfCY}wt@wS8X7X%GcTS7TS$Kess{mst`CNfp^`B0Oq87y~ z{!@TC{w243nqd+@(v6PF9OkDPPsR@`^jl-kGuMsxUh8Hn0@(|UeG`7TwnP3sWW`u! zBAxIoT+XhiE*2IF4<iA@)NS%J+_GksKXB781B6)0X0<pvpIqWonalcha3w=tzWkBC z$(|lv`E-jP^kFZo02>3W6>pmr#y&Y{C6RPoyrju@`J<-TAVRqy>}};Y9{jL5*;VV^ z-DE=NuY=5CIg97&N3lt$f`u(M0jEkyzJkOd>wJ!K@_yKeVp7lw;thhZ<ZHcjst)J| z$bH#FEw($e_e4v$2sL?0C`<oGR(A!Vy+^A8!vBvPi4o?p?-9)(f)rzOR*$kjv@l?S z_h>HiZXuk<{0S1J`3|z8lDQtoK2rYT35&%M3f;^vXTH_`6!!n8ku7k$!`O_%{70ll zfX`pqf`&PBxYpqCb_tU&);jd91hE@vUA{mEtgWT$I|Msg0G33iKu4s47eDM5@nQ*h zwBodAU`Yb_Z}IB6h;`Rcw@YqPWdz!pEgJrlOPOVHFf|^sGAHFy{T8&I2ehM>`f}sU zUQ|}mUz=6-znZh*TDg^x-=hA?A3F|t?*A!~@ze|*eP#5(8P%WA`VcGT2Xk#Nga-u8 z+ccxP`*Y*KJGAHDejRuKCN76X;7%K8fE~LB?BR9_=?NCZupd@saW2-iJuGTn0T4nA zu)YhF6i)#*y-5{N;$&NA<ywP{{VXC&_&>wcTX99np&!Bz!rn@_REx_@1Vt>J0*Sh= zX5Q*84$ykqs4k!eG{ExWIJ!Ci79h!swVo?m&|3lbeMC1O(Ewt|EDk;b<OPflwoqB1 zF<0OP$B*!<m~B~)#ys$8s=6yr(dAfaJkTK2c+nPhwbAC`nVIYEogW&R7IHC_Y+Nnt zI~S6T7qI_!p%uu6b=^w;;pgzzXNe4fgVy<3_!l1ptHUX}plb~}z*>H;O3+?ua@w7e zyHZeUr)uC4t&LHKQsz2!X8T={0&H4SJMdtve5P8xB{+|1Lm*}pQn{l-KQWws|8)@Z zwz6R6rp1v74tJ&P?wnr-z@f)=BYhY+sU(jG)L(xDd^_O!-(dwa&Ln(han@G{rg+$N zw=tZtna{b0BQ)h4QucIFM6`#{8#z@FSNGX_uwK6UUbNqBNN#1EETw`ImO*;xk@41W z5mBwoM9I=RStU(*gupfmm~#w!h+g;=An*Ek=EuV2;9&O_xX%=rk_k8;L$i@h?O{;H z{^u;I!`!`M_xXs3z)4qFfJ>WGfYlO?a3<@^YyX|%n%85ZUhwa?NdsrmF@Lpc^~I;i zO<<3kc=^dpOk6G0r=x!B{Hed(xHst27B~wjaCFWc4q4mrGM)k_FR)K@>_{gr0aM~1 zGvAu274m~c&}R;N4O(LvBV97rO_Z&{)|ZCpavYYsB>Y8E#MwBP%!GO8_`;>c@i5@K z3V%+%R37=Z7y!iBOjryABkUOJ*@G82PK|I|zXF!R(+dJEXwU8)2c7A810N;9qxnPS z-j3E|I}HK<$dk<VJ(cD+eum!XL!^h-FE|iu{6~5V2bt?(?^gik_iKVyz=MfV>v$4d zwyUpYe|zS7i<BQMQA+iTZ|g&Ir3Ru2A_}sL1ao3McUzVDfh}zgv&j(|n(%7P4DeZ$ zn*1CLDUu@Yf1?H5D`d`t4RoU|j^^jbk*+g3pYD@*viZj<o4OZ)V=LJhC>p%Gl{Ehj za3%lHtZ>U0T+*A{mqk^;zjkssu`G^UTktS0gU2Sbv7ghz<W4%YB0{e`h=v;-7X6&) zxTuJ?@>^t`ZPM17+b#NX>RZ-+GOOeYy8h~K&+yl2ua;pkhoob^Ek!9vwiP%oVPrMy zpkmg9E4PI*Na(llBIjzj(6>bKQD-cX8R=yLEHa(^l9mQfgxf}+MsQd(WIbi@_FlTn zJCQ@w$G7h$GokR>UtQ;62<5RS9J{BAfmZF#-L$?Oidr{6=OEP`v|bL#TrcZ<f$BC_ zqF~X0m3|CVd^ZXAIbY-`B*ECZ>t(UtS<8^<dXV_)ckguNl`|@8Z7`R+xA`Tzio7}D zIJ*7%gtp`+V<+eDp;YQea)%(my_+#86+KYe-O6dXa)MXJItBM_ajizgvAMB!(aV2; z$g52N@ljHP4Xoao^qZ~z1*6vlU@0yF$;=cY$)k1_SMIW$L*hKcKc^v+^8x;dY1gsa zQ#QRFQMN!}L2e{W2sw-=l9vQr{!pq_mFEjSXGS&7CQcDr7xiCtMkuKok*&%r)K`vr z9ly(HSS(7l>alLFGlR>=^p$6~PK0x^=0z7g%p1~Y&!m@<g9OFJT25Sx=^hId9FbHB z17wALu2)Gg$FFV4@77nCCDbZiT_S7&6Jhiqz6Z&SZf9SH^lS<**wHx@`}zX+4L3q^ zheulzaMih&d8WK34h%KUg=R+2>4f^qmO)H58^m2+s_#p+P&?(D>;~>ORDpoYTTd{K zes`-l?&><4^`MC!--gQU%6a7ZTbC#tnmK=v2V9~qB>26ipJ>Jjiku3E1dVIkUtNn$ zstT;t@%-_uKE&xYt32_Fl0G?UpxXZE!mR8EPq<~B2&Yg$5B(~+wvv^JmC38*l?Cob zmtw+7F8&{#qS!1{9}5YLVX1qt?N3znPE;4LPcN@j`zQH6og?zJNU9{UD>Fq|J`Nh> z$beo30(f~AvahISwC6YuBd+v%<k%;$Z;Ki2Rt?8iOW>kXR3yB_7&5aQxI?BVz5_S3 zcuB-%=S<txrFfu6t#<^{cLdS7T-)hl{4METd`4UpGWIDCav?uXPkr7RbEdpC3Yfs^ zMb_@MHkM;1mlFdOSL$85G!Cdzfrhv1`vycud@jJkJB{~zXQqG#$d`@uj5;`iUE#-B zxEr{k6gBdSoF<*@1*+Zpnlb<3<M;ms2Iw{{0I_D57Py9_FkjxuhM5%6rmd6AJ;-Fm zk*6y|{myjG1Gz8l|Ku~pe{gV0y43JESSF_OQQQ#?_9#BPIVpUvFEmqUZKHG&tAeiC z;VykT_u!)bu>K>xiI_wC4EARHeGfy|*s;HTQK*)K@j-zxC-AmZX_F{k(&?>MiNGlb z5G7Cr?)?@lt2PdU9Fq^JCvr?1J#lYMvPZ+<Ztzd9o>hG3!|A1DB4G~~6VdxPi?MqK zw<D}tDx68>cF1<|JwTk}Lw&}zv%EEAsH8W&x3_!aBVAHkgMj&)<Y^SEk=ImZ1uk_j z4#(;9%V-YWfj2~fH{}0NH|DP)4J21xe*Z-Kxy+%PY$EBBUpy@fRXZecgD=0<EEi}= zJM-Ae1lWu9Sx{RIi=5RaFECSjRfjVegF4#-XbJmTJ^Pt#*Sp&aXfhM!9`9mI-`C>Q zpLq*jUO~SvcJBN*6*~c(Rlwe-TQl}qpO3{lds{vXWxu?Ox%=02np~0fnE0TDa!oRy zF3#3t+jF;}DZ$oiL1-60d;+}0)&}2=YkdE?T(E-u2#R^{G}0fD06HYHeUSC>tHeBw zyh*#x6Js0jpx%O4&|8*x`=nCrPykZ1#VfyQu85>#z`E#ee>TK?+BBb+HvkCI<G3QN zPWw2}Fqq?j=EY?NH0VNk|9mD{w$h#p6Zxf=+lpge8Ql-T4;2=$lUt`X4JrrwBeD_# zm`|z@?Lf@q>zJAmUin}o#S!%&A`beyVs7GS$RoC@<BUb3`C~i*i2BS40(;l^ZE{4n zsxHOAr?SUYMd6?}v4`n<cQW1P<w0r4j`Jo>&}#CM#{#ygN}M(N$>wV`RjGkR+TVVb z72L>AaH;~L<6QisQq}Tz*sC+;NiR(5@29BlQBy&Q{%8G9Fu@cqs7iqd<ui*BO4qH& z4*G{6U}eU`NLEGPl_E3vQwfou6oNZZ-JuLp9y=d^sPltPK~j!$y$|ZTf;6qAcQXS* zn=)mo?7;Cu$PV!fPOb*E!PN!q2py3zKqz6DtTnZ+GGr{a;<q;4s#P#Wn`<3_2sjv; z6|iXzqpXb_TfqJ)O1ZAiu}Fj&EjJZx(iaXQ8sZvBPUgG{m>|m_eu~bN^oi0{B4GI4 zftwg>s(>7cdc8$9G&Ao#0nFn{?ueFqRnDX|d+ZK(qnvKOe~`Ocf(|grKb|sUMyRr- z$Uo{_%WFf|YLk!1&Y~>KeewI$SFFk9$uciIEj5VNlcXc^q7aB*ql7$cNjme`H&DFg z`DyOa1qT+iVIxf$P*(v@WRMX+Z90m3%OBWEm<@c9lrm<&^aJAgu3;ExZrE}}&GQ=! zchc(~$KWRvY{!YP8`Dlk`gZ)E+s2==&TAeMpU|O2?h%!CF+zfJ-L8WE6=J+JA~PYs z!py;Q@@VbdhG{&Il2}dP{k#`!*LxfFU@7UdQXthI*~v}Wvpnk>Aa_JixymyrB*^}O zZADc_%Qi)t6!xM{=)?66V!u8QiK%m69BE8?_fJo7>0bzaJ=QQxR4TWRO^2M@qf-K1 zf;wR+)o-MCWLgzP8Us$%VWuoY5yS7#SR?6}`V8nVSy%+Qz|HqSfD;Dgb&Amcg&sCq zOhhTwUQ$ioTc$;5I`c>wgm9rJG@czwIoxHR&^Dj-AaA{Od~@4sP340px3|Q$D~6Gx z#P#yNuGOV;?`_SpEv}z<${F<w<+bTZ6)5(aj@}(6MN-8ZlN6Ix_~rdq)79Wc`o{3b zA=Nl}2%Ai%>}o&le_0~(narj+_qDuX;z444+Tx=Dv=hl%s`e^LJ#Ty-wy<i0(w)p* z>BFzv0}d34gKyh&Mjwdt!UQjGyX?kOM210f$8*t}XdBdPL*}D%1*6=y*Za>!8>*1Z z!6O2bi5ZsRTi@yNh*1Fmz>`OxIGt~DC&8>GIs>$Dw;nOd>2w1rDj~wEF|CrA5miU3 zC8lk}rc1HKFJR7Y10?Tme3e~f1@b(6ua6@-7h=|3x`Jypm0o8=eNEXPXyGf#lozB~ zdEY}XDS1n)`<6jgHP63DSoQx>fZDpA#~}SZ@DfuedtEBZAc7A%@P*Cg-QSp*?FO>> z6~$TfOCXg9q%VO);<2if(qB!ZLBkKo7^UDgwBc3K(Id-=KAp}M;5cE7%v$FcaVs-6 z9b&}zo;Ut}Vh@@5e9xhSKHpa9hTMO7&jGgBeo!~l`-f;?#-1>Us0|dc=HiFxw5M0X z1qBD$&Pa9I<ig7T%bcFv^f|xuqv|Rkmf&5AtRxAPyh_SGUqYBsy<Z_jSl*$f*}eX+ z5+fnO@`lfav^i2IcKs+(jOE>%U6p^dTf+bGH|Z9$j_<Gm#y(TP=z7sp1PkA30kY7j zr|#4<2D)~5w{dW6R(Au-vDtqK;%qHzwabE6KF+)^h=S;Ysto{od@f1PV%M=O^Y601 z?z#S>J+45-kwc9vW#H2>>sSs^(}%O@)J~55+P>F3(6v3wf2Rj!-o$BBq2S?%zu<Os z>}C=-p=-eg{0D9HuuwYhU?5e^yv!IR*FcnEebr@Q9GM-nKE$y-L!?ZScw>U{qV2y# zx#~k}wRV!pCTpRon|OgrZUA|goX+=CF`;pys12>$|N5hzTwbHx?=Yz77Y}0qda%Y` z3uM68JE|xI0Puk&J5@PvrJ;3<&ISPgutAe`9!#%8ql(7vU+P=`SRtEx3{39YrocGu z6wzue)aN0x?eq`at!<CJf+U1(>VeCd$Lu6YKBrS@N&%_-cX+V9!xbn2CO|wvKW(no zU?EF&K;yvH*L@{<#h$POVWkSl_K(!_#Oo%yim9M=-aX=lZtkc%s2N(RgO#e7L&$2( zBY{s*B#<(fVF`|zY(FUkykkQ(f%?B<=m#taAc+rGyD=?j_ZUDzC}dAwqYj1R=Z{tq zb=)@ShS<$GJXyUsQ&OqV^%}feDExOEFu}l{z5@Zri8}^D!$!&L>xYOJ#e0m`prNf! zjLLCNlH035hc6O-(kWkDh|W<5fV7Mox>vxABZ=GMZKbrnMAh#m-vp3V=1V}65F7ZI zO+RxILOK=X!1r!Vd>Kmyg+K6sa4lv#me@JpEGZ;0I`>aD(~I+beg#qC8yoJv0-1D4 zzP~$nh&q}biQnYXCgX$3?LPTOnBYeT0xz^ZGEkYMF6W0y3qo`MDgM){BgAHLE`RE@ zdnCb2(}hIUE8hstI1WDm0fYVgL2BIXJG0j|OoRlWrQd1Mo1I5RYGhqZ@1Qib{NB_% z@!RC~wO6<vs7#FAbSsMmsk@B;pWGNX%8T_A+dMxSb=7$d3D=3mtC<r~T)h}1y+iYb z<(T+R!DC&-O&5}F-oE|ZDv6uOC;#G7Tr#j-LH7|^9_-$nj;FtdfEUE2i5uTb)9kDH z$SXkyMjth?eGuI?E$ng@{KvwuB6(>D@YYw-DdydVcChaT9QVQm5;Nn^-@=Ol`YAuO zgnlbjk|Y4Aq$gWmvH8%-j@DYBqfU74QKo9mTiM5!eM>4SF0E~7D=GjD^vnmmc={s< zn3n@ZeGCS`PhtJh{LoLn<cp`@s%`?!&Ll4C830b|(-lsNUJ2=Yj=dydjMFGgkYmg+ zXwp1aIz#CheQl03Fs#H{5xLv)Ne8rYz?Fq28as&JOEP5gsf;UPKH-hdXKm0D0P^dU z{rWxiCe3hFeMZre@*T8N%KCB|=q+=sE_gx1UVITupz}`SgF5PxOMI}ttS48j1mI<N zY>CT@tUq-`*WD}Ndz1;yH2r-Fpm7TUdh-A9LJB*&k}fI-xp5i-CBNP2taX|$$|-_j z$vr6gQ^CGmqBazqw~|6kxab@{Ei|2;3oz-DqCF@uL4EH!yB(i2)Z@q+$K7}MbdaRz ziRf302N9MOttF7>h^aNaurj(Kecz_VBrN~KM(hZ6&TGbD2sl@wZ}4K=PSyCfyl|WZ zE-pn4+78kczLAew$|lXxItgD}58f*PkXLeo{a)}~s!qX@ra<y=t&@w@dq!9xIsH{( zMnXRWP6<E@j^5KEjuXa8!WfIH&3>fXj(+GU=N0#xWa9dWB3~iVFFeCF*y8q%Gi=0n zRr~Ta+R$|Hfh&sbFNm<8vs8N=Ka6QRJs!9gAX9B{1xy^W#`vNH{Df;23<I+!FTPw4 zhW>|Fj73MK;Jrd4e*-U@ZUv;+3_IeWhd%ZWR~SgySlPg$ciC?PP_eG4gq;S|B8g7E zdmHMf&0!p!p%Gag<j+r2a=|_0e-BgEmPv8+rAj+#Ag@ltZ6hmx;!Dc%4_T^<PpyZn zIXok9fu%~sVeovS>DOAq!Wc1}mdQlo3>iB+XW=N3^5a?FFSa<&)-P#UYfY%=C#IJ^ zplY4q6r-qLL=vcG<QED>whS-;Efo_$GCP(!;H)A}SO@*MX@K1$SE{TO24{m8J)#hC zL9&z2XnckJG>5>_P&A6Eu2szh{J4__&}H&DS-{Ow>+AWC%qvu?FGDrLwF-?VwY_-- zSyiHKOa&mTrfAWRpwy`qA)IZg3Oo$%2mkY}MjJd;4`4K5YSp(Cc@)h`#sZ1LA07zq zfl#blXP!19%X}E$9@G3w^S_Wl;W#KNXv#Eyv<=OV=B)Xv&EX~CEj*SFT(AobawVSh zZ9K<Z_cG1Lxk2*#kDK15Oe~=uc$F1j+_Q`I`=V1oOX^v0ifm)C&;}=~Nys{soHs-L zK42dnEC)z>vw1r^cOr-;sTwoZ3{Ee68Mj-9V+s#L1-v=N^1II$BfM{vn~W-A8a|kc z{kUu0L^LUW=S7KLAjx3C>0W)ueiG*qp;NE4hq}012rvSM<2&tk>2HjSjuy@rZE?pv zANb>c$)h8TVMTYU#drgr2m}ge(&iA)7#u7wqj!z%3Ft=tcq0~<$S1j#r(sag@?fXS z^RcGSh{1uMCK0N%VgT;_)~ru~&eTl;(S$L~Nvd&1XYJnS&esxSeHxhOx~38ycdadn z*l(~jqpa7e%l~;V24ZIW7OGbYUG;AB?<yBxykxVs7O-?Jo-Y{+s)*`W$LXQQKB43@ zXj@q=G!B+09y>~TyPIqy{&|4TGS-xlfBTGZQ7AGYl)zNNzGF8G;Dg3o;`RX<;t7s# zt;ToS+fi;cdj|F?Ff!#2C(7JPwD{tTwQ@!)^h~nEvHo_OTG@Qd0en#!M{4~?@4#Pi zHKAc^dE}nG*|2Jo31fHC+*9+}zwYJMG_4F2+r^>AaC72`$LAq6HNMo_Gf8c?OVU0g z1i~$~4mgIp`W~VLsVQDx!R84`gUGubTzJWK=yLCVk_vapAuZqRHS<~4_&TxMu%ULx z&cUR}Ow`dJP{<I*<&v3L_6f=ZQy_S*sWduyhmanNZ0}#e`TcKg=L2{aF96No4-Y~N zK82pf<-+$$F75NbITCM6*dLv>Xoxomt~wkFlzMf45>`PsL~`um8K54%Lf%SaK~J9P zZ8;%Sg%NMQP`lKB?=Nm|ODME{1a^^x@?ywxNM`g7I3_;}1mS1CGA0V_d{%+4Nd_g) zZMI~*LrG;mI3M@q^jPIq@d*~aqk!KsjNc?{r8%Y<(EHbh*2d`iC)lQ^{M1Kf&XjJ= z_@-Dv@{e+&*S|LOn&6x<8y?gp?YWCWEJQ7fGf)80%qn{{JAVZ|k-_=r1lGqMg63$g zwX;+k*A7$4&KMM>=feS~kOOp<wx--ZvnY@2N3pK4TbQf)L1pS;sdYEK#y0tbnn;56 zD|3O5l8@{_R^+p~MNZ7KAsK>00LPJU7l;B$UOVuqU59vCXb)NyY29((sIWOQok+n5 z)_u#yEQ#}Nct&01FMZa-d_*pUu+NLGf<%2QRh=7IB**>C=t+ggL;hFo5;+LgySTCH z@PgRo6`~Bj4u4xVQw+|2kTvYch2c1!LtmgbL=;M^U!$tD+SRk7Y^I(I_&>Tu*P0?b z?0)&Kp-`j^HL|}4?Y($mPhY}|zpU>VXpY>Bv?26aV?O*iCtNfc6Y|z06Ok{T%O;DK z>8q5OXad`7XccudRNwGiPPj>uhyVBysILOeu!jAUNKr2^&@BHp1+{$rcuxY2a+R+L z42A1JV$Ym_`k*JjXw3>Y46+vHz2LD-UOJ5TAle&8G{$L3oCiny=h6FvA*R@T!lkFU z3pX2t5vhB-4ZM1J5l)pzyFcxY#tx9wgFpWwksrF{W>rBv2vU6zYAyk-_(J2-8O%7I zUT@K5#L1)QIUfmyay%vX2Cqu_jd4`}M0^q>nNxS229T!BQ2fMlGN+;0tgw~XC*k$T zd_+4pSE30wPza@8&p$AH_yl(i;Ixjr0klk#&pRL?1O<0}Ly?)7JwCU|_=(Xuz5A3i zyoMY4?2D2M&B{7ZI@93);soSP?&9BJVrA=C3O(d*D|@L_9rknjV_*x%vFf%5ZUWUQ zF_v}BMsF;C#-QuqV`_IUI!G$EtN<t>YxV@dfeYabF3pB6s4b8LAO8+@$>ntzrW)u( z`k<51cA)ORot)sQO>`m@dX}EiImYn6!Z!L|!K9^>AkUq_I@)7#7aKx8@dR$(|7#LZ zGv^?(I&yXm05iqCEpB5@X4W{d#16fcKep2mw^uhWnqpHV59SmeF{ldktBd6%m!Oa! zm*9c93IyB)s`2L9@MP@d>~rRU75;H`Qb8bdP<pZ^$_|=!*J8~=z~9Arde8Zl+AYPD zy8YrlE4rCq&lrziX*WPhxfz>frDfnn#1u*6f!IWUb1%e@n>bKoplPq_E$&TLU4B(M zhz3drXM^n}R$*tVDCLtjXyUp`gZvgTP5_g8^olsb*7B-u(6NYjv4MY^&)&eER`}b| zWsc1sGt+raOw8VEm>NqmXZ{eyR+TGo_DUD%IO_59AHt#GwAC`gf4s<a%bce*-IQED ze+`2mzwQfe!qv=8>O73Pr3!QoWL~FC68gpL*B@MZ>R<>2aY*8Y)Bbq`l449|JD=EW zXHsiQlyEWo19db(cX-~KpHiL<{G+pw#trEZF4X?7)t*3^DERLssN0+c_spmsC|o5X Of<DsMs8qLq_5T1lpst4i literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/drop-box-arrow.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/drop-box-arrow.svg new file mode 100644 index 00000000..36998486 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/drop-box-arrow.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#65B2E4" width="18px" height="18px"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-black.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-black.svg new file mode 100644 index 00000000..76859fe7 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-black.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="18px" height="18px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-white.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-white.svg new file mode 100644 index 00000000..740fef6f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/info-white.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="18px" height="18px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg> \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/pastis-picto-retour.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/pastis-picto-retour.svg new file mode 100644 index 00000000..a1c3beeb --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/pastis-picto-retour.svg @@ -0,0 +1,4 @@ +<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M1.12695 6.74365L11.597 6.74365" stroke="#65B2E4" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> +<path d="M6.1395 1.60576L1.125 6.74026L6.1395 11.8748" stroke="#65B2E4" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-blue.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-blue.svg new file mode 100644 index 00000000..5dac03f8 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-blue.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM17 13H13V17H11V13H7V11H11V7H13V11H17V13Z" fill="#65B2E4"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-grey.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-grey.svg new file mode 100644 index 00000000..389929e1 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/plus-grey.svg @@ -0,0 +1,3 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM17 13H13V17H11V13H7V11H11V7H13V11H17V13Z" fill="#A3A3A3"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/save.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/save.svg new file mode 100644 index 00000000..dcdfd765 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/save.svg @@ -0,0 +1,5 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M2 19V4C2 2.89543 2.89543 2 4 2H16.0429C16.1755 2 16.3027 2.05268 16.3964 2.14645L20.8536 6.60355C20.9473 6.69732 21 6.8245 21 6.95711V19C21 20.1046 20.1046 21 19 21H4C2.89543 21 2 20.1046 2 19Z" stroke="white" stroke-linejoin="round"/> +<circle cx="11.8955" cy="15.0625" r="3.5625" stroke="white"/> +<path d="M4.85059 5.35327C4.85059 5.07713 5.07444 4.85327 5.35059 4.85327H14.8006C15.0767 4.85327 15.3006 5.07713 15.3006 5.35327V9.10327C15.3006 9.37941 15.0767 9.60327 14.8006 9.60327H5.35059C5.07444 9.60327 4.85059 9.37941 4.85059 9.10327V5.35327Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/setting.svg b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/setting.svg new file mode 100644 index 00000000..fa351277 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/setting.svg @@ -0,0 +1,4 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M12.0001 16.2605C9.54907 16.2605 7.55566 14.2671 7.55566 11.816C7.55566 9.36498 9.551 7.37158 12.0001 7.37158C14.4512 7.37158 16.4446 9.36498 16.4446 11.816C16.4465 14.2671 14.4512 16.2605 12.0001 16.2605ZM12.0007 8.86464C10.3718 8.86464 9.04547 10.191 9.04547 11.8198C9.04547 13.4507 10.3718 14.775 12.0007 14.775C13.6295 14.775 14.9559 13.4487 14.9559 11.8198C14.9578 10.189 13.6314 8.86464 12.0007 8.86464Z" fill="#65B2E4"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M12.0082 22C11.5689 22 11.1236 21.9698 10.6843 21.9113C10.3881 21.871 10.1403 21.6635 10.0496 21.3794C9.838 20.7144 9.34833 20.1805 8.70755 19.9124C8.07078 19.6464 7.33528 19.6787 6.7207 19.993C6.45472 20.13 6.13232 20.0998 5.89452 19.9185C5.1973 19.3824 4.57668 18.7598 4.05077 18.0687C3.86942 17.8309 3.8412 17.5105 3.97823 17.2445C4.30064 16.6199 4.33489 15.8985 4.07495 15.2658C3.81501 14.633 3.28101 14.1474 2.61205 13.9318C2.32794 13.8391 2.1224 13.5933 2.08413 13.2971C1.97129 12.4346 1.97129 11.5561 2.08816 10.6856C2.12847 10.3894 2.33601 10.1415 2.62011 10.0508C3.28509 9.83926 3.81904 9.3496 4.08708 8.7068C4.35508 8.06601 4.32485 7.34062 4.00648 6.71995C3.86946 6.45397 3.89968 6.13157 4.08305 5.89377C4.61907 5.19655 5.2417 4.57794 5.93283 4.05002C6.17061 3.86867 6.49098 3.84046 6.75701 3.97748C7.37561 4.29787 8.10306 4.33616 8.73575 4.0742C9.36849 3.81426 9.85411 3.28026 10.0717 2.61131C10.1644 2.32719 10.4102 2.12165 10.7065 2.08339C11.5649 1.97054 12.4495 1.97256 13.3179 2.08742C13.6141 2.12772 13.862 2.33527 13.9527 2.61936C14.1643 3.28434 14.6539 3.8183 15.2947 4.08633C15.9335 4.35231 16.669 4.32007 17.2816 4.00573C17.5476 3.86871 17.8699 3.89893 18.1078 4.08028C18.805 4.6163 19.4256 5.23893 19.9515 5.93007C20.1329 6.16784 20.1611 6.48822 20.024 6.75424C19.7016 7.37888 19.6674 8.1003 19.9273 8.73299C20.1873 9.36573 20.7213 9.85135 21.3902 10.0669C21.6743 10.1596 21.8799 10.4054 21.9181 10.7017C22.031 11.5641 22.031 12.4427 21.9141 13.3132C21.8738 13.6094 21.6663 13.8572 21.3822 13.9479C20.7172 14.1595 20.1832 14.6492 19.9152 15.292C19.6472 15.9327 19.6774 16.6581 19.9958 17.2788C20.1328 17.5448 20.1026 17.8672 19.9192 18.105C19.3832 18.8022 18.7606 19.4208 18.0694 19.9487C17.8317 20.1301 17.5113 20.1583 17.2453 20.0213C16.6267 19.7029 15.8992 19.6646 15.2665 19.9245C14.6358 20.1845 14.1482 20.7185 13.9306 21.3874C13.8379 21.6716 13.592 21.8771 13.2958 21.9154C12.8706 21.9698 12.4374 22 12.0082 22V22ZM11.1872 20.7497C11.6491 20.7857 12.1109 20.7878 12.5728 20.7518C13.0093 19.8323 13.7635 19.1055 14.7021 18.7179C15.6365 18.3322 16.6895 18.3153 17.6471 18.6606C17.9967 18.3619 18.3251 18.0357 18.6281 17.6818C18.287 16.7263 18.3103 15.6754 18.7065 14.7283C19.1006 13.7813 19.8294 13.0228 20.7489 12.5906C20.7849 12.1287 20.787 11.6647 20.751 11.2049C19.8315 10.7685 19.1048 10.0142 18.7171 9.07352C18.3294 8.13492 18.3145 7.08616 18.6599 6.12852C18.3611 5.77894 18.0349 5.45054 17.681 5.14756C16.7276 5.48655 15.6662 5.46113 14.7276 5.06917C13.7805 4.67509 13.022 3.94627 12.5898 3.02887C12.1279 2.99074 11.6661 2.99074 11.2042 3.02675C10.7677 3.94626 10.0135 4.673 9.07486 5.0607C8.14049 5.44631 7.0875 5.46326 6.12986 5.11791C5.78028 5.41664 5.45188 5.7429 5.1489 6.09675C5.49002 7.05228 5.46671 8.10315 5.07051 9.05021C4.67643 9.99728 3.94761 10.7558 3.0281 11.188C2.99208 11.6499 2.98996 12.1138 3.02598 12.5736C3.94549 13.0101 4.67223 13.7643 5.05993 14.705C5.44765 15.6436 5.46248 16.6924 5.11714 17.65C5.41587 17.9996 5.74213 18.328 6.09598 18.631C7.0515 18.292 8.11084 18.3195 9.04944 18.7094C9.99862 19.1035 10.7529 19.8323 11.1872 20.7497Z" fill="#65B2E4"/> +</svg> diff --git a/ui/ui-frontend/projects/pastis/src/assets/svg/icons/simple_icon.png b/ui/ui-frontend/projects/pastis/src/assets/svg/icons/simple_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..daae5b8d4a3e59238bba26e6282ad4715b23f895 GIT binary patch literal 15644 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 E0N3YZd;kCd literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/environments/IEnvironment.ts b/ui/ui-frontend/projects/pastis/src/environments/IEnvironment.ts new file mode 100644 index 00000000..b459fa78 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/environments/IEnvironment.ts @@ -0,0 +1,41 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +export interface IEnvironment { + production: boolean; + apiServerUrl?: string; +} diff --git a/ui/ui-frontend/projects/pastis/src/environments/environment.dev.ts b/ui/ui-frontend/projects/pastis/src/environments/environment.dev.ts new file mode 100644 index 00000000..95c32bc3 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/environments/environment.dev.ts @@ -0,0 +1,43 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import { IEnvironment } from './IEnvironment'; + +export const environment: IEnvironment = { + production: false, + apiServerUrl: "http://localhost:8051", +}; diff --git a/ui/ui-frontend/projects/pastis/src/environments/environment.rec.ts b/ui/ui-frontend/projects/pastis/src/environments/environment.rec.ts new file mode 100644 index 00000000..76f441ea --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/environments/environment.rec.ts @@ -0,0 +1,43 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import{IEnvironment} from './IEnvironment' + +export const environment: IEnvironment= { + production: false, + apiServerUrl: "http://localhost:8051", +}; diff --git a/ui/ui-frontend/projects/pastis/src/environments/environment.rpm.ts b/ui/ui-frontend/projects/pastis/src/environments/environment.rpm.ts new file mode 100644 index 00000000..2b7433cf --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/environments/environment.rpm.ts @@ -0,0 +1,44 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import{IEnvironment} from './IEnvironment' +import * as config from '../assets/config/config.json'; + +export const environment: IEnvironment= { + production: true, + apiServerUrl: config.apiPastisUrl, +}; diff --git a/ui/ui-frontend/projects/pastis/src/environments/environment.ts b/ui/ui-frontend/projects/pastis/src/environments/environment.ts new file mode 100644 index 00000000..0a0ec376 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/environments/environment.ts @@ -0,0 +1,56 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +import{IEnvironment} from './IEnvironment' + +export const environment: IEnvironment= { + production: false, + apiServerUrl: "http://localhost:8051" +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/ui/ui-frontend/projects/pastis/src/favicon.ico b/ui/ui-frontend/projects/pastis/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e0cfb0943da813c162cd6c15cc88540444f7cf43 GIT binary patch literal 766 zcmbu7Jx;_h5QS&K?y0B{O34+FK%_9e3w#n9q?Jfc00-J8-Clx*3Ob-#qQDN{<PW@} zL5%(EdGqGSks`8S6~)1|V9$FZhukNi03}$6;}ogUezzJCrLKpI6BpFdG!26GTU5;h zEDLc&VS68wc=0ZJ_+?6Bj3o~4?GYpQksK-#MYdu@EC~%65eX4x;3A1k+NCR>l7}Ju z-&~pZ_%jbX^&t<q5JEO0lrGC)U{+!e_^t?I*>eR>?@t|!Sn^zeW4@b4Ld?$^{N&^8 zIiE}`bzn5!pMQbzNzCrgmu{=N;#XMd=Amm<JJlsPUv3EI_5|I<8?o05%I;NL#FoGf dZO%Rnl^)$zdJOKWO4nNHBjesrRk!<n?=PIqqG|vD literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/favicon_old.ico b/ui/ui-frontend/projects/pastis/src/favicon_old.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 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 literal 0 HcmV?d00001 diff --git a/ui/ui-frontend/projects/pastis/src/index.html b/ui/ui-frontend/projects/pastis/src/index.html new file mode 100644 index 00000000..29935c3c --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/index.html @@ -0,0 +1,28 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Pastis</title> + <base href="/"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="icon" type="image/x-icon" href="./favicon.ico"> + <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet"> + <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> + <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap" rel="stylesheet"> +</head> +<body> + <script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.4.10/d3.min.js"></script> + <script src="./assets/js/class-diagram.js"></script> + <script src="./assets/js/multiline-text.js"></script> + <app-root></app-root> +</body> +<script> + // Used for fix aspect zoom ratio of page + //if(window.devicePixelRatio >= 1 ) + //var body = document.getElementsByTagName("BODY")[0]; + //var newZoomRatio = 100 - ((window.devicePixelRatio * 100) - 100) + '%' + //body.style.setProperty('zoom', newZoomRatio); + //console.error("new devicePixelRatio is : " , devicePixelRatio); + //body.classList.addClass("zoom2x") +</script> +</html> diff --git a/ui/ui-frontend/projects/pastis/src/main.ts b/ui/ui-frontend/projects/pastis/src/main.ts new file mode 100644 index 00000000..7b22a63b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/main.ts @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +import 'hammerjs'; +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/ui/ui-frontend/projects/pastis/src/polyfills.ts b/ui/ui-frontend/projects/pastis/src/polyfills.ts new file mode 100644 index 00000000..0f97f955 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/polyfills.ts @@ -0,0 +1,101 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// 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 + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags.ts'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (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__UNPATCHED_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. +import 'hammerjs'; + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/ui/ui-frontend/projects/pastis/src/styles.scss b/ui/ui-frontend/projects/pastis/src/styles.scss new file mode 100644 index 00000000..aea42d4e --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/styles.scss @@ -0,0 +1,15 @@ +html, body { height: 100%; } +body { margin: 0; font-family: Roboto } + +@import '~@angular/material/prebuilt-themes/deeppurple-amber.css'; + +// Used to import original toastr component +//@import '~ngx-toastr/toastr'; + +@import 'theme.scss' + +// @import '~bootstrap/scss/functions'; +// @import '~bootstrap/scss/variables'; +// @import '~bootstrap/scss/mixins'; +// @import '~ngx-toastr/toastr-bs4-alert'; + diff --git a/ui/ui-frontend/projects/pastis/src/test.ts b/ui/ui-frontend/projects/pastis/src/test.ts new file mode 100644 index 00000000..68586c4f --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/test.ts @@ -0,0 +1,57 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/ui/ui-frontend/projects/pastis/src/theme.scss b/ui/ui-frontend/projects/pastis/src/theme.scss new file mode 100644 index 00000000..4e42cdaf --- /dev/null +++ b/ui/ui-frontend/projects/pastis/src/theme.scss @@ -0,0 +1,25 @@ +@import '~@angular/material/theming'; + + +// Pastis styles +@import 'assets/css/colors'; +@import 'assets/css/mixins'; +@import 'assets/css/variables'; +@import 'assets/css/layout'; +@import 'assets/css/font'; +@import 'assets/css/toaster'; +@import 'assets/css/input'; + +@include mat-core(); + +/* ======== Angular material custom themes ======== */ + +$my-custom-primary: mat-palette($mat-deep-purple); +$my-custom-accent: mat-palette($mat-pink, 100, 500, A100); +$my-custom-warn: mat-palette($mat-lime); + +$my-custom-theme: mat-light-theme($my-custom-primary, $my-custom-accent, $my-custom-warn); + + +@include angular-material-theme($my-custom-theme); +@include mat-button-toggle-theme($my-custom-theme); diff --git a/ui/ui-frontend/projects/pastis/stylemark.yml b/ui/ui-frontend/projects/pastis/stylemark.yml new file mode 100644 index 00000000..835aeb4b --- /dev/null +++ b/ui/ui-frontend/projects/pastis/stylemark.yml @@ -0,0 +1,65 @@ +name: Pastis Style Guide + +excludeDir: +#- dist +#- docs + +assets: + - src/assets +#- fonts + +theme: + logo: src/assets/pastis-marseille_blue_crop.jpg + + css: + #- theme/theme.css + - src/assets/css/angular-material.min.css + - src/assets/css/bootstrap.min.css + - src/assets/css/bootstrap.css + + js: + #- theme/theme.js + + sidebar: + background: "#3b2a55" + textColor: "#fff" + +examples: + css: + - src/assets/css/angular-material.min.css + - src/assets/css/bootstrap.min.css + - src/assets/css/bootstrap.css + - node_modules/@angular/material/prebuilt-themes/indigo-pink.css + + + js: + - https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js + - https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js + - https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular-animate.min.js + - https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular-aria.min.js + - https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular-messages.min.js + - https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js + - https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js + - https://ajax.googleapis.com/ajax/libs/angular_material/1.1.10/angular-material.min.js + - https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js + - src/assets/js/angular-material.min.js + - src/assets/js/angular.js + + + doctypeTag: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> + htmlTag: <html id="acme"> + bodyTag: <body ng-app="BlankApp" ng-cloak> + + headHtml: | + <meta name="viewport" content="width=device-width, initial-scale=1"> + <script type="text/javascript"> + window.disableRouting = true; + angular.module('BlankApp', ['ngMaterial', 'ngMessages']); + </script> + + bodyHtml: | + <div style="padding: 20px"> + {html} + </div> + + webpackAppPath: \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/tsconfig.app.json b/ui/ui-frontend/projects/pastis/tsconfig.app.json new file mode 100644 index 00000000..bd8ca458 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "src/test.ts", + "src/**/*.spec.ts" + ] +} diff --git a/ui/ui-frontend/projects/pastis/tsconfig.spec.json b/ui/ui-frontend/projects/pastis/tsconfig.spec.json new file mode 100644 index 00000000..f34231d4 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/tsconfig.spec.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts", "extends": "./tsconfig.json", + + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/ui/ui-frontend/projects/pastis/tslint.json b/ui/ui-frontend/projects/pastis/tslint.json new file mode 100644 index 00000000..188bd78d --- /dev/null +++ b/ui/ui-frontend/projects/pastis/tslint.json @@ -0,0 +1,92 @@ +{ + "extends": "tslint:recommended", + "rules": { + "array-type": false, + "arrow-parens": false, + "deprecation": { + "severity": "warn" + }, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ], + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "interface-name": false, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-consecutive-blank-lines": false, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-use-before-declare": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "object-literal-sort-keys": false, + "ordered-imports": false, + "quotemark": [ + true, + "single" + ], + "trailing-comma": false, + "no-conflicting-lifecycle": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "template-banana-in-box": true, + "template-no-negated-async": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true + }, + "rulesDirectory": [ + "codelyzer" + ] +} \ No newline at end of file diff --git a/ui/ui-frontend/projects/pastis/zalenium/docker-compose.yml b/ui/ui-frontend/projects/pastis/zalenium/docker-compose.yml new file mode 100644 index 00000000..945924c3 --- /dev/null +++ b/ui/ui-frontend/projects/pastis/zalenium/docker-compose.yml @@ -0,0 +1,25 @@ +# Usage: + # docker-compose up --force-recreate + version: '2.1' + + services: + #--------------# + zalenium: + image: "dosel/zalenium" + container_name: zalenium + hostname: zalenium + tty: true + volumes: + - /pastis/protractor-zalenium/videos:/home/seluser/videos + - /var/run/docker.sock:/var/run/docker.sock + ports: + - 4444:4444 + command: > + start --desiredContainers 2 + --maxDockerSeleniumContainers 8 + --screenWidth 1900 --screenHeight 1000 + --videoRecordingEnabled true + --keepOnlyFailedTests false + environment: + - HOST_UID + - HOST_GID \ No newline at end of file diff --git a/ui/ui-frontend/tsconfig.json b/ui/ui-frontend/tsconfig.json index 30831d52..b2136d8b 100644 --- a/ui/ui-frontend/tsconfig.json +++ b/ui/ui-frontend/tsconfig.json @@ -1,5 +1,5 @@ { - "compileOnSave": false, + "compileOnSave": true, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", @@ -18,7 +18,7 @@ "es2018", "dom" ], - "noImplicitAny": true, + "noImplicitAny": false, "paths": { "vitamui-demo": [ "./projects/demo/src" @@ -37,9 +37,12 @@ ], "vitamui-library/*": [ "dist/vitamui-library/*" + ], + "vitamui-pastis/*": [ + "./projects/pastis/src/app/" ] }, - "noUnusedLocals": true, - "noUnusedParameters": true + "noUnusedLocals": false, + "noUnusedParameters": false } } diff --git a/ui/ui-pastis/.gitignore b/ui/ui-pastis/.gitignore new file mode 100644 index 00000000..0ef18ac2 --- /dev/null +++ b/ui/ui-pastis/.gitignore @@ -0,0 +1,173 @@ + +# Created by https://www.gitignore.io/api/eclipse +# Edit at https://www.gitignore.io/?templates=eclipse + +#PASTIS +#test generated file" +generated_test.xml +logs/*.* +### Eclipse ### +.metadata +bin/fe +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +### Eclipse Patch ### +# Eclipse Core +.project + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Annotation Processing +.apt_generated + +.sts4-cache/ + +# End of https://www.gitignore.io/api/eclipse +/target/ + + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf +.DS_Store +.idea/ + + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +.idea/modules.xml +.idea/*.iml +.idea/modules +*.iml +*.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/**/sonarlint/ + +# SonarQube Plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator/ + +# End of https://www.gitignore.io/api/intellij diff --git a/ui/ui-pastis/META-INF/MANIFEST.MF b/ui/ui-pastis/META-INF/MANIFEST.MF new file mode 100644 index 00000000..a3e5c1c2 --- /dev/null +++ b/ui/ui-pastis/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: rest-api;singleton:=true +Automatic-Module-Name: rest-api +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/ui/ui-pastis/build.properties b/ui/ui-pastis/build.properties new file mode 100644 index 00000000..4ad8a088 --- /dev/null +++ b/ui/ui-pastis/build.properties @@ -0,0 +1,9 @@ +# +bin.includes = .,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/ui/ui-pastis/plugin.properties b/ui/ui-pastis/plugin.properties new file mode 100644 index 00000000..63024216 --- /dev/null +++ b/ui/ui-pastis/plugin.properties @@ -0,0 +1,4 @@ +# + +pluginName = Vitam Model +providerName = www.example.org diff --git a/ui/ui-pastis/plugin.xml b/ui/ui-pastis/plugin.xml new file mode 100644 index 00000000..7ac51d15 --- /dev/null +++ b/ui/ui-pastis/plugin.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- +--> + +<plugin> + +</plugin> diff --git a/ui/ui-pastis/pom.xml b/ui/ui-pastis/pom.xml new file mode 100644 index 00000000..6aee48c8 --- /dev/null +++ b/ui/ui-pastis/pom.xml @@ -0,0 +1,247 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <packaging>jar</packaging> + <url>http://maven.apache.org</url> + <artifactId>rest-api</artifactId> + <name>PASTIS-API</name> + + <parent> + <groupId>fr.gouv.vitamui</groupId> + <artifactId>ui-parent</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + <properties> + <!-- Generic properties --> + <maven.compile.target>1.8</maven.compile.target> + <maven.compile.source>1.8</maven.compile.source> + <java.version>11</java.version> + </properties> + + <dependencies> + + <!--Start of Jaxb API and it's implementation and dependencies- Java11--> + <dependency> + <groupId>javax.xml.bind</groupId> + <artifactId>jaxb-api</artifactId> + <version>2.3.1</version> + </dependency> + + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + <version>2.3.1</version> + </dependency> + + <dependency> + <groupId>com.sun.istack</groupId> + <artifactId>istack-commons-runtime</artifactId> + <version>4.0.0-M2</version> + </dependency> + + <!--End of Jaxb API and it's implementation and dependencies- Java11--> + + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20180813</version> + </dependency> + + <dependency> + <groupId>javax.xml.parsers</groupId> + <artifactId>jaxp-api</artifactId> + <version>1.4.5</version> + </dependency> + + <!-- Start of SpringBoot starter web (Tomcat by default) and starter test--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + <version>2.2.6.RELEASE</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-tomcat</artifactId> + <version>2.2.6.RELEASE</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + <version>2.2.6.RELEASE</version> + <exclusions> + <exclusion> + <groupId>com.vaadin.external.google</groupId> + <artifactId>android-json</artifactId> + </exclusion> + </exclusions> + </dependency> + <!-- End of SpringBoot starter web and starter test--> + + <dependency> + <groupId>com.fasterxml</groupId> + <artifactId>jackson-xml-databind</artifactId> + <version>0.6.2</version> + </dependency> + + <dependency> + <groupId>com.thaiopensource</groupId> + <artifactId>jing</artifactId> + <version>20091111</version> + <exclusions> + <exclusion> + <groupId>xml-apis</groupId> + <artifactId>xml-apis</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.saxon</groupId> + <artifactId>saxon</artifactId> + </exclusion> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>com.thaiopensource</groupId> + <artifactId>trang</artifactId> + <version>20091111</version> + <exclusions> + <exclusion> + <groupId>xml-apis</groupId> + <artifactId>xml-apis</artifactId> + </exclusion> + <exclusion> + <groupId>net.sf.saxon</groupId> + <artifactId>saxon</artifactId> + </exclusion> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.opengis.cite.xerces</groupId> + <artifactId>xercesImpl-xsd11</artifactId> + <version>2.12-beta-r1667115</version> + </dependency> + + <dependency> + <groupId>xml-resolver</groupId> + <artifactId>xml-resolver</artifactId> + <version>1.2</version> + </dependency> + + </dependencies> + + <!-- Start of profiles --> + <profiles> + <!-- Profile 1 - Production --> + <profile> + <id>prod</id> + <!-- Start of production plugins --> + <build> + + <plugins> + <!-- SpringBoot maven plugin--> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <executions> + <execution> + <configuration> + <mainClass>fr.gouv.vitamui.pastis.PastisRestApplication</mainClass> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Read the application.properties files with the properties plug-in --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>properties-maven-plugin</artifactId> + <version>1.0-alpha-2</version> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>read-project-properties</goal> + </goals> + <configuration> + <files> + <file>${project.basedir}/src/main/resources/application.properties</file> + </files> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + + <!-- Tests --> + <testResources> + <testResource> + <directory>${project.basedir}/src/test/resources</directory> + </testResource> + </testResources> + + <finalName>PastisApi</finalName> + + </build> + + </profile> + <!-- End of Prod profile --> + + <!-- Start of Dev profile --> + <profile> + <id>dev</id> + <build> + <!-- Start of dev profile plugins --> + <plugins> + <!-- SpringBoot maven plugin--> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>2.2.6.RELEASE</version> + </plugin> + <!-- Read the application.properties files with the properties plug-in --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>properties-maven-plugin</artifactId> + <version>1.0-alpha-2</version> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>read-project-properties</goal> + </goals> + <configuration> + <files> + <file>${project.basedir}/src/main/resources/application.properties</file> + </files> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + + <!-- Tests --> + <testResources> + <testResource> + <directory>${project.basedir}/src/test/resources</directory> + </testResource> + </testResources> + <finalName>${war.dev.filename}</finalName> + </build> + </profile> + <!-- End of Dev profile --> + + </profiles> +</project> diff --git a/ui/ui-pastis/question.xml b/ui/ui-pastis/question.xml new file mode 100644 index 00000000..b25b5d3d --- /dev/null +++ b/ui/ui-pastis/question.xml @@ -0,0 +1,962 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<rng:element name="ArchiveTransfer"> + <xsd:annotation> + <xsd:documentation>Pour controler manifest xml Vitam</xsd:documentation> + </xsd:annotation> + <rng:zeroOrMore> + <rng:attribute/> + </rng:zeroOrMore> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="Comment"/> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"/> + <rng:element name="ArchivalAgreement"/> + <rng:element name="CodeListVersions"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="ReplyCodeListVersion"> + <rng:value type="token">ReplyCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="MessageDigestAlgorithmCodeListVersion"> + <rng:value type="token">MessageDigestAlgorithmCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="MimeTypeCodeListVersion"> + <rng:value type="token">MimeTypeCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="EncodingCodeListVersion"> + <rng:value type="token">EncodingCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="FileFormatCodeListVersion"> + <rng:value type="token">FileFormatCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="CompressionAlgorithmCodeListVersion"> + <rng:value type="token">CompressionAlgorithmCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectVersionCodeListVersion"> + <rng:value type="token">DataObjectVersionCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="StorageRuleCodeListVersion"> + <rng:value type="token">StorageRuleCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRuleCodeListVersion"> + <rng:value type="token">AppraisalRuleCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="AccessRuleCodeListVersion"> + <rng:value type="token">AccessRuleCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRuleCodeListVersion"> + <rng:value type="token">DisseminationRuleCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="ReuseRuleCodeListVersion"> + <rng:value type="token">ReuseRuleCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="ClassificationRuleCodeListVersion"> + <rng:value type="token">ClassificationRuleCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="AuthorizationReasonCodeListVersion"> + <rng:value type="token">AuthorizationReasonCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="RelationshipCodeListVersion"> + <rng:value type="token">RelationshipCodeListVersion0</rng:value> + </rng:element> + <rng:optional> + <rng:attribute name="listName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listSchemeURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listAgencyName"> + <rng:data type="string"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listURI"> + <rng:data type="anyURI"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:attribute name="listVersionID"> + <rng:data type="token"/> + </rng:attribute> + </rng:optional> + </rng:optional> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="BinaryDataObject"> + <xsd:annotation> + <xsd:documentation>Mon premier binaire</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="hexBinary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:optional> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"/> + <rng:element name="CreatingApplicationName"/> + </rng:element> + </rng:element> + <rng:element name="BinaryDataObject"> + <xsd:annotation> + <xsd:documentation>Mon deuxieme bianire</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="hexBinary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:optional> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"/> + </rng:element> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Mon arborescense attendue</xsd:documentation> + </xsd:annotation> + </rng:element> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"/> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"/> + <rng:element name="Title"/> + <rng:element name="Description"/> + <rng:optional> + <rng:element name="CustodialHistory"/> + <rng:element name="CustodialHistoryItem"/> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DocumentType"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Language"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Status"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Version"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Keyword"/> + <rng:optional> + <rng:attribute name="id"> +<rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="KeywordContent"/> + </rng:optional> + <rng:optional> + <rng:element name="KeywordType"/> + <rng:optional> +<rng:attribute name="listVersionID"/> + </rng:optional> + </rng:optional> + </rng:optional> + <rng:element name="OriginatingAgency"> + <rng:element name="Identifier"> + <rng:value>CDC</rng:value> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="Otherfindaid"/> + <rng:element name="p"/> + </rng:optional> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Men répertoire</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"/> + <rng:element name="Title"/> + <rng:element name="Description"/> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Mes sous répertoire</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"/> + <rng:element name="Title"/> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> +<xsd:documentation>Rattachement 1er binaire</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> +<rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> +<rng:element name="DescriptionLevel"/> +<rng:element name="Title"/> +<rng:zeroOrMore> + <rng:element name="Description"> + <rng:data type="string"/> + </rng:element> +</rng:zeroOrMore> + </rng:element> + <rng:element name="DataObjectReference"> +<xsd:annotation> + <xsd:documentation>Ma reference Objet</xsd:documentation> +</xsd:annotation> +<rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> +</rng:optional> +<rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> +</rng:element> + </rng:element> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> +<xsd:documentation>Rattachement 2eme binaire</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> +<rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> +<rng:element name="DescriptionLevel"/> +<rng:element name="Title"/> +<rng:element name="Description"/> + </rng:element> + <rng:element name="DataObjectReference"> +<xsd:annotation> + <xsd:documentation>Ma reference objet</xsd:documentation> +</xsd:annotation> +<rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> +</rng:optional> +<rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> +</rng:element> + </rng:element> + </rng:element> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:value>CDC</rng:value> + </rng:element> + <rng:optional> + <rng:element name="StorageRule"/> + <rng:optional> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + </rng:optional> + <rng:optional> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:optional> + <rng:element name="FinalAction"/> + </rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"/> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"/> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:value>CDC</rng:value> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <rng:element name="Identifier"> + <rng:value>CDC</rng:value> + </rng:element> + <rng:element name="OrganizationDescriptiveMetadata"> + <rng:element name="Name"> + <rng:value>CDC</rng:value> + </rng:element> + </rng:element> + </rng:element> +</rng:element> diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/PastisRestApplication.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/PastisRestApplication.java new file mode 100644 index 00000000..29277226 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/PastisRestApplication.java @@ -0,0 +1,57 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +@SpringBootApplication +public class PastisRestApplication extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(PastisRestApplication.class); + } + + public static void main(String[] args) { + SpringApplication.run(PastisRestApplication.class, args); + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/.gitkeep b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/PastisConfiguration.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/PastisConfiguration.java new file mode 100644 index 00000000..ceca7860 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/configuration/PastisConfiguration.java @@ -0,0 +1,63 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.configuration; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class PastisConfiguration { + + @Value("${cors.allowed-origins}") + private String origins; + + @Bean + public WebMvcConfigurer corsConfigurer() { + return new WebMvcConfigurer () { + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins(origins.split(",")) + .allowCredentials(true); + } + }; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/controller/ProfileController.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/controller/ProfileController.java new file mode 100644 index 00000000..89d11885 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/controller/ProfileController.java @@ -0,0 +1,176 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.controller; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.model.jaxb.*; +import fr.gouv.vitamui.pastis.util.PastisCustomCharacterEscapeHandler; +import fr.gouv.vitamui.pastis.util.PastisGetXmlJsonTree; +import fr.gouv.vitamui.pastis.util.PastisSAX2Handler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import java.io.*; +import java.net.URISyntaxException; + +@RestController +public class ProfileController { + + private static final Logger LOGGER = LoggerFactory.getLogger(ProfileController.class); + + private static final String APPLICATION_JSON_UTF8 = "application/json; charset=utf-8"; + + @Value("${rng.base.file}") + private String rngFile; + + @RequestMapping(value = "/updateprofile", method = RequestMethod.POST, consumes = APPLICATION_JSON_UTF8, produces = "application/xml") + public String updateprofile(@RequestBody final ElementProperties json) throws IOException { + + // Recover a statically generated BaliseXML by buildBaliseXMLTree + json.initTree(json); + BaliseXML.buildBaliseXMLTree(json,0, null); + BaliseXML eparentRng = BaliseXML.baliseXMLStatic; + String response = null; + Writer writer = null; + try { + JAXBContext contextObj = JAXBContext.newInstance(AttributeXML.class, ElementXML.class, DataXML.class, + ValueXML.class, OptionalXML.class, OneOrMoreXML.class, + ZeroOrMoreXML.class, AnnotationXML.class, DocumentationXML.class, + StartXML.class, GrammarXML.class,ChoiceXml.class); + Marshaller marshallerObj = contextObj.createMarshaller(); + marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshallerObj.setProperty("com.sun.xml.bind.marshaller.CharacterEscapeHandler", + new PastisCustomCharacterEscapeHandler()); + + ByteArrayOutputStream os = new ByteArrayOutputStream(); + writer = new OutputStreamWriter(os, "UTF-8"); + + marshallerObj.marshal(eparentRng, writer); + response = new String (os.toByteArray(), "UTF-8"); + + } catch (IOException e1) { + e1.printStackTrace(); + } catch (JAXBException e1) { + e1.printStackTrace(); + } + finally { + writer.close(); + } + + LOGGER.info("RNG profile generated successfully"); + return response; + } + + @RequestMapping(value = "/test", method = RequestMethod.GET) + public String test() { + + return "Pastis API is listening..."; + } + + @RequestMapping (value = "/getfile", method = RequestMethod.GET, produces = "text/plain") + public ResponseEntity<String> getFile() { + + InputStream rngFile = getClass().getClassLoader().getResourceAsStream("profile3.rng"); + if (rngFile != null) { + return new ResponseEntity<>(rngFile.toString(), HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + @RequestMapping (value = "/createprofile", method = RequestMethod.GET) + public ResponseEntity<String> createprofile() throws URISyntaxException { + PastisSAX2Handler handler = new PastisSAX2Handler(); + PastisGetXmlJsonTree getJson = new PastisGetXmlJsonTree(); + + try { + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + xmlReader.setContentHandler(handler); + + LOGGER.info("Starting rng edition profile with base file : {}", this.rngFile); + + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(this.rngFile); + InputSource inputSource = new InputSource(inputStream); + + xmlReader.parse(inputSource); + + } catch (SAXException | IOException e ) { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + return ResponseEntity.ok(getJson.getJsonParsedTree(handler.elementRNGRoot)); + } + + + @RequestMapping (value = "/createprofilefromfile", method = RequestMethod.POST, consumes = "multipart/form-data", produces = "application/json") + public ResponseEntity<String> createprofilefromfile(@RequestParam MultipartFile file ) { + + PastisSAX2Handler handler = new PastisSAX2Handler(); + PastisGetXmlJsonTree getJson = new PastisGetXmlJsonTree(); + + try { + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + xmlReader.setContentHandler(handler); + xmlReader.parse(new InputSource(file.getInputStream())); + } catch (IOException e) { + return new ResponseEntity<>("Error while processing file : ", HttpStatus.INTERNAL_SERVER_ERROR); + } catch (SAXException e) { + if (e instanceof SAXParseException) { + return new ResponseEntity<>("Erreur lors du chargement du profil, ligne " + ((SAXParseException) e).getLineNumber() + " colonne " + ((SAXParseException) e).getColumnNumber() + ": " + e.getMessage() , HttpStatus.INTERNAL_SERVER_ERROR); + } else { + return new ResponseEntity<>("Error while processing file : ", HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + return ResponseEntity.ok(getJson.getJsonParsedTree(handler.elementRNGRoot)); + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementProperties.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementProperties.java new file mode 100644 index 00000000..eed59f24 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementProperties.java @@ -0,0 +1,229 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import fr.gouv.vitamui.pastis.util.RNGConstants; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +public class ElementProperties implements Serializable { + + private static final long serialVersionUID = -5093112183496503253L; + + + public ElementProperties() { + super(); + } + + String name; + String type; + String cardinality; + String groupOrChoice; + String valueOrData; + String dataType; + String value; + String documentation; + + @JsonIgnore + Object sedaData; + + int level; + Long id; + Long parentId; + + @JsonIgnore + ElementProperties parent; + + List<ElementProperties> choices = new ArrayList<ElementProperties>(); + + List<ElementProperties> children = new ArrayList<ElementProperties>(); + + public List<ElementProperties> getChildren() { + return this.children; + } + + public void setChildren(List<ElementProperties> children) { + this.children = children; + } + + public List<ElementProperties> getChoices() { + return choices; + } + + public void setChoices(List<ElementProperties> choices) { + this.choices = choices; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return this.type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValueOrData() { + return this.valueOrData; + } + + public void setValueOrData(String dataType) { + this.valueOrData = dataType; + } + + public String getCardinality() { + return this.cardinality; + } + + public void setCardinality(String cardinality) { + if(null != RNGConstants.CardinalityMap.get(cardinality)) { + this.cardinality = RNGConstants.CardinalityMap.get(cardinality); + }else { + this.cardinality = cardinality; + } + } + + public String getGroupOrChoice() { + return groupOrChoice; + } + + public void setGroupOrChoice(String groupOrChoice) { + if(null != RNGConstants.GroupOrChoiceMap.get(groupOrChoice)) { + this.groupOrChoice = RNGConstants.GroupOrChoiceMap.get(groupOrChoice); + }else { + this.groupOrChoice = groupOrChoice; + } + } + + public String getValue() { + return this.value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getLevel() { + return this.level; + } + + public void setLevel(int level) { + this.level = level; + } + + public String getDataType() { + return this.dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + + public String getDocumentation() { + return this.documentation; + } + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getParentId() { + return this.parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + @JsonIgnore + public Object getSedaData() { + return sedaData; + } + + @JsonIgnore + public void setSedaData(Object sedaData) { + this.sedaData = sedaData; + } + + @JsonIgnore + public ElementProperties getParent() { + return parent; + } + + @JsonIgnore + public void setParent(ElementProperties parent) { + this.parent = parent; + } + + public void init() { + this.setName(""); + this.setCardinality(""); + this.setValueOrData(""); + this.setGroupOrChoice(""); + this.setValue(""); + this.setType(""); + this.setDataType(""); + + } + public void initTree(ElementProperties json) { + for(ElementProperties child : json.getChildren()) { + child.setParent(json); + initTree(child); + } + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementRNG.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementRNG.java new file mode 100644 index 00000000..85104ebe --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/ElementRNG.java @@ -0,0 +1,226 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model; + +import fr.gouv.vitamui.pastis.util.RNGConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + +import static fr.gouv.vitamui.pastis.util.RNGConstants.TypesMap; + +/** + * @author Paulo Pimenta <pimenta@cines.fr> + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class ElementRNG { + + public ElementRNG() { + } + + String name; + + String type; + + String dataType; + + String value; + + ElementRNG parent; + + private static Logger LOGGER = LoggerFactory.getLogger(ElementRNG.class); + + + public static ElementProperties elementStatic = new ElementProperties(); + + public static ElementProperties elementStaticRoot = new ElementProperties(); + + private static long idCounter = 0; + + List<ElementRNG> children = new ArrayList<ElementRNG>(); + + @XmlAttribute + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @XmlElement + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @XmlAttribute (name="type") + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + @XmlElement(name="rng:value") + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @XmlTransient + public ElementRNG getParent() { + return parent; + } + + public void setParent(ElementRNG parent) { + this.parent = parent; + } + + @XmlAnyElement + public List<ElementRNG> getChildren() { + return children; + } + + public void setChildren(List<ElementRNG> children) { + this.children = children; + } + + public static void setDataForParentElementOrAttribute (ElementProperties parentNode, ElementRNG node) { + if(null != parentNode.getType() && (RNGConstants.MetadaDataType.element.toString().equals(parentNode.getType()) + || RNGConstants.MetadaDataType.attribute.toString().equals(parentNode.getType()))) { + parentNode.setValueOrData(node.getType()); + if (TypesMap.containsKey(parentNode.getName())) { + parentNode.setDataType(TypesMap.get(parentNode.getName()).getLabel()); + } + parentNode.setValue(node.getValue()); + }else { + setDataForParentElementOrAttribute(parentNode.getParent(), node); + } + } + + + public static void setDocumentationForParentElement (ElementProperties parentNode, ElementRNG node) { + if(null != parentNode.getType() && RNGConstants.MetadaDataType.element.toString().equals(parentNode.getType())) { + parentNode.setDocumentation(node.getValue()); + }else { + setDocumentationForParentElement(parentNode.getParent(), node); + } + } + + public static void setElementsForGroupOrChoice(ElementProperties parentNode, ElementRNG node) { + + if(null != parentNode.getType() && (RNGConstants.GroupOrChoice.group.toString().equals(parentNode.getType()) + || RNGConstants.GroupOrChoice.choice.toString().equals(parentNode.getType()))) { + parentNode.setGroupOrChoice(node.getType()); + }else { + setElementsForGroupOrChoice(parentNode.getParent(), node); + } + } + // Build the a tree of properties given : + // a node + //the level of the node + //the parent of the node + public static ElementProperties buildElementPropertiesTree( ElementRNG node, int profondeur, ElementProperties parentNode ){ + ElementProperties local = new ElementProperties(); + LOGGER.info("Generating JSON element {}", node.getName()); + if(null != node.getType() && RNGConstants.MetadaDataType.element.toString().equals(node.getType()) + || RNGConstants.MetadaDataType.attribute.toString().equals(node.getType())) { + + local.setCardinality(elementStatic.getCardinality()); + local.setGroupOrChoice(elementStatic.getGroupOrChoice()); + local.setName(node.getName()); + local.setType(node.getType()); + local.setLevel(profondeur); + local.setValue(node.getValue()); + + + elementStatic = new ElementProperties(); + + if(null != parentNode) { + local.setParent(parentNode); + local.setParentId(parentNode.getId()); + local.setId(ElementRNG.idCounter++); + parentNode.getChildren().add(local); + }else { + local.setId(ElementRNG.idCounter++); + local.setParentId(null); + elementStaticRoot = local; + } + } + + else { + + if(RNGConstants.isValueOrData(node.getType())) { + setDataForParentElementOrAttribute(parentNode, node); + }else if(RNGConstants.isCardinality(node.getType())) { + elementStatic.setCardinality(node.getType()); + }else if(RNGConstants.hasGroupOrChoice(node.getType())) { + elementStatic.setGroupOrChoice(node.getType()); + } + else if("documentation".equals(node.getType())) { + if(null != node.getValue()) { + setDocumentationForParentElement(parentNode, node); + } + } + + local = parentNode; + } + + for( ElementRNG next : node.getChildren() ) { + if(null != next.getType() && (RNGConstants.MetadaDataType.element.toString().equals(next.getType()) + || RNGConstants.MetadaDataType.attribute.toString().equals(next.getType()))) { + buildElementPropertiesTree( next, profondeur + 1, local ); + }else { + buildElementPropertiesTree( next, profondeur, local ); + } + } + return local; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/JsonFromRng.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/JsonFromRng.java new file mode 100644 index 00000000..943eb944 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/JsonFromRng.java @@ -0,0 +1,176 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import fr.gouv.vitamui.pastis.util.RNGConstants; + +import java.util.ArrayList; +import java.util.List; + +public class JsonFromRng { + + String name; + + String type; + + String cardinality; + + String valuleOrData; + + String dataType; + + String value; + + String documentation; + + int level; + + Long id; + + Long parentId; + + @JsonIgnore + ElementProperties parent; + + List<ElementProperties> children = new ArrayList<ElementProperties>(); + + + public List<ElementProperties> getChildren() { + return this.children; + } + + public void setChildren(List<ElementProperties> children) { + this.children = children; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return this.type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValuleOrData() { + return this.valuleOrData; + } + + public void setValuleOrData(String dataType) { + this.valuleOrData = dataType; + } + + public String getCardinality() { + return this.cardinality; + } + + public void setCardinality(String cardinality) { + if(null != RNGConstants.CardinalityMap.get(cardinality)) { + this.cardinality = RNGConstants.CardinalityMap.get(cardinality); + }else { + this.cardinality = cardinality; + } + } + + public String getValue() { + return this.value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getLevel() { + return this.level; + } + + public void setLevel(int level) { + this.level = level; + } + + public String getDataType() { + return this.dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + + public String getDocumentation() { + return this.documentation; + } + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getParentId() { + return this.parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + //@JsonIgnore + public ElementProperties getParent() { + return this.parent; + } + + //@JsonIgnore + public void setParent(ElementProperties parent) { + this.parent = parent; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/OntologyDSL.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/OntologyDSL.java new file mode 100644 index 00000000..0cc2c132 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/OntologyDSL.java @@ -0,0 +1,133 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model; + +public class OntologyDSL { + + public OntologyDSL() { + } + + public String contrat_acces; + public String dsl_request; + public String query; + public String and; + public String eq; + public String filter; + public int limit; + public String projection; + public String tenant_id; + + + public String getContrat_acces() { + return contrat_acces; + } + public void setContrat_acces(String contrat_acces) { + this.contrat_acces = contrat_acces; + } + public String getDsl_request() { + return dsl_request; + } + public void setDsl_request(String dsl_request) { + this.dsl_request = dsl_request; + } + public String getQuery() { + return query; + } + public void setQuery(String query) { + this.query = query; + } + public String getAnd() { + return and; + } + public void setAnd(String and) { + this.and = and; + } + public String getEq() { + return eq; + } + public void setEq(String eq) { + this.eq = eq; + } + public String getFilter() { + return filter; + } + public void setFilter(String filter) { + this.filter = filter; + } + public int getLimit() { + return limit; + } + public void setLimit(int limit) { + this.limit = limit; + } + public String getProjection() { + return projection; + } + public void setProjection(String projection) { + this.projection = projection; + } + public String getTenant_id() { + return tenant_id; + } + public void setTenant_id(String tenant_id) { + this.tenant_id = tenant_id; + } + + public String toString() { + return "{\r\n" + + " \"contrat_acces\": \"CINES-1\",\r\n" + + " \"dsl_request\": {\r\n" + + " \"$query\": {\r\n" + + " \"$and\": [\r\n" + + " {\r\n" + + " \"$eq\": {\r\n" + + " \"SedaField\": \"DocumentType +\"\r\n" + + " }\r\n" + + " }\r\n" + + " ]\r\n" + + " },\r\n" + + " \"$filter\": {\r\n" + + " \"$limit\": 1\r\n" + + " },\r\n" + + " \"$projection\": {}\r\n" + + " },\r\n" + + " \"tenant_id\": \"1\"\r\n" + + "}"; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AbstractTagFactory.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AbstractTagFactory.java new file mode 100644 index 00000000..9a2a24d9 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AbstractTagFactory.java @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import java.util.Map; + +public interface AbstractTagFactory<T> { + + T createTag(ElementProperties node, Tag tag, int level); + + Map<RngTag,RngTag> createTagWithTag(ElementProperties node, RngTag tag, RngTag currentTag, int level); + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AnnotationTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AnnotationTag.java new file mode 100644 index 00000000..98f23fb7 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AnnotationTag.java @@ -0,0 +1,56 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="xsd:annotation") +public class AnnotationTag extends RngTag{ + DocumentationTag documentationTag; + + @XmlElement(name="xsd:documentation") + public DocumentationTag getDocumentationTag() { + return documentationTag; + } + + public void setDocumentationTag(DocumentationTag documentationTag) { + this.documentationTag = documentationTag; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AttributeTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AttributeTag.java new file mode 100644 index 00000000..43510d2c --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/AttributeTag.java @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:attribute") +public class AttributeTag extends RngTag{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTag.java new file mode 100644 index 00000000..ea8734a0 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTag.java @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlSeeAlso; + +@XmlSeeAlso({OneOrMoreTag.class,ZeroOrMoreTag.class,OptionalTag.class}) +public class CardinalityTag extends RngTag{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTagFactory.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTagFactory.java new file mode 100644 index 00000000..cec6af65 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/CardinalityTagFactory.java @@ -0,0 +1,83 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.util.RNGConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Map; + +public class CardinalityTagFactory implements AbstractTagFactory<CardinalityTag>{ + + private static final Logger LOGGER = LoggerFactory.getLogger(CardinalityTagFactory.class); + + @Override + public CardinalityTag createTag(ElementProperties node, Tag cardinalityTag, int level) { + if(node.getCardinality().equals(RNGConstants.Cardinality.zeroOrMore.getLabel())) { + return new ZeroOrMoreTag(); + } else if(node.getCardinality().equals(RNGConstants.Cardinality.oneOrMore.getLabel())) { + return new OneOrMoreTag(); + } else if(node.getCardinality().equals(RNGConstants.Cardinality.optional.getLabel())) { + return new OptionalTag(); + } + return null; + } + + @Override + public Map<RngTag, RngTag> createTagWithTag(ElementProperties node, RngTag tag, RngTag currentTag, int level) { + return null; + } + + public RNGConstants.Cardinality checkCardinalityType(String cardinalityType){ + if (cardinalityType.equals("ZeroOrMoreTag")) { + return RNGConstants.Cardinality.zeroOrMore; + } + if (cardinalityType.equals("OneOrMoreTag")) { + return RNGConstants.Cardinality.oneOrMore; + } + if (cardinalityType.equals("OptionalTag")) { + return RNGConstants.Cardinality.optional; + } + return null; + } + + +} \ No newline at end of file diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ChoiceTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ChoiceTag.java new file mode 100644 index 00000000..f57cb5eb --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ChoiceTag.java @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:choice") +public class ChoiceTag extends RngTag{ +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTag.java new file mode 100644 index 00000000..f0ee29e6 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTag.java @@ -0,0 +1,55 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import fr.gouv.vitamui.pastis.util.RNGConstants; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:data") +public class DataTag extends RngTag { + + public DataTag(){ + } + + public DataTag(RNGConstants.DataType dataType, RngTag parent){ + this.setDataType(dataType.getLabel()); + this.setParent(parent); + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTagFactory.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTagFactory.java new file mode 100644 index 00000000..b9494f8b --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DataTagFactory.java @@ -0,0 +1,74 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.util.RNGConstants; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +public class DataTagFactory implements AbstractTagFactory { + + + @Override + public Object createTag(ElementProperties node, Tag tag, int level) { + return null; + } + + @Override + public Map<RngTag,RngTag> createTagWithTag(ElementProperties node, RngTag dataRNG, RngTag currentTag, int level) { + + Map<RngTag,RngTag> rngMapTags = new HashMap<>(); + + if (!currentTag.getChildren().isEmpty() && + (currentTag.getChildren().get(0) instanceof ElementTag + ||currentTag.getChildren().get(0) instanceof AttributeTag)){ + RngTag currentTagFirstChild = (RngTag) currentTag.getChildren().get(0); + currentTagFirstChild.getChildren().add(dataRNG); + dataRNG.setParent(currentTag); + }else { + currentTag.getChildren().add(dataRNG); + dataRNG.setParent(currentTag); + } + rngMapTags.put(dataRNG,currentTag); + return rngMapTags; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DocumentationTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DocumentationTag.java new file mode 100644 index 00000000..72ea4b25 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/DocumentationTag.java @@ -0,0 +1,55 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlElement; + +public class DocumentationTag extends RngTag{ + + String documentation; + + @XmlElement(name="xsd:documentation") + public String getDocumentation() { + return documentation; + } + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ElementTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ElementTag.java new file mode 100644 index 00000000..824248e7 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ElementTag.java @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:element") +public class ElementTag extends RngTag{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GrammarTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GrammarTag.java new file mode 100644 index 00000000..592b7770 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GrammarTag.java @@ -0,0 +1,60 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:grammar") +public class GrammarTag extends RngTag{ + + @XmlAttribute(name = "datatypeLibrary") + private String datatypeLibrary = "http://www.w3.org/2001/XMLSchema-datatypes"; + + @XmlAttribute(name = "ns") + private String ns = "fr:gouv:culture:archivesdefrance:seda:v2.1"; + + @XmlAttribute(name = "xmlns") + private String xmlns = "fr:gouv:culture:archivesdefrance:seda:v2.1"; + + @XmlAttribute(name = "xmlns:xsd") + private String xd = "http://www.w3.org/2001/XMLSchema"; + + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GroupTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GroupTag.java new file mode 100644 index 00000000..5df35dab --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/GroupTag.java @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:group") +public class GroupTag extends RngTag { +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OneOrMoreTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OneOrMoreTag.java new file mode 100644 index 00000000..8170aaa4 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OneOrMoreTag.java @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:oneOrMore") +public class OneOrMoreTag extends CardinalityTag{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OptionalTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OptionalTag.java new file mode 100644 index 00000000..ebb609fa --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/OptionalTag.java @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:optional") +public class OptionalTag extends CardinalityTag{ +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/PastisFactoryTagProvider.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/PastisFactoryTagProvider.java new file mode 100644 index 00000000..31f7612f --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/PastisFactoryTagProvider.java @@ -0,0 +1,60 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +public class PastisFactoryTagProvider { + + public static AbstractTagFactory getFactory(String factoryType){ + + if("RngTag".equalsIgnoreCase(factoryType)){ + return new RngTagFactory(); + } + if("Cardinality".equalsIgnoreCase(factoryType)){ + return new CardinalityTagFactory(); + } + if("DataTag".equalsIgnoreCase(factoryType)){ + return new DataTagFactory(); + } + else if("Value".equalsIgnoreCase(factoryType)){ + return new ValueTagFactory(); + } + + return null; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTag.java new file mode 100644 index 00000000..26fe2fd4 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTag.java @@ -0,0 +1,96 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +@XmlRootElement +@XmlSeeAlso({GrammarTag.class,StartTag.class,ElementTag.class,CardinalityTag.class,DataTag.class,AttributeTag.class, + ValueTag.class, DocumentationTag.class,AnnotationTag.class,GroupTag.class,ChoiceTag.class }) +public class RngTag extends Tag{ + + private static final Logger LOGGER = LoggerFactory.getLogger(RngTag.class); + + String name; + String dataType; + String groupOrChoice; + ValueTag valueTag; + + + @XmlAttribute + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + @XmlAttribute(name="type") + public String getDataType() { + return dataType; + } + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public String getGroupOrChoice() { + return groupOrChoice; + } + public void setGroupOrChoice(String groupOrChoice) { + this.groupOrChoice = groupOrChoice; + } + + @XmlElement(name="rng:value") + public ValueTag getValueTag() { + return valueTag; + } + + public void setValueTag(ValueTag valueTag) { + this.valueTag = valueTag; + } + +} + + diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTagFactory.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTagFactory.java new file mode 100644 index 00000000..08a5962a --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/RngTagFactory.java @@ -0,0 +1,234 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.util.RNGConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.*; + +public class RngTagFactory implements AbstractTagFactory<RngTag> { + + private static final Logger LOGGER = LoggerFactory.getLogger(RngTagFactory.class); + + static RngTag rngTree; + + + @Override + public RngTag createTag(ElementProperties node, Tag parentNode,int profondeur) { + + ValueTag valueRNG = null; + DataTag dataRNG = null; + CardinalityTag cardinalityRNG = null; + RngTag elementOrAttributeRNG = null; + AnnotationTag annotationRNG = null; + DocumentationTag documentationRNG = null; + GroupTag groupTag = null; + ChoiceTag choiceTag = null; + + // 0 . Create objects according to node data; + // If the node has a value + if(null != node.getValue() && !node.getValue().equals("undefined")) { + valueRNG = new ValueTag(); + valueRNG.setValue(node.getValue()); + } + + if (node.getChildren().stream().filter(c->!c.getType().equals(RNGConstants.MetadaDataType.element)).count()==0){ + if (valueRNG==null && RNGConstants.TypesMap.containsKey(node.getName())){ + dataRNG = new DataTag(); + dataRNG.setDataType(RNGConstants.TypesMap.get(node.getName()).getLabel()); + } + } + + // When a value is declared in a profile element, the <rng:data> tag must be suppressed + // to assure that the generated profile is successfully imported by VITAM + if(null != node.getValueOrData() && !node.getValueOrData().equals("undefined") && node.getValue() == null) { + if(node.getValueOrData().equals("data")) { + dataRNG = new DataTag(); + } + } + // Sets the type of data (if value or data) + if(null != node.getDataType() && !node.getDataType().equals("undefined")) { + if(null != valueRNG) { + valueRNG.setDataType(node.getDataType()); + }else + if(null != dataRNG) { + dataRNG.setDataType(node.getDataType()); + } + } + // Set annotation and documentation tags (if exists) + if(null != node.getDocumentation() ) { + annotationRNG = new AnnotationTag(); + documentationRNG = new DocumentationTag(); + documentationRNG.setDocumentation(node.getDocumentation()); + annotationRNG.setDocumentationTag(documentationRNG); + } + + if(null != node.getType() && !node.getType().equals("undefined")) { + if(node.getType().equals("element")) { + elementOrAttributeRNG = new ElementTag(); + } else if(node.getType().equals("attribute")) { + elementOrAttributeRNG = new AttributeTag(); + } + if(null != node.getName() && !node.getName().equals("undefined")) { + elementOrAttributeRNG.setName(node.getName()); + } + } + + if(null != documentationRNG) { + elementOrAttributeRNG.getChildren().add(annotationRNG); + annotationRNG.setParent(elementOrAttributeRNG); + } + + // Check node's and its children's cardinality + if(node.getCardinality() != null ) { + CardinalityTagFactory cardinalityFactory = new CardinalityTagFactory(); + CardinalityTag cardinalityTag = cardinalityFactory.createTag(node,parentNode,profondeur); + LOGGER.info("Parsing " + cardinalityTag.getTagName()); + cardinalityRNG = cardinalityTag; + } + + RngTag currentTag = null; + // 1. Once the objects are created, arrange them accordingly + // 1. Check if it is an element + if(null != elementOrAttributeRNG) { + + if (parentNode != null ) LOGGER.info("Parsing " + elementOrAttributeRNG.getName()); + // 1.1 Check if the element has cardinality + if( null != cardinalityRNG ) { + cardinalityRNG.getChildren().add(elementOrAttributeRNG); + elementOrAttributeRNG.setParent(cardinalityRNG); + currentTag = cardinalityRNG; + + } + + else { + currentTag = elementOrAttributeRNG; + //1.2. Check if it's the first grammar node (Archive transfer) + if(parentNode == null) { + GrammarTag grammarTag = new GrammarTag(); + StartTag startTag = new StartTag(); + startTag.setParent(grammarTag); + grammarTag.getChildren().add(startTag); + currentTag = grammarTag; + } + } + + // 2. Check data tag + if(null != dataRNG) { + DataTagFactory dataTagFactory = new DataTagFactory(); + HashMap dataAndCurrentTagMap = new HashMap(dataTagFactory.createTagWithTag(node,dataRNG,currentTag,profondeur)); + + currentTag = (RngTag) new ArrayList(dataAndCurrentTagMap.values()).get(0); + + } + // 3. Check value tag + if(null != valueRNG) { + // If Children is empty + if(currentTag.getChildren().isEmpty() ) { + if (currentTag instanceof ElementTag) { + currentTag.setValueTag(valueRNG); + valueRNG.setParent(currentTag); + + } else if (currentTag instanceof AttributeTag) { + currentTag.setValueTag(valueRNG); + valueRNG.setParent(currentTag); + } + // If children is Element or Attribute, set accordingly + } else if (currentTag instanceof ElementTag) { + currentTag.setValueTag(valueRNG); + valueRNG.setParent(currentTag); + + } else if (currentTag instanceof AttributeTag) { + currentTag.setValueTag(valueRNG); + valueRNG.setParent(currentTag); + } + else { + // Set the value to an simple element + elementOrAttributeRNG.setValueTag(valueRNG); + valueRNG.setParent(elementOrAttributeRNG); + } + } + } + + if(null != currentTag) { + + if(null != parentNode) { + RngTag optionalWithChildren; + optionalWithChildren = (RngTag) parentNode.getChildren() + .stream().filter(cardinality-> cardinality instanceof CardinalityTag) + .findAny() + .orElse(null); + + Boolean optionalHasAlreadyCurrentTag = optionalWithChildren == null + ? false : optionalWithChildren.children.contains(currentTag); + + if (!optionalHasAlreadyCurrentTag) { + currentTag.setParent(parentNode); + parentNode.getChildren().add(currentTag); + } + + }else { + rngTree = currentTag; + } + } + + if (currentTag instanceof GrammarTag) { + this.createTag( node, (RngTag) currentTag.getChildren().get(0), profondeur + 1); + } + else { + for( ElementProperties next : node.getChildren() ) { + if (currentTag instanceof CardinalityTag) { + this.createTag( next, (RngTag) currentTag.getChildren().get(0), profondeur + 1); + } else { + this.createTag( next, currentTag, profondeur + 1); + } + } + } + return rngTree; + } + + @Override + public Map<RngTag, RngTag> createTagWithTag(ElementProperties node, RngTag tag, RngTag currentTag, int level) { + return null; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/StartTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/StartTag.java new file mode 100644 index 00000000..4aff8742 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/StartTag.java @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:start") +public class StartTag extends RngTag{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/Tag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/Tag.java new file mode 100644 index 00000000..d0749d72 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/Tag.java @@ -0,0 +1,75 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlAnyElement; +import javax.xml.bind.annotation.XmlTransient; +import java.util.ArrayList; +import java.util.List; + +public abstract class Tag { + + Tag parent; + List<Tag> children = new ArrayList<>(); + + //@XmlTransient to avoid circular loop parent <-> child + @XmlTransient + public Tag getParent() { + return parent; + } + + public void setParent(Tag parent) { + this.parent = parent; + } + + @XmlAnyElement + public List<Tag> getChildren() { + return children; + } + + public void setChildren(List<Tag> children) { + this.children = children; + } + + String getTagName(){ + return this.getClass().getSimpleName(); + } + + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTag.java new file mode 100644 index 00000000..98807702 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTag.java @@ -0,0 +1,77 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlTransient; +import javax.xml.bind.annotation.XmlValue; + +public class ValueTag { + + private String dataType; + private String value; + + private Tag parent; + + @XmlAttribute (name="type") + public String getDataType() {return dataType; } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + @XmlValue + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @XmlTransient + public Tag getParent() { + return parent; + } + + public void setParent(Tag parent) { + this.parent = parent; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTagFactory.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTagFactory.java new file mode 100644 index 00000000..4f34dd89 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ValueTagFactory.java @@ -0,0 +1,55 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import java.util.Map; + +public class ValueTagFactory implements AbstractTagFactory{ + + @Override + public Tag createTag(ElementProperties node, Tag tag, int level) { + return null; + } + + @Override + public Map<RngTag, RngTag> createTagWithTag(ElementProperties node, RngTag tag, RngTag currentTag, int level) { + return null; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ZeroOrMoreTag.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ZeroOrMoreTag.java new file mode 100644 index 00000000..603b68e8 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/ZeroOrMoreTag.java @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:zeroOrMore") +public class ZeroOrMoreTag extends CardinalityTag { +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/package-info.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/package-info.java new file mode 100644 index 00000000..4721c8c4 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/factory/package-info.java @@ -0,0 +1,54 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +@XmlSchema( + + xmlns = { + @XmlNs(prefix = "a", namespaceURI = "http://relaxng.org/ns/compatibility/annotations/1.0"), + @XmlNs(prefix = "rng", namespaceURI = "http://relaxng.org/ns/structure/1.0"), + @XmlNs(prefix = "seda", namespaceURI = "fr:gouv:culture:archivesdefrance:seda:v2.1"), + @XmlNs(prefix = "xlink", namespaceURI = "http://www.w3.org/1999/xlink"), + @XmlNs(prefix = "xsd", namespaceURI = "http://www.w3.org/2001/XMLSchema"), + }, + elementFormDefault = XmlNsForm.QUALIFIED) + +package fr.gouv.vitamui.pastis.model.factory; + +import javax.xml.bind.annotation.XmlNs; +import javax.xml.bind.annotation.XmlNsForm; +import javax.xml.bind.annotation.XmlSchema; diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AnnotationXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AnnotationXML.java new file mode 100644 index 00000000..176fbd48 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AnnotationXML.java @@ -0,0 +1,61 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="xsd:annotation") +public class AnnotationXML extends BaliseXML{ + + DocumentationXML documentationXML; + + @XmlElement (name="xsd:documentation") + public DocumentationXML getDocumentationXML() { + return documentationXML; + } + + public void setDocumentationXML(DocumentationXML documentationXML) { + this.documentationXML = documentationXML; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AttributeXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AttributeXML.java new file mode 100644 index 00000000..8fa974da --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/AttributeXML.java @@ -0,0 +1,61 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:attribute") +public class AttributeXML extends BaliseXML{ + + ValueXML valueXML; + + @XmlElement (name="rng:value") + public ValueXML getValueXML() { + return valueXML; + } + + public void setValueXML(ValueXML valueXML) { + this.valueXML = valueXML; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/BaliseXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/BaliseXML.java new file mode 100644 index 00000000..e0357d5f --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/BaliseXML.java @@ -0,0 +1,346 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.jaxb; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.util.RNGConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +@XmlRootElement +public class BaliseXML{ + + + public BaliseXML() { + super(); + } + + String name; + String dataType; + String cardinality; + String groupOrChoice; + BaliseXML parent; + ValueXML valueXML; + + private static final Logger LOGGER = LoggerFactory.getLogger(BaliseXML.class); + + public static BaliseXML baliseXMLStatic; + + List<BaliseXML> children = new ArrayList<>(); + + @XmlAttribute + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @XmlAttribute (name="type") + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + + //@XmlTransient to avoid circular loop parent <-> child + @XmlTransient + public BaliseXML getParent() { + return parent; + } + + public void setParent(BaliseXML parent) { + this.parent = parent; + } + + // XmlAnyElement pour etre le plus generique + @XmlAnyElement + public List<BaliseXML> getChildren() { + return children; + } + + public void setChildren(List<BaliseXML> children) { + this.children = children; + } + + public String getCardinality() { + return cardinality; + } + + public String setCardinality(RNGConstants.Cardinality cardinality) { + return this.cardinality = cardinality.getLabel(); + } + + public String getGroupOrChoice() { + return groupOrChoice; + } + + @XmlElement(name="rng:value") + public ValueXML getValueXML() { + return valueXML; + } + + public void setValueXML(ValueXML valueXML) { + this.valueXML = valueXML; + } + + public void setGroupOrChoice(RNGConstants.GroupOrChoice groupOrChoice) { + this.groupOrChoice = groupOrChoice.getLabel(); + } + + + @Override + public String toString() { + // TODO Auto-generated method stub + return this.name; + } + + /** + * + * @param node node représentant l'arbre ElementProperties correspondant au json reçu du front + * @param profondeur profondeur du noeud utile pour le front angular + * @param parentNode noeud parent utilisé dans la récursivité pour lié parent & children + */ + public static void buildBaliseXMLTree(ElementProperties node, int profondeur, BaliseXML parentNode ){ + + ValueXML valueRNG = null; + DataXML dataRNG = null; + BaliseXML cardinalityRNG = null; + BaliseXML elementOrAttributeRNG = null; + AnnotationXML annotationXML = null; + DocumentationXML documentationXML = null; + BaliseXML groupOrChoice = null; + + // If the node has a value + if(null != node.getValue() && !node.getValue().equals("undefined")) { + valueRNG = new ValueXML(); + valueRNG.setValue(node.getValue()); + } + + // When a value is declared in a profile element, the <rng:data> tag must be suppressed + // to assure that the generated profile is successfully imported by VITAM + if(null != node.getValueOrData() && !node.getValueOrData().equals("undefined") && node.getValue() == null) { + if(node.getValueOrData().equals("data")) { + dataRNG = new DataXML(); + } + } + + if (node.getName() != null && (node.getName().equals("CodeListVersions") || node.getChildren().stream().filter(c->c.getType().equals(RNGConstants.MetadaDataType.attribute)).count()==0)){ + if (valueRNG==null && RNGConstants.TypesMap.containsKey(node.getName())){ + dataRNG = new DataXML(); + dataRNG.setDataType(RNGConstants.TypesMap.get(node.getName()).getLabel()); + } + } + + // Sets the type of data (if value or data) + if(null != node.getDataType() && !node.getDataType().equals("undefined")) { + if(null != valueRNG) { + valueRNG.setDataType(node.getDataType()); + }else + if(null != dataRNG) { + dataRNG.setDataType(node.getDataType()); + } + } + // Set annotation and documentation tags (if exists) + if(null != node.getDocumentation() ) { + annotationXML = new AnnotationXML(); + documentationXML = new DocumentationXML(); + documentationXML.setDocumentation(node.getDocumentation()); + annotationXML.setDocumentationXML(documentationXML); + } + + if(null != node.getType() && !node.getType().equals("undefined")) { + if(node.getType().equals("element")) { + elementOrAttributeRNG = new ElementXML(); + } else if(node.getType().equals("attribute")) { + elementOrAttributeRNG = new AttributeXML(); + } + if(null != node.getName() && !node.getName().equals("undefined")) { + elementOrAttributeRNG.setName(node.getName()); + } + } + + if(null != documentationXML) { + elementOrAttributeRNG.getChildren().add(annotationXML); + annotationXML.setParent(elementOrAttributeRNG); + } + + // Check node's and its children's cardinality + if(node.getCardinality() != null ) { + + if(node.getCardinality().equals(RNGConstants.Cardinality.zeroOrMore.getLabel())) { + cardinalityRNG = new ZeroOrMoreXML(); + if(elementOrAttributeRNG != null) { + elementOrAttributeRNG.setCardinality(RNGConstants.Cardinality.zeroOrMore); + } + } else if(node.getCardinality().equals(RNGConstants.Cardinality.oneOrMore.getLabel())) { + cardinalityRNG = new OneOrMoreXML(); + if(elementOrAttributeRNG != null) { + elementOrAttributeRNG.setCardinality(RNGConstants.Cardinality.oneOrMore); + } + } else if(node.getCardinality().equals(RNGConstants.Cardinality.optional.getLabel())) { + cardinalityRNG = new OptionalXML(); + if(elementOrAttributeRNG != null) { + elementOrAttributeRNG.setCardinality(RNGConstants.Cardinality.optional); + } + } + } + + BaliseXML currentXmlTag = null; + + // 1. Check if it is an element + if(null != elementOrAttributeRNG) { + + LOGGER.info("Parsing " + elementOrAttributeRNG.getName()); + // 1.1 Check if the element has cardinality + if( null != cardinalityRNG ) { + cardinalityRNG.getChildren().add(elementOrAttributeRNG); + elementOrAttributeRNG.setParent(cardinalityRNG); + currentXmlTag = cardinalityRNG; + + } + + else { + currentXmlTag = elementOrAttributeRNG; + //1.2. Check if it's the first grammarnode (Archive transfer) + if(parentNode == null) { + GrammarXML grammar = new GrammarXML(); + StartXML start = new StartXML(); + start.setParent(grammar); + grammar.getChildren().add(start); + currentXmlTag = grammar; + } + } + + // 2. Check data tag + if(null != dataRNG) { + if (!currentXmlTag.getChildren().isEmpty() && + (currentXmlTag.getChildren().get(0) instanceof ElementXML + ||currentXmlTag.getChildren().get(0) instanceof AttributeXML)){ + currentXmlTag.getChildren().get(0).getChildren().add(dataRNG); + dataRNG.setParent(currentXmlTag); + + }else { + currentXmlTag.getChildren().add(dataRNG); + dataRNG.setParent(currentXmlTag); + } + } + // 3. Check value tag + if(null != valueRNG) { + // If Children is empty + if(currentXmlTag.getChildren().isEmpty() ) { + if (currentXmlTag instanceof ElementXML) { + ((ElementXML)currentXmlTag).setValueXML(valueRNG); + valueRNG.setParent(currentXmlTag); + + } else if (currentXmlTag instanceof AttributeXML) { + ((AttributeXML)currentXmlTag).setValueXML(valueRNG); + valueRNG.setParent(currentXmlTag); + } + // If children is Element or Attribute, set accordingly + } else if (currentXmlTag instanceof ElementXML) { + ((ElementXML) currentXmlTag).setValueXML(valueRNG); + valueRNG.setParent(currentXmlTag); + + } else if (currentXmlTag instanceof AttributeXML) { + ((AttributeXML) currentXmlTag).setValueXML(valueRNG); + valueRNG.setParent(currentXmlTag); + } + else { + // Set the value to an simple element + elementOrAttributeRNG.setValueXML(valueRNG); + valueRNG.setParent(elementOrAttributeRNG); + } + } + } + + if(null != currentXmlTag) { + + if(null != parentNode) { + BaliseXML optionalWithChildren = parentNode.getChildren() + .stream().filter(cardinality-> cardinality instanceof OptionalXML + || cardinality instanceof ZeroOrMoreXML + || cardinality instanceof OneOrMoreXML ) + .findAny() + .orElse(null); + + Boolean optionalHasAlreadyCurrentTag = optionalWithChildren == null + ? false : optionalWithChildren.children.contains(currentXmlTag); + + if (!optionalHasAlreadyCurrentTag) { + currentXmlTag.setParent(parentNode); + parentNode.getChildren().add(currentXmlTag); + } + + + }else { + baliseXMLStatic = currentXmlTag; + } + } + + if (currentXmlTag instanceof GrammarXML) { + buildBaliseXMLTree( node, profondeur + 1, currentXmlTag.getChildren().get(0)); + } + else { + for( ElementProperties next : node.getChildren() ) { + if (currentXmlTag instanceof OptionalXML || currentXmlTag instanceof OneOrMoreXML + || currentXmlTag instanceof ZeroOrMoreXML) { + buildBaliseXMLTree( next, profondeur + 1, currentXmlTag.getChildren().get(0)); + } else { + buildBaliseXMLTree( next, profondeur + 1, currentXmlTag ); + } + } + } + + } + + + + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ChoiceXml.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ChoiceXml.java new file mode 100644 index 00000000..3ec4c1c3 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ChoiceXml.java @@ -0,0 +1,46 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:choice") +public class ChoiceXml extends BaliseXML { + + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DataXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DataXML.java new file mode 100644 index 00000000..466a6d96 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DataXML.java @@ -0,0 +1,57 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.model.jaxb; + +import fr.gouv.vitamui.pastis.util.RNGConstants; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:data") +public class DataXML extends BaliseXML{ + public DataXML(){ + } + + public DataXML(RNGConstants.DataType dataType, BaliseXML parent){ + this.setDataType(dataType.getLabel()); + this.setParent(parent); + } +} \ No newline at end of file diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DocumentationXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DocumentationXML.java new file mode 100644 index 00000000..db0c1361 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/DocumentationXML.java @@ -0,0 +1,67 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlTransient; +import javax.xml.bind.annotation.XmlValue; + +public class DocumentationXML { + + String documentation; + + @XmlValue + public String getDocumentation() { + return documentation; + } + + public void setDocumentation(String documentation) { + this.documentation = documentation; + } + + BaliseXML parent; + + @XmlTransient + public BaliseXML getParent() { + return parent; + } + + public void setParent(BaliseXML parent) { + this.parent = parent; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ElementXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ElementXML.java new file mode 100644 index 00000000..800c39f5 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ElementXML.java @@ -0,0 +1,59 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + + +@XmlRootElement (name="rng:element") +public class ElementXML extends BaliseXML{ + + ValueXML valueXML; + + + @XmlElement (name="rng:value") + public ValueXML getValueXML() { + return valueXML; + } + + public void setValueXML(ValueXML valueXML) { + this.valueXML = valueXML; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GrammarXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GrammarXML.java new file mode 100644 index 00000000..b496b488 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GrammarXML.java @@ -0,0 +1,68 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:grammar") +public class GrammarXML extends BaliseXML { + + StartXML start; + + @XmlAttribute(name = "datatypeLibrary") + private String datatypeLibrary = "http://www.w3.org/2001/XMLSchema-datatypes"; + + @XmlAttribute(name = "ns") + private String ns = "fr:gouv:culture:archivesdefrance:seda:v2.1"; + + @XmlAttribute(name = "xmlns") + private String xmlns = "fr:gouv:culture:archivesdefrance:seda:v2.1"; + + @XmlAttribute(name = "xmlns:xsd") + private String xd = "http://www.w3.org/2001/XMLSchema"; + + public StartXML getStart() { + return start; + } + + public void setStart(StartXML start) { + this.start = start; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GroupXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GroupXML.java new file mode 100644 index 00000000..91459569 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/GroupXML.java @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:group") +public class GroupXML extends BaliseXML{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OneOrMoreXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OneOrMoreXML.java new file mode 100644 index 00000000..e9c344ed --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OneOrMoreXML.java @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:oneOrMore") +public class OneOrMoreXML extends BaliseXML{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OptionalXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OptionalXML.java new file mode 100644 index 00000000..94c23c92 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/OptionalXML.java @@ -0,0 +1,49 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:optional") +public class OptionalXML extends BaliseXML{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/StartXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/StartXML.java new file mode 100644 index 00000000..b8c951b3 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/StartXML.java @@ -0,0 +1,45 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name="rng:start") +public class StartXML extends BaliseXML { + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ValueXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ValueXML.java new file mode 100644 index 00000000..c2797f57 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ValueXML.java @@ -0,0 +1,81 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlTransient; +import javax.xml.bind.annotation.XmlValue; + +public class ValueXML { + + String value; + + @XmlValue + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + + String dataType; + + BaliseXML parent; + + @XmlTransient + public BaliseXML getParent() { + return parent; + } + + public void setParent(BaliseXML parent) { + this.parent = parent; + } + + + @XmlAttribute (name="type") + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ZeroOrMoreXML.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ZeroOrMoreXML.java new file mode 100644 index 00000000..b4407ccf --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/ZeroOrMoreXML.java @@ -0,0 +1,50 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement (name="rng:zeroOrMore") + +public class ZeroOrMoreXML extends BaliseXML{ + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/package-info.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/package-info.java new file mode 100644 index 00000000..a67c4901 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/jaxb/package-info.java @@ -0,0 +1,54 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +@XmlSchema( + + xmlns = { + @XmlNs(prefix = "a", namespaceURI = "http://relaxng.org/ns/compatibility/annotations/1.0"), + @XmlNs(prefix = "rng", namespaceURI = "http://relaxng.org/ns/structure/1.0"), + @XmlNs(prefix = "seda", namespaceURI = "fr:gouv:culture:archivesdefrance:seda:v2.1"), + @XmlNs(prefix = "xlink", namespaceURI = "http://www.w3.org/1999/xlink"), + @XmlNs(prefix = "xsd", namespaceURI = "http://www.w3.org/2001/XMLSchema"), + }, + elementFormDefault = XmlNsForm.QUALIFIED) + +package fr.gouv.vitamui.pastis.model.jaxb; + +import javax.xml.bind.annotation.XmlNs; +import javax.xml.bind.annotation.XmlNsForm; +import javax.xml.bind.annotation.XmlSchema; diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ArchiveTransfer.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ArchiveTransfer.java new file mode 100644 index 00000000..b2233ed5 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ArchiveTransfer.java @@ -0,0 +1,19567 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 +// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2019.11.14 at 11:15:17 AM CET +// + + +package fr.gouv.vitamui.pastis.model.rng; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import javax.xml.datatype.XMLGregorianCalendar; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + + +/** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Comment"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Date"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MessageIdentifier"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="schemeDataURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="schemeID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="schemeAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="schemeAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="schemeName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="schemeVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ArchivalAgreement"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CodeListVersions"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ReplyCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MessageDigestAlgorithmCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MimeTypeCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EncodingCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FileFormatCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CompressionAlgorithmCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectVersionCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StorageRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AppraisalRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AccessRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DisseminationRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReuseRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ClassificationRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AuthorizationReasonCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelationshipCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="DataObjectPackage"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="BinaryDataObject"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectGroupReferenceId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectGroupId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <choice> + * <element name="Uri" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>anyURI"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Attachement" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="uri" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="filename" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * <element name="MessageDigest"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>base64Binary"> + * <attribute name="algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Size"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>positiveInteger"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Compressed" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="algorithm" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="uncompressedSize" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatIdentification"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="FormatLitteral"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MimeType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatId"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="FileInfo"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Filename"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationName"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DateCreatedByApplication" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOs" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOsVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="LastModified" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Metadata" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element name="Audio" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Document" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Image" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Text" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Video" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OtherMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Relationship" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="target" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="DescriptiveMetadata"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ArchiveUnit"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Content" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DescriptionLevel"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Title"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FilePlanPosition" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="OriginatingSystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ArchivalAgencyArchiveUnitIdentifier" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Description"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CustodialHistory" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CustodialHistoryItem" type="{http://www.w3.org/2001/XMLSchema}anyType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Type" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DocumentType" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Language" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>language"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DescriptionLanguage" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Status" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Version" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Tag" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Keyword"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeywordContent"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordReference" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Coverage" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Spatial" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Temporal" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Juridictional" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OriginatingAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="SubmissionAgency" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier" minOccurs="0"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="AuthorizedAgent" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Writer" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Adressee" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Recipient" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Source" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelatedObjectReference" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> + * <element name="CreatedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="TransactedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AcquiredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SentDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReceivedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RegisteredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StartDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EndDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="ArchivalAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="TransferringAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "comment", + "date", + "messageIdentifier", + "archivalAgreement", + "codeListVersions", + "dataObjectPackage", + "archivalAgency", + "transferringAgency" +}) +@XmlRootElement(name = "ArchiveTransfer") +public class ArchiveTransfer { + + @XmlElement(name = "Comment", required = true) + protected ArchiveTransfer.Comment comment; + @XmlElement(name = "Date", required = true) + protected ArchiveTransfer.Date date; + @XmlElement(name = "MessageIdentifier", required = true) + protected ArchiveTransfer.MessageIdentifier messageIdentifier; + @XmlElement(name = "ArchivalAgreement", required = true) + protected ArchiveTransfer.ArchivalAgreement archivalAgreement; + @XmlElement(name = "CodeListVersions", required = true) + protected ArchiveTransfer.CodeListVersions codeListVersions; + @XmlElement(name = "DataObjectPackage", required = true) + protected ArchiveTransfer.DataObjectPackage dataObjectPackage; + @XmlElement(name = "ArchivalAgency", required = true) + protected ArchiveTransfer.ArchivalAgency archivalAgency; + @XmlElement(name = "TransferringAgency", required = true) + protected ArchiveTransfer.TransferringAgency transferringAgency; + + /** + * Gets the value of the comment property. + * + * @return + * possible object is + * {@link ArchiveTransfer.Comment } + * + */ + public ArchiveTransfer.Comment getComment() { + return comment; + } + + /** + * Sets the value of the comment property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.Comment } + * + */ + public void setComment(ArchiveTransfer.Comment value) { + this.comment = value; + } + + /** + * Gets the value of the date property. + * + * @return + * possible object is + * {@link ArchiveTransfer.Date } + * + */ + public ArchiveTransfer.Date getDate() { + return date; + } + + /** + * Sets the value of the date property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.Date } + * + */ + public void setDate(ArchiveTransfer.Date value) { + this.date = value; + } + + /** + * Gets the value of the messageIdentifier property. + * + * @return + * possible object is + * {@link ArchiveTransfer.MessageIdentifier } + * + */ + public ArchiveTransfer.MessageIdentifier getMessageIdentifier() { + return messageIdentifier; + } + + /** + * Sets the value of the messageIdentifier property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.MessageIdentifier } + * + */ + public void setMessageIdentifier(ArchiveTransfer.MessageIdentifier value) { + this.messageIdentifier = value; + } + + /** + * Gets the value of the archivalAgreement property. + * + * @return + * possible object is + * {@link ArchiveTransfer.ArchivalAgreement } + * + */ + public ArchiveTransfer.ArchivalAgreement getArchivalAgreement() { + return archivalAgreement; + } + + /** + * Sets the value of the archivalAgreement property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.ArchivalAgreement } + * + */ + public void setArchivalAgreement(ArchiveTransfer.ArchivalAgreement value) { + this.archivalAgreement = value; + } + + /** + * Gets the value of the codeListVersions property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions } + * + */ + public ArchiveTransfer.CodeListVersions getCodeListVersions() { + return codeListVersions; + } + + /** + * Sets the value of the codeListVersions property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions } + * + */ + public void setCodeListVersions(ArchiveTransfer.CodeListVersions value) { + this.codeListVersions = value; + } + + /** + * Gets the value of the dataObjectPackage property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage } + * + */ + public ArchiveTransfer.DataObjectPackage getDataObjectPackage() { + return dataObjectPackage; + } + + /** + * Sets the value of the dataObjectPackage property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage } + * + */ + public void setDataObjectPackage(ArchiveTransfer.DataObjectPackage value) { + this.dataObjectPackage = value; + } + + /** + * Gets the value of the archivalAgency property. + * + * @return + * possible object is + * {@link ArchiveTransfer.ArchivalAgency } + * + */ + public ArchiveTransfer.ArchivalAgency getArchivalAgency() { + return archivalAgency; + } + + /** + * Sets the value of the archivalAgency property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.ArchivalAgency } + * + */ + public void setArchivalAgency(ArchiveTransfer.ArchivalAgency value) { + this.archivalAgency = value; + } + + /** + * Gets the value of the transferringAgency property. + * + * @return + * possible object is + * {@link ArchiveTransfer.TransferringAgency } + * + */ + public ArchiveTransfer.TransferringAgency getTransferringAgency() { + return transferringAgency; + } + + /** + * Sets the value of the transferringAgency property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.TransferringAgency } + * + */ + public void setTransferringAgency(ArchiveTransfer.TransferringAgency value) { + this.transferringAgency = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "identifier" + }) + public static class ArchivalAgency { + + @XmlElement(name = "Identifier", required = true) + protected String identifier; + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class ArchivalAgreement { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ReplyCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MessageDigestAlgorithmCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MimeTypeCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EncodingCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FileFormatCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CompressionAlgorithmCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectVersionCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StorageRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AppraisalRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AccessRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DisseminationRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReuseRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ClassificationRuleCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AuthorizationReasonCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelationshipCodeListVersion"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "replyCodeListVersion", + "messageDigestAlgorithmCodeListVersion", + "mimeTypeCodeListVersion", + "encodingCodeListVersion", + "fileFormatCodeListVersion", + "compressionAlgorithmCodeListVersion", + "dataObjectVersionCodeListVersion", + "storageRuleCodeListVersion", + "appraisalRuleCodeListVersion", + "accessRuleCodeListVersion", + "disseminationRuleCodeListVersion", + "reuseRuleCodeListVersion", + "classificationRuleCodeListVersion", + "authorizationReasonCodeListVersion", + "relationshipCodeListVersion" + }) + public static class CodeListVersions { + + @XmlElement(name = "ReplyCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.ReplyCodeListVersion replyCodeListVersion; + @XmlElement(name = "MessageDigestAlgorithmCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion messageDigestAlgorithmCodeListVersion; + @XmlElement(name = "MimeTypeCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion mimeTypeCodeListVersion; + @XmlElement(name = "EncodingCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.EncodingCodeListVersion encodingCodeListVersion; + @XmlElement(name = "FileFormatCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion fileFormatCodeListVersion; + @XmlElement(name = "CompressionAlgorithmCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion compressionAlgorithmCodeListVersion; + @XmlElement(name = "DataObjectVersionCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion dataObjectVersionCodeListVersion; + @XmlElement(name = "StorageRuleCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion storageRuleCodeListVersion; + @XmlElement(name = "AppraisalRuleCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion appraisalRuleCodeListVersion; + @XmlElement(name = "AccessRuleCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion accessRuleCodeListVersion; + @XmlElement(name = "DisseminationRuleCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion disseminationRuleCodeListVersion; + @XmlElement(name = "ReuseRuleCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion reuseRuleCodeListVersion; + @XmlElement(name = "ClassificationRuleCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion classificationRuleCodeListVersion; + @XmlElement(name = "AuthorizationReasonCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion authorizationReasonCodeListVersion; + @XmlElement(name = "RelationshipCodeListVersion", required = true) + protected ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion relationshipCodeListVersion; + @XmlAttribute(name = "id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Gets the value of the replyCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.ReplyCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.ReplyCodeListVersion getReplyCodeListVersion() { + return replyCodeListVersion; + } + + /** + * Sets the value of the replyCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.ReplyCodeListVersion } + * + */ + public void setReplyCodeListVersion(ArchiveTransfer.CodeListVersions.ReplyCodeListVersion value) { + this.replyCodeListVersion = value; + } + + /** + * Gets the value of the messageDigestAlgorithmCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion getMessageDigestAlgorithmCodeListVersion() { + return messageDigestAlgorithmCodeListVersion; + } + + /** + * Sets the value of the messageDigestAlgorithmCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion } + * + */ + public void setMessageDigestAlgorithmCodeListVersion(ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion value) { + this.messageDigestAlgorithmCodeListVersion = value; + } + + /** + * Gets the value of the mimeTypeCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion getMimeTypeCodeListVersion() { + return mimeTypeCodeListVersion; + } + + /** + * Sets the value of the mimeTypeCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion } + * + */ + public void setMimeTypeCodeListVersion(ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion value) { + this.mimeTypeCodeListVersion = value; + } + + /** + * Gets the value of the encodingCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.EncodingCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.EncodingCodeListVersion getEncodingCodeListVersion() { + return encodingCodeListVersion; + } + + /** + * Sets the value of the encodingCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.EncodingCodeListVersion } + * + */ + public void setEncodingCodeListVersion(ArchiveTransfer.CodeListVersions.EncodingCodeListVersion value) { + this.encodingCodeListVersion = value; + } + + /** + * Gets the value of the fileFormatCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion getFileFormatCodeListVersion() { + return fileFormatCodeListVersion; + } + + /** + * Sets the value of the fileFormatCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion } + * + */ + public void setFileFormatCodeListVersion(ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion value) { + this.fileFormatCodeListVersion = value; + } + + /** + * Gets the value of the compressionAlgorithmCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion getCompressionAlgorithmCodeListVersion() { + return compressionAlgorithmCodeListVersion; + } + + /** + * Sets the value of the compressionAlgorithmCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion } + * + */ + public void setCompressionAlgorithmCodeListVersion(ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion value) { + this.compressionAlgorithmCodeListVersion = value; + } + + /** + * Gets the value of the dataObjectVersionCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion getDataObjectVersionCodeListVersion() { + return dataObjectVersionCodeListVersion; + } + + /** + * Sets the value of the dataObjectVersionCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion } + * + */ + public void setDataObjectVersionCodeListVersion(ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion value) { + this.dataObjectVersionCodeListVersion = value; + } + + /** + * Gets the value of the storageRuleCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion getStorageRuleCodeListVersion() { + return storageRuleCodeListVersion; + } + + /** + * Sets the value of the storageRuleCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion } + * + */ + public void setStorageRuleCodeListVersion(ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion value) { + this.storageRuleCodeListVersion = value; + } + + /** + * Gets the value of the appraisalRuleCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion getAppraisalRuleCodeListVersion() { + return appraisalRuleCodeListVersion; + } + + /** + * Sets the value of the appraisalRuleCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion } + * + */ + public void setAppraisalRuleCodeListVersion(ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion value) { + this.appraisalRuleCodeListVersion = value; + } + + /** + * Gets the value of the accessRuleCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion getAccessRuleCodeListVersion() { + return accessRuleCodeListVersion; + } + + /** + * Sets the value of the accessRuleCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion } + * + */ + public void setAccessRuleCodeListVersion(ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion value) { + this.accessRuleCodeListVersion = value; + } + + /** + * Gets the value of the disseminationRuleCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion getDisseminationRuleCodeListVersion() { + return disseminationRuleCodeListVersion; + } + + /** + * Sets the value of the disseminationRuleCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion } + * + */ + public void setDisseminationRuleCodeListVersion(ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion value) { + this.disseminationRuleCodeListVersion = value; + } + + /** + * Gets the value of the reuseRuleCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion getReuseRuleCodeListVersion() { + return reuseRuleCodeListVersion; + } + + /** + * Sets the value of the reuseRuleCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion } + * + */ + public void setReuseRuleCodeListVersion(ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion value) { + this.reuseRuleCodeListVersion = value; + } + + /** + * Gets the value of the classificationRuleCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion getClassificationRuleCodeListVersion() { + return classificationRuleCodeListVersion; + } + + /** + * Sets the value of the classificationRuleCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion } + * + */ + public void setClassificationRuleCodeListVersion(ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion value) { + this.classificationRuleCodeListVersion = value; + } + + /** + * Gets the value of the authorizationReasonCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion getAuthorizationReasonCodeListVersion() { + return authorizationReasonCodeListVersion; + } + + /** + * Sets the value of the authorizationReasonCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion } + * + */ + public void setAuthorizationReasonCodeListVersion(ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion value) { + this.authorizationReasonCodeListVersion = value; + } + + /** + * Gets the value of the relationshipCodeListVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion getRelationshipCodeListVersion() { + return relationshipCodeListVersion; + } + + /** + * Sets the value of the relationshipCodeListVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion } + * + */ + public void setRelationshipCodeListVersion(ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion value) { + this.relationshipCodeListVersion = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class AccessRuleCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class AppraisalRuleCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class AuthorizationReasonCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class ClassificationRuleCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class CompressionAlgorithmCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DataObjectVersionCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DisseminationRuleCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class EncodingCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FileFormatCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class MessageDigestAlgorithmCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class MimeTypeCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class RelationshipCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class ReplyCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class ReuseRuleCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listSchemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="listAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="listURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class StorageRuleCodeListVersion { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listName") + protected String listName; + @XmlAttribute(name = "listAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listAgencyID; + @XmlAttribute(name = "listSchemeURI") + @XmlSchemaType(name = "anyURI") + protected String listSchemeURI; + @XmlAttribute(name = "listID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listID; + @XmlAttribute(name = "listAgencyName") + protected String listAgencyName; + @XmlAttribute(name = "listURI") + @XmlSchemaType(name = "anyURI") + protected String listURI; + @XmlAttribute(name = "listVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListName() { + return listName; + } + + /** + * Sets the value of the listName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListName(String value) { + this.listName = value; + } + + /** + * Gets the value of the listAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyID() { + return listAgencyID; + } + + /** + * Sets the value of the listAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyID(String value) { + this.listAgencyID = value; + } + + /** + * Gets the value of the listSchemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListSchemeURI() { + return listSchemeURI; + } + + /** + * Sets the value of the listSchemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListSchemeURI(String value) { + this.listSchemeURI = value; + } + + /** + * Gets the value of the listID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListID() { + return listID; + } + + /** + * Sets the value of the listID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListID(String value) { + this.listID = value; + } + + /** + * Gets the value of the listAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListAgencyName() { + return listAgencyName; + } + + /** + * Sets the value of the listAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListAgencyName(String value) { + this.listAgencyName = value; + } + + /** + * Gets the value of the listURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListURI() { + return listURI; + } + + /** + * Sets the value of the listURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListURI(String value) { + this.listURI = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + return listVersionID; + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Comment { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="BinaryDataObject"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectGroupReferenceId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectGroupId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <choice> + * <element name="Uri" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>anyURI"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Attachement" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="uri" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="filename" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * <element name="MessageDigest"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>base64Binary"> + * <attribute name="algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Size"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>positiveInteger"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Compressed" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="algorithm" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="uncompressedSize" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatIdentification"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="FormatLitteral"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MimeType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatId"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="FileInfo"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Filename"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationName"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DateCreatedByApplication" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOs" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOsVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="LastModified" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Metadata" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element name="Audio" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Document" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Image" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Text" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Video" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OtherMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Relationship" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="target" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="DescriptiveMetadata"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ArchiveUnit"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Content" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DescriptionLevel"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Title"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FilePlanPosition" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="OriginatingSystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ArchivalAgencyArchiveUnitIdentifier" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Description"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CustodialHistory" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CustodialHistoryItem" type="{http://www.w3.org/2001/XMLSchema}anyType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Type" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DocumentType" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Language" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>language"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DescriptionLanguage" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Status" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Version" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Tag" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Keyword"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeywordContent"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordReference" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Coverage" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Spatial" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Temporal" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Juridictional" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OriginatingAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="SubmissionAgency" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier" minOccurs="0"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="AuthorizedAgent" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Writer" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Adressee" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Recipient" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Source" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelatedObjectReference" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> + * <element name="CreatedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="TransactedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AcquiredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SentDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReceivedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RegisteredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StartDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EndDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "binaryDataObject", + "descriptiveMetadata" + }) + public static class DataObjectPackage { + + @XmlElement(name = "BinaryDataObject", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject binaryDataObject; + @XmlElement(name = "DescriptiveMetadata", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata descriptiveMetadata; + @XmlAttribute(name = "id", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Gets the value of the binaryDataObject property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject getBinaryDataObject() { + return binaryDataObject; + } + + /** + * Sets the value of the binaryDataObject property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject } + * + */ + public void setBinaryDataObject(ArchiveTransfer.DataObjectPackage.BinaryDataObject value) { + this.binaryDataObject = value; + } + + /** + * Gets the value of the descriptiveMetadata property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata getDescriptiveMetadata() { + return descriptiveMetadata; + } + + /** + * Sets the value of the descriptiveMetadata property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata } + * + */ + public void setDescriptiveMetadata(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata value) { + this.descriptiveMetadata = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectGroupReferenceId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectGroupId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DataObjectVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <choice> + * <element name="Uri" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>anyURI"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Attachement" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="uri" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="filename" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * <element name="MessageDigest"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>base64Binary"> + * <attribute name="algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Size"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>positiveInteger"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Compressed" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="algorithm" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="uncompressedSize" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatIdentification"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="FormatLitteral"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MimeType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatId"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="FileInfo"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Filename"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationName"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DateCreatedByApplication" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOs" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOsVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="LastModified" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Metadata" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element name="Audio" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Document" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Image" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Text" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Video" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OtherMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Relationship" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="target" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "dataObjectGroupReferenceId", + "dataObjectGroupId", + "dataObjectVersion", + "uri", + "attachement", + "messageDigest", + "size", + "compressed", + "formatIdentification", + "fileInfo", + "metadata", + "otherMetadata", + "relationship" + }) + public static class BinaryDataObject { + + @XmlElement(name = "DataObjectGroupReferenceId") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId dataObjectGroupReferenceId; + @XmlElement(name = "DataObjectGroupId") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId dataObjectGroupId; + @XmlElement(name = "DataObjectVersion") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion dataObjectVersion; + @XmlElement(name = "Uri") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri uri; + @XmlElement(name = "Attachement") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement attachement; + @XmlElement(name = "MessageDigest", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest messageDigest; + @XmlElement(name = "Size", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size size; + @XmlElement(name = "Compressed") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed compressed; + @XmlElement(name = "FormatIdentification", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification formatIdentification; + @XmlElement(name = "FileInfo", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo fileInfo; + @XmlElement(name = "Metadata") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata metadata; + @XmlElement(name = "OtherMetadata") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata otherMetadata; + @XmlElement(name = "Relationship") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship relationship; + @XmlAttribute(name = "id", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Gets the value of the dataObjectGroupReferenceId property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId getDataObjectGroupReferenceId() { + return dataObjectGroupReferenceId; + } + + /** + * Sets the value of the dataObjectGroupReferenceId property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId } + * + */ + public void setDataObjectGroupReferenceId(ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId value) { + this.dataObjectGroupReferenceId = value; + } + + /** + * Gets the value of the dataObjectGroupId property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId getDataObjectGroupId() { + return dataObjectGroupId; + } + + /** + * Sets the value of the dataObjectGroupId property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId } + * + */ + public void setDataObjectGroupId(ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId value) { + this.dataObjectGroupId = value; + } + + /** + * Gets the value of the dataObjectVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion getDataObjectVersion() { + return dataObjectVersion; + } + + /** + * Sets the value of the dataObjectVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion } + * + */ + public void setDataObjectVersion(ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion value) { + this.dataObjectVersion = value; + } + + /** + * Gets the value of the uri property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri getUri() { + return uri; + } + + /** + * Sets the value of the uri property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri } + * + */ + public void setUri(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri value) { + this.uri = value; + } + + /** + * Gets the value of the attachement property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement getAttachement() { + return attachement; + } + + /** + * Sets the value of the attachement property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement } + * + */ + public void setAttachement(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement value) { + this.attachement = value; + } + + /** + * Gets the value of the messageDigest property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest getMessageDigest() { + return messageDigest; + } + + /** + * Sets the value of the messageDigest property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest } + * + */ + public void setMessageDigest(ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest value) { + this.messageDigest = value; + } + + /** + * Gets the value of the size property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size getSize() { + return size; + } + + /** + * Sets the value of the size property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size } + * + */ + public void setSize(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size value) { + this.size = value; + } + + /** + * Gets the value of the compressed property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed getCompressed() { + return compressed; + } + + /** + * Sets the value of the compressed property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed } + * + */ + public void setCompressed(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed value) { + this.compressed = value; + } + + /** + * Gets the value of the formatIdentification property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification getFormatIdentification() { + return formatIdentification; + } + + /** + * Sets the value of the formatIdentification property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification } + * + */ + public void setFormatIdentification(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification value) { + this.formatIdentification = value; + } + + /** + * Gets the value of the fileInfo property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo getFileInfo() { + return fileInfo; + } + + /** + * Sets the value of the fileInfo property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo } + * + */ + public void setFileInfo(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo value) { + this.fileInfo = value; + } + + /** + * Gets the value of the metadata property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata getMetadata() { + return metadata; + } + + /** + * Sets the value of the metadata property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata } + * + */ + public void setMetadata(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata value) { + this.metadata = value; + } + + /** + * Gets the value of the otherMetadata property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata getOtherMetadata() { + return otherMetadata; + } + + /** + * Sets the value of the otherMetadata property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata } + * + */ + public void setOtherMetadata(ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata value) { + this.otherMetadata = value; + } + + /** + * Gets the value of the relationship property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship getRelationship() { + return relationship; + } + + /** + * Sets the value of the relationship property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship } + * + */ + public void setRelationship(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship value) { + this.relationship = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="uri" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="filename" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Attachement { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "uri") + @XmlSchemaType(name = "anyURI") + protected String uri; + @XmlAttribute(name = "filename") + protected String filename; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the uri property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUri() { + return uri; + } + + /** + * Sets the value of the uri property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUri(String value) { + this.uri = value; + } + + /** + * Gets the value of the filename property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFilename() { + return filename; + } + + /** + * Sets the value of the filename property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFilename(String value) { + this.filename = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="algorithm" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="uncompressedSize" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Compressed { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "algorithm") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String algorithm; + @XmlAttribute(name = "uncompressedSize") + @XmlSchemaType(name = "positiveInteger") + protected BigInteger uncompressedSize; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the algorithm property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAlgorithm() { + return algorithm; + } + + /** + * Sets the value of the algorithm property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAlgorithm(String value) { + this.algorithm = value; + } + + /** + * Gets the value of the uncompressedSize property. + * + * @return + * possible object is + * {@link BigInteger } + * + */ + public BigInteger getUncompressedSize() { + return uncompressedSize; + } + + /** + * Sets the value of the uncompressedSize property. + * + * @param value + * allowed object is + * {@link BigInteger } + * + */ + public void setUncompressedSize(BigInteger value) { + this.uncompressedSize = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DataObjectGroupId { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DataObjectGroupReferenceId { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DataObjectVersion { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Filename"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationName"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingApplicationVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DateCreatedByApplication" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOs" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CreatingOsVersion" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="LastModified" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "filename", + "creatingApplicationName", + "creatingApplicationVersion", + "dateCreatedByApplication", + "creatingOs", + "creatingOsVersion", + "lastModified" + }) + public static class FileInfo { + + @XmlElement(name = "Filename", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename filename; + @XmlElement(name = "CreatingApplicationName", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName creatingApplicationName; + @XmlElement(name = "CreatingApplicationVersion") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion creatingApplicationVersion; + @XmlElement(name = "DateCreatedByApplication") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication dateCreatedByApplication; + @XmlElement(name = "CreatingOs") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs creatingOs; + @XmlElement(name = "CreatingOsVersion") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion creatingOsVersion; + @XmlElement(name = "LastModified") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified lastModified; + + /** + * Gets the value of the filename property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename getFilename() { + return filename; + } + + /** + * Sets the value of the filename property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename } + * + */ + public void setFilename(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename value) { + this.filename = value; + } + + /** + * Gets the value of the creatingApplicationName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName getCreatingApplicationName() { + return creatingApplicationName; + } + + /** + * Sets the value of the creatingApplicationName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName } + * + */ + public void setCreatingApplicationName(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName value) { + this.creatingApplicationName = value; + } + + /** + * Gets the value of the creatingApplicationVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion getCreatingApplicationVersion() { + return creatingApplicationVersion; + } + + /** + * Sets the value of the creatingApplicationVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion } + * + */ + public void setCreatingApplicationVersion(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion value) { + this.creatingApplicationVersion = value; + } + + /** + * Gets the value of the dateCreatedByApplication property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication getDateCreatedByApplication() { + return dateCreatedByApplication; + } + + /** + * Sets the value of the dateCreatedByApplication property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication } + * + */ + public void setDateCreatedByApplication(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication value) { + this.dateCreatedByApplication = value; + } + + /** + * Gets the value of the creatingOs property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs getCreatingOs() { + return creatingOs; + } + + /** + * Sets the value of the creatingOs property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs } + * + */ + public void setCreatingOs(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs value) { + this.creatingOs = value; + } + + /** + * Gets the value of the creatingOsVersion property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion getCreatingOsVersion() { + return creatingOsVersion; + } + + /** + * Sets the value of the creatingOsVersion property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion } + * + */ + public void setCreatingOsVersion(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion value) { + this.creatingOsVersion = value; + } + + /** + * Gets the value of the lastModified property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified getLastModified() { + return lastModified; + } + + /** + * Sets the value of the lastModified property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified } + * + */ + public void setLastModified(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified value) { + this.lastModified = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class CreatingApplicationName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class CreatingApplicationVersion { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class CreatingOs { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class CreatingOsVersion { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DateCreatedByApplication { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Filename { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class LastModified { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="FormatLitteral"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="MimeType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FormatId"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "formatLitteral", + "mimeType", + "formatId" + }) + public static class FormatIdentification { + + @XmlElement(name = "FormatLitteral", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral formatLitteral; + @XmlElement(name = "MimeType", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType mimeType; + @XmlElement(name = "FormatId", required = true) + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId formatId; + + /** + * Gets the value of the formatLitteral property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral getFormatLitteral() { + return formatLitteral; + } + + /** + * Sets the value of the formatLitteral property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral } + * + */ + public void setFormatLitteral(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral value) { + this.formatLitteral = value; + } + + /** + * Gets the value of the mimeType property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType getMimeType() { + return mimeType; + } + + /** + * Sets the value of the mimeType property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType } + * + */ + public void setMimeType(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType value) { + this.mimeType = value; + } + + /** + * Gets the value of the formatId property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId getFormatId() { + return formatId; + } + + /** + * Sets the value of the formatId property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId } + * + */ + public void setFormatId(ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId value) { + this.formatId = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FormatId { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FormatLitteral { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class MimeType { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>base64Binary"> + * <attribute name="algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}token" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class MessageDigest { + + @XmlValue + protected byte[] value; + @XmlAttribute(name = "algorithm", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String algorithm; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * byte[] + */ + public byte[] getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * byte[] + */ + public void setValue(byte[] value) { + this.value = value; + } + + /** + * Gets the value of the algorithm property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAlgorithm() { + return algorithm; + } + + /** + * Sets the value of the algorithm property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAlgorithm(String value) { + this.algorithm = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element name="Audio" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Document" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Image" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Text" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Video" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "audio", + "document", + "image", + "text", + "video" + }) + public static class Metadata { + + @XmlElement(name = "Audio") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio audio; + @XmlElement(name = "Document") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document document; + @XmlElement(name = "Image") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image image; + @XmlElement(name = "Text") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text text; + @XmlElement(name = "Video") + protected ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video video; + + /** + * Gets the value of the audio property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio getAudio() { + return audio; + } + + /** + * Sets the value of the audio property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio } + * + */ + public void setAudio(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio value) { + this.audio = value; + } + + /** + * Gets the value of the document property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document getDocument() { + return document; + } + + /** + * Sets the value of the document property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document } + * + */ + public void setDocument(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document value) { + this.document = value; + } + + /** + * Gets the value of the image property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image getImage() { + return image; + } + + /** + * Sets the value of the image property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image } + * + */ + public void setImage(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image value) { + this.image = value; + } + + /** + * Gets the value of the text property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text getText() { + return text; + } + + /** + * Sets the value of the text property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text } + * + */ + public void setText(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text value) { + this.text = value; + } + + /** + * Gets the value of the video property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video getVideo() { + return video; + } + + /** + * Sets the value of the video property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video } + * + */ + public void setVideo(ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video value) { + this.video = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Audio { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Document { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Image { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Text { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Video { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class OtherMetadata { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="target" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="type" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Relationship { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "target") + protected String target; + @XmlAttribute(name = "type") + protected String type; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the target property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTarget() { + return target; + } + + /** + * Sets the value of the target property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTarget(String value) { + this.target = value; + } + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>positiveInteger"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Size { + + @XmlValue + @XmlSchemaType(name = "positiveInteger") + protected BigInteger value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link BigInteger } + * + */ + public BigInteger getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link BigInteger } + * + */ + public void setValue(BigInteger value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>anyURI"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Uri { + + @XmlValue + @XmlSchemaType(name = "anyURI") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ArchiveUnit"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Content" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DescriptionLevel"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Title"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FilePlanPosition" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="OriginatingSystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ArchivalAgencyArchiveUnitIdentifier" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Description"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CustodialHistory" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CustodialHistoryItem" type="{http://www.w3.org/2001/XMLSchema}anyType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Type" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DocumentType" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Language" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>language"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DescriptionLanguage" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Status" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Version" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Tag" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Keyword"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeywordContent"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordReference" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Coverage" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Spatial" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Temporal" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Juridictional" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OriginatingAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="SubmissionAgency" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier" minOccurs="0"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="AuthorizedAgent" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Writer" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Adressee" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Recipient" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Source" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelatedObjectReference" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> + * <element name="CreatedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="TransactedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AcquiredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SentDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReceivedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RegisteredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StartDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EndDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "archiveUnit" + }) + public static class DescriptiveMetadata { + + @XmlElement(name = "ArchiveUnit", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit archiveUnit; + + /** + * Gets the value of the archiveUnit property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit getArchiveUnit() { + return archiveUnit; + } + + /** + * Sets the value of the archiveUnit property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit } + * + */ + public void setArchiveUnit(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit value) { + this.archiveUnit = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Content" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DescriptionLevel"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Title"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FilePlanPosition" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="OriginatingSystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ArchivalAgencyArchiveUnitIdentifier" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Description"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CustodialHistory" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CustodialHistoryItem" type="{http://www.w3.org/2001/XMLSchema}anyType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Type" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DocumentType" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Language" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>language"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DescriptionLanguage" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Status" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Version" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Tag" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Keyword"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeywordContent"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordReference" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Coverage" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Spatial" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Temporal" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Juridictional" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OriginatingAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="SubmissionAgency" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier" minOccurs="0"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="AuthorizedAgent" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Writer" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Adressee" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Recipient" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Source" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelatedObjectReference" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> + * <element name="CreatedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="TransactedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AcquiredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SentDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReceivedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RegisteredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StartDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EndDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "content" + }) + public static class ArchiveUnit { + + @XmlElement(name = "Content", required = true) + protected List<ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content> content; + + /** + * Gets the value of the content property. + * + * <p> + * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a <CODE>set</CODE> method for the content property. + * + * <p> + * For example, to add a new item, do as follows: + * <pre> + * getContent().add(newItem); + * </pre> + * + * + * <p> + * Objects of the following type(s) are allowed in the list + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content } + * + * + */ + public List<ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content> getContent() { + if (content == null) { + content = new ArrayList<ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content>(); + } + return this.content; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DescriptionLevel"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Title"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="FilePlanPosition" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="OriginatingSystemId" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ArchivalAgencyArchiveUnitIdentifier" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Description"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="CustodialHistory" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CustodialHistoryItem" type="{http://www.w3.org/2001/XMLSchema}anyType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Type" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DocumentType" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Language" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>language"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DescriptionLanguage" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Status" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Version" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Tag" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Keyword"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeywordContent"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordReference" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Coverage" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Spatial" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Temporal" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Juridictional" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="OriginatingAgency"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="SubmissionAgency" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier" minOccurs="0"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="AuthorizedAgent" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Writer" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Adressee" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Recipient" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="Source" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RelatedObjectReference" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> + * <element name="CreatedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="TransactedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="AcquiredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="SentDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="ReceivedDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="RegisteredDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="StartDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="EndDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "descriptionLevel", + "title", + "filePlanPosition", + "systemId", + "originatingSystemId", + "archivalAgencyArchiveUnitIdentifier", + "description", + "custodialHistory", + "type", + "documentType", + "language", + "descriptionLanguage", + "status", + "version", + "tag", + "keyword", + "coverage", + "originatingAgency", + "submissionAgency", + "authorizedAgent", + "writer", + "adressee", + "recipient", + "source", + "relatedObjectReference", + "createdDate", + "transactedDate", + "acquiredDate", + "sentDate", + "receivedDate", + "registeredDate", + "startDate", + "endDate" + }) + public static class Content { + + @XmlElement(name = "DescriptionLevel", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel descriptionLevel; + @XmlElement(name = "Title", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title title; + @XmlElement(name = "FilePlanPosition") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition filePlanPosition; + @XmlElement(name = "SystemId") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId systemId; + @XmlElement(name = "OriginatingSystemId") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId originatingSystemId; + @XmlElement(name = "ArchivalAgencyArchiveUnitIdentifier") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier archivalAgencyArchiveUnitIdentifier; + @XmlElement(name = "Description", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description description; + @XmlElement(name = "CustodialHistory") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory custodialHistory; + @XmlElement(name = "Type") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type type; + @XmlElement(name = "DocumentType") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType documentType; + @XmlElement(name = "Language") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language language; + @XmlElement(name = "DescriptionLanguage") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage descriptionLanguage; + @XmlElement(name = "Status") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status status; + @XmlElement(name = "Version") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version version; + @XmlElement(name = "Tag") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag tag; + @XmlElement(name = "Keyword", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword keyword; + @XmlElement(name = "Coverage") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage coverage; + @XmlElement(name = "OriginatingAgency", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency originatingAgency; + @XmlElement(name = "SubmissionAgency") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency submissionAgency; + @XmlElement(name = "AuthorizedAgent") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent authorizedAgent; + @XmlElement(name = "Writer") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer writer; + @XmlElement(name = "Adressee") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee adressee; + @XmlElement(name = "Recipient") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient recipient; + @XmlElement(name = "Source") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source source; + @XmlElement(name = "RelatedObjectReference") + protected Object relatedObjectReference; + @XmlElement(name = "CreatedDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate createdDate; + @XmlElement(name = "TransactedDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate transactedDate; + @XmlElement(name = "AcquiredDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate acquiredDate; + @XmlElement(name = "SentDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate sentDate; + @XmlElement(name = "ReceivedDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate receivedDate; + @XmlElement(name = "RegisteredDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate registeredDate; + @XmlElement(name = "StartDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate startDate; + @XmlElement(name = "EndDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate endDate; + + /** + * Gets the value of the descriptionLevel property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel getDescriptionLevel() { + return descriptionLevel; + } + + /** + * Sets the value of the descriptionLevel property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel } + * + */ + public void setDescriptionLevel(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel value) { + this.descriptionLevel = value; + } + + /** + * Gets the value of the title property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title getTitle() { + return title; + } + + /** + * Sets the value of the title property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title } + * + */ + public void setTitle(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title value) { + this.title = value; + } + + /** + * Gets the value of the filePlanPosition property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition getFilePlanPosition() { + return filePlanPosition; + } + + /** + * Sets the value of the filePlanPosition property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition } + * + */ + public void setFilePlanPosition(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition value) { + this.filePlanPosition = value; + } + + /** + * Gets the value of the systemId property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId getSystemId() { + return systemId; + } + + /** + * Sets the value of the systemId property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId } + * + */ + public void setSystemId(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId value) { + this.systemId = value; + } + + /** + * Gets the value of the originatingSystemId property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId getOriginatingSystemId() { + return originatingSystemId; + } + + /** + * Sets the value of the originatingSystemId property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId } + * + */ + public void setOriginatingSystemId(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId value) { + this.originatingSystemId = value; + } + + /** + * Gets the value of the archivalAgencyArchiveUnitIdentifier property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier getArchivalAgencyArchiveUnitIdentifier() { + return archivalAgencyArchiveUnitIdentifier; + } + + /** + * Sets the value of the archivalAgencyArchiveUnitIdentifier property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier } + * + */ + public void setArchivalAgencyArchiveUnitIdentifier(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier value) { + this.archivalAgencyArchiveUnitIdentifier = value; + } + + /** + * Gets the value of the description property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description getDescription() { + return description; + } + + /** + * Sets the value of the description property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description } + * + */ + public void setDescription(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description value) { + this.description = value; + } + + /** + * Gets the value of the custodialHistory property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory getCustodialHistory() { + return custodialHistory; + } + + /** + * Sets the value of the custodialHistory property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory } + * + */ + public void setCustodialHistory(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory value) { + this.custodialHistory = value; + } + + /** + * Gets the value of the type property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type getType() { + return type; + } + + /** + * Sets the value of the type property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type } + * + */ + public void setType(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type value) { + this.type = value; + } + + /** + * Gets the value of the documentType property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType getDocumentType() { + return documentType; + } + + /** + * Sets the value of the documentType property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType } + * + */ + public void setDocumentType(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType value) { + this.documentType = value; + } + + /** + * Gets the value of the language property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language getLanguage() { + return language; + } + + /** + * Sets the value of the language property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language } + * + */ + public void setLanguage(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language value) { + this.language = value; + } + + /** + * Gets the value of the descriptionLanguage property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage getDescriptionLanguage() { + return descriptionLanguage; + } + + /** + * Sets the value of the descriptionLanguage property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage } + * + */ + public void setDescriptionLanguage(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage value) { + this.descriptionLanguage = value; + } + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status } + * + */ + public void setStatus(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status value) { + this.status = value; + } + + /** + * Gets the value of the version property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version getVersion() { + return version; + } + + /** + * Sets the value of the version property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version } + * + */ + public void setVersion(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version value) { + this.version = value; + } + + /** + * Gets the value of the tag property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag getTag() { + return tag; + } + + /** + * Sets the value of the tag property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag } + * + */ + public void setTag(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag value) { + this.tag = value; + } + + /** + * Gets the value of the keyword property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword getKeyword() { + return keyword; + } + + /** + * Sets the value of the keyword property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword } + * + */ + public void setKeyword(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword value) { + this.keyword = value; + } + + /** + * Gets the value of the coverage property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage getCoverage() { + return coverage; + } + + /** + * Sets the value of the coverage property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage } + * + */ + public void setCoverage(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage value) { + this.coverage = value; + } + + /** + * Gets the value of the originatingAgency property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency getOriginatingAgency() { + return originatingAgency; + } + + /** + * Sets the value of the originatingAgency property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency } + * + */ + public void setOriginatingAgency(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency value) { + this.originatingAgency = value; + } + + /** + * Gets the value of the submissionAgency property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency getSubmissionAgency() { + return submissionAgency; + } + + /** + * Sets the value of the submissionAgency property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency } + * + */ + public void setSubmissionAgency(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency value) { + this.submissionAgency = value; + } + + /** + * Gets the value of the authorizedAgent property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent getAuthorizedAgent() { + return authorizedAgent; + } + + /** + * Sets the value of the authorizedAgent property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent } + * + */ + public void setAuthorizedAgent(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent value) { + this.authorizedAgent = value; + } + + /** + * Gets the value of the writer property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer getWriter() { + return writer; + } + + /** + * Sets the value of the writer property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer } + * + */ + public void setWriter(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer value) { + this.writer = value; + } + + /** + * Gets the value of the adressee property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee getAdressee() { + return adressee; + } + + /** + * Sets the value of the adressee property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee } + * + */ + public void setAdressee(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee value) { + this.adressee = value; + } + + /** + * Gets the value of the recipient property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient getRecipient() { + return recipient; + } + + /** + * Sets the value of the recipient property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient } + * + */ + public void setRecipient(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient value) { + this.recipient = value; + } + + /** + * Gets the value of the source property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source getSource() { + return source; + } + + /** + * Sets the value of the source property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source } + * + */ + public void setSource(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source value) { + this.source = value; + } + + /** + * Gets the value of the relatedObjectReference property. + * + * @return + * possible object is + * {@link Object } + * + */ + public Object getRelatedObjectReference() { + return relatedObjectReference; + } + + /** + * Sets the value of the relatedObjectReference property. + * + * @param value + * allowed object is + * {@link Object } + * + */ + public void setRelatedObjectReference(Object value) { + this.relatedObjectReference = value; + } + + /** + * Gets the value of the createdDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate getCreatedDate() { + return createdDate; + } + + /** + * Sets the value of the createdDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate } + * + */ + public void setCreatedDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate value) { + this.createdDate = value; + } + + /** + * Gets the value of the transactedDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate getTransactedDate() { + return transactedDate; + } + + /** + * Sets the value of the transactedDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate } + * + */ + public void setTransactedDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate value) { + this.transactedDate = value; + } + + /** + * Gets the value of the acquiredDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate getAcquiredDate() { + return acquiredDate; + } + + /** + * Sets the value of the acquiredDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate } + * + */ + public void setAcquiredDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate value) { + this.acquiredDate = value; + } + + /** + * Gets the value of the sentDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate getSentDate() { + return sentDate; + } + + /** + * Sets the value of the sentDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate } + * + */ + public void setSentDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate value) { + this.sentDate = value; + } + + /** + * Gets the value of the receivedDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate getReceivedDate() { + return receivedDate; + } + + /** + * Sets the value of the receivedDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate } + * + */ + public void setReceivedDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate value) { + this.receivedDate = value; + } + + /** + * Gets the value of the registeredDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate getRegisteredDate() { + return registeredDate; + } + + /** + * Sets the value of the registeredDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate } + * + */ + public void setRegisteredDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate value) { + this.registeredDate = value; + } + + /** + * Gets the value of the startDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate getStartDate() { + return startDate; + } + + /** + * Sets the value of the startDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate } + * + */ + public void setStartDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate value) { + this.startDate = value; + } + + /** + * Gets the value of the endDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate getEndDate() { + return endDate; + } + + /** + * Sets the value of the endDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate } + * + */ + public void setEndDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate value) { + this.endDate = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class AcquiredDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "corpname", + "firstName", + "birthName", + "givenName", + "gender", + "birthDate", + "birthPlace", + "deathDate", + "deathPlace", + "nationality", + "identifier" + }) + public static class Adressee { + + @XmlElement(name = "Corpname") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname corpname; + @XmlElement(name = "FirstName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName firstName; + @XmlElement(name = "BirthName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName birthName; + @XmlElement(name = "GivenName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName givenName; + @XmlElement(name = "Gender") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender gender; + @XmlElement(name = "BirthDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate birthDate; + @XmlElement(name = "BirthPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace birthPlace; + @XmlElement(name = "DeathDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate deathDate; + @XmlElement(name = "DeathPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace deathPlace; + @XmlElement(name = "Nationality") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality nationality; + @XmlElement(name = "Identifier") + protected String identifier; + + /** + * Gets the value of the corpname property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname getCorpname() { + return corpname; + } + + /** + * Sets the value of the corpname property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname } + * + */ + public void setCorpname(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname value) { + this.corpname = value; + } + + /** + * Gets the value of the firstName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName getFirstName() { + return firstName; + } + + /** + * Sets the value of the firstName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName } + * + */ + public void setFirstName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName value) { + this.firstName = value; + } + + /** + * Gets the value of the birthName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName getBirthName() { + return birthName; + } + + /** + * Sets the value of the birthName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName } + * + */ + public void setBirthName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName value) { + this.birthName = value; + } + + /** + * Gets the value of the givenName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName getGivenName() { + return givenName; + } + + /** + * Sets the value of the givenName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName } + * + */ + public void setGivenName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName value) { + this.givenName = value; + } + + /** + * Gets the value of the gender property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender getGender() { + return gender; + } + + /** + * Sets the value of the gender property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender } + * + */ + public void setGender(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender value) { + this.gender = value; + } + + /** + * Gets the value of the birthDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate getBirthDate() { + return birthDate; + } + + /** + * Sets the value of the birthDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate } + * + */ + public void setBirthDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate value) { + this.birthDate = value; + } + + /** + * Gets the value of the birthPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace getBirthPlace() { + return birthPlace; + } + + /** + * Sets the value of the birthPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace } + * + */ + public void setBirthPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace value) { + this.birthPlace = value; + } + + /** + * Gets the value of the deathDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate getDeathDate() { + return deathDate; + } + + /** + * Sets the value of the deathDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate } + * + */ + public void setDeathDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate value) { + this.deathDate = value; + } + + /** + * Gets the value of the deathPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace getDeathPlace() { + return deathPlace; + } + + /** + * Sets the value of the deathPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace } + * + */ + public void setDeathPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace value) { + this.deathPlace = value; + } + + /** + * Gets the value of the nationality property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality getNationality() { + return nationality; + } + + /** + * Sets the value of the nationality property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality } + * + */ + public void setNationality(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality value) { + this.nationality = value; + } + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Corpname { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FirstName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Gender { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class GivenName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Nationality { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class ArchivalAgencyArchiveUnitIdentifier { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "corpname", + "firstName", + "birthName", + "givenName", + "gender", + "birthDate", + "birthPlace", + "deathDate", + "deathPlace", + "nationality", + "identifier" + }) + public static class AuthorizedAgent { + + @XmlElement(name = "Corpname") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname corpname; + @XmlElement(name = "FirstName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName firstName; + @XmlElement(name = "BirthName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName birthName; + @XmlElement(name = "GivenName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName givenName; + @XmlElement(name = "Gender") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender gender; + @XmlElement(name = "BirthDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate birthDate; + @XmlElement(name = "BirthPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace birthPlace; + @XmlElement(name = "DeathDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate deathDate; + @XmlElement(name = "DeathPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace deathPlace; + @XmlElement(name = "Nationality") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality nationality; + @XmlElement(name = "Identifier") + protected String identifier; + + /** + * Gets the value of the corpname property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname getCorpname() { + return corpname; + } + + /** + * Sets the value of the corpname property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname } + * + */ + public void setCorpname(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname value) { + this.corpname = value; + } + + /** + * Gets the value of the firstName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName getFirstName() { + return firstName; + } + + /** + * Sets the value of the firstName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName } + * + */ + public void setFirstName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName value) { + this.firstName = value; + } + + /** + * Gets the value of the birthName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName getBirthName() { + return birthName; + } + + /** + * Sets the value of the birthName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName } + * + */ + public void setBirthName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName value) { + this.birthName = value; + } + + /** + * Gets the value of the givenName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName getGivenName() { + return givenName; + } + + /** + * Sets the value of the givenName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName } + * + */ + public void setGivenName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName value) { + this.givenName = value; + } + + /** + * Gets the value of the gender property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender getGender() { + return gender; + } + + /** + * Sets the value of the gender property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender } + * + */ + public void setGender(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender value) { + this.gender = value; + } + + /** + * Gets the value of the birthDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate getBirthDate() { + return birthDate; + } + + /** + * Sets the value of the birthDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate } + * + */ + public void setBirthDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate value) { + this.birthDate = value; + } + + /** + * Gets the value of the birthPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace getBirthPlace() { + return birthPlace; + } + + /** + * Sets the value of the birthPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace } + * + */ + public void setBirthPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace value) { + this.birthPlace = value; + } + + /** + * Gets the value of the deathDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate getDeathDate() { + return deathDate; + } + + /** + * Sets the value of the deathDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate } + * + */ + public void setDeathDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate value) { + this.deathDate = value; + } + + /** + * Gets the value of the deathPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace getDeathPlace() { + return deathPlace; + } + + /** + * Sets the value of the deathPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace } + * + */ + public void setDeathPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace value) { + this.deathPlace = value; + } + + /** + * Gets the value of the nationality property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality getNationality() { + return nationality; + } + + /** + * Sets the value of the nationality property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality } + * + */ + public void setNationality(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality value) { + this.nationality = value; + } + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Corpname { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FirstName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Gender { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class GivenName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Nationality { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Spatial" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Temporal" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Juridictional" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "spatial", + "temporal", + "juridictional" + }) + public static class Coverage { + + @XmlElement(name = "Spatial") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial spatial; + @XmlElement(name = "Temporal") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal temporal; + @XmlElement(name = "Juridictional") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional juridictional; + @XmlAttribute(name = "id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Gets the value of the spatial property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial getSpatial() { + return spatial; + } + + /** + * Sets the value of the spatial property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial } + * + */ + public void setSpatial(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial value) { + this.spatial = value; + } + + /** + * Gets the value of the temporal property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal getTemporal() { + return temporal; + } + + /** + * Sets the value of the temporal property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal } + * + */ + public void setTemporal(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal value) { + this.temporal = value; + } + + /** + * Gets the value of the juridictional property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional getJuridictional() { + return juridictional; + } + + /** + * Sets the value of the juridictional property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional } + * + */ + public void setJuridictional(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional value) { + this.juridictional = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Juridictional { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Spatial { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Temporal { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class CreatedDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CustodialHistoryItem" type="{http://www.w3.org/2001/XMLSchema}anyType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "custodialHistoryItem" + }) + public static class CustodialHistory { + + @XmlElement(name = "CustodialHistoryItem", required = true) + protected Object custodialHistoryItem; + + /** + * Gets the value of the custodialHistoryItem property. + * + * @return + * possible object is + * {@link Object } + * + */ + public Object getCustodialHistoryItem() { + return custodialHistoryItem; + } + + /** + * Sets the value of the custodialHistoryItem property. + * + * @param value + * allowed object is + * {@link Object } + * + */ + public void setCustodialHistoryItem(Object value) { + this.custodialHistoryItem = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Description { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DescriptionLanguage { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DescriptionLevel { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DocumentType { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class EndDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FilePlanPosition { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeywordContent"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordReference" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="KeywordType"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "keywordContent", + "keywordReference", + "keywordType" + }) + public static class Keyword { + + @XmlElement(name = "KeywordContent", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent keywordContent; + @XmlElement(name = "KeywordReference") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference keywordReference; + @XmlElement(name = "KeywordType", required = true) + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType keywordType; + @XmlAttribute(name = "id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Gets the value of the keywordContent property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent getKeywordContent() { + return keywordContent; + } + + /** + * Sets the value of the keywordContent property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent } + * + */ + public void setKeywordContent(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent value) { + this.keywordContent = value; + } + + /** + * Gets the value of the keywordReference property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference getKeywordReference() { + return keywordReference; + } + + /** + * Sets the value of the keywordReference property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference } + * + */ + public void setKeywordReference(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference value) { + this.keywordReference = value; + } + + /** + * Gets the value of the keywordType property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType getKeywordType() { + return keywordType; + } + + /** + * Sets the value of the keywordType property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType } + * + */ + public void setKeywordType(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType value) { + this.keywordType = value; + } + + /** + * Gets the value of the id property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Sets the value of the id property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class KeywordContent { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class KeywordReference { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="listVersionID" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" fixed="edition 2009" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class KeywordType { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "listVersionID") + @XmlSchemaType(name = "anySimpleType") + protected String listVersionID; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the listVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getListVersionID() { + if (listVersionID == null) { + return "edition 2009"; + } else { + return listVersionID; + } + } + + /** + * Sets the value of the listVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setListVersionID(String value) { + this.listVersionID = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>language"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Language { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "language") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "identifier", + "organizationDescriptiveMetadata" + }) + public static class OriginatingAgency { + + @XmlElement(name = "Identifier", required = true) + protected String identifier; + @XmlElement(name = "OrganizationDescriptiveMetadata") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata organizationDescriptiveMetadata; + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + /** + * Gets the value of the organizationDescriptiveMetadata property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata getOrganizationDescriptiveMetadata() { + return organizationDescriptiveMetadata; + } + + /** + * Sets the value of the organizationDescriptiveMetadata property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata } + * + */ + public void setOrganizationDescriptiveMetadata(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata value) { + this.organizationDescriptiveMetadata = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class OrganizationDescriptiveMetadata { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class OriginatingSystemId { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class ReceivedDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "corpname", + "firstName", + "birthName", + "givenName", + "gender", + "birthDate", + "birthPlace", + "deathDate", + "deathPlace", + "nationality", + "identifier" + }) + public static class Recipient { + + @XmlElement(name = "Corpname") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname corpname; + @XmlElement(name = "FirstName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName firstName; + @XmlElement(name = "BirthName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName birthName; + @XmlElement(name = "GivenName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName givenName; + @XmlElement(name = "Gender") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender gender; + @XmlElement(name = "BirthDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate birthDate; + @XmlElement(name = "BirthPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace birthPlace; + @XmlElement(name = "DeathDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate deathDate; + @XmlElement(name = "DeathPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace deathPlace; + @XmlElement(name = "Nationality") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality nationality; + @XmlElement(name = "Identifier") + protected String identifier; + + /** + * Gets the value of the corpname property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname getCorpname() { + return corpname; + } + + /** + * Sets the value of the corpname property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname } + * + */ + public void setCorpname(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname value) { + this.corpname = value; + } + + /** + * Gets the value of the firstName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName getFirstName() { + return firstName; + } + + /** + * Sets the value of the firstName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName } + * + */ + public void setFirstName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName value) { + this.firstName = value; + } + + /** + * Gets the value of the birthName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName getBirthName() { + return birthName; + } + + /** + * Sets the value of the birthName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName } + * + */ + public void setBirthName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName value) { + this.birthName = value; + } + + /** + * Gets the value of the givenName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName getGivenName() { + return givenName; + } + + /** + * Sets the value of the givenName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName } + * + */ + public void setGivenName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName value) { + this.givenName = value; + } + + /** + * Gets the value of the gender property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender getGender() { + return gender; + } + + /** + * Sets the value of the gender property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender } + * + */ + public void setGender(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender value) { + this.gender = value; + } + + /** + * Gets the value of the birthDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate getBirthDate() { + return birthDate; + } + + /** + * Sets the value of the birthDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate } + * + */ + public void setBirthDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate value) { + this.birthDate = value; + } + + /** + * Gets the value of the birthPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace getBirthPlace() { + return birthPlace; + } + + /** + * Sets the value of the birthPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace } + * + */ + public void setBirthPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace value) { + this.birthPlace = value; + } + + /** + * Gets the value of the deathDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate getDeathDate() { + return deathDate; + } + + /** + * Sets the value of the deathDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate } + * + */ + public void setDeathDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate value) { + this.deathDate = value; + } + + /** + * Gets the value of the deathPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace getDeathPlace() { + return deathPlace; + } + + /** + * Sets the value of the deathPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace } + * + */ + public void setDeathPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace value) { + this.deathPlace = value; + } + + /** + * Gets the value of the nationality property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality getNationality() { + return nationality; + } + + /** + * Sets the value of the nationality property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality } + * + */ + public void setNationality(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality value) { + this.nationality = value; + } + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Corpname { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FirstName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Gender { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class GivenName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Nationality { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class RegisteredDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class SentDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Source { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class StartDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Status { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier" minOccurs="0"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * <element name="OrganizationDescriptiveMetadata" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "identifier", + "organizationDescriptiveMetadata" + }) + public static class SubmissionAgency { + + @XmlElement(name = "Identifier") + protected String identifier; + @XmlElement(name = "OrganizationDescriptiveMetadata") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata organizationDescriptiveMetadata; + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + /** + * Gets the value of the organizationDescriptiveMetadata property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata getOrganizationDescriptiveMetadata() { + return organizationDescriptiveMetadata; + } + + /** + * Sets the value of the organizationDescriptiveMetadata property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata } + * + */ + public void setOrganizationDescriptiveMetadata(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata value) { + this.organizationDescriptiveMetadata = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class OrganizationDescriptiveMetadata { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class SystemId { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Tag { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Title { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class TransactedDate { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Type { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Version { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <choice> + * <sequence> + * <element name="Corpname" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * <sequence> + * <element name="FirstName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="GivenName" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Gender" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="BirthPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathDate" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="DeathPlace" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="Nationality" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * </sequence> + * </choice> + * <element ref="{}Identifier" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "corpname", + "firstName", + "birthName", + "givenName", + "gender", + "birthDate", + "birthPlace", + "deathDate", + "deathPlace", + "nationality", + "identifier" + }) + public static class Writer { + + @XmlElement(name = "Corpname") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname corpname; + @XmlElement(name = "FirstName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName firstName; + @XmlElement(name = "BirthName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName birthName; + @XmlElement(name = "GivenName") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName givenName; + @XmlElement(name = "Gender") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender gender; + @XmlElement(name = "BirthDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate birthDate; + @XmlElement(name = "BirthPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace birthPlace; + @XmlElement(name = "DeathDate") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate deathDate; + @XmlElement(name = "DeathPlace") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace deathPlace; + @XmlElement(name = "Nationality") + protected ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality nationality; + @XmlElement(name = "Identifier") + protected String identifier; + + /** + * Gets the value of the corpname property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname getCorpname() { + return corpname; + } + + /** + * Sets the value of the corpname property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname } + * + */ + public void setCorpname(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname value) { + this.corpname = value; + } + + /** + * Gets the value of the firstName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName getFirstName() { + return firstName; + } + + /** + * Sets the value of the firstName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName } + * + */ + public void setFirstName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName value) { + this.firstName = value; + } + + /** + * Gets the value of the birthName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName getBirthName() { + return birthName; + } + + /** + * Sets the value of the birthName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName } + * + */ + public void setBirthName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName value) { + this.birthName = value; + } + + /** + * Gets the value of the givenName property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName getGivenName() { + return givenName; + } + + /** + * Sets the value of the givenName property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName } + * + */ + public void setGivenName(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName value) { + this.givenName = value; + } + + /** + * Gets the value of the gender property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender getGender() { + return gender; + } + + /** + * Sets the value of the gender property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender } + * + */ + public void setGender(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender value) { + this.gender = value; + } + + /** + * Gets the value of the birthDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate getBirthDate() { + return birthDate; + } + + /** + * Sets the value of the birthDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate } + * + */ + public void setBirthDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate value) { + this.birthDate = value; + } + + /** + * Gets the value of the birthPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace getBirthPlace() { + return birthPlace; + } + + /** + * Sets the value of the birthPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace } + * + */ + public void setBirthPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace value) { + this.birthPlace = value; + } + + /** + * Gets the value of the deathDate property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate getDeathDate() { + return deathDate; + } + + /** + * Sets the value of the deathDate property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate } + * + */ + public void setDeathDate(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate value) { + this.deathDate = value; + } + + /** + * Gets the value of the deathPlace property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace getDeathPlace() { + return deathPlace; + } + + /** + * Sets the value of the deathPlace property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace } + * + */ + public void setDeathPlace(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace value) { + this.deathPlace = value; + } + + /** + * Gets the value of the nationality property. + * + * @return + * possible object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality getNationality() { + return nationality; + } + + /** + * Sets the value of the nationality property. + * + * @param value + * allowed object is + * {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality } + * + */ + public void setNationality(ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality value) { + this.nationality = value; + } + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class BirthPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Corpname { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>date"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathDate { + + @XmlValue + @XmlSchemaType(name = "date") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class DeathPlace { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class FirstName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Gender { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class GivenName { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Nationality { + + @XmlValue + protected String value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + } + + } + + } + + } + + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>dateTime"> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class Date { + + @XmlValue + @XmlSchemaType(name = "dateTime") + protected XMLGregorianCalendar value; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setValue(XMLGregorianCalendar value) { + this.value = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="schemeDataURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="schemeID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="schemeAgencyName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="schemeAgencyID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="schemeName" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="schemeVersionID" type="{http://www.w3.org/2001/XMLSchema}token" /> + * <attribute name="schemeURI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </extension> + * </simpleContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "value" + }) + public static class MessageIdentifier { + + @XmlValue + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String value; + @XmlAttribute(name = "schemeDataURI") + @XmlSchemaType(name = "anyURI") + protected String schemeDataURI; + @XmlAttribute(name = "schemeID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String schemeID; + @XmlAttribute(name = "schemeAgencyName") + protected String schemeAgencyName; + @XmlAttribute(name = "schemeAgencyID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String schemeAgencyID; + @XmlAttribute(name = "schemeName") + protected String schemeName; + @XmlAttribute(name = "schemeVersionID") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlSchemaType(name = "token") + protected String schemeVersionID; + @XmlAttribute(name = "schemeURI") + @XmlSchemaType(name = "anyURI") + protected String schemeURI; + + /** + * Gets the value of the value property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getValue() { + return value; + } + + /** + * Sets the value of the value property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setValue(String value) { + this.value = value; + } + + /** + * Gets the value of the schemeDataURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeDataURI() { + return schemeDataURI; + } + + /** + * Sets the value of the schemeDataURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeDataURI(String value) { + this.schemeDataURI = value; + } + + /** + * Gets the value of the schemeID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeID() { + return schemeID; + } + + /** + * Sets the value of the schemeID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeID(String value) { + this.schemeID = value; + } + + /** + * Gets the value of the schemeAgencyName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeAgencyName() { + return schemeAgencyName; + } + + /** + * Sets the value of the schemeAgencyName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeAgencyName(String value) { + this.schemeAgencyName = value; + } + + /** + * Gets the value of the schemeAgencyID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeAgencyID() { + return schemeAgencyID; + } + + /** + * Sets the value of the schemeAgencyID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeAgencyID(String value) { + this.schemeAgencyID = value; + } + + /** + * Gets the value of the schemeName property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeName() { + return schemeName; + } + + /** + * Sets the value of the schemeName property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeName(String value) { + this.schemeName = value; + } + + /** + * Gets the value of the schemeVersionID property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeVersionID() { + return schemeVersionID; + } + + /** + * Sets the value of the schemeVersionID property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeVersionID(String value) { + this.schemeVersionID = value; + } + + /** + * Gets the value of the schemeURI property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getSchemeURI() { + return schemeURI; + } + + /** + * Sets the value of the schemeURI property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setSchemeURI(String value) { + this.schemeURI = value; + } + + } + + + /** + * <p>Java class for anonymous complex type. + * + * <p>The following schema fragment specifies the expected content contained within this class. + * + * <pre> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Identifier"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * </restriction> + * </simpleType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </pre> + * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "identifier" + }) + public static class TransferringAgency { + + @XmlElement(name = "Identifier", required = true) + protected String identifier; + + /** + * Gets the value of the identifier property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentifier() { + return identifier; + } + + /** + * Sets the value of the identifier property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentifier(String value) { + this.identifier = value; + } + + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ObjectFactory.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ObjectFactory.java new file mode 100644 index 00000000..ef7424dd --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/ObjectFactory.java @@ -0,0 +1,1181 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0 +// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2019.11.14 at 11:15:17 AM CET +// + + +package fr.gouv.vitamui.pastis.model.rng; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the fr.cines.pastis.rng.model package. + * <p>An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Identifier_QNAME = new QName("", "Identifier"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: fr.cines.pastis.rng.model + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ArchiveTransfer } + * + */ + public ArchiveTransfer createArchiveTransfer() { + return new ArchiveTransfer(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage } + * + */ + public ArchiveTransfer.DataObjectPackage createArchiveTransferDataObjectPackage() { + return new ArchiveTransfer.DataObjectPackage(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata createArchiveTransferDataObjectPackageDescriptiveMetadata() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnit() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContent() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipient() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdressee() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriter() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgent() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentSubmissionAgency() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentOriginatingAgency() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentCoverage() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentKeyword() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject createArchiveTransferDataObjectPackageBinaryDataObject() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata createArchiveTransferDataObjectPackageBinaryDataObjectMetadata() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo createArchiveTransferDataObjectPackageBinaryDataObjectFileInfo() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification createArchiveTransferDataObjectPackageBinaryDataObjectFormatIdentification() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions } + * + */ + public ArchiveTransfer.CodeListVersions createArchiveTransferCodeListVersions() { + return new ArchiveTransfer.CodeListVersions(); + } + + /** + * Create an instance of {@link ArchiveTransfer.Comment } + * + */ + public ArchiveTransfer.Comment createArchiveTransferComment() { + return new ArchiveTransfer.Comment(); + } + + /** + * Create an instance of {@link ArchiveTransfer.Date } + * + */ + public ArchiveTransfer.Date createArchiveTransferDate() { + return new ArchiveTransfer.Date(); + } + + /** + * Create an instance of {@link ArchiveTransfer.MessageIdentifier } + * + */ + public ArchiveTransfer.MessageIdentifier createArchiveTransferMessageIdentifier() { + return new ArchiveTransfer.MessageIdentifier(); + } + + /** + * Create an instance of {@link ArchiveTransfer.ArchivalAgreement } + * + */ + public ArchiveTransfer.ArchivalAgreement createArchiveTransferArchivalAgreement() { + return new ArchiveTransfer.ArchivalAgreement(); + } + + /** + * Create an instance of {@link ArchiveTransfer.ArchivalAgency } + * + */ + public ArchiveTransfer.ArchivalAgency createArchiveTransferArchivalAgency() { + return new ArchiveTransfer.ArchivalAgency(); + } + + /** + * Create an instance of {@link ArchiveTransfer.TransferringAgency } + * + */ + public ArchiveTransfer.TransferringAgency createArchiveTransferTransferringAgency() { + return new ArchiveTransfer.TransferringAgency(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentDescriptionLevel() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLevel(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentTitle() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Title(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentFilePlanPosition() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.FilePlanPosition(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentSystemId() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SystemId(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentOriginatingSystemId() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingSystemId(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentArchivalAgencyArchiveUnitIdentifier() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ArchivalAgencyArchiveUnitIdentifier(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentDescription() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Description(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentCustodialHistory() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CustodialHistory(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentType() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Type(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentDocumentType() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DocumentType(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentLanguage() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Language(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentDescriptionLanguage() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.DescriptionLanguage(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentStatus() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Status(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentVersion() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Version(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentTag() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Tag(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentSource() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Source(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentCreatedDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.CreatedDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentTransactedDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.TransactedDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAcquiredDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AcquiredDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentSentDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SentDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentReceivedDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.ReceivedDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRegisteredDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.RegisteredDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentStartDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.StartDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentEndDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.EndDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientCorpname() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Corpname(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientFirstName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.FirstName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientBirthName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientGivenName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.GivenName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientGender() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Gender(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientBirthDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientBirthPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.BirthPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientDeathDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientDeathPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.DeathPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentRecipientNationality() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Recipient.Nationality(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeCorpname() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Corpname(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeFirstName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.FirstName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeBirthName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeGivenName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.GivenName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeGender() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Gender(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeBirthDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeBirthPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.BirthPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeDeathDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeDeathPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.DeathPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAdresseeNationality() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Adressee.Nationality(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterCorpname() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Corpname(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterFirstName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.FirstName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterBirthName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterGivenName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.GivenName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterGender() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Gender(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterBirthDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterBirthPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.BirthPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterDeathDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterDeathPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.DeathPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentWriterNationality() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Writer.Nationality(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentCorpname() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Corpname(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentFirstName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.FirstName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentBirthName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentGivenName() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.GivenName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentGender() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Gender(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentBirthDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentBirthPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.BirthPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentDeathDate() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathDate(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentDeathPlace() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.DeathPlace(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentAuthorizedAgentNationality() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.AuthorizedAgent.Nationality(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentSubmissionAgencyOrganizationDescriptiveMetadata() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.SubmissionAgency.OrganizationDescriptiveMetadata(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentOriginatingAgencyOrganizationDescriptiveMetadata() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.OriginatingAgency.OrganizationDescriptiveMetadata(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentCoverageSpatial() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Spatial(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentCoverageTemporal() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Temporal(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentCoverageJuridictional() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Coverage.Juridictional(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentKeywordKeywordContent() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordContent(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentKeywordKeywordReference() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordReference(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType } + * + */ + public ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType createArchiveTransferDataObjectPackageDescriptiveMetadataArchiveUnitContentKeywordKeywordType() { + return new ArchiveTransfer.DataObjectPackage.DescriptiveMetadata.ArchiveUnit.Content.Keyword.KeywordType(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId createArchiveTransferDataObjectPackageBinaryDataObjectDataObjectGroupReferenceId() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupReferenceId(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId createArchiveTransferDataObjectPackageBinaryDataObjectDataObjectGroupId() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectGroupId(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion createArchiveTransferDataObjectPackageBinaryDataObjectDataObjectVersion() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.DataObjectVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri createArchiveTransferDataObjectPackageBinaryDataObjectUri() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Uri(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement createArchiveTransferDataObjectPackageBinaryDataObjectAttachement() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Attachement(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest createArchiveTransferDataObjectPackageBinaryDataObjectMessageDigest() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.MessageDigest(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size createArchiveTransferDataObjectPackageBinaryDataObjectSize() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Size(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed createArchiveTransferDataObjectPackageBinaryDataObjectCompressed() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Compressed(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata createArchiveTransferDataObjectPackageBinaryDataObjectOtherMetadata() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.OtherMetadata(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship createArchiveTransferDataObjectPackageBinaryDataObjectRelationship() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Relationship(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio createArchiveTransferDataObjectPackageBinaryDataObjectMetadataAudio() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Audio(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document createArchiveTransferDataObjectPackageBinaryDataObjectMetadataDocument() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Document(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image createArchiveTransferDataObjectPackageBinaryDataObjectMetadataImage() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Image(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text createArchiveTransferDataObjectPackageBinaryDataObjectMetadataText() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Text(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video createArchiveTransferDataObjectPackageBinaryDataObjectMetadataVideo() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.Metadata.Video(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoFilename() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.Filename(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoCreatingApplicationName() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationName(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoCreatingApplicationVersion() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingApplicationVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoDateCreatedByApplication() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.DateCreatedByApplication(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoCreatingOs() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOs(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoCreatingOsVersion() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.CreatingOsVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified createArchiveTransferDataObjectPackageBinaryDataObjectFileInfoLastModified() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FileInfo.LastModified(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral createArchiveTransferDataObjectPackageBinaryDataObjectFormatIdentificationFormatLitteral() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatLitteral(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType createArchiveTransferDataObjectPackageBinaryDataObjectFormatIdentificationMimeType() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.MimeType(); + } + + /** + * Create an instance of {@link ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId } + * + */ + public ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId createArchiveTransferDataObjectPackageBinaryDataObjectFormatIdentificationFormatId() { + return new ArchiveTransfer.DataObjectPackage.BinaryDataObject.FormatIdentification.FormatId(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.ReplyCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.ReplyCodeListVersion createArchiveTransferCodeListVersionsReplyCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.ReplyCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion createArchiveTransferCodeListVersionsMessageDigestAlgorithmCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.MessageDigestAlgorithmCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion createArchiveTransferCodeListVersionsMimeTypeCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.MimeTypeCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.EncodingCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.EncodingCodeListVersion createArchiveTransferCodeListVersionsEncodingCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.EncodingCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion createArchiveTransferCodeListVersionsFileFormatCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.FileFormatCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion createArchiveTransferCodeListVersionsCompressionAlgorithmCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.CompressionAlgorithmCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion createArchiveTransferCodeListVersionsDataObjectVersionCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.DataObjectVersionCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion createArchiveTransferCodeListVersionsStorageRuleCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.StorageRuleCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion createArchiveTransferCodeListVersionsAppraisalRuleCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.AppraisalRuleCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion createArchiveTransferCodeListVersionsAccessRuleCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.AccessRuleCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion createArchiveTransferCodeListVersionsDisseminationRuleCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.DisseminationRuleCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion createArchiveTransferCodeListVersionsReuseRuleCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.ReuseRuleCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion createArchiveTransferCodeListVersionsClassificationRuleCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.ClassificationRuleCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion createArchiveTransferCodeListVersionsAuthorizationReasonCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.AuthorizationReasonCodeListVersion(); + } + + /** + * Create an instance of {@link ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion } + * + */ + public ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion createArchiveTransferCodeListVersionsRelationshipCodeListVersion() { + return new ArchiveTransfer.CodeListVersions.RelationshipCodeListVersion(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >} + * + * @param value + * Java instance representing xml element's value. + * @return + * the new instance of {@link JAXBElement }{@code <}{@link String }{@code >} + */ + @XmlElementDecl(namespace = "", name = "Identifier") + public JAXBElement<String> createIdentifier(String value) { + return new JAXBElement<String>(_Identifier_QNAME, String.class, null, value); + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/jaxb.properties b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/jaxb.properties new file mode 100644 index 00000000..5837a4c2 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/model/rng/jaxb.properties @@ -0,0 +1 @@ +javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory \ No newline at end of file diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/ManifestValidator.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/ManifestValidator.java new file mode 100644 index 00000000..b8f62ede --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/ManifestValidator.java @@ -0,0 +1,110 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.util; + +import org.apache.tomcat.util.http.fileupload.IOUtils; +import org.apache.xerces.util.XMLCatalogResolver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.SAXException; + +import javax.xml.XMLConstants; +import javax.xml.transform.stream.StreamSource; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import javax.xml.validation.Validator; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; + +public class ManifestValidator { + + private static Logger LOGGER = LoggerFactory.getLogger(ManifestValidator.class); + + public static final String RNG_FACTORY = "com.thaiopensource.relaxng.jaxp.XMLSyntaxSchemaFactory"; + public static final String RNG_PROPERTY_KEY = "javax.xml.validation.SchemaFactory:" + XMLConstants.RELAXNG_NS_URI; + private static final String RNG_SUFFIX = ".rng"; + public static final String HTTP_WWW_W3_ORG_XML_XML_SCHEMA_V1_1 = "http://www.w3.org/XML/XMLSchema/v1.1"; + /** + * Filename of the catalog file ; should be found in the classpath. + */ + public static final String CATALOG_FILENAME = "xsd_validation/catalog.xml"; + + /** + * @param manifestFile + * @param rngFile + * @return true if validated + * @throws SAXException + * @throws IOException + */ + public boolean checkFileRNG(InputStream manifestFile, File rngFile) { + try { + if (rngFile.length() > 0) { + final Schema schema = getSchema(rngFile); + final Validator validator = schema.newValidator(); + validator.validate(new StreamSource(manifestFile)); + return true; + } + LOGGER.error("Le fichier RNG est vide"); + return false; + } catch (SAXException|IOException e) { + LOGGER.error("Erreur validation du manifest",e); + return false; + } finally { + IOUtils.closeQuietly(manifestFile); + } + } + + private Schema getSchema(File file) throws SAXException { + SchemaFactory factory; + if (file.getName().endsWith(RNG_SUFFIX)) { + System.setProperty(RNG_PROPERTY_KEY, + RNG_FACTORY); + factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI); + } else { + factory = SchemaFactory.newInstance(HTTP_WWW_W3_ORG_XML_XML_SCHEMA_V1_1); + } + + // Load catalog to resolve external schemas even offline. + final URL catalogUrl = ManifestValidator.class.getClassLoader().getResource(CATALOG_FILENAME); + factory.setResourceResolver(new XMLCatalogResolver(new String[] {catalogUrl.toString()}, false)); + + return factory.newSchema(file); + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisCustomCharacterEscapeHandler.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisCustomCharacterEscapeHandler.java new file mode 100644 index 00000000..34eb3cfc --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisCustomCharacterEscapeHandler.java @@ -0,0 +1,94 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.util; + +import com.sun.xml.bind.marshaller.CharacterEscapeHandler; + +import java.io.IOException; +import java.io.Writer; + +public class PastisCustomCharacterEscapeHandler implements CharacterEscapeHandler{ + + public PastisCustomCharacterEscapeHandler() { + super(); + } + + /** + * @param ch The array of characters. + * @param start The starting position. + * @param length The number of characters to use. + * @param isAttVal true if this is an attribute value literal. + */ + public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException { + int limit = start + length; + for (int i = start; i < limit; i++) { + char c = ch[i]; + if (c == '&' || c == '<' || c == '>' || (c == '\"' && isAttVal) + || (c == '\'' && isAttVal)) { + if (i != start) { + out.write(ch, start, i - start); + } + start = i + 1; + switch (ch[i]) { + case '&': + out.write("&"); + break; + + case '<': + out.write("<"); + break; + + case '>': + out.write(">"); + break; + + case '\"': + out.write("\""); + break; + + case '\'': + out.write("'"); + break; + } + } + } + if (start != limit) { + out.write(ch, start, limit - start); + } + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisGetXmlJsonTree.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisGetXmlJsonTree.java new file mode 100644 index 00000000..55460070 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisGetXmlJsonTree.java @@ -0,0 +1,147 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.util; + +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.model.ElementRNG; +import fr.gouv.vitamui.pastis.model.jaxb.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + +public class PastisGetXmlJsonTree { + + //ElementRNG elementRNGRoot; + public String jsonParsed = ""; + private static Logger LOGGER = LoggerFactory.getLogger(PastisGetXmlJsonTree.class); + + + public String getJsonParsedTree(ElementRNG elementRNGRoot) { + + ElementRNG.buildElementPropertiesTree(elementRNGRoot,0, null); + ElementProperties eparent = ElementRNG.elementStaticRoot; + ObjectMapper mapper = new ObjectMapper(); + String jsonString = ""; + + try { + jsonString = mapper.writeValueAsString(eparent); + } catch (JsonGenerationException e1) { + e1.printStackTrace(); + } catch (JsonMappingException e1) { + e1.printStackTrace(); + } catch (IOException e1) { + e1.printStackTrace(); + } + LOGGER.info("JSON file successfully generated"); + return "["+jsonString+"]"; + } + + // Test an xml to json and a json to xml. + public String getJsonParsedTreeTest(ElementRNG elementRNGRoot) throws JAXBException, FileNotFoundException { + + //vWhen the handler is called, the proprities tree (json) is build + // using its ElementRNG(elementRngRoot) object. + // The elementRngRoot is filled when the xml file is read, by passing + // it to the contentHanler of the Xml reader. + // The methods used are the 5 main methods of a DefaultHandler type + // See methods bellow + ElementRNG.buildElementPropertiesTree(elementRNGRoot,0, null); + ElementProperties eparent = ElementRNG.elementStaticRoot; + + + // The eparentRng is an object of type BalizeXML. It is built using the + // object eparent (of type ElementProperties) that, in fact, represent the json + // prouced during the parser's first call. + BaliseXML.buildBaliseXMLTree(eparent,0, null); + BaliseXML eparentRng = BaliseXML.baliseXMLStatic; + + + // Transforms java objects to Xml file (Marshalling) + JAXBContext contextObj = JAXBContext.newInstance(AttributeXML.class, ElementXML.class, DataXML.class, ValueXML.class, OptionalXML.class, OneOrMoreXML.class, + ZeroOrMoreXML.class, AnnotationXML.class, DocumentationXML.class, ChoiceXml.class); + Marshaller marshallerObj = contextObj.createMarshaller(); + marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshallerObj.setProperty("com.sun.xml.bind.marshaller.CharacterEscapeHandler", + new PastisCustomCharacterEscapeHandler()); + + marshallerObj.marshal(eparentRng, new FileOutputStream("generated_test.xml")); + + + ObjectMapper mapper = new ObjectMapper(); + String jsonString = ""; + try { + jsonString = mapper.writeValueAsString(eparent); + } catch (JsonGenerationException e1) { + e1.printStackTrace(); + } catch (JsonMappingException e1) { + e1.printStackTrace(); + } catch (IOException e1) { + e1.printStackTrace(); + } + return "["+jsonString+"]"; + } + + + public String getXmlParsedTree(String jsonString) throws IOException { + + ObjectMapper objectMapper = new ObjectMapper(); + ObjectMapper xmlMapper = new ObjectMapper(); + JsonNode tree = objectMapper.readTree(jsonString); + String jsonAsXml = xmlMapper.writeValueAsString(tree); + + return jsonAsXml; + } + + + public void setJsonParsed(String jsonParsed) { + this.jsonParsed = jsonParsed; + } + + + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisMarshaller.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisMarshaller.java new file mode 100644 index 00000000..0a5de739 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisMarshaller.java @@ -0,0 +1,81 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ + +package fr.gouv.vitamui.pastis.util; + +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.model.factory.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import java.io.*; + +public class PastisMarshaller { + + public static final String CHAR_ESCAPE_HANDLER = "com.sun.xml.bind.marshaller.CharacterEscapeHandler"; + public static final String MARSHALLER_FORMAT = Marshaller.JAXB_FORMATTED_OUTPUT; + + + private static Logger LOGGER = LoggerFactory.getLogger(PastisMarshaller.class); + + public String getMarshalledObject(ElementProperties mappedJson) throws IOException, JAXBException { + + RngTagFactory tagFactory = new RngTagFactory(); + RngTag rngTree = tagFactory.createTag(mappedJson, null, 0); + + JAXBContext contextObj = JAXBContext.newInstance(RngTag.class); + Marshaller marshallerObj = contextObj.createMarshaller(); + marshallerObj.setProperty(MARSHALLER_FORMAT, true); + marshallerObj.setProperty(CHAR_ESCAPE_HANDLER, new PastisCustomCharacterEscapeHandler()); + + ByteArrayOutputStream os = new ByteArrayOutputStream(); + Writer writer = new OutputStreamWriter(os, "UTF-8"); + marshallerObj.marshal(rngTree, writer); + String response = new String (os.toByteArray(), "UTF-8"); + writer.close(); + + String status = !response.isEmpty() ? "Json marshalled successfully" : "Failed to marshall json object"; + LOGGER.info(status); + + return response; + } + +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisSAX2Handler.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisSAX2Handler.java new file mode 100644 index 00000000..f757d552 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PastisSAX2Handler.java @@ -0,0 +1,155 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.util; + +import fr.gouv.vitamui.pastis.model.ElementRNG; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import java.util.Stack; + +public class PastisSAX2Handler extends DefaultHandler{ + + private static Logger LOGGER = LoggerFactory.getLogger(PastisSAX2Handler.class); + + boolean isValue; + + private boolean isInDocumentationTag; + + public ElementRNG elementRNGRoot; + + Stack<ElementRNG> stackRNG = new Stack<ElementRNG>(); + + private StringBuilder documentationContent; + + + /** + BEGIN OF OVERRIDE OF SAX 5 METHODS : startElement, endElement, startDocument, endDocument and characters + * This method is called everytime the parser gets an open tag + * Identifies which tag has being opened at time by assiging a new flag + */ + public void startElement(String nameSpace, String localName, String qName, Attributes attr) throws SAXException { + + //cette variable contient le nom du nÅ“ud qui a créé l'événement + // If node not a grammar tag or start tag + if(!("grammar".equals(localName) || "start".equals(localName))){ + + // If node is ArchiveTransfer + if(null !=attr.getValue("name") && attr.getValue("name").equals("ArchiveTransfer")){ + return ; + } + //If node has documentation + if("value".equals(localName) || "documentation".equals(localName)) { + this.isValue = true; + } + // Create a new rng tag element and add it to the stack + ElementRNG elementRNG = new ElementRNG(); + elementRNG.setName(attr.getValue("name")); + elementRNG.setType(localName); + elementRNG.setDataType(attr.getValue("type")); + if(!stackRNG.empty()) { + ElementRNG e = stackRNG.lastElement(); + elementRNG.setParent(e); + e.getChildren().add(elementRNG); + } + stackRNG.push(elementRNG); + + + + } + + documentationContent = new StringBuilder(); + if (qName.equalsIgnoreCase("xsd:documentation")) { + isInDocumentationTag = true; + } + + } + + /** + * Actions à réaliser lors de la détection de la fin d'un élément. + */ + public void endElement(String nameSpace, String localName, String qName) throws SAXException { + + if (qName.equalsIgnoreCase("xsd:documentation")) { + isInDocumentationTag = false; + + } + if(!stackRNG.empty()) { + ElementRNG e = stackRNG.pop(); + } + } + + /** + * Actions à réaliser au début du document. + */ + public void startDocument() { + elementRNGRoot = new ElementRNG(); + elementRNGRoot.setName("ArchiveTransfer"); + elementRNGRoot.setType("element"); + stackRNG.push(elementRNGRoot); + } + + /** + * Actions à réaliser lors de la fin du document XML. + */ + public void endDocument() { + } + + /** + * Actions to perform when tag content is reached (Data between '< />' ) + */ + @Override + public void characters(char[] caracteres, int start, int length) throws SAXException { + if (isInDocumentationTag) { + documentationContent.append(new String(caracteres, start, length)); + stackRNG.lastElement().setValue(documentationContent.toString()); + } + if(isValue) { + String valueContent = new String(caracteres, start, length); + stackRNG.lastElement().setValue(valueContent); + this.isValue = false; + } + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PropertiesUtils.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PropertiesUtils.java new file mode 100644 index 00000000..f4cd9ca2 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/PropertiesUtils.java @@ -0,0 +1,118 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.util; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.net.URL; + +public final class PropertiesUtils { + + private static final String FILE_NOT_FOUND_IN_RESOURCES = "File not found in Resources: "; + + private PropertiesUtils() { + // Empty + } + + /** + * Get the File representation from the local path to the Resources directory + * + * @param resourcesFile properties file from resources directory + * @return the associated File + * @throws FileNotFoundException if the resource file not found + */ + public static File getResourceFile(String resourcesFile) throws FileNotFoundException { + if (resourcesFile == null) { + throw new FileNotFoundException(FILE_NOT_FOUND_IN_RESOURCES + resourcesFile); + } + URL url; + try { + url = fr.gouv.vitamui.pastis.util.PropertiesUtils.class.getClassLoader().getResource(resourcesFile); + } catch (final SecurityException e) { + throw new FileNotFoundException(FILE_NOT_FOUND_IN_RESOURCES + resourcesFile); + } + if (url == null) { + url = Thread.currentThread().getContextClassLoader().getResource(resourcesFile); + } + if (url == null) { + throw new FileNotFoundException(FILE_NOT_FOUND_IN_RESOURCES + resourcesFile); + } + File file; + try { + file = new File(url.toURI()); + } catch (final URISyntaxException e) { + file = new File(url.getFile().replaceAll("%20", " ")); + } + if (file.exists()) { + return file; + } + throw new FileNotFoundException(FILE_NOT_FOUND_IN_RESOURCES + resourcesFile); + } + + /** + * Get the InputStream representation from the Resources directory + * + * @param resourcesFile properties file from resources directory + * @return the associated File + * @throws FileNotFoundException if the resource file not found + */ + public static InputStream getResourceAsStream(String resourcesFile) throws FileNotFoundException { + if (resourcesFile == null) { + throw new FileNotFoundException(FILE_NOT_FOUND_IN_RESOURCES); + } + InputStream stream = null; + try { + stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcesFile); + } catch (final SecurityException e) { + + } + if (stream == null) { + try { + stream = PropertiesUtils.class.getClassLoader().getResourceAsStream(resourcesFile); + } catch (final SecurityException e) { + + } + } + if (stream == null) { + throw new FileNotFoundException(FILE_NOT_FOUND_IN_RESOURCES + resourcesFile); + } + return stream; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGConstants.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGConstants.java new file mode 100644 index 00000000..872f51fe --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGConstants.java @@ -0,0 +1,396 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +/* + * Copyright CINES Centre Informatique National de l'Enseignement Supérieur, 2017 + * Tout droit d'utilisation strictement soumis à l'approbation du CINES + */ +package fr.gouv.vitamui.pastis.util; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author rachid Sala <rachid@cines.fr> + */ +public class RNGConstants { + + public static enum DataType + { + string("string"), + dateTime("dateTime"), + date("date"), + ID("ID"), + id("id"), + anyURI("anyURI"), + token("token"), + tokenType("tokenType"), + base64Binary("base64Binary"), + positiveInteger("positiveInteger"), + booleanType("boolean"), + decimal("decimal"), + intType("int"), + language("language"), + NCName("NCName"), + undefined("undefined"); + + private String label; + + private DataType(final String value) { + setLabel(value); + } + public String getLabel() { + return label; + } + public void setLabel(final String label) { + this.label = label; + } + } + + public static enum MetadaDataType + { + element ("element"), + attribute("attribute"), + data("data"), + except("except"), + nsName("nsName"), + value("value"), + text("text"), + ID("ID"); + private String label; + + private MetadaDataType(final String value) { + setLabel(value); + } + public String getLabel() { + return label; + } + public void setLabel(final String label) { + this.label = label; + } + } + + public static final Map<String , String> CardinalityMap = new HashMap<String , String>() { + public static final long serialVersionUID = 1L; + { + put("optional", "0-1"); + put("zeroOrMore", "0-N"); + put("obligatoire", "1"); + put("oneOrMore", "1-N"); + }}; + + public static enum Cardinality + { + optional("0-1"), + zeroOrMore("0-N"), + obligatoire("1"), + oneOrMore("1-N"); + private String label; + + private Cardinality(final String value) { + setLabel(value); + } + public String getLabel() { + return label; + } + public void setLabel(final String label) { + this.label = label; + } + } + + public static final Map<String , String> GroupOrChoiceMap = new HashMap<String , String>() { + public static final long serialVersionUID = 1L; + { + put("group","group"); + put("choice","choice"); + }}; + + public static enum GroupOrChoice + { + group("group"), + choice("choice"); + private String label; + + private GroupOrChoice(final String value) { + setLabel(value); + } + public String getLabel() { + return label; + } + public void setLabel(final String label) { + this.label = label; + } + } + + + public static boolean isElement (String type) { + for(MetadaDataType typeElement : RNGConstants.MetadaDataType.values()){ + if (typeElement.toString().equals(type)) { + return true; + } + } + return false; + } + + public static boolean isCardinality (String type) { + for(Cardinality typeElement : RNGConstants.Cardinality.values()){ + if (typeElement.toString().equals(type)) { + return true; + } + } + return false; + } + + public static boolean hasGroupOrChoice(String type) { + for(GroupOrChoice typeElement : RNGConstants.GroupOrChoice.values()){ + if (typeElement.toString().equals(type)) { + return true; + } + } + return false; + } + + public static boolean isDataType (String type) { + for(DataType typeElement : RNGConstants.DataType.values()){ + if (typeElement.toString().equals(type)) { + return true; + } + } + return false; + } + + public static boolean isValueOrData (String type) { + + if (null != type && (RNGConstants.MetadaDataType.data.toString().equals(type) + || RNGConstants.MetadaDataType.nsName.toString().equals(type) + || RNGConstants.MetadaDataType.value.toString().equals(type))){ + return true; + } + return false; + } + + public static final Map<String , DataType> TypesMap = new HashMap<String , DataType>() { + public static final long serialVersionUID = 1L; + { + put("CodeListVersions", DataType.token); + put("Comment", DataType.string); + put("Date", DataType.token); + put("MessageIdentifier", DataType.token); + put("ArchivalAgreement", DataType.token); + put("ReplyCodeListVersion", DataType.token); + put("MessageDigestAlgorithmCodeListVersion", DataType.token); + put("MimeTypeCodeListVersion", DataType.token); + put("EncodingCodeListVersion", DataType.token); + put("FileFormatCodeListVersion", DataType.token); + put("CompressionAlgorithmCodeListVersion", DataType.token); + put("DataObjectVersionCodeListVersion", DataType.token); + put("StorageRuleCodeListVersion", DataType.token); + put("AppraisalRuleCodeListVersion", DataType.token); + put("AccessRuleCodeListVersion", DataType.token); + put("DisseminationRuleCodeListVersion", DataType.token); + put("ReuseRuleCodeListVersion", DataType.token); + put("ClassificationRuleCodeListVersion", DataType.token); + put("AcquisitionInformationCodeListVersion", DataType.token); + put("AuthorizationReasonCodeListVersion", DataType.token); + put("RelationshipCodeListVersion", DataType.token); + put("OtherCodeListAbstract", DataType.token); + put("DataObjectSystemId", DataType.token); + put("DataObjectGroupSystemId", DataType.token); + put("Relationship", DataType.token); + put("DataObjectGroupReferenceId", DataType.token); + put("DataObjectGroupId", DataType.token); + put("DataObjectVersion", DataType.token); + put("Attachment", DataType.base64Binary); + put("Uri", DataType.anyURI); + put("MessageDigest", DataType.base64Binary); + put("Size", DataType.positiveInteger); + put("Compressed", DataType.booleanType); + put("FormatLitteral", DataType.string); + put("MimeType", DataType.token); + put("FormatId", DataType.token); + put("Encoding", DataType.token); + put("Filename", DataType.string); + put("CreatingApplicationName", DataType.string); + put("CreatingApplicationVersion", DataType.string); + put("DateCreatedByApplication", DataType.token); + put("CreatingOs", DataType.string); + put("CreatingOsVersion", DataType.string); + put("LastModified", DataType.token); + put("PhysicalId", DataType.token); + put("Width", DataType.decimal); + put("Height", DataType.decimal); + put("Depth", DataType.decimal); + put("Shape", DataType.string); + put("Diameter", DataType.decimal); + put("Length", DataType.decimal); + put("Thickness", DataType.decimal); + put("Weight", DataType.decimal); + put("NumberOfPage", DataType.intType); + put("EventIdentifier", DataType.token); + put("EventTypeCode", DataType.token); + put("EventType", DataType.token); + put("EventDateTime", DataType.token); + put("EventDetail", DataType.string); + put("Outcome", DataType.token); + put("OutcomeDetail", DataType.token); + put("OutcomeDetailMessage", DataType.token); + put("EventDetailData", DataType.token); + put("DataObjectReferenceId", DataType.token); + put("ArchiveUnitRefId", DataType.token); + put("ArchiveUnitProfile", DataType.token); + put("Rule", DataType.token); + put("StartDate", DataType.token); + put("PreventInheritance", DataType.booleanType); + put("RefNonRuleId", DataType.token); + put("FinalAction", DataType.token); + put("ClassificationAudience", DataType.token); + put("ClassificationLevel", DataType.token); + put("ClassificationOwner", DataType.token); + put("ClassificationReassessingDate", DataType.token); + put("NeedReassessingAuthorization", DataType.booleanType); + put("NeedAuthorization", DataType.booleanType); + put("DescriptionLevel", DataType.token); + put("Title", DataType.string); + put("FilePlanPosition", DataType.token); + put("SystemId", DataType.token); + put("OriginatingSystemId", DataType.token); + put("ArchivalAgencyArchiveUnitIdentifier", DataType.token); + put("OriginatingAgencyArchiveUnitIdentifier", DataType.token); + put("TransferringAgencyArchiveUnitIdentifier", DataType.token); + put("Description", DataType.string); + put("CustodialHistoryItem", DataType.string); + put("Type", DataType.string); + put("DocumentType", DataType.string); + put("language", DataType.language); + put("DescriptionLanguage", DataType.language); + put("Status", DataType.token); + put("Version", DataType.string); + put("Tag", DataType.token); + put("KeywordContent", DataType.string); + put("KeywordReference", DataType.token); + put("KeywordType", DataType.token); + put("Spatial", DataType.string); + put("Temporal", DataType.string); + put("Juridictional", DataType.string); + put("Identifier", DataType.string); + put("FirstName", DataType.string); + put("BirthName", DataType.string); + put("FullName", DataType.string); + put("GivenName", DataType.string); + put("Gender", DataType.string); + put("BirthDate", DataType.string); + put("Geogname", DataType.string); + put("Address", DataType.string); + put("PostalCode", DataType.string); + put("City", DataType.string); + put("Region", DataType.string); + put("Country", DataType.string); + put("DeathDate", DataType.token); + put("Nationality", DataType.string); + put("Corpname", DataType.string); + put("Function", DataType.string); + put("Activity", DataType.string); + put("Position", DataType.string); + put("Role", DataType.string); + put("Mandate", DataType.string); + put("Source", DataType.string); + put("ArchiveUnitRefId", DataType.NCName); + put("DataObjectReferenceId", DataType.token); + put("RepositoryArchiveUnitPID", DataType.token); + put("RepositoryObjectPID", DataType.token); + put("ExternalReference", DataType.token); + put("CreatedDate", DataType.token); + put("TransactedDate", DataType.token); + put("AcquiredDate", DataType.token); + put("SentDate", DataType.token); + put("ReceivedDate", DataType.token); + put("RegisteredDate", DataType.token); + put("EndDate", DataType.token); + put("Masterdata", DataType.token); + put("SigningTime", DataType.token); + put("ValidationTime", DataType.token); + put("SignedObjectId", DataType.token); + put("SignedObjectDigest", DataType.base64Binary); + put("GpsVersionID", DataType.string); + put("GpsAltitude", DataType.string); + put("GpsAltitudeRef", DataType.string); + put("GpsLatitude", DataType.string); + put("GpsLatitudeRef", DataType.string); + put("GpsLongitude", DataType.string); + put("GpsLongitudeRef", DataType.string); + put("GpsDateStamp", DataType.string); + put("ArchivalProfile", DataType.token); + put("ServiceLevel", DataType.token); + put("AcquisitionInformation", DataType.token); + put("LegalStatus", DataType.token); + put("OriginatingAgencyIdentifier", DataType.token); + put("SubmissionAgencyIdentifier", DataType.token); + put("RelatedTransferReference", DataType.token); + put("TransferRequestReplyIdentifier", DataType.token); + put("xml:id", DataType.ID); + put("ID", DataType.ID); + put("id", DataType.ID); + put("algorithm", DataType.token); + put("lang", DataType.language); + put("xml:lang", DataType.language); + put("href", DataType.anyURI); + put("listID", DataType.token); + put("listAgencyID", DataType.token); + put("listAgencyName", DataType.string); + put("listName", DataType.string); + put("listVersionID", DataType.token); + put("Name", DataType.string); + put("languageID", DataType.language); + put("listURI", DataType.anyURI); + put("listSchemeURI", DataType.anyURI); + put("schemeID", DataType.token); + put("schemeName", DataType.string); + put("schemeAgencyID", DataType.token); + put("schemeAgencyName", DataType.string); + put("schemeVersionID", DataType.token); + put("schemeDataURI", DataType.anyURI); + put("schemeURI", DataType.anyURI); + put("target", DataType.NCName); + put("type", DataType.token); + put("filename", DataType.string); + put("anyURI", DataType.anyURI); + put("unCompressedSize", DataType.positiveInteger); + put("unit", DataType.string); + put("when", DataType.token); + }}; + +} \ No newline at end of file diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGProfileValidator.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGProfileValidator.java new file mode 100644 index 00000000..3f593e22 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/RNGProfileValidator.java @@ -0,0 +1,98 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.xml.sax.SAXException; + +import javax.xml.XMLConstants; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.XMLEvent; +import javax.xml.validation.SchemaFactory; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.Objects; + +public class RNGProfileValidator { + + private static Logger LOGGER = LoggerFactory.getLogger(RNGProfileValidator.class); + + public static final String RNG_FACTORY = "com.thaiopensource.relaxng.jaxp.XMLSyntaxSchemaFactory"; + public static final String RNG_PROPERTY_KEY = "javax.xml.validation.SchemaFactory:" + XMLConstants.RELAXNG_NS_URI; + + public boolean validateRNG(File file, String error) throws Exception { + try { + System.setProperty(RNG_PROPERTY_KEY, RNG_FACTORY); + SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI).newSchema(file); + } catch (SAXException e) { + LOGGER.error("Malformed profile rng file", e); + error = "Malformed profile rng file : " + e.getMessage(); + return false; + } + + return checkTag(file, "rng", "grammar", error); + } + + private boolean checkTag(File file, String prefix, String element, String error) + throws FileNotFoundException, XMLStreamException { + + final XMLInputFactory xmlInputFactory = XMLInputFactoryUtils.newInstance(); + final XMLEventReader eventReader = xmlInputFactory.createXMLEventReader(new FileInputStream(file)); + while (eventReader.hasNext()) { + XMLEvent event = eventReader.nextEvent(); + if (event.isStartDocument()) { + continue; + } + + if (event.isStartElement()) { + String elementName = event.asStartElement().getName().getLocalPart(); + String elementPrefix = event.asStartElement().getName().getPrefix(); + + if (Objects.equals(element, elementName) || Objects.equals(prefix, elementPrefix)) { + error += "Profile file xsd have not the xsd:schema tag name."; + return true; + } + } + } + return false; + } +} diff --git a/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/XMLInputFactoryUtils.java b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/XMLInputFactoryUtils.java new file mode 100644 index 00000000..dcc80773 --- /dev/null +++ b/ui/ui-pastis/src/main/java/fr/gouv/vitamui/pastis/util/XMLInputFactoryUtils.java @@ -0,0 +1,51 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis.util; + +import javax.xml.stream.XMLInputFactory; + +public class XMLInputFactoryUtils { + + public static XMLInputFactory newInstance() { + XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); + xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, Boolean.FALSE); + xmlInputFactory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE); + xmlInputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE); + return xmlInputFactory; + } +} diff --git a/ui/ui-pastis/src/main/resources/application.properties b/ui/ui-pastis/src/main/resources/application.properties new file mode 100644 index 00000000..f86027d9 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/application.properties @@ -0,0 +1,16 @@ +#Spring +spring.servlet.multipart.max-file-size=10MB +spring.servlet.multipart.max-request-size=11MB +spring.servlet.multipart.enabled=true + + +server.port=8051 + +# Pastis Rest APi +rng.base.file=rng/Profil_seda_pastis_mvp.rng +json.base.file=rng/ProfileJson.json +war.dev.filename=rest +war.prod.filename=rest + +#CORS +cors.allowed-origins = http://10.100.129.51,10.100.129.51,http://vps795748.ovh.net,http://localhost:4200,http://145.239.92.134,http://10.100.129.33,http://pastis.cines.fr,pastis.cines.fr diff --git a/ui/ui-pastis/src/main/resources/build.properties b/ui/ui-pastis/src/main/resources/build.properties new file mode 100644 index 00000000..c743c85b --- /dev/null +++ b/ui/ui-pastis/src/main/resources/build.properties @@ -0,0 +1,3 @@ +node.version=12.15.3 +npm.version=6.4.1 +rng.path=${user.home}/rng \ No newline at end of file diff --git a/ui/ui-pastis/src/main/resources/log4j.properties b/ui/ui-pastis/src/main/resources/log4j.properties new file mode 100644 index 00000000..278483bf --- /dev/null +++ b/ui/ui-pastis/src/main/resources/log4j.properties @@ -0,0 +1,28 @@ +#log4j.rootLogger=DEBUG, STDOUT, file +#################### PASTIS LOG4J daily rolling log files configuration #################### +#-------------------------------------------------------------------------------------------- +# Schedule | DatePattern | Example of Log File’s Name | +#-------------------------------------------------------------------------------------------- +# Minutely | '.'yyyy-MM-dd-HH-mm | pastis.log.2017-11-09-21-54 | +# Hourly | '.'yyyy-MM-dd-HH | pastis.log.2017-11-09-22 | +# Half-daily| '.'yyyy-MM-dd-a | pastis.log.2017-11-09-AM, pastis.log.2017-11-09-PM | +# Daily | '.'yyyy-MM-dd | pastis.log.2017-11-09 | +# Weekly | '.'yyyy-ww | pastis.log.2017-45, pastis.log.2017-46 | +# Monthly | '.'yyyy-MM | pastis.log.2017-10, pastis.log.2017-11 | +############################################################################################# + +# Root logger option +log4j.rootLogger=INFO, RollingAppender, stdout +# Direct log messages to file +log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.RollingAppender.File=logs/pastis.log +log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd +log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n + +#log4j.rootLogger=INFO, stdout +# Direct log messages to stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %c{1} - %m%n \ No newline at end of file diff --git a/ui/ui-pastis/src/main/resources/log4j2.xml b/ui/ui-pastis/src/main/resources/log4j2.xml new file mode 100644 index 00000000..0b374cb2 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/log4j2.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE xml> + +<Configuration status="info" monitorInterval="10"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %X{DepositIdentifier} - %X{TransferingAgencyIdentifier} - %msg%n" /> + <Filters> + <ThresholdFilter level="WARN" onMatch="ACCEPT" /> + <ThresholdFilter level="ERROR" onMatch="ACCEPT" /> + </Filters> + </Console> + </Appenders> + + <Loggers> + <Logger name="com" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Logger name="java" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Logger name="javax" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Logger name="org" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Logger name="net" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Logger name="org.irods.jargon.core" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Logger name="fr.cines" level="info" additivity="false"> + <AppenderRef ref="Console" /> + </Logger> + <Root level="info"> + <AppenderRef ref="Console" /> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2-1_v3.rng b/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2-1_v3.rng new file mode 100644 index 00000000..494c6b9a --- /dev/null +++ b/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2-1_v3.rng @@ -0,0 +1,870 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" +ns="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" +xmlns:xsd="http://www.w3.org/2001/XMLSchema" +xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" +xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" +xmlns:rng="http://relaxng.org/ns/structure/1.0" +xmlns:xs="http://www.w3.org/2001/XMLSchema" +xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Profil RNG avec 1 objet numérique déclaré (en O-N), et 1 AU racine (en O-n) qui déclare un AU fille (en O-N)--> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="Comment"> + <xsd:annotation> + <xsd:documentation>Commentaire sur le versement</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ArchivalAgreement"> + <xsd:annotation> + <xsd:documentation>Déclaration du contrat d'entrée</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <xsd:annotation> + <xsd:documentation>Sert à lier un fichier à l'ArchiveUnit auquel il correspond. + Exemple: ID7</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"> + <xsd:annotation> + <xsd:documentation>Nom du fichier. Exemple: + 22100005200011_20091118_144251_1.pdf</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="Metadata"> + <rng:optional> + <rng:element name="Video"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Audio"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:value>19341594000017</rng:value> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <xsd:annotation> + <xsd:documentation> Doit permettre d'identifier l'opérateur technique réalisant le + versement de manière unique et non équivoque</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="token"/> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_final.rng b/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_final.rng new file mode 100644 index 00000000..388fe650 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_final.rng @@ -0,0 +1,831 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="fr:gouv:culture:archivesdefrance:seda:v2.1" seda:warnings=""> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="Comment"> + <xsd:annotation> + <xsd:documentation>Commentaire sur le versement</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ArchivalAgreement"> + <xsd:annotation> + <xsd:documentation>Déclaration du contrat d'entrée</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:element name="DataObjectGroup"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <xsd:annotation> + <xsd:documentation>Sert à lier un fichier à l'ArchiveUnit auquel il correspond. + Exemple: ID7</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"> + <xsd:annotation> + <xsd:documentation>Nom du fichier. Exemple: + 22100005200011_20091118_144251_1.pdf</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="Metadata"> + <rng:optional> + <rng:element name="Video"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Audio"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:group> + <rng:element name="Management"> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + </rng:element> + </rng:optional> + </rng:element> + </rng:group> + <rng:group> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:optional> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + </rng:optional> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:optional> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + </rng:optional> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:zeroOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:zeroOrMore> + </rng:element> + </rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:choice> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:choice> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:choice> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:choice> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:group> + <rng:element name="Management"> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + </rng:element> + </rng:optional> + </rng:element> + </rng:group> + </rng:optional> + <rng:group> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:element name="Title"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Language"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:optional> + <rng:element name="IsVersionOf"> + <rng:choice> + <rng:element name="ArchiveUnitRefId" a:defaultValue="id76759"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" + a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Replaces"> + <rng:choice> + <rng:element name="ArchiveUnitRefId" a:defaultValue="id76759"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" + a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:choice> + <rng:element name="ArchiveUnitRefId" a:defaultValue="id76759"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" + a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:choice> + <rng:element name="ArchiveUnitRefId" a:defaultValue="id76759"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectReferenceId" + a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:choice> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="EndDate"> + <rng:data type="date"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:group> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:group> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:group> + <rng:element name="Rule"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:group> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:value>19341594000017</rng:value> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <xsd:annotation> + <xsd:documentation> Doit permettre d'identifier l'opérateur technique réalisant le + versement de manière unique et non équivoque</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="token"/> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_v2.rng b/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_v2.rng new file mode 100644 index 00000000..d3bd1e8f --- /dev/null +++ b/ui/ui-pastis/src/main/resources/rng/Profil_CINES_complet_2.1_v2.rng @@ -0,0 +1,851 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="fr:gouv:culture:archivesdefrance:seda:v2.1" seda:warnings=""> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:element name="Comment"> + <xsd:annotation> + <xsd:documentation>Commentaire sur le versement</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ArchivalAgreement"> + <xsd:annotation> + <xsd:documentation>Déclaration du contrat d'entrée</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <xsd:annotation> + <xsd:documentation>Sert à lier un fichier à l'ArchiveUnit auquel il correspond. + Exemple: ID7</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"> + <xsd:annotation> + <xsd:documentation>Nom du fichier. Exemple: + 22100005200011_20091118_144251_1.pdf</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="Metadata"> + <rng:optional> + <rng:element name="Video"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Audio"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:value>19341594000017</rng:value> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <xsd:annotation> + <xsd:documentation> Doit permettre d'identifier l'opérateur technique réalisant le + versement de manière unique et non équivoque</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="token"/> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/main/resources/rng/Profil_seda_pastis_mvp.rng b/ui/ui-pastis/src/main/resources/rng/Profil_seda_pastis_mvp.rng new file mode 100644 index 00000000..ee72e0ec --- /dev/null +++ b/ui/ui-pastis/src/main/resources/rng/Profil_seda_pastis_mvp.rng @@ -0,0 +1,107 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="fr:gouv:culture:archivesdefrance:seda:v2.1" seda:warnings=""> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:optional> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + </rng:optional> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:optional> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Title"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:optional> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <rng:element name="Identifier"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/main/resources/rng/ProfileJson.json b/ui/ui-pastis/src/main/resources/rng/ProfileJson.json new file mode 100644 index 00000000..575aa5f0 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/rng/ProfileJson.json @@ -0,0 +1,3125 @@ +{ + "name": "ArchiveTransfer", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 0, + "id": 7368, + "parentId": null, + "choices": [], + "children": [ + { + "name": "xml:id", + "type": "attribute", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 1, + "id": 7369, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "Comment", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": "Commentaire sur le versement", + "level": 1, + "id": 7370, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "Date", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "dateTime", + "value": null, + "documentation": null, + "level": 1, + "id": 7371, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "MessageIdentifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 1, + "id": 7372, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "ArchivalAgreement", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": "Déclaration du contrat d'entrée", + "level": 1, + "id": 7373, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "CodeListVersions", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 1, + "id": 7374, + "parentId": 7368, + "choices": [], + "children": [] + }, + { + "name": "DataObjectPackage", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 1, + "id": 7375, + "parentId": 7368, + "choices": [], + "children": [ + { + "name": "xml:id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 2, + "id": 7376, + "parentId": 7375, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroup", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 2, + "id": 7377, + "parentId": 7375, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 3, + "id": 7378, + "parentId": 7377, + "choices": [], + "children": [] + }, + { + "name": "BinaryDataObject", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7379, + "parentId": 7377, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 4, + "id": 7380, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": "Sert à lier un fichier à l'ArchiveUnit auquel il correspond.\n Exemple: ID7", + "level": 4, + "id": 7381, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "DataObjectVersion", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": "BinaryMaster par défaut", + "level": 4, + "id": 7382, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "Uri", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "anyURI", + "value": null, + "documentation": null, + "level": 4, + "id": 7383, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "MessageDigest", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "base64Binary", + "value": null, + "documentation": null, + "level": 4, + "id": 7384, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "algorithm", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7385, + "parentId": 7384, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Size", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "positiveInteger", + "value": null, + "documentation": null, + "level": 4, + "id": 7386, + "parentId": 7379, + "choices": [], + "children": [] + }, + { + "name": "FormatIdentification", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7387, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "FormatLitteral", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7388, + "parentId": 7387, + "choices": [], + "children": [] + }, + { + "name": "MimeType", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7389, + "parentId": 7387, + "choices": [], + "children": [] + }, + { + "name": "FormatId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7390, + "parentId": 7387, + "choices": [], + "children": [] + }, + { + "name": "Encoding", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7391, + "parentId": 7387, + "choices": [], + "children": [] + } + ] + }, + { + "name": "FileInfo", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7392, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "Filename", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": "Nom du fichier. Exemple:\n 22100005200011_20091118_144251_1.pdf", + "level": 5, + "id": 7393, + "parentId": 7392, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Metadata", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7394, + "parentId": 7379, + "choices": [], + "children": [ + { + "name": "Video", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7395, + "parentId": 7394, + "choices": [], + "children": [] + }, + { + "name": "Audio", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7396, + "parentId": 7394, + "choices": [], + "children": [] + } + ] + } + ] + } + ] + }, + { + "name": "DescriptiveMetadata", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 2, + "id": 7397, + "parentId": 7375, + "choices": [], + "children": [ + { + "name": "ArchiveUnit", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7398, + "parentId": 7397, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 4, + "id": 7399, + "parentId": 7398, + "choices": [], + "children": [] + }, + { + "name": "ArchiveUnitProfile", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7400, + "parentId": 7398, + "choices": [], + "children": [] + }, + { + "name": "Management", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7401, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "UpdateOperation", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7402, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "ArchiveUnitIdentifierKey", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7403, + "parentId": 7402, + "choices": [], + "children": [ + { + "name": "MetadataName", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7404, + "parentId": 7403, + "choices": [], + "children": [] + }, + { + "name": "MetadataValue", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7405, + "parentId": 7403, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "AppraisalRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7406, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7407, + "parentId": 7406, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 6, + "id": 7408, + "parentId": 7406, + "choices": [], + "children": [] + }, + { + "name": "FinalAction", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7409, + "parentId": 7406, + "choices": [], + "children": [] + } + ] + }, + { + "name": "AccessRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7410, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7411, + "parentId": 7410, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 6, + "id": 7412, + "parentId": 7410, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DisseminationRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7413, + "parentId": 7401, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7414, + "parentId": 7413, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 6, + "id": 7415, + "parentId": 7413, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "Content", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7416, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "DescriptionLevel", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7417, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Title", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7418, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 6, + "id": 7419, + "parentId": 7418, + "choices": [], + "children": [] + } + ] + }, + { + "name": "FilePlanPosition", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7420, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "OriginatingAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7421, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "TransferringAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7422, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Description", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7423, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 6, + "id": 7424, + "parentId": 7423, + "choices": [], + "children": [] + } + ] + }, + { + "name": "CustodialHistory", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7425, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "CustodialHistoryItem", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7426, + "parentId": 7425, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Type", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 5, + "id": 7427, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Language", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": "Langue du contenu du sous-ensemble de l'archive\n exprimée au format ISO 639-3", + "level": 5, + "id": 7428, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "DescriptionLanguage", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 5, + "id": 7429, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Tag", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7430, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "Keyword", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7431, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "KeywordContent", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7432, + "parentId": 7431, + "choices": [], + "children": [] + } + ] + }, + { + "name": "OriginatingAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service producteur", + "level": 5, + "id": 7433, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7434, + "parentId": 7433, + "choices": [], + "children": [] + } + ] + }, + { + "name": "SubmissionAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service versant", + "level": 5, + "id": 7435, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7436, + "parentId": 7435, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RelatedObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7437, + "parentId": 7416, + "choices": [], + "children": [ + { + "name": "IsVersionOf", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7438, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7439, + "parentId": 7438, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7440, + "parentId": 7438, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7441, + "parentId": 7440, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7442, + "parentId": 7440, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7443, + "parentId": 7438, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7444, + "parentId": 7438, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7445, + "parentId": 7438, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Replaces", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7446, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7447, + "parentId": 7446, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7448, + "parentId": 7446, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7449, + "parentId": 7448, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7450, + "parentId": 7448, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7451, + "parentId": 7446, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7452, + "parentId": 7446, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7453, + "parentId": 7446, + "choices": [], + "children": [] + } + ] + }, + { + "name": "IsPartOf", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7454, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7455, + "parentId": 7454, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7456, + "parentId": 7454, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7457, + "parentId": 7456, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7458, + "parentId": 7456, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7459, + "parentId": 7454, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7460, + "parentId": 7454, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7461, + "parentId": 7454, + "choices": [], + "children": [] + } + ] + }, + { + "name": "References", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7462, + "parentId": 7437, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 7, + "id": 7463, + "parentId": 7462, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7464, + "parentId": 7462, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7465, + "parentId": 7464, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7466, + "parentId": 7464, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7467, + "parentId": 7462, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7468, + "parentId": 7462, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7469, + "parentId": 7462, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus ancien dans\n l'ArchiveUnit", + "level": 5, + "id": 7470, + "parentId": 7416, + "choices": [], + "children": [] + }, + { + "name": "EndDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus récent dans\n l'ArchiveUnit.", + "level": 5, + "id": 7471, + "parentId": 7416, + "choices": [], + "children": [] + } + ] + }, + { + "name": "ArchiveUnit", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7472, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "id", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "ID", + "value": null, + "documentation": null, + "level": 5, + "id": 7473, + "parentId": 7472, + "choices": [], + "children": [] + }, + { + "name": "ArchiveUnitProfile", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 5, + "id": 7474, + "parentId": 7472, + "choices": [], + "children": [] + }, + { + "name": "Management", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7475, + "parentId": 7472, + "choices": [], + "children": [ + { + "name": "UpdateOperation", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7476, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "ArchiveUnitIdentifierKey", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7477, + "parentId": 7476, + "choices": [], + "children": [ + { + "name": "MetadataName", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7478, + "parentId": 7477, + "choices": [], + "children": [] + }, + { + "name": "MetadataValue", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7479, + "parentId": 7477, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "AppraisalRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7480, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7481, + "parentId": 7480, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 7, + "id": 7482, + "parentId": 7480, + "choices": [], + "children": [] + }, + { + "name": "FinalAction", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7483, + "parentId": 7480, + "choices": [], + "children": [] + } + ] + }, + { + "name": "AccessRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7484, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7485, + "parentId": 7484, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 7, + "id": 7486, + "parentId": 7484, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DisseminationRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7487, + "parentId": 7475, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 7, + "id": 7488, + "parentId": 7487, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 7, + "id": 7489, + "parentId": 7487, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "Content", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7490, + "parentId": 7472, + "choices": [], + "children": [ + { + "name": "DescriptionLevel", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7491, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Title", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7492, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 7, + "id": 7493, + "parentId": 7492, + "choices": [], + "children": [] + } + ] + }, + { + "name": "FilePlanPosition", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7494, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "OriginatingAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7495, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "TransferringAgencyArchiveUnitIdentifier", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7496, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Description", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7497, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "xml:lang", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 7, + "id": 7498, + "parentId": 7497, + "choices": [], + "children": [] + } + ] + }, + { + "name": "CustodialHistory", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7499, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "CustodialHistoryItem", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7500, + "parentId": 7499, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Type", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 6, + "id": 7501, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Language", + "type": "element", + "cardinality": "1-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": "Langue du contenu du sous-ensemble de l'archive\n exprimée au format ISO 639-3", + "level": 6, + "id": 7502, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "DescriptionLanguage", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "language", + "value": null, + "documentation": null, + "level": 6, + "id": 7503, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Tag", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 6, + "id": 7504, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "Keyword", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7505, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "KeywordContent", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7506, + "parentId": 7505, + "choices": [], + "children": [] + } + ] + }, + { + "name": "OriginatingAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service producteur", + "level": 6, + "id": 7507, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7508, + "parentId": 7507, + "choices": [], + "children": [] + } + ] + }, + { + "name": "SubmissionAgency", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": "Service versant", + "level": 6, + "id": 7509, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "string", + "value": null, + "documentation": null, + "level": 7, + "id": 7510, + "parentId": 7509, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RelatedObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 6, + "id": 7511, + "parentId": 7490, + "choices": [], + "children": [ + { + "name": "IsVersionOf", + "type": "element", + "cardinality": "0-N", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7512, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7513, + "parentId": 7512, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7514, + "parentId": 7512, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7515, + "parentId": 7514, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7516, + "parentId": 7514, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7517, + "parentId": 7512, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7518, + "parentId": 7512, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7519, + "parentId": 7512, + "choices": [], + "children": [] + } + ] + }, + { + "name": "Replaces", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7520, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7521, + "parentId": 7520, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7522, + "parentId": 7520, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7523, + "parentId": 7522, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7524, + "parentId": 7522, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7525, + "parentId": 7520, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7526, + "parentId": 7520, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7527, + "parentId": 7520, + "choices": [], + "children": [] + } + ] + }, + { + "name": "IsPartOf", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7528, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7529, + "parentId": 7528, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7530, + "parentId": 7528, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7531, + "parentId": 7530, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7532, + "parentId": 7530, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7533, + "parentId": 7528, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7534, + "parentId": 7528, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7535, + "parentId": 7528, + "choices": [], + "children": [] + } + ] + }, + { + "name": "References", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 7, + "id": 7536, + "parentId": 7511, + "choices": [], + "children": [ + { + "name": "ArchiveUnitRefId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 8, + "id": 7537, + "parentId": 7536, + "choices": [], + "children": [] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 8, + "id": 7538, + "parentId": 7536, + "choices": [], + "children": [ + { + "name": "DataObjectReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7539, + "parentId": 7538, + "choices": [], + "children": [] + }, + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 9, + "id": 7540, + "parentId": 7538, + "choices": [], + "children": [] + } + ] + }, + { + "name": "RepositoryArchiveUnitPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7541, + "parentId": 7536, + "choices": [], + "children": [] + }, + { + "name": "RepositoryObjectPID", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7542, + "parentId": 7536, + "choices": [], + "children": [] + }, + { + "name": "ExternalReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 8, + "id": 7543, + "parentId": 7536, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus ancien dans\n l'ArchiveUnit", + "level": 6, + "id": 7544, + "parentId": 7490, + "choices": [], + "children": [] + }, + { + "name": "EndDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": "Date du document le plus récent dans\n l'ArchiveUnit.", + "level": 6, + "id": 7545, + "parentId": 7490, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 5, + "id": 7546, + "parentId": 7472, + "choices": [], + "children": [ + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 6, + "id": 7547, + "parentId": 7546, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "DataObjectReference", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 4, + "id": 7548, + "parentId": 7398, + "choices": [], + "children": [ + { + "name": "DataObjectGroupReferenceId", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "NCName", + "value": null, + "documentation": null, + "level": 5, + "id": 7549, + "parentId": 7548, + "choices": [], + "children": [] + } + ] + } + ] + } + ] + }, + { + "name": "ManagementMetadata", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 2, + "id": 7550, + "parentId": 7375, + "choices": [], + "children": [ + { + "name": "ArchivalProfile", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 3, + "id": 7551, + "parentId": 7550, + "choices": [], + "children": [] + }, + { + "name": "OriginatingAgencyIdentifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 3, + "id": 7552, + "parentId": 7550, + "choices": [], + "children": [] + }, + { + "name": "SubmissionAgencyIdentifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 3, + "id": 7553, + "parentId": 7550, + "choices": [], + "children": [] + }, + { + "name": "AppraisalRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7554, + "parentId": 7550, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7555, + "parentId": 7554, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 4, + "id": 7556, + "parentId": 7554, + "choices": [], + "children": [] + }, + { + "name": "FinalAction", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7557, + "parentId": 7554, + "choices": [], + "children": [] + } + ] + }, + { + "name": "AccessRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7558, + "parentId": 7550, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7559, + "parentId": 7558, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 4, + "id": 7560, + "parentId": 7558, + "choices": [], + "children": [] + } + ] + }, + { + "name": "DisseminationRule", + "type": "element", + "cardinality": "0-1", + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 3, + "id": 7561, + "parentId": 7550, + "choices": [], + "children": [ + { + "name": "Rule", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 4, + "id": 7562, + "parentId": 7561, + "choices": [], + "children": [] + }, + { + "name": "StartDate", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "date", + "value": null, + "documentation": null, + "level": 4, + "id": 7563, + "parentId": 7561, + "choices": [], + "children": [] + } + ] + } + ] + } + ] + }, + { + "name": "ArchivalAgency", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": null, + "level": 1, + "id": 7564, + "parentId": 7368, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "19341594000017", + "documentation": null, + "level": 2, + "id": 7565, + "parentId": 7564, + "choices": [], + "children": [ + { + "name": "schemeName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "SIRET", + "documentation": null, + "level": 3, + "id": 7566, + "parentId": 7565, + "choices": [], + "children": [] + }, + { + "name": "schemeAgencyName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "INSEE", + "documentation": null, + "level": 3, + "id": 7567, + "parentId": 7565, + "choices": [], + "children": [] + } + ] + } + ] + }, + { + "name": "TransferringAgency", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": null, + "dataType": null, + "value": null, + "documentation": " Doit permettre d'identifier l'opérateur technique réalisant le\n versement de manière unique et non équivoque", + "level": 1, + "id": 7568, + "parentId": 7368, + "choices": [], + "children": [ + { + "name": "Identifier", + "type": "element", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "data", + "dataType": "token", + "value": null, + "documentation": null, + "level": 2, + "id": 7569, + "parentId": 7568, + "choices": [], + "children": [ + { + "name": "schemeName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "SIRET", + "documentation": null, + "level": 3, + "id": 7570, + "parentId": 7569, + "choices": [], + "children": [] + }, + { + "name": "schemeAgencyName", + "type": "attribute", + "cardinality": null, + "groupOrChoice": null, + "valueOrData": "value", + "dataType": null, + "value": "INSEE", + "documentation": null, + "level": 3, + "id": 7571, + "parentId": 7569, + "choices": [], + "children": [] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ui/ui-pastis/src/main/resources/xsd/full.xsd b/ui/ui-pastis/src/main/resources/xsd/full.xsd new file mode 100644 index 00000000..f78a0e05 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd/full.xsd @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" +elementFormDefault="qualified" +targetNamespace="http://relaxng.org/ns/structure/1.0" +xmlns:structure="http://relaxng.org/ns/structure/1.0"> + <!-- Grammar --> + <xs:element name="grammar"> + <xs:complexType> + <xs:sequence> + <xs:element ref="structure:start"/> + <xs:element maxOccurs="unbounded" ref="structure:define"/> + </xs:sequence> + <xs:attribute name="datatypeLibrary" use="required" type="xs:anyURI"/> + <xs:attribute name="ns" use="required" type="xs:anyURI"/> + </xs:complexType> + </xs:element> + + <!-- Defines the start element --> + <xs:element name="start"> + <xs:complexType> + <xs:sequence> + <xs:element ref="structure:element"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + + <!-- Defines the define element --> + <xs:element name="define"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="0"> + <xs:element ref="structure:choice"/> + <xs:element ref="structure:cardinality"/> + </xs:choice> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="structure:optional"/> + <xs:choice minOccurs="0"> + <xs:element ref="structure:element"/> + <xs:element ref="structure:zeroOrMore"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + + <!-- Defines an utilitary ref element to refer to other elements --> + <xs:element name="ref"> + <xs:complexType> + <xs:attribute name="name" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + <xs:element name="choice"> + <xs:complexType> + <xs:choice> + <xs:choice maxOccurs="unbounded"> + <xs:element ref="structure:attribute"/> + <xs:element ref="structure:element"/> + <xs:element ref="structure:ref"/> + <xs:element ref="structure:text"/> + </xs:choice> + <xs:element maxOccurs="unbounded" ref="structure:value"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="value" type="xs:NCName"/> + + <!-- Cardinality --> + <xs:element name="cardinality"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="structure:ref"/> + <xs:choice minOccurs="0"> + <xs:element ref="structure:optional"/> + <xs:element ref="structure:zeroOrMore"/> + <xs:element ref="structure:group"/> + <xs:element ref="structure:oneOrMore"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Group --> + <xs:element name="group"> + <xs:complexType> + <xs:sequence> + <xs:element ref="structure:zeroOrMore"/> + <xs:element ref="structure:optional"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- OneOrMore --> + <xs:element name="oneOrMore"> + <xs:complexType> + <xs:sequence> + <xs:element ref="structure:ref"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="optional"> + <xs:complexType> + <xs:choice> + <xs:element ref="structure:attribute"/> + <xs:element ref="structure:element"/> + <xs:element ref="structure:ref"/> + </xs:choice> + </xs:complexType> + </xs:element> + + + <!-- Element defintion --> + <xs:element name="element"> + <xs:complexType> + <xs:sequence minOccurs="0"> + <xs:element minOccurs="0" ref="structure:anyName"/> + <xs:element minOccurs="0" ref="structure:attribute"/> + <xs:element minOccurs="0" ref="structure:choice"/> + <xs:element minOccurs="0" ref="structure:cardinality"/> + <xs:choice minOccurs="0"> + <xs:element ref="structure:data"/> + <xs:element ref="structure:text"/> + </xs:choice> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="structure:element"/> + </xs:sequence> + <xs:attribute name="name" type="xs:NCName"/> + </xs:complexType> + + <!-- ZeroOrMore --> + </xs:element> + <xs:element name="zeroOrMore"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="structure:attribute"/> + <xs:element minOccurs="0" ref="structure:element"/> + <xs:element minOccurs="0" ref="structure:choice"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Attribute --> + <xs:element name="attribute"> + <xs:complexType> + <xs:choice minOccurs="0"> + <xs:element ref="structure:anyName"/> + <xs:element ref="structure:choice"/> + <xs:element ref="structure:data"/> + </xs:choice> + <xs:attribute name="name" type="xs:NCName"/> + </xs:complexType> + + </xs:element> + <!-- Text --> + <xs:element name="text"> + <xs:complexType/> + </xs:element> + + <!-- AnyName --> + <xs:element name="anyName"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="structure:except"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Except --> + <xs:element name="except"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="structure:nsName"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- nsName --> + <xs:element name="nsName"> + <xs:complexType> + <xs:attribute name="ns"/> + </xs:complexType> + </xs:element> + + <!-- Data --> + <xs:element name="data"> + <xs:complexType> + <xs:attribute name="type" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd/full_last.xsd b/ui/ui-pastis/src/main/resources/xsd/full_last.xsd new file mode 100644 index 00000000..b882bc23 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd/full_last.xsd @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified" + targetNamespace="http://relaxng.org/ns/structure/1.0" + xmlns:structure="http://relaxng.org/ns/structure/1.0" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <!-- Grammar --> + <xs:element name="grammar"> + <xs:complexType> + <xs:sequence> + <xs:element ref="structure:start"/> + <xs:element maxOccurs="unbounded" ref="structure:define"/> + </xs:sequence> + <xs:attribute name="datatypeLibrary" use="required" type="xs:anyURI"/> + <xs:attribute name="ns" use="required" type="xs:anyURI"/> + </xs:complexType> + </xs:element> + + <xs:element name="define"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="0"> + <xs:element ref="structure:choice"/> + <xs:element ref="structure:interleave"/> + </xs:choice> + <xs:element minOccurs="0" maxOccurs="unbounded" name="optional" type="structure:optional"/> + <xs:choice minOccurs="0"> + <xs:element name="children" type="structure:element"/> + <xs:element name="zeroOrMore" type="structure:zeroOrMore"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" use="required" type="xs:NCName"/> + </xs:complexType> + </xs:element> + + + <xs:element name="interleave"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="structure:ref"/> + <xs:choice minOccurs="0"> + <xs:element name="optional" type="structure:optional"/> + <xs:element name="zeroOrMore" type="structure:zeroOrMore"/> + <xs:element name="oneOrMore" type="structure:oneOrMore"/> + <xs:element ref="structure:group"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Defines the start element --> + <xs:element name="start"> + <xs:complexType> + <xs:sequence> + <xs:element name="element" minOccurs="1" type="structure:element"/> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Element defintion --> + <xs:complexType name="element"> + <xs:sequence> + <xs:element minOccurs="0" ref="structure:anyName" /> + <xs:element minOccurs="0" name="attribute" type="structure:attribute" /> + <xs:element minOccurs="0" ref="structure:choice" /> + <xs:element minOccurs="0" name="oneOrMore" type="structure:oneOrMore" /> + <xs:element minOccurs="0" name="zeroOrMore" type="structure:zeroOrMore" /> + <xs:element minOccurs="0" name="optional" type="structure:optional" /> + <xs:element minOccurs="0" maxOccurs="unbounded" name="element" type="structure:element" /> + <xs:choice minOccurs="0"> + <xs:element ref="structure:data" /> + <xs:element ref="structure:text" /> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" type="xs:NCName" /> + </xs:complexType> + + <!-- Defines the define element --> + + + <!-- Defines an utilitary ref element to refer to other elements --> + <xs:element name="ref"> + <xs:complexType> + <xs:attribute name="name" use="required" + type="xs:NCName" /> + </xs:complexType> + </xs:element> + + <!-- Choice --> + <xs:element name="choice"> + <xs:complexType> + <xs:choice> + <xs:choice maxOccurs="unbounded"> + <xs:element name="attribute" type="structure:attribute" /> + <xs:element name="element" type="structure:element" /> + <xs:element ref="structure:ref" /> + <xs:element ref="structure:text" /> + </xs:choice> + <xs:element maxOccurs="unbounded" ref="structure:value" /> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="value" type="xs:NCName" /> + + + <!-- Group --> + <xs:element name="group"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <!-- One or More --> + <xs:complexType name="oneOrMore"> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + + <!-- Zero or More --> + <xs:complexType name="zeroOrMore"> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + + <!-- Optional --> + <xs:complexType name="optional"> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + + + <!-- Attribute --> + <xs:complexType name="attribute"> + <xs:complexContent> + <xs:extension base="structure:element"> + <!-- <xs:choice minOccurs="0"> <xs:element ref="structure:anyName" /> <xs:element + ref="structure:choice" /> <xs:element ref="structure:data" /> </xs:choice> --> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- Text --> + <xs:element name="text"> + <xs:complexType /> + </xs:element> + + <!-- AnyName --> + <xs:element name="anyName"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="structure:except" /> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Except --> + <xs:element name="except"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="structure:nsName" /> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- nsName --> + <xs:element name="nsName"> + <xs:complexType> + <xs:attribute name="ns" /> + </xs:complexType> + </xs:element> + + <!-- Data --> + <xs:element name="data"> + <xs:complexType> + <xs:attribute name="type" use="required" + type="xs:NCName" /> + </xs:complexType> + </xs:element> + +</xs:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd/full_test.xsd b/ui/ui-pastis/src/main/resources/xsd/full_test.xsd new file mode 100644 index 00000000..7875f88c --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd/full_test.xsd @@ -0,0 +1,214 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified" + targetNamespace="http://relaxng.org/ns/structure/1.0" + xmlns:structure="http://relaxng.org/ns/structure/1.0" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <!-- Grammar --> + <xs:element name="grammar"> + <xs:complexType> + <xs:sequence> + <xs:element ref="structure:start" /> + <xs:element maxOccurs="unbounded" ref="structure:define" /> + </xs:sequence> + <xs:attribute name="datatypeLibrary" use="required" + type="xs:anyURI" /> + <xs:attribute name="ns" use="required" type="xs:anyURI" /> + </xs:complexType> + </xs:element> + + <xs:element name="define"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="0"> + <!--<xs:element name="choice" ref="structure:choice"/> --> + <xs:element ref="structure:interleave" /> + </xs:choice> + <xs:element minOccurs="0" maxOccurs="unbounded" + name="optional" type="structure:optional" /> + <xs:choice minOccurs="0"> + <xs:element name="children" type="structure:element" /> + <xs:element ref="structure:zeroOrMore" /> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" use="required" + type="xs:NCName" /> + </xs:complexType> + </xs:element> + + + <xs:element name="interleave"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" ref="structure:ref" /> + <xs:choice minOccurs="0"> + <xs:element name="optional" type="structure:optional" /> + <xs:element ref="structure:zeroOrMore" /> + <xs:element name="oneOrMore" type="structure:oneOrMore" /> + <xs:element ref="structure:group" /> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Defines the start element --> + <xs:element name="start"> + <xs:complexType> + <xs:sequence> + <xs:element name="element" minOccurs="1" + type="structure:element" /> + </xs:sequence> + </xs:complexType> + </xs:element> + + <!-- Element defintion --> + <xs:complexType name="element"> + <xs:sequence> + <xs:element minOccurs="0" name="anyName" + type="structure:anyName" /> + <xs:element minOccurs="0" name="nsName" + type="structure:nsName" /> + <xs:element minOccurs="0" name="except" + type="structure:except" /> + <xs:element minOccurs="0" name="attribute" + type="structure:attribute" /> + <xs:element minOccurs="0" ref="structure:choice" /> + <xs:element minOccurs="0" name="data" + type="structure:data" /> + <xs:element minOccurs="0" name="oneOrMore" + type="structure:oneOrMore" /> + <xs:element minOccurs="0" ref="structure:zeroOrMore" /> + <xs:element minOccurs="0" name="optional" + type="structure:optional" /> + <xs:element ref="structure:text" /> + <xs:element minOccurs="0" maxOccurs="unbounded" + name="element" type="structure:element" /> + </xs:sequence> + <xs:attribute name="name" type="xs:NCName" /> + </xs:complexType> + + <!-- Defines the define element --> + + + <!-- Defines an utilitary ref element to refer to other elements --> + <xs:element name="ref"> + <xs:complexType> + <xs:attribute name="name" use="required" + type="xs:NCName" /> + </xs:complexType> + </xs:element> + + <!-- Choice --> + <xs:element name="choice"> + <xs:complexType> + <xs:choice> + <xs:choice maxOccurs="unbounded"> + <xs:element name="attribute" type="structure:attribute" /> + <xs:element name="element" type="structure:element" /> + <xs:element ref="structure:ref" /> + <xs:element ref="structure:text" /> + </xs:choice> + <xs:element maxOccurs="unbounded" ref="structure:value" /> + </xs:choice> + </xs:complexType> + </xs:element> + + <xs:element name="value" type="xs:NCName" /> + + + <!-- Group --> + <xs:element name="group"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <!-- One or More --> + <xs:complexType name="oneOrMore"> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + + <!-- Zero or More --> + <xs:element name="zeroOrMore"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + </xs:element> + + <!-- Optional --> + <xs:complexType name="optional"> + <xs:complexContent> + <xs:extension base="structure:element" /> + </xs:complexContent> + </xs:complexType> + + + <!-- Attribute --> + <xs:complexType name="attribute"> + <xs:complexContent> + <xs:extension base="structure:element"> + <xs:choice minOccurs="0"> + <xs:element name="anyName" type="structure:anyName" /> + <xs:element name="data" type="structure:data" /> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- Text --> + <xs:element name="text"> + <xs:complexType /> + </xs:element> + + <!-- AnyName --> + <xs:complexType name="anyName"> + <xs:complexContent> + <xs:extension base="structure:element"> + <xs:sequence> + <xs:element minOccurs="0" name="except" + type="structure:except" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <!-- Except --> + <xs:complexType name="except"> + <xs:complexContent> + <xs:extension base="structure:element"> + <xs:sequence> + <xs:element minOccurs="0" name="nsName" + type="structure:nsName" /> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <!-- nsName --> + <xs:complexType name="nsName"> + <xs:complexContent> + <xs:extension base="structure:element"> + <xs:attribute name="ns" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + + <!-- Data --> + <xs:complexType name="data"> + <xs:complexContent> + <xs:extension base="structure:element"> + <xs:attribute name="type" use="required" type="xs:NCName" /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + +</xs:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd/relaxng2.xsd b/ui/ui-pastis/src/main/resources/xsd/relaxng2.xsd new file mode 100644 index 00000000..aa2a4ff7 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd/relaxng2.xsd @@ -0,0 +1,356 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- RELAX NG XML syntax specified in compact syntax. --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://relaxng.org/ns/structure/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0"> + <xs:element name="pattern" abstract="true"/> + <xs:element name="element" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="rng:nameClass"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" type="xs:QName"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="attribute" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" ref="rng:nameClass"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" type="xs:QName"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="interleave" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="optional" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="zeroOrMore" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="oneOrMore" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="list" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="mixed" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="ref" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:group ref="rng:common"/> + <xs:attributeGroup ref="rng:nameNCName"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="parentRef" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:group ref="rng:common"/> + <xs:attributeGroup ref="rng:nameNCName"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="empty" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:group ref="rng:common"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="notAllowed" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:group ref="rng:common"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="text" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:group ref="rng:common"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="data" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" maxOccurs="unbounded" ref="rng:param"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:exceptPattern"/> + </xs:choice> + </xs:sequence> + <xs:attributeGroup ref="rng:type"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="value" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attributeGroup ref="rng:commonAttributes"/> + <xs:attribute name="type" type="xs:NCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="externalRef" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:group ref="rng:common"/> + <xs:attributeGroup ref="rng:href"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="grammar" substitutionGroup="rng:pattern"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:grammarContent"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="param"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attributeGroup ref="rng:commonAttributes"/> + <xs:attributeGroup ref="rng:nameNCName"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:group name="exceptPattern"> + <xs:sequence> + <xs:element name="except"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:group name="grammarContent"> + <xs:choice> + <xs:element ref="rng:definition"/> + <xs:element name="div"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:grammarContent"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element ref="rng:include"/> + </xs:choice> + </xs:group> + <xs:element name="include"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:includeContent"/> + </xs:choice> + <xs:attributeGroup ref="rng:href"/> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:group name="includeContent"> + <xs:choice> + <xs:element ref="rng:definition"/> + <xs:element name="div"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:includeContent"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:group> + <xs:element name="definition" abstract="true"/> + <xs:element name="start" substitutionGroup="rng:definition"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attribute name="combine"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="choice"/> + <xs:enumeration value="interleave"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="define" substitutionGroup="rng:definition"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:pattern"/> + </xs:choice> + <xs:attributeGroup ref="rng:nameNCName"/> + <xs:attribute name="combine"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="choice"/> + <xs:enumeration value="interleave"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:attributeGroup name="combine"> + <xs:attribute name="combine" use="required"> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="choice"/> + <xs:enumeration value="interleave"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:attributeGroup> + <xs:element name="nameClass" abstract="true"/> + <xs:element name="name" substitutionGroup="rng:nameClass"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:QName"> + <xs:attributeGroup ref="rng:commonAttributes"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="anyName" substitutionGroup="rng:nameClass"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:exceptNameClass"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="nsName" substitutionGroup="rng:nameClass"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:group ref="rng:exceptNameClass"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:element name="choice" substitutionGroup="rng:nameClass"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:nameClass"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + <xs:group name="exceptNameClass"> + <xs:sequence> + <xs:element name="except"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="rng:common"/> + <xs:element ref="rng:nameClass"/> + </xs:choice> + <xs:attributeGroup ref="rng:common"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:group> + <xs:attributeGroup name="nameQName"> + <xs:attribute name="name" use="required" type="xs:QName"/> + </xs:attributeGroup> + <xs:attributeGroup name="nameNCName"> + <xs:attribute name="name" use="required" type="xs:NCName"/> + </xs:attributeGroup> + <xs:attributeGroup name="href"> + <xs:attribute name="href" use="required" type="xs:anyURI"/> + </xs:attributeGroup> + <xs:attributeGroup name="type"> + <xs:attribute name="type" use="required" type="xs:NCName"/> + </xs:attributeGroup> + <xs:group name="common"> + <xs:sequence> + <xs:group minOccurs="0" maxOccurs="unbounded" ref="rng:foreignElement"/> + </xs:sequence> + </xs:group> + <xs:attributeGroup name="common"> + <xs:attributeGroup ref="rng:commonAttributes"/> + </xs:attributeGroup> + <xs:attributeGroup name="commonAttributes"> + <xs:attribute name="ns" type="xs:string"/> + <xs:attribute name="datatypeLibrary" type="xs:anyURI"/> + <xs:attributeGroup ref="rng:foreignAttribute"/> + </xs:attributeGroup> + <xs:group name="foreignElement"> + <xs:choice> + <xs:any namespace="##other" processContents="skip"/> + <xs:any namespace="##local" processContents="skip"/> + </xs:choice> + </xs:group> + <xs:attributeGroup name="foreignAttribute"> + <xs:anyAttribute namespace="##other" processContents="skip"/> + </xs:attributeGroup> + <xs:group name="anyElement"> + <xs:sequence> + <xs:any processContents="skip"/> + </xs:sequence> + </xs:group> + <xs:attributeGroup name="anyAttribute"> + <xs:anyAttribute processContents="skip"/> + </xs:attributeGroup> +</xs:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd/rng_cines.xsd b/ui/ui-pastis/src/main/resources/xsd/rng_cines.xsd new file mode 100644 index 00000000..a19df85d --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd/rng_cines.xsd @@ -0,0 +1,456 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1"> + <xsd:element name="ArchiveTransfer"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:Comment"/> + <xsd:element ref="seda:Date"/> + <xsd:element ref="seda:MessageIdentifier"/> + <xsd:element ref="seda:ArchivalAgreement"/> + <xsd:element ref="seda:CodeListVersions"/> + <xsd:element ref="seda:DataObjectPackage"/> + <xsd:element ref="seda:ArchivalAgency"/> + <xsd:element ref="seda:TransferringAgency"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + <xsd:anyAttribute namespace="##other" processContents="skip"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="Comment" type="xsd:string"/> + <xsd:element name="Date" type="xsd:dateTime"/> + <xsd:element name="MessageIdentifier"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="schemeDataURI" type="xsd:anyURI"/> + <xsd:attribute name="schemeID" type="xsd:token"/> + <xsd:attribute name="schemeAgencyName" type="xsd:string"/> + <xsd:attribute name="schemeAgencyID" type="xsd:token"/> + <xsd:attribute name="schemeName" type="xsd:string"/> + <xsd:attribute name="schemeVersionID" type="xsd:token"/> + <xsd:attribute name="schemeURI" type="xsd:anyURI"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="ArchivalAgreement"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="schemeDataURI" type="xsd:anyURI"/> + <xsd:attribute name="schemeID" type="xsd:token"/> + <xsd:attribute name="schemeAgencyName" type="xsd:string"/> + <xsd:attribute name="schemeAgencyID" type="xsd:token"/> + <xsd:attribute name="schemeName" type="xsd:string"/> + <xsd:attribute name="schemeVersionID" type="xsd:token"/> + <xsd:attribute name="schemeURI" type="xsd:anyURI"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="CodeListVersions"> + <xsd:complexType> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="DataObjectPackage"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:DataObjectGroup"/> + <xsd:element ref="seda:DescriptiveMetadata"/> + <xsd:element ref="seda:ManagementMetadata"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="DataObjectGroup"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="0" maxOccurs="unbounded" ref="seda:BinaryDataObject"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="BinaryDataObject"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="0" ref="seda:DataObjectGroupId"/> + <xsd:element minOccurs="0" ref="seda:DataObjectVersion"/> + <xsd:element minOccurs="0" ref="seda:Uri"/> + <xsd:element ref="seda:MessageDigest"/> + <xsd:element ref="seda:Size"/> + <xsd:element ref="seda:FormatIdentification"/> + <xsd:element ref="seda:FileInfo"/> + <xsd:element minOccurs="0" ref="seda:Metadata"/> + </xsd:sequence> + <xsd:attribute name="id" use="required" type="xsd:ID"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="DataObjectGroupId" type="xsd:token"/> + <xsd:element name="DataObjectVersion" type="xsd:token"/> + <xsd:element name="Uri" type="xsd:anyURI"/> + <xsd:element name="MessageDigest"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:restriction base="xsd:anyType"> + <xsd:simpleType> + <xsd:union memberTypes="xsd:base64Binary xsd:hexBinary"/> + </xsd:simpleType> + <xsd:attribute name="algorithm" use="required" type="xsd:token"/> + </xsd:restriction> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Size" type="xsd:positiveInteger"/> + <xsd:element name="FormatIdentification"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="0" ref="seda:FormatLitteral"/> + <xsd:element minOccurs="0" ref="seda:FormatId"/> + <xsd:element minOccurs="0" ref="seda:Encoding"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="FormatLitteral" type="xsd:string"/> + <xsd:element name="FormatId" type="xsd:token"/> + <xsd:element name="Encoding" type="xsd:token"/> + <xsd:element name="FileInfo"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:Filename"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="Filename" type="xsd:string"/> + <xsd:element name="Metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="0" ref="seda:Video"/> + <xsd:element minOccurs="0" ref="seda:Audio"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="Video"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value=""/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="Audio"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value=""/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="DescriptiveMetadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="0" maxOccurs="unbounded" ref="seda:ArchiveUnit"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="ArchiveUnit"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:Management"/> + <xsd:sequence> + <xsd:element ref="seda:Content"/> + <xsd:element minOccurs="0" ref="seda:DataObjectReference"/> + </xsd:sequence> + </xsd:sequence> + <xsd:attribute name="id" use="required" type="xsd:ID"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="Management"> + <xsd:complexType> + <xsd:sequence> + <xsd:element minOccurs="0" ref="seda:UpdateOperation"/> + <xsd:element minOccurs="0" ref="seda:AppraisalRule"/> + <xsd:element minOccurs="0" ref="seda:AccessRule"/> + <xsd:element minOccurs="0" ref="seda:DisseminationRule"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="UpdateOperation"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:ArchiveUnitIdentifierKey"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="ArchiveUnitIdentifierKey"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:MetadataName"/> + <xsd:element ref="seda:MetadataValue"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="MetadataName" type="xsd:token"/> + <xsd:element name="MetadataValue" type="xsd:token"/> + <xsd:element name="AppraisalRule"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:Rule"/> + <xsd:element name="StartDate" type="xsd:date"/> + <xsd:element ref="seda:FinalAction"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="Rule"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="FinalAction" type="xsd:token"/> + <xsd:element name="AccessRule"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:Rule"/> + <xsd:element name="StartDate" type="xsd:date"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="DisseminationRule"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:Rule"/> + <xsd:element name="StartDate" type="xsd:date"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="Content"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:DescriptionLevel"/> + <xsd:element maxOccurs="unbounded" ref="seda:Title"/> + <xsd:element minOccurs="0" ref="seda:FilePlanPosition"/> + <xsd:element minOccurs="0" ref="seda:OriginatingAgencyArchiveUnitIdentifier"/> + <xsd:element minOccurs="0" ref="seda:TransferringAgencyArchiveUnitIdentifier"/> + <xsd:element minOccurs="0" ref="seda:Description"/> + <xsd:element minOccurs="0" ref="seda:CustodialHistory"/> + <xsd:element ref="seda:Type"/> + <xsd:element maxOccurs="unbounded" ref="seda:Language"/> + <xsd:element minOccurs="0" ref="seda:DescriptionLanguage"/> + <xsd:element minOccurs="0" maxOccurs="unbounded" ref="seda:Tag"/> + <xsd:element minOccurs="0" maxOccurs="unbounded" ref="seda:Keyword"/> + <xsd:element minOccurs="0" ref="seda:OriginatingAgency"/> + <xsd:element minOccurs="0" ref="seda:SubmissionAgency"/> + <xsd:element name="StartDate"> + <xsd:simpleType> + <xsd:union memberTypes="xsd:date xsd:dateTime"/> + </xsd:simpleType> + </xsd:element> + <xsd:element ref="seda:EndDate"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="DescriptionLevel" type="xsd:token"/> + <xsd:element name="Title"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="lang" type="xsd:language"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="FilePlanPosition" type="xsd:token"/> + <xsd:element name="OriginatingAgencyArchiveUnitIdentifier" type="xsd:token"/> + <xsd:element name="TransferringAgencyArchiveUnitIdentifier" type="xsd:token"/> + <xsd:element name="Description"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="lang" type="xsd:language"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="CustodialHistory"> + <xsd:complexType> + <xsd:sequence> + <xsd:element maxOccurs="unbounded" ref="seda:CustodialHistoryItem"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="CustodialHistoryItem" type="xsd:string"/> + <xsd:element name="Type" type="xsd:string"/> + <xsd:element name="Language" type="xsd:language"/> + <xsd:element name="DescriptionLanguage" type="xsd:language"/> + <xsd:element name="Tag" type="xsd:token"/> + <xsd:element name="Keyword"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:KeywordContent"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="KeywordContent" type="xsd:string"/> + <xsd:element name="OriginatingAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier" type="xsd:string"/> + <xsd:element name="OrganizationDescriptiveMetadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Name" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="SubmissionAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="schemeName"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="SIRET"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + <xsd:attribute name="schemeAgencyName"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="INSEE"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="OrganizationDescriptiveMetadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Name" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="EndDate"> + <xsd:simpleType> + <xsd:union memberTypes="xsd:date xsd:dateTime"/> + </xsd:simpleType> + </xsd:element> + <xsd:element name="DataObjectReference"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:DataObjectReferenceId"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + </xsd:element> + <xsd:element name="DataObjectReferenceId" type="xsd:NCName"/> + <xsd:element name="ManagementMetadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element ref="seda:ArchivalProfile"/> + <xsd:element minOccurs="0" ref="seda:AppraisalRule"/> + <xsd:element minOccurs="0" ref="seda:AccessRule"/> + <xsd:element minOccurs="0" ref="seda:DisseminationRule"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="ArchivalProfile" type="xsd:token"/> + <xsd:element name="ArchivalAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:restriction base="xsd:anyType"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="19341594000017"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:attribute name="schemeName" use="required"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="SIRET"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + <xsd:attribute name="schemeAgencyName" use="required"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="INSEE"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + </xsd:restriction> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="OrganizationDescriptiveMetadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Name"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="Centre Informatique National de l'Enseignement Supérieur"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="TransferringAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="schemeName" use="required"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="SIRET"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + <xsd:attribute name="schemeAgencyName" use="required"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="INSEE"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="OrganizationDescriptiveMetadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Name" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:group name="OpenType"> + <xsd:sequence> + <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> + </xsd:sequence> + </xsd:group> +</xsd:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd/vitam.xsd b/ui/ui-pastis/src/main/resources/xsd/vitam.xsd new file mode 100644 index 00000000..6ebf26c6 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd/vitam.xsd @@ -0,0 +1,1516 @@ +<?xml version="1.0" encoding="UTF-8"?> + + +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" + attributeFormDefault="unqualified" version="1.0"> + + <!-- mon profil de matrice V2 --> + <xsd:element name="Identifier" type="xsd:string"/> + + <!-- definition de ArchiveTransfer et de ses enfants directs : + Comment, Date, MessageIdentifier, ArchivalAgreement, CodeListVersions, DataObjectPackage, ArchivalAgency, TransferringAgency --> + <xsd:element name="ArchiveTransfer"> + <xsd:complexType> + <xsd:sequence> + <!-- ArchiveTransfer / Comment --> + <xsd:element name="Comment" minOccurs="1" fixed="Matrice cadastrale numérique"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / Date --> + <xsd:element name="Date" minOccurs="1" ><!-- valeur date obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / MessageIdentifier --> + <xsd:element name="MessageIdentifier" minOccurs="1"><!-- valeur obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="schemeDataURI" type="xsd:anyURI" use="optional"/> + <xsd:attribute name="schemeID" type="xsd:token" use="optional"/> + <xsd:attribute name="schemeAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="schemeAgencyID" type="xsd:token" use="optional"/> + <xsd:attribute name="schemeName" type="xsd:string" use="optional"/> + <xsd:attribute name="schemeVersionID" type="xsd:token" + use="optional"/> + <xsd:attribute name="schemeURI" type="xsd:anyURI" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / ArchivalAgreement --> + <xsd:element name="ArchivalAgreement" fixed="ArchivalAgreement0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions --> + <xsd:element name="CodeListVersions" minOccurs="1"> + <xsd:complexType> + <xsd:sequence> + <!-- ArchiveTransfer / CodeListVersions / ReplyCodeListVersion --> + <xsd:element name="ReplyCodeListVersion" fixed="ReplyCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire - A RAJOUTER : RENDRE UNIQUE --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / MessageDigestAlgorithmCodeListVersion --> + <xsd:element name="MessageDigestAlgorithmCodeListVersion" fixed="MessageDigestAlgorithmCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire - A RAJOUTER : RENDRE UNIQUE --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / MimeTypeCodeListVersion --> + <xsd:element name="MimeTypeCodeListVersion" + fixed="MimeTypeCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / EncodingCodeListVersion --> + <xsd:element name="EncodingCodeListVersion" + fixed="EncodingCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / FileFormatCodeListVersion --> + <xsd:element name="FileFormatCodeListVersion" + fixed="FileFormatCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / CompressionAlgorithmCodeListVersion --> + <xsd:element name="CompressionAlgorithmCodeListVersion" + fixed="CompressionAlgorithmCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / DataObjectVersionCodeListVersion --> + <xsd:element name="DataObjectVersionCodeListVersion" + fixed="DataObjectVersionCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / StorageRuleCodeListVersion --> + <xsd:element name="StorageRuleCodeListVersion" + fixed="StorageRuleCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / AppraisalRuleCodeListVersion --> + <xsd:element name="AppraisalRuleCodeListVersion" + fixed="AppraisalRuleCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / AccessRuleCodeListVersion --> + <xsd:element name="AccessRuleCodeListVersion" + fixed="AccessRuleCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / DisseminationRuleCodeListVersion --> + <xsd:element name="DisseminationRuleCodeListVersion" + fixed="DisseminationRuleCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / ReuseRuleCodeListVersion --> + <xsd:element name="ReuseRuleCodeListVersion" + fixed="ReuseRuleCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / ClassificationRuleCodeListVersion --> + <xsd:element name="ClassificationRuleCodeListVersion" + fixed="ClassificationRuleCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / AuthorizationReasonCodeListVersion --> + <xsd:element name="AuthorizationReasonCodeListVersion" + fixed="AuthorizationReasonCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveTransfer / CodeListVersions / RelationshipCodeListVersion --> + <xsd:element name="RelationshipCodeListVersion" + fixed="RelationshipCodeListVersion0" minOccurs="1"><!-- valeur textuelle fixe obligatoire --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="listName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listAgencyID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listSchemeURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listID" type="xsd:token" + use="optional"/> + <xsd:attribute name="listAgencyName" type="xsd:string" + use="optional"/> + <xsd:attribute name="listURI" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="listVersionID" type="xsd:token" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID" use="optional"/> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveTransfer / DataObjectPackage --> + <xsd:element name="DataObjectPackage"> + <xsd:complexType> + <xsd:sequence> + <!-- ArchiveTransfer / DataObjectPackage / BinaryDataObject 1 --> + <xsd:element name="BinaryDataObject"> + <xsd:complexType> + <xsd:sequence> + + <!-- DataObjectGroupReferenceId --> + <xsd:element name="DataObjectGroupReferenceId" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/><!-- erreur possible dans la declaration de cet element --> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- DataObjectGroupId --> + <xsd:element name="DataObjectGroupId" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- DataObjectVersion --> + <xsd:element name="DataObjectVersion" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <xsd:choice> + + <!-- Uri --> + <xsd:element name="Uri" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:anyURI"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- Attachement --> + <xsd:element name="Attachement" minOccurs="0"> + <xsd:complexType><xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="uri" type="xsd:anyURI" + use="optional"/> + <xsd:attribute name="filename" type="xsd:string" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + </xsd:element> + + </xsd:choice> + + <!-- message digest --> + <xsd:element name="MessageDigest" minOccurs="1"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:base64Binary"> + <xsd:attribute name="algorithm" type="xsd:token" + use="required"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- size --> + <xsd:element name="Size" minOccurs="1"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:positiveInteger"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- Compressed --> + <xsd:element minOccurs="0" name="Compressed" fixed="xsd:boolean"> <!-- a revoir, car je ne suis pas sure qu'il faut le declarer ainsi--> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="algorithm" type="xsd:token" + use="optional"/> + <xsd:attribute name="uncompressedSize" type="xsd:positiveInteger" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- format identification --> + <xsd:element name="FormatIdentification" minOccurs="1"> + <xsd:complexType> + <xsd:sequence> + <!-- format identification / format litteral --> + <xsd:element minOccurs="1" name="FormatLitteral" + fixed="Open Document Texte"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- format identification / mime type --> + <xsd:element name="MimeType"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- format identification / format id --> + <xsd:element minOccurs="1" name="FormatId" + fixed="fmt/135"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <!-- file info --> + <xsd:element name="FileInfo"> + <xsd:complexType> + <xsd:sequence> + <!-- FileInfo / file name --> + <xsd:element name="Filename" minOccurs="1" + fixed="BAT_a_jour.odt"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- FileInfo / creating application name --> + <xsd:element minOccurs="1" + name="CreatingApplicationName" fixed="Majic 3"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- FileInfo / CreatingApplicationVersion --> + <xsd:element minOccurs="0" + name="CreatingApplicationVersion"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- FileInfo / DateCreatedByApplication --> + <xsd:element minOccurs="0" + name="DateCreatedByApplication"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- FileInfo / creating os --> + <xsd:element minOccurs="0" + name="CreatingOs"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- FileInfo / CreatingOsVersion --> + <xsd:element minOccurs="0" + name="CreatingOsVersion"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- FileInfo / LastModified --> + <xsd:element minOccurs="0" name="LastModified"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <!-- Metadata --> + <xsd:element minOccurs="0" name="Metadata"> + <xsd:complexType> + <xsd:choice> + <xsd:element minOccurs="0" name="Audio"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element minOccurs="0" name="Document"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element minOccurs="0" name="Image"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element minOccurs="0" name="Text"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element minOccurs="0" name="Video"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + + </xsd:element> + + <!-- OtherMetadata --> + <xsd:element minOccurs="0" name="OtherMetadata"><!-- attributs a ajouter --> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- Relationship --> + <xsd:element minOccurs="0" name="Relationship"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute name="target" type="xsd:string" + use="optional"/> + <xsd:attribute name="type" type="xsd:string" + use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + </xsd:sequence> + + <xsd:attribute name="id" type="xsd:ID" use="required"/> + </xsd:complexType> + </xsd:element><!-- fin de binary --> + + <!-- ArchiveTransfer / DataObjectPackage / DescriptiveMetadata --> + + <xsd:element name="DescriptiveMetadata"> + <xsd:complexType> + <xsd:sequence> + <!-- ArchiveTransfer / DataObjectPackage / DescriptiveMetadata / ArchiveUnit --> + <xsd:element name="ArchiveUnit"> + <xsd:complexType> + <xsd:sequence> + <!-- 4 sous-elements : + ArchiveUnitRefId, ArchiveUnitProfile, Content, Management + --> + + <!-- ArchiveUnit / ArchiveUnitRefId --> + <!-- ArchiveUnit / ArchiveUnitProfile --> + <!-- ArchiveUnit / Management --> + + <!-- ArchiveUnit / Content --> + <xsd:element maxOccurs="unbounded" name="Content"> + <xsd:complexType> + <xsd:sequence> + + <!-- ArchiveUnit / Content / DescriptionLevel --> + <xsd:element name="DescriptionLevel" + fixed="RecordGrp"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Title --> + <xsd:element name="Title" + fixed="Versement de la matrice cadastrale numérique"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / FilePlanPosition --> + <xsd:element minOccurs="0" name="FilePlanPosition"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / SystemId --> + <xsd:element minOccurs="0" name="SystemId"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / OriginatingSystemId --> + <xsd:element minOccurs="0" + name="OriginatingSystemId"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / ArchivalAgencyArchiveUnitIdentifier --> + <xsd:element minOccurs="0" + name="ArchivalAgencyArchiveUnitIdentifier"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Description --> + <xsd:element name="Description" + fixed="Matrice cadastrale des communes du département."> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / CustodialHistory --> + <xsd:element minOccurs="0" name="CustodialHistory"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="CustodialHistoryItem" + fixed="Les données ont été récupérées par le SIAF à la DGFIP en 2010, retravaillées et documentées par le SIAF pour versement aux Archives départementales avec les applications de conversion et de visualisation." + > </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Type --> + <xsd:element name="Type" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / DocumentType --> + <xsd:element name="DocumentType" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Language --> + <xsd:element name="Language" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:language"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / DescriptionLanguage --> + <xsd:element name="DescriptionLanguage" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Status --> + <xsd:element name="Status" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Version --> + <xsd:element name="Version" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Tag --> + <xsd:element name="Tag" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Keyword --> + <xsd:element name="Keyword"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="KeywordContent" + fixed="matrice cadastrale"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="KeywordReference" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="KeywordType" fixed="subject"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:token"> + <xsd:attribute fixed="edition 2009" + name="listVersionID"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID" + use="optional"/> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / Coverage et enfants --> + <xsd:element name="Coverage" minOccurs="0"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Spatial" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Temporal" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Juridictional" minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID" + use="optional"/> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / OriginatingAgency --> + <xsd:element name="OriginatingAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier" + fixed="FRAN_NP_009734"> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element + name="OrganizationDescriptiveMetadata" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / SubmissionAgency --> + <xsd:element name="SubmissionAgency" minOccurs="0"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier" minOccurs="0"> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element + name="OrganizationDescriptiveMetadata" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / AuthorizedAgent --> + <xsd:element minOccurs="0" name="AuthorizedAgent"> + <xsd:complexType> + + <xsd:sequence> + <xsd:choice> + <xsd:sequence> + <xsd:element + name="Corpname" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:sequence> + <xsd:element name="FirstName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="GivenName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Gender" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Nationality" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:choice> + <xsd:element ref="Identifier" minOccurs="0"></xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin d'authorized agent --> + + <!-- ArchiveUnit / Content / Writer --> + <xsd:element minOccurs="0" name="Writer"> + <xsd:complexType> + + <xsd:sequence> + <xsd:choice> + <xsd:sequence> + <xsd:element + name="Corpname" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:sequence> + <xsd:element name="FirstName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="GivenName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Gender" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Nationality" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:choice> + <xsd:element ref="Identifier" minOccurs="0"></xsd:element> + <!-- business et ses 4 sous-elements ??????? --> + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin de writer --> + + <!-- ArchiveUnit / Content / Adressee --> + <xsd:element minOccurs="0" name="Adressee"> + <xsd:complexType> + + <xsd:sequence> + <xsd:choice> + <xsd:sequence> + <xsd:element + name="Corpname" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:sequence> + <xsd:element name="FirstName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="GivenName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Gender" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Nationality" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:choice> + <xsd:element ref="Identifier" minOccurs="0"></xsd:element> + + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin de Adressee --> + + <!-- ArchiveUnit / Content / Recipient --> + <xsd:element minOccurs="0" name="Recipient"> + <xsd:complexType> + + <xsd:sequence> + <xsd:choice> + <xsd:sequence> + <xsd:element + name="Corpname" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + <xsd:sequence> + <xsd:element name="FirstName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="GivenName" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Gender" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="BirthPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathDate" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:date"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="DeathPlace" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <xsd:element name="Nationality" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:choice> + <xsd:element ref="Identifier" minOccurs="0"></xsd:element> + + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin de Recipient --> + + <!-- ArchiveUnit / Content / Source --> + <xsd:element + name="Source" + minOccurs="0"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveUnit / Content / RelatedObjectReference --> + <xsd:element minOccurs="0" name="RelatedObjectReference"/> + + <!-- ArchiveUnit / Content / CreatedDate --> + <xsd:element minOccurs="0" name="CreatedDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / TransactedDate --> + <xsd:element minOccurs="0" name="TransactedDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / AcquiredDate --> + <xsd:element minOccurs="0" name="AcquiredDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / SentDate --> + <xsd:element minOccurs="0" name="SentDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / ReceivedDate --> + <xsd:element minOccurs="0" name="ReceivedDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / RegisteredDate --> + <xsd:element minOccurs="0" name="RegisteredDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / StartDate --> + <xsd:element minOccurs="0" name="StartDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + <!-- ArchiveUnit / Content / EndDate --> + <xsd:element minOccurs="0" name="EndDate"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:dateTime"/> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> + + + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin de content --> + + + + + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin de archive unit --> + </xsd:sequence> + </xsd:complexType> + </xsd:element><!-- fin de descriptive metadata --> + + + + + <!-- ArchiveTransfer / DataObjectPackage / ManagementMetadata --> + + + + </xsd:sequence> + + <xsd:attribute name="id" type="xsd:ID" use="required"/><!-- DataObjetPackage necessite un ID --> + </xsd:complexType> + + </xsd:element><!-- fin DataObjectPackage --> + + <!-- ArchiveTransfer / ArchivalAgency --> + <xsd:element name="ArchivalAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier" fixed="Identifier4"> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + <!-- enumeration avec valeur ? --> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <!-- ArchiveTransfer / TransferringAgency --> + <xsd:element name="TransferringAgency"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="Identifier" fixed="Identifier5"> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + <!-- enumeration avec valeur ? --> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + + </xsd:sequence> + </xsd:complexType> + + </xsd:element> + + + +</xsd:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd_validation/catalog.xml b/ui/ui-pastis/src/main/resources/xsd_validation/catalog.xml new file mode 100644 index 00000000..4cd94963 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd_validation/catalog.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> + <!-- This will redirect the namespace URI to the local schema file, which + should be found in the same directory as the catalog.xml --> + <uri name="http://www.w3.org/XML/1998/namespace" uri="xml.xsd" /> + <uri name="http://www.w3.org/1999/xlink" uri="xlink.xsd" /> +</catalog> \ No newline at end of file diff --git a/ui/ui-pastis/src/main/resources/xsd_validation/xlink.xsd b/ui/ui-pastis/src/main/resources/xsd_validation/xlink.xsd new file mode 100644 index 00000000..9e2c8c11 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd_validation/xlink.xsd @@ -0,0 +1,277 @@ +<?xml version='1.0' encoding='UTF-8'?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"> + + <xs:annotation> + <xs:documentation>This + schema document provides attribute declarations and + attribute group, complex type and simple type definitions which can be used in + the construction of user schemas to define the structure of + particular linking + constructs, e.g. +<![CDATA[ +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xl="http://www.w3.org/1999/xlink"> + + <xs:import namespace="http://www.w3.org/1999/xlink" + location="http://www.w3.org/1999/xlink.xsd"> + + <xs:element name="mySimple"> + <xs:complexType> + ... + <xs:attributeGroup ref="xl:simpleAttrs"/> + ... + </xs:complexType> + </xs:element> + ... +</xs:schema>]]></xs:documentation> + </xs:annotation> + + <xs:import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd" /> + + <xs:attribute name="type" type="xlink:typeType" /> + + <xs:simpleType name="typeType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="simple" /> + <xs:enumeration value="extended" /> + <xs:enumeration value="title" /> + <xs:enumeration value="resource" /> + <xs:enumeration value="locator" /> + <xs:enumeration value="arc" /> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="href" type="xlink:hrefType" /> + + <xs:simpleType name="hrefType"> + <xs:restriction base="xs:anyURI" /> + </xs:simpleType> + + <xs:attribute name="role" type="xlink:roleType" /> + + <xs:simpleType name="roleType"> + <xs:restriction base="xs:anyURI"> + <xs:minLength value="1" /> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="arcrole" type="xlink:arcroleType" /> + + <xs:simpleType name="arcroleType"> + <xs:restriction base="xs:anyURI"> + <xs:minLength value="1" /> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="title" type="xlink:titleAttrType" /> + + <xs:simpleType name="titleAttrType"> + <xs:restriction base="xs:string" /> + </xs:simpleType> + + <xs:attribute name="show" type="xlink:showType" /> + + <xs:simpleType name="showType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="new" /> + <xs:enumeration value="replace" /> + <xs:enumeration value="embed" /> + <xs:enumeration value="other" /> + <xs:enumeration value="none" /> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="actuate" type="xlink:actuateType" /> + + <xs:simpleType name="actuateType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="onLoad" /> + <xs:enumeration value="onRequest" /> + <xs:enumeration value="other" /> + <xs:enumeration value="none" /> + </xs:restriction> + </xs:simpleType> + + <xs:attribute name="label" type="xlink:labelType" /> + + <xs:simpleType name="labelType"> + <xs:restriction base="xs:NCName" /> + </xs:simpleType> + + <xs:attribute name="from" type="xlink:fromType" /> + + <xs:simpleType name="fromType"> + <xs:restriction base="xs:NCName" /> + </xs:simpleType> + + <xs:attribute name="to" type="xlink:toType" /> + + <xs:simpleType name="toType"> + <xs:restriction base="xs:NCName" /> + </xs:simpleType> + + <xs:attributeGroup name="simpleAttrs"> + <xs:attribute ref="xlink:type" fixed="simple" /> + <xs:attribute ref="xlink:href" /> + <xs:attribute ref="xlink:role" /> + <xs:attribute ref="xlink:arcrole" /> + <xs:attribute ref="xlink:title" /> + <xs:attribute ref="xlink:show" /> + <xs:attribute ref="xlink:actuate" /> + </xs:attributeGroup> + + <xs:group name="simpleModel"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:group> + + <xs:complexType mixed="true" name="simple"> + <xs:annotation> + <xs:documentation> + Intended for use as the type of user-declared elements to make them + simple links. + </xs:documentation> + </xs:annotation> + <xs:group ref="xlink:simpleModel" /> + <xs:attributeGroup ref="xlink:simpleAttrs" /> + </xs:complexType> + + <xs:attributeGroup name="extendedAttrs"> + <xs:attribute ref="xlink:type" fixed="extended" use="required" /> + <xs:attribute ref="xlink:role" /> + <xs:attribute ref="xlink:title" /> + </xs:attributeGroup> + + <xs:group name="extendedModel"> + <xs:choice> + <xs:element ref="xlink:title" /> + <xs:element ref="xlink:resource" /> + <xs:element ref="xlink:locator" /> + <xs:element ref="xlink:arc" /> + </xs:choice> + </xs:group> + + <xs:complexType name="extended"> + <xs:annotation> + <xs:documentation> + Intended for use as the type of user-declared elements to make them + extended links. + Note that the elements referenced in the content model are all abstract. + The intention is that by simply declaring elements with these as + their + substitutionGroup, all the right things will happen. + </xs:documentation> + </xs:annotation> + <xs:group ref="xlink:extendedModel" minOccurs="0" maxOccurs="unbounded" /> + <xs:attributeGroup ref="xlink:extendedAttrs" /> + </xs:complexType> + + <xs:element name="title" type="xlink:titleEltType" abstract="true" /> + + <xs:attributeGroup name="titleAttrs"> + <xs:attribute ref="xlink:type" fixed="title" use="required" /> + <xs:attribute ref="xml:lang"> + <xs:annotation> + <xs:documentation> + xml:lang is not required, but provides much of the + motivation for title elements in addition to attributes, and so + is provided here for convenience. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:group name="titleModel"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:group> + + <xs:complexType mixed="true" name="titleEltType"> + <xs:group ref="xlink:titleModel" /> + <xs:attributeGroup ref="xlink:titleAttrs" /> + </xs:complexType> + + <xs:element name="resource" type="xlink:resourceType" + abstract="true" /> + + <xs:attributeGroup name="resourceAttrs"> + <xs:attribute ref="xlink:type" fixed="resource" use="required" /> + <xs:attribute ref="xlink:role" /> + <xs:attribute ref="xlink:title" /> + <xs:attribute ref="xlink:label" /> + </xs:attributeGroup> + + <xs:group name="resourceModel"> + <xs:sequence> + <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:group> + + <xs:complexType mixed="true" name="resourceType"> + <xs:group ref="xlink:resourceModel" /> + <xs:attributeGroup ref="xlink:resourceAttrs" /> + </xs:complexType> + + <xs:element name="locator" type="xlink:locatorType" + abstract="true" /> + + <xs:attributeGroup name="locatorAttrs"> + <xs:attribute ref="xlink:type" fixed="locator" use="required" /> + <xs:attribute ref="xlink:href" use="required" /> + <xs:attribute ref="xlink:role" /> + <xs:attribute ref="xlink:title" /> + <xs:attribute ref="xlink:label"> + <xs:annotation> + <xs:documentation> + label is not required, but locators have no particular + XLink function if they are not labeled. + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:group name="locatorModel"> + <xs:sequence> + <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:group> + + <xs:complexType name="locatorType"> + <xs:group ref="xlink:locatorModel" /> + <xs:attributeGroup ref="xlink:locatorAttrs" /> + </xs:complexType> + + <xs:element name="arc" type="xlink:arcType" abstract="true" /> + + <xs:attributeGroup name="arcAttrs"> + <xs:attribute ref="xlink:type" fixed="arc" use="required" /> + <xs:attribute ref="xlink:arcrole" /> + <xs:attribute ref="xlink:title" /> + <xs:attribute ref="xlink:show" /> + <xs:attribute ref="xlink:actuate" /> + <xs:attribute ref="xlink:from" /> + <xs:attribute ref="xlink:to"> + <xs:annotation> + <xs:documentation> + from and to have default behavior when values are missing + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:attributeGroup> + + <xs:group name="arcModel"> + <xs:sequence> + <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded" /> + </xs:sequence> + </xs:group> + + <xs:complexType name="arcType"> + <xs:group ref="xlink:arcModel" /> + <xs:attributeGroup ref="xlink:arcAttrs" /> + </xs:complexType> + +</xs:schema> diff --git a/ui/ui-pastis/src/main/resources/xsd_validation/xml.xsd b/ui/ui-pastis/src/main/resources/xsd_validation/xml.xsd new file mode 100644 index 00000000..e1dd1223 --- /dev/null +++ b/ui/ui-pastis/src/main/resources/xsd_validation/xml.xsd @@ -0,0 +1,315 @@ +<?xml version='1.0'?> +<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?> +<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" + xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en"> + + <xs:annotation> + <xs:documentation> + <div> + <h1>About the XML namespace</h1> + + <div class="bodytext"> + <p> + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + </p> + <p> + See + <a href="http://www.w3.org/XML/1998/namespace.html"> + http://www.w3.org/XML/1998/namespace.html</a> + and + <a href="http://www.w3.org/TR/REC-xml"> + http://www.w3.org/TR/REC-xml</a> + for information + about this namespace. + </p> + <p> + Note that local names in this namespace are intended to be + defined only by the World Wide Web Consortium or its subgroups. + The names currently defined in this namespace are listed below. + They should not be used with conflicting semantics by any Working + Group, specification, or document instance. + </p> + <p> + See further below in this document for more information about + <a href="#usage">how to refer to this schema document from your own + XSD schema documents</a> + and about + <a href="#nsversioning">the + namespace-versioning policy governing this schema document</a> + . + </p> + </div> + </div> + </xs:documentation> + </xs:annotation> + + <xs:attribute name="lang"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>lang (as an attribute name)</h3> + <p> + denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification.</p> + + </div> + <div> + <h4>Notes</h4> + <p> + Attempting to install the relevant ISO 2- and 3-letter + codes as the enumerated possible values is probably never + going to be a realistic possibility. + </p> + <p> + See BCP 47 at + <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt"> + http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a> + and the IANA language subtag registry at + <a href="http://www.iana.org/assignments/language-subtag-registry"> + http://www.iana.org/assignments/language-subtag-registry</a> + for further information. + </p> + <p> + The union allows for the 'un-declaration' of xml:lang with + the empty string. + </p> + </div> + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:union memberTypes="xs:language"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="" /> + </xs:restriction> + </xs:simpleType> + </xs:union> + </xs:simpleType> + </xs:attribute> + + <xs:attribute name="space"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>space (as an attribute name)</h3> + <p> + denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification.</p> + + </div> + </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:NCName"> + <xs:enumeration value="default" /> + <xs:enumeration value="preserve" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + + <xs:attribute name="base" type="xs:anyURI"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>base (as an attribute name)</h3> + <p> + denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification.</p> + + <p> + See + <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a> + for information about this attribute. + </p> + </div> + </xs:documentation> + </xs:annotation> + </xs:attribute> + + <xs:attribute name="id" type="xs:ID"> + <xs:annotation> + <xs:documentation> + <div> + + <h3>id (as an attribute name)</h3> + <p> + denotes an attribute whose value + should be interpreted as if declared to be of type ID. + This name is reserved by virtue of its definition in the + xml:id specification.</p> + + <p> + See + <a href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a> + for information about this attribute. + </p> + </div> + </xs:documentation> + </xs:annotation> + </xs:attribute> + + <xs:attributeGroup name="specialAttrs"> + <xs:attribute ref="xml:base" /> + <xs:attribute ref="xml:lang" /> + <xs:attribute ref="xml:space" /> + <xs:attribute ref="xml:id" /> + </xs:attributeGroup> + + <xs:annotation> + <xs:documentation> + <div> + + <h3>Father (in any context at all)</h3> + + <div class="bodytext"> + <p> + denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: + </p> + <blockquote> + <p> + In appreciation for his vision, leadership and + dedication the W3C XML Plenary on this 10th day of + February, 2000, reserves for Jon Bosak in perpetuity + the XML name "xml:Father". + </p> + </blockquote> + </div> + </div> + </xs:documentation> + </xs:annotation> + + <xs:annotation> + <xs:documentation> + <div xml:id="usage" id="usage"> + <h2> + <a name="usage">About this schema document</a> + </h2> + + <div class="bodytext"> + <p> + This schema defines attributes and an attribute group suitable + for use by schemas wishing to allow + <code>xml:base</code> + , + <code>xml:lang</code> + , + <code>xml:space</code> + or + <code>xml:id</code> + attributes on elements they define. + </p> + <p> + To enable this, such a schema must import this schema for + the XML namespace, e.g. as follows: + </p> + <pre> + <schema . . .> + . . . + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + </pre> + <p> + or + </p> + <pre> + <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2009/01/xml.xsd"/> + </pre> + <p> + Subsequently, qualified reference to any of the attributes or the + group defined below will have the desired effect, e.g. + </p> + <pre> + <type . . .> + . . . + <attributeGroup ref="xml:specialAttrs"/> + </pre> + <p> + will define a type which will schema-validate an instance element + with any of those attributes. + </p> + </div> + </div> + </xs:documentation> + </xs:annotation> + + <xs:annotation> + <xs:documentation> + <div id="nsversioning" xml:id="nsversioning"> + <h2> + <a name="nsversioning">Versioning policy for this schema document</a> + </h2> + <div class="bodytext"> + <p> + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + <a href="http://www.w3.org/2009/01/xml.xsd"> + http://www.w3.org/2009/01/xml.xsd</a> + . + </p> + <p> + At the date of issue it can also be found at + <a href="http://www.w3.org/2001/xml.xsd"> + http://www.w3.org/2001/xml.xsd</a> + . + </p> + <p> + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML + Schema itself, or with the XML namespace itself. In other words, + if the XML Schema or XML namespaces change, the version of this + document at + <a href="http://www.w3.org/2001/xml.xsd"> + http://www.w3.org/2001/xml.xsd + </a> + will change accordingly; the version at + <a href="http://www.w3.org/2009/01/xml.xsd"> + http://www.w3.org/2009/01/xml.xsd + </a> + will not change. + </p> + <p> + Previous dated (and unchanging) versions of this schema + document are at: + </p> + <ul> + <li> + <a href="http://www.w3.org/2009/01/xml.xsd"> + http://www.w3.org/2009/01/xml.xsd</a> + </li> + <li> + <a href="http://www.w3.org/2007/08/xml.xsd"> + http://www.w3.org/2007/08/xml.xsd</a> + </li> + <li> + <a href="http://www.w3.org/2004/10/xml.xsd"> + http://www.w3.org/2004/10/xml.xsd</a> + </li> + <li> + <a href="http://www.w3.org/2001/03/xml.xsd"> + http://www.w3.org/2001/03/xml.xsd</a> + </li> + </ul> + </div> + </div> + </xs:documentation> + </xs:annotation> + +</xs:schema> + diff --git a/ui/ui-pastis/src/main/webapp/WEB-INF/web.xml b/ui/ui-pastis/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..f63b2945 --- /dev/null +++ b/ui/ui-pastis/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://java.sun.com/xml/ns/javaee" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" + id="WebApp_ID" version="3.0"> + <display-name>PASTIS</display-name> + <welcome-file-list> + <welcome-file>index.html</welcome-file> + <welcome-file>index.htm</welcome-file> + <welcome-file>index.jsp</welcome-file> + <welcome-file>default.html</welcome-file> + <welcome-file>default.htm</welcome-file> + <welcome-file>default.jsp</welcome-file> + </welcome-file-list> +</web-app> \ No newline at end of file diff --git a/ui/ui-pastis/src/main/webapp/index.html b/ui/ui-pastis/src/main/webapp/index.html new file mode 100644 index 00000000..31f7cd80 --- /dev/null +++ b/ui/ui-pastis/src/main/webapp/index.html @@ -0,0 +1,13 @@ +<html lang="fr-FR"> +<head> +<meta charset="UTF-8"> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> +<title>CINES | PASTIS REST API</title> +<meta name="robots" content="noindex,follow"> + +</head> +<body> + +</body> +</html> \ No newline at end of file diff --git a/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/ManifestValidatorTest.java b/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/ManifestValidatorTest.java new file mode 100644 index 00000000..2256397c --- /dev/null +++ b/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/ManifestValidatorTest.java @@ -0,0 +1,117 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis; + +import com.fasterxml.jackson.databind.ObjectMapper; +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.model.jaxb.*; +import fr.gouv.vitamui.pastis.util.ManifestValidator; +import fr.gouv.vitamui.pastis.util.PastisCustomCharacterEscapeHandler; +import fr.gouv.vitamui.pastis.util.PropertiesUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.junit.runner.RunWith; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import java.io.*; + +@RunWith(SpringRunner.class) +@TestPropertySource(locations = "/application.properties") +public class ManifestValidatorTest { + + private ManifestValidator manifestValidator; + @Before + public void init(){ + manifestValidator = new ManifestValidator(); + } + + @Rule + public TemporaryFolder tempFolder = new TemporaryFolder(); + + @Test + public void testManifestOK() + throws Exception { + Assert.assertTrue(manifestValidator.checkFileRNG(PropertiesUtils.getResourceAsStream("manifests/manifestOK.xml"), + PropertiesUtils.getResourceFile("manifests/rngProfile.rng"))); + } + + @Test + public void testManifestNOK() + throws Exception { + Assert.assertFalse(manifestValidator.checkFileRNG(PropertiesUtils.getResourceAsStream("manifests/manifestNOK.xml"), + PropertiesUtils.getResourceFile("manifests/rngProfile.rng"))); + } + + /** + * Generate an RNG file from JSON profile + * Test manifest agains this generated RNG file + * @throws IOException + * @throws JAXBException + */ + @Test + public void testManifestAgainstGeneratedRNG() throws IOException, JAXBException { + InputStream jsonInputStream = getClass().getClassLoader().getResourceAsStream("manifests/jsonProfile.json"); + ObjectMapper objectMapper = new ObjectMapper(); + ElementProperties jsonMap = objectMapper.readValue(jsonInputStream, ElementProperties.class); + jsonMap.initTree(jsonMap); + + BaliseXML.buildBaliseXMLTree(jsonMap,0, null); + BaliseXML eparentRng = BaliseXML.baliseXMLStatic; + JAXBContext contextObj = JAXBContext.newInstance(AttributeXML.class, ElementXML.class, DataXML.class, + ValueXML.class, OptionalXML.class, OneOrMoreXML.class, + ZeroOrMoreXML.class, AnnotationXML.class, DocumentationXML.class, + StartXML.class, GrammarXML.class, ChoiceXml.class); + Marshaller marshallerObj = contextObj.createMarshaller(); + marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshallerObj.setProperty("com.sun.xml.bind.marshaller.CharacterEscapeHandler", + new PastisCustomCharacterEscapeHandler()); + + File rngProfile = tempFolder.newFile("generatedProfile.rng"); + OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(rngProfile), "UTF-8"); + marshallerObj.marshal(eparentRng, writer); + writer.close(); + + Assert.assertTrue(manifestValidator.checkFileRNG(PropertiesUtils.getResourceAsStream("manifests/manifestOK.xml"), rngProfile)); } +} diff --git a/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/PastisTest.java b/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/PastisTest.java new file mode 100644 index 00000000..f01ac38d --- /dev/null +++ b/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/PastisTest.java @@ -0,0 +1,117 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis; + +import com.fasterxml.jackson.databind.ObjectMapper; +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.model.factory.*; +import fr.gouv.vitamui.pastis.model.jaxb.*; +import fr.gouv.vitamui.pastis.util.PastisCustomCharacterEscapeHandler; +import fr.gouv.vitamui.pastis.util.PastisGetXmlJsonTree; +import fr.gouv.vitamui.pastis.util.PastisMarshaller; +import fr.gouv.vitamui.pastis.util.PastisSAX2Handler; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import java.io.*; +import java.net.URISyntaxException; + +@RunWith(SpringRunner.class) +@TestPropertySource(locations = "/application.properties") +public class PastisTest { + + private static final Logger LOGGER = LoggerFactory.getLogger(PastisTest.class); + + public PastisMarshaller pastisMarshaller = new PastisMarshaller(); + + @Value("${rng.base.file}") + private String rngFileName; + + @Value("${json.base.file}") + private String jsonFileName; + + @Test + public void testIfRngIsPresent() throws FileNotFoundException { + InputStream os = getClass().getClassLoader().getResourceAsStream(this.rngFileName); + } + + @Test + public void testIfRngCanBeGenerated() throws IOException, JAXBException { + // Map a json from file to ElementProperties object + InputStream jsonInputStream = getClass().getClassLoader().getResourceAsStream(jsonFileName); + ObjectMapper objectMapper = new ObjectMapper(); + ElementProperties mappedJson = objectMapper.readValue(jsonInputStream, ElementProperties.class); + mappedJson.initTree(mappedJson); + + String responseFromMarshaller = pastisMarshaller.getMarshalledObject(mappedJson); + Assert.assertFalse("RNG profile generated successfully", responseFromMarshaller.isEmpty()); + } + + @Test + public void testIfJSONCanBeGenerated() throws IOException, JAXBException, URISyntaxException,SAXException { + + PastisSAX2Handler handler = new PastisSAX2Handler(); + PastisGetXmlJsonTree getJson = new PastisGetXmlJsonTree(); + + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + xmlReader.setContentHandler(handler); + + ClassLoader loader = ClassLoader.getSystemClassLoader(); + + xmlReader.parse(loader.getResource(this.rngFileName).toURI().toString()); + String jsonTree = getJson.getJsonParsedTreeTest(handler.elementRNGRoot); + + Assert.assertNotNull("JSON profile generated successfully",jsonTree); + + } + + + +} diff --git a/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/RNGProfileValidatorTest.java b/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/RNGProfileValidatorTest.java new file mode 100644 index 00000000..37051997 --- /dev/null +++ b/ui/ui-pastis/src/test/java/fr/gouv/vitamui/pastis/RNGProfileValidatorTest.java @@ -0,0 +1,129 @@ +/* +Copyright © CINES - Centre Informatique National pour l'Enseignement Supérieur (2020) + +[dad@cines.fr] + +This software is a computer program whose purpose is to provide +a web application to create, edit, import and export archive +profiles based on the french SEDA standard +(https://redirect.francearchives.fr/seda/). + + +This software is governed by the CeCILL-C license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL-C +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL-C license and that you accept its terms. +*/ +package fr.gouv.vitamui.pastis; + +import com.fasterxml.jackson.databind.ObjectMapper; +import fr.gouv.vitamui.pastis.model.ElementProperties; +import fr.gouv.vitamui.pastis.model.jaxb.*; +import fr.gouv.vitamui.pastis.util.PastisCustomCharacterEscapeHandler; +import fr.gouv.vitamui.pastis.util.PropertiesUtils; +import fr.gouv.vitamui.pastis.util.RNGProfileValidator; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Marshaller; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStreamWriter; + +@RunWith(SpringRunner.class) +@TestPropertySource(locations = "/application.properties") +public class RNGProfileValidatorTest { + + private RNGProfileValidator rngProfileValidator; + + @Value("${json.base.file}") + private String jsonFileName; + + @Rule + public TemporaryFolder tempFolder = new TemporaryFolder(); + + @Before + public void init(){ + rngProfileValidator = new RNGProfileValidator(); + } + + @Test + /** + * Test s'assurant que la librairie de validation de fichier RNG est opérationnelle + */ + public void validateRNGProfileOK() throws Exception { + File fileProfileXsd = PropertiesUtils.getResourceFile("profiles/profile_ok.rng"); + + Assert.assertTrue(rngProfileValidator.validateRNG(fileProfileXsd,"")); + } + + @Test + /** + * Test s'assurant que la librairie de validation de fichier RNG est opérationnelle + */ + public void validateRNGProfileNOK() throws Exception { + File fileProfileXsd = PropertiesUtils.getResourceFile("profiles/profile_nok.rng"); + + Assert.assertFalse(rngProfileValidator.validateRNG(fileProfileXsd, "")); + } + + @Test + /** + * Génère un profil RNG depuis un fichier JSON et valide ce profil + */ + public void validateGeneratedRNGProfileFromJSON() throws Exception { + + InputStream jsonInputStream = getClass().getClassLoader().getResourceAsStream(jsonFileName); + ObjectMapper objectMapper = new ObjectMapper(); + ElementProperties jsonMap = objectMapper.readValue(jsonInputStream, ElementProperties.class); + jsonMap.initTree(jsonMap); + + BaliseXML.buildBaliseXMLTree(jsonMap,0, null); + BaliseXML eparentRng = BaliseXML.baliseXMLStatic; + JAXBContext contextObj = JAXBContext.newInstance(AttributeXML.class, ElementXML.class, DataXML.class, + ValueXML.class, OptionalXML.class, OneOrMoreXML.class, + ZeroOrMoreXML.class, AnnotationXML.class, DocumentationXML.class, + StartXML.class, GrammarXML.class, ChoiceXml.class); + Marshaller marshallerObj = contextObj.createMarshaller(); + marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshallerObj.setProperty("com.sun.xml.bind.marshaller.CharacterEscapeHandler", + new PastisCustomCharacterEscapeHandler()); + + File rngProfile = tempFolder.newFile(); + OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(rngProfile), "UTF-8"); + marshallerObj.marshal(eparentRng, writer); + writer.close(); + + Assert.assertTrue(rngProfileValidator.validateRNG(rngProfile,"")); + } +} diff --git a/ui/ui-pastis/src/test/resources/application.properties b/ui/ui-pastis/src/test/resources/application.properties new file mode 100644 index 00000000..8ca1fb0c --- /dev/null +++ b/ui/ui-pastis/src/test/resources/application.properties @@ -0,0 +1,4 @@ +#Pastis rest api +rng.base.file=rng/Profil_CINES_complet_2-1_v3.rng +json.base.file=rng/ProfileJson.json + diff --git a/ui/ui-pastis/src/test/resources/manifests/jsonProfile.json b/ui/ui-pastis/src/test/resources/manifests/jsonProfile.json new file mode 100644 index 00000000..e4fea2eb --- /dev/null +++ b/ui/ui-pastis/src/test/resources/manifests/jsonProfile.json @@ -0,0 +1,4541 @@ + + { + "name":"ArchiveTransfer", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":0, + "id":544, + "parentId":null, + "choices":[ + + ], + "children":[ + { + "name":"Date", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"dateTime", + "value":null, + "documentation":null, + "level":1, + "id":545, + "parentId":544, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"MessageIdentifier", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":1, + "id":546, + "parentId":544, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"ArchivalAgreement", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"IN-UPPA-0", + "documentation":null, + "level":1, + "id":547, + "parentId":544, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"CodeListVersions", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":1, + "id":548, + "parentId":544, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"DataObjectPackage", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":1, + "id":549, + "parentId":544, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroup", + "type":"element", + "cardinality":"1-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":2, + "id":550, + "parentId":549, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":3, + "id":551, + "parentId":550, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"BinaryDataObject", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":3, + "id":552, + "parentId":550, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectVersion", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"BinaryMaster par défaut", + "level":4, + "id":553, + "parentId":552, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Uri", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"anyURI", + "value":null, + "documentation":null, + "level":4, + "id":554, + "parentId":552, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"MessageDigest", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"base64Binary", + "value":null, + "documentation":null, + "level":4, + "id":555, + "parentId":552, + "choices":[ + + ], + "children":[ + { + "name":"algorithm", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":5, + "id":556, + "parentId":555, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Size", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":4, + "id":557, + "parentId":552, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"FormatIdentification", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":4, + "id":558, + "parentId":552, + "choices":[ + + ], + "children":[ + { + "name":"FormatLitteral", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":5, + "id":559, + "parentId":558, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"FormatId", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":5, + "id":560, + "parentId":558, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"FileInfo", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":4, + "id":561, + "parentId":552, + "choices":[ + + ], + "children":[ + { + "name":"Filename", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":5, + "id":562, + "parentId":561, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":4, + "id":563, + "parentId":552, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"DescriptiveMetadata", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":2, + "id":564, + "parentId":549, + "choices":[ + + ], + "children":[ + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Séance du conseil d'administration", + "level":3, + "id":565, + "parentId":564, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":4, + "id":566, + "parentId":565, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":4, + "id":567, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"File", + "documentation":null, + "level":5, + "id":568, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":5, + "id":569, + "parentId":567, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":6, + "id":570, + "parentId":569, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":5, + "id":571, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Description", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Ces documents sont archivés dans le but d'une conservation des décisions du conseil d'administration.", + "documentation":null, + "level":5, + "id":572, + "parentId":567, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"language", + "value":null, + "documentation":null, + "level":6, + "id":573, + "parentId":572, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"CustodialHistory", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":574, + "parentId":567, + "choices":[ + + ], + "children":[ + { + "name":"CustodialHistoryItem", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Ces archives sont transférées à l'initiative de la Direction des affaires juridiques directement vers le SAE externalisé pour conservation et après validation de l'archiviste de l'UPPA", + "documentation":null, + "level":6, + "id":575, + "parentId":574, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Language", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"fra", + "documentation":null, + "level":5, + "id":576, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Organe délibérant", + "documentation":null, + "level":5, + "id":577, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Conseil d'administration", + "documentation":null, + "level":5, + "id":578, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"CreatedDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"Date de tenue du CA", + "level":5, + "id":579, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"StartDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"Date de tenue du CA", + "level":5, + "id":580, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"EndDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"Date de tenue du CA", + "level":5, + "id":581, + "parentId":567, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Procurations", + "level":4, + "id":582, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":583, + "parentId":582, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":584, + "parentId":582, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":585, + "parentId":584, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":6, + "id":586, + "parentId":584, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":587, + "parentId":586, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":588, + "parentId":584, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Procuration", + "documentation":null, + "level":6, + "id":589, + "parentId":584, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":590, + "parentId":582, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":591, + "parentId":590, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Convocation-OJ", + "level":4, + "id":592, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":593, + "parentId":592, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":594, + "parentId":592, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":595, + "parentId":594, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"string", + "value":"Convocation-OJ", + "documentation":null, + "level":6, + "id":596, + "parentId":594, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":597, + "parentId":596, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":598, + "parentId":594, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Signature", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":599, + "parentId":594, + "choices":[ + + ], + "children":[ + { + "name":"Signer", + "type":"element", + "cardinality":"1-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":600, + "parentId":599, + "choices":[ + + ], + "children":[ + { + "name":"FullName", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":8, + "id":601, + "parentId":600, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"SigningTime", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"dateTime", + "value":null, + "documentation":null, + "level":8, + "id":602, + "parentId":600, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Function", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":8, + "id":603, + "parentId":600, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Validator", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":604, + "parentId":599, + "choices":[ + + ], + "children":[ + { + "name":"FullName", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":8, + "id":605, + "parentId":604, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"ValidationTime", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"dateTime", + "value":null, + "documentation":null, + "level":8, + "id":606, + "parentId":604, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Function", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":8, + "id":607, + "parentId":604, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"ReferencedObject", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":608, + "parentId":599, + "choices":[ + + ], + "children":[ + { + "name":"SignedObjectId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":609, + "parentId":608, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"SignedObjectDigest", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":610, + "parentId":608, + "choices":[ + + ], + "children":[ + { + "name":"algorithm", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":9, + "id":611, + "parentId":610, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":612, + "parentId":592, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":613, + "parentId":612, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Feuille d'émargement-élus", + "level":4, + "id":614, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":615, + "parentId":614, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":616, + "parentId":614, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":617, + "parentId":616, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"string", + "value":"Feuille d'émargement-élus", + "documentation":null, + "level":6, + "id":618, + "parentId":616, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":619, + "parentId":618, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":620, + "parentId":616, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":621, + "parentId":614, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":622, + "parentId":621, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Feuille d'émargement-membres consultatifs", + "level":4, + "id":623, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":624, + "parentId":623, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":625, + "parentId":623, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":626, + "parentId":625, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"string", + "value":"Feuille d'émargement-membres consultatifs", + "documentation":null, + "level":6, + "id":627, + "parentId":625, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":628, + "parentId":627, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":629, + "parentId":625, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":630, + "parentId":623, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":631, + "parentId":630, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Enregistrement audio", + "level":4, + "id":632, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":633, + "parentId":632, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Management", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":634, + "parentId":632, + "choices":[ + + ], + "children":[ + { + "name":"AppraisalRule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":635, + "parentId":634, + "choices":[ + + ], + "children":[ + { + "name":"Rule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"APP-00015", + "documentation":"DUA 15 ans", + "level":7, + "id":636, + "parentId":635, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"StartDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":637, + "parentId":635, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"FinalAction", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Destroy", + "documentation":null, + "level":7, + "id":638, + "parentId":635, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"AccessRule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":639, + "parentId":634, + "choices":[ + + ], + "children":[ + { + "name":"Rule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"ACC-00020", + "documentation":null, + "level":7, + "id":640, + "parentId":639, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"StartDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":641, + "parentId":639, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":642, + "parentId":632, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":643, + "parentId":642, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"string", + "value":"Enregistrement audio", + "documentation":null, + "level":6, + "id":644, + "parentId":642, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":645, + "parentId":644, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":646, + "parentId":642, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":647, + "parentId":632, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":648, + "parentId":647, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Relevé de conclusions", + "level":4, + "id":649, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":650, + "parentId":649, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":651, + "parentId":649, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":652, + "parentId":651, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"string", + "value":"Relevé de conclusions", + "documentation":null, + "level":6, + "id":653, + "parentId":651, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":654, + "parentId":653, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":655, + "parentId":651, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":656, + "parentId":649, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":657, + "parentId":656, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Accusé de réception du rectorat", + "level":4, + "id":658, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":659, + "parentId":658, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":660, + "parentId":658, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":6, + "id":661, + "parentId":660, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"string", + "value":"Accusé de réception du rectorat", + "documentation":null, + "level":6, + "id":662, + "parentId":660, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":663, + "parentId":662, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":6, + "id":664, + "parentId":660, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":665, + "parentId":658, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":6, + "id":666, + "parentId":665, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"1-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Point OJ", + "level":4, + "id":667, + "parentId":565, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":5, + "id":668, + "parentId":667, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":5, + "id":669, + "parentId":667, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"File", + "documentation":null, + "level":6, + "id":670, + "parentId":669, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"Intitulé du point à l'OJ", + "level":6, + "id":671, + "parentId":669, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":7, + "id":672, + "parentId":671, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Point OJ", + "documentation":null, + "level":6, + "id":673, + "parentId":669, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"Point n°", + "level":6, + "id":674, + "parentId":669, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"Mot-clés ordre du jour", + "level":6, + "id":675, + "parentId":669, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"PV CA antérieur", + "level":5, + "id":676, + "parentId":667, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":6, + "id":677, + "parentId":676, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":678, + "parentId":676, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":7, + "id":679, + "parentId":678, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":680, + "parentId":678, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":8, + "id":681, + "parentId":680, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":7, + "id":682, + "parentId":678, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Status", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"\"Voté\" ou \"Non voté\"", + "level":7, + "id":683, + "parentId":678, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"PV", + "documentation":null, + "level":7, + "id":684, + "parentId":678, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":685, + "parentId":676, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":686, + "parentId":685, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Extrait", + "level":5, + "id":687, + "parentId":667, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":6, + "id":688, + "parentId":687, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":689, + "parentId":687, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"File", + "documentation":null, + "level":7, + "id":690, + "parentId":689, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":691, + "parentId":689, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":8, + "id":692, + "parentId":691, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Extrait de délibération", + "documentation":null, + "level":7, + "id":693, + "parentId":689, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Extrait", + "level":6, + "id":694, + "parentId":687, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":7, + "id":695, + "parentId":694, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":696, + "parentId":694, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":8, + "id":697, + "parentId":696, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":698, + "parentId":696, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":9, + "id":699, + "parentId":698, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":8, + "id":700, + "parentId":696, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Signature", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":8, + "id":701, + "parentId":696, + "choices":[ + + ], + "children":[ + { + "name":"Signer", + "type":"element", + "cardinality":"1-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":9, + "id":702, + "parentId":701, + "choices":[ + + ], + "children":[ + { + "name":"FullName", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":10, + "id":703, + "parentId":702, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"SigningTime", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"dateTime", + "value":null, + "documentation":null, + "level":10, + "id":704, + "parentId":702, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Function", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":10, + "id":705, + "parentId":702, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Validator", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":9, + "id":706, + "parentId":701, + "choices":[ + + ], + "children":[ + { + "name":"FullName", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":10, + "id":707, + "parentId":706, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"ValidationTime", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"dateTime", + "value":null, + "documentation":null, + "level":10, + "id":708, + "parentId":706, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Function", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"string", + "value":null, + "documentation":null, + "level":10, + "id":709, + "parentId":706, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"ReferencedObject", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":9, + "id":710, + "parentId":701, + "choices":[ + + ], + "children":[ + { + "name":"SignedObjectId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":10, + "id":711, + "parentId":710, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"SignedObjectDigest", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":10, + "id":712, + "parentId":710, + "choices":[ + + ], + "children":[ + { + "name":"algorithm", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":11, + "id":713, + "parentId":712, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":714, + "parentId":694, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":715, + "parentId":714, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Pièces annexes", + "level":6, + "id":716, + "parentId":687, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":7, + "id":717, + "parentId":716, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":718, + "parentId":716, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":8, + "id":719, + "parentId":718, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":720, + "parentId":718, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":9, + "id":721, + "parentId":720, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":8, + "id":722, + "parentId":718, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Pièce annexe", + "documentation":null, + "level":8, + "id":723, + "parentId":718, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":724, + "parentId":716, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":725, + "parentId":724, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Pièces annexes", + "level":5, + "id":726, + "parentId":667, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":6, + "id":727, + "parentId":726, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":728, + "parentId":726, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":7, + "id":729, + "parentId":728, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":730, + "parentId":728, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":8, + "id":731, + "parentId":730, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":7, + "id":732, + "parentId":728, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Pièce annexe", + "documentation":null, + "level":7, + "id":733, + "parentId":728, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":734, + "parentId":726, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":735, + "parentId":734, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Convention ou Accord international", + "level":5, + "id":736, + "parentId":667, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":6, + "id":737, + "parentId":736, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Management", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":738, + "parentId":736, + "choices":[ + + ], + "children":[ + { + "name":"AppraisalRule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":739, + "parentId":738, + "choices":[ + + ], + "children":[ + { + "name":"Rule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"APP-00015", + "documentation":null, + "level":8, + "id":740, + "parentId":739, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"StartDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":741, + "parentId":739, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"FinalAction", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Destroy", + "documentation":null, + "level":8, + "id":742, + "parentId":739, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":6, + "id":743, + "parentId":736, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"File", + "documentation":null, + "level":7, + "id":744, + "parentId":743, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":745, + "parentId":743, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":8, + "id":746, + "parentId":745, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"ACI", + "documentation":null, + "level":7, + "id":747, + "parentId":743, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Convention", + "documentation":null, + "level":7, + "id":748, + "parentId":743, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":"0-1", + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":7, + "id":749, + "parentId":743, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Convention ou ACI", + "level":6, + "id":750, + "parentId":736, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":7, + "id":751, + "parentId":750, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":752, + "parentId":750, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":8, + "id":753, + "parentId":752, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":754, + "parentId":752, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":9, + "id":755, + "parentId":754, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":8, + "id":756, + "parentId":752, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":757, + "parentId":750, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":758, + "parentId":757, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"ArchiveUnit", + "type":"element", + "cardinality":"0-N", + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":"Pièces annexes", + "level":6, + "id":759, + "parentId":736, + "choices":[ + + ], + "children":[ + { + "name":"id", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"ID", + "value":null, + "documentation":null, + "level":7, + "id":760, + "parentId":759, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Content", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":761, + "parentId":759, + "choices":[ + + ], + "children":[ + { + "name":"DescriptionLevel", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Item", + "documentation":null, + "level":8, + "id":762, + "parentId":761, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Title", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":763, + "parentId":761, + "choices":[ + + ], + "children":[ + { + "name":"xml:lang", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"language", + "value":"fra", + "documentation":null, + "level":9, + "id":764, + "parentId":763, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"OriginatingSystemId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":"ID-SI-prod", + "level":8, + "id":765, + "parentId":761, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"Tag", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Pièce annexe", + "documentation":null, + "level":8, + "id":766, + "parentId":761, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"DataObjectReference", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":7, + "id":767, + "parentId":759, + "choices":[ + + ], + "children":[ + { + "name":"DataObjectGroupReferenceId", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":8, + "id":768, + "parentId":767, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "name":"ManagementMetadata", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":2, + "id":769, + "parentId":549, + "choices":[ + + ], + "children":[ + { + "name":"ArchivalProfile", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"token", + "value":null, + "documentation":null, + "level":3, + "id":770, + "parentId":769, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"OriginatingAgencyIdentifier", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"19640251500270", + "documentation":null, + "level":3, + "id":771, + "parentId":769, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"SubmissionAgencyIdentifier", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"19640251500270", + "documentation":null, + "level":3, + "id":772, + "parentId":769, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"AppraisalRule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":3, + "id":773, + "parentId":769, + "choices":[ + + ], + "children":[ + { + "name":"Rule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"APP-00015", + "documentation":"DUA 15 ans", + "level":4, + "id":774, + "parentId":773, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"StartDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"date", + "value":null, + "documentation":null, + "level":4, + "id":775, + "parentId":773, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"FinalAction", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"Keep", + "documentation":null, + "level":4, + "id":776, + "parentId":773, + "choices":[ + + ], + "children":[ + + ] + } + ] + }, + { + "name":"AccessRule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":3, + "id":777, + "parentId":769, + "choices":[ + + ], + "children":[ + { + "name":"Rule", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"ACC-00001", + "documentation":"Librement communicable", + "level":4, + "id":778, + "parentId":777, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"StartDate", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"data", + "dataType":"date", + "value":null, + "documentation":null, + "level":4, + "id":779, + "parentId":777, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + } + ] + }, + { + "name":"ArchivalAgency", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":1, + "id":780, + "parentId":544, + "choices":[ + + ], + "children":[ + { + "name":"Identifier", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"19341594000017", + "documentation":null, + "level":2, + "id":781, + "parentId":780, + "choices":[ + + ], + "children":[ + { + "name":"schemeName", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"SIRET", + "documentation":null, + "level":3, + "id":782, + "parentId":781, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"schemeAgencyName", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"INSEE", + "documentation":null, + "level":3, + "id":783, + "parentId":781, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + }, + { + "name":"TransferringAgency", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":null, + "dataType":null, + "value":null, + "documentation":null, + "level":1, + "id":784, + "parentId":544, + "choices":[ + + ], + "children":[ + { + "name":"Identifier", + "type":"element", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"19640251500270", + "documentation":null, + "level":2, + "id":785, + "parentId":784, + "choices":[ + + ], + "children":[ + { + "name":"schemeName", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"SIRET", + "documentation":null, + "level":3, + "id":786, + "parentId":785, + "choices":[ + + ], + "children":[ + + ] + }, + { + "name":"schemeAgencyName", + "type":"attribute", + "cardinality":null, + "groupOrChoice":null, + "valueOrData":"value", + "dataType":"token", + "value":"INSEE", + "documentation":null, + "level":3, + "id":787, + "parentId":785, + "choices":[ + + ], + "children":[ + + ] + } + ] + } + ] + } + ] + } diff --git a/ui/ui-pastis/src/test/resources/manifests/manifestNOK.xml b/ui/ui-pastis/src/test/resources/manifests/manifestNOK.xml new file mode 100644 index 00000000..ee4dec05 --- /dev/null +++ b/ui/ui-pastis/src/test/resources/manifests/manifestNOK.xml @@ -0,0 +1,1050 @@ +<?xml version='1.0' encoding='UTF-8'?><ArchiveTransfer xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:pr="info:lc/xmlns/premis-v2" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Date>2020-06-16T16:04:33.425</Date> + <MessageIdentifier>SIP SEDA UPPA de test</MessageIdentifier> + <ArchivalAgreement>IN-UPPA-0</ArchivalAgreement> + <CodeListVersions></CodeListVersions> + <DataObjectPackage> + <DataObjectGroup id="ID100"> + <BinaryDataObject id="ID101"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID101.pdf</Uri> + <MessageDigest algorithm="SHA-512">e188a8b598dea9064eae4dfe8d3f98ca002feb259ea21ff8b80c7f49d37a2433eb754f0c0d901f29b05b94463fe0553a8d946be90adcebd7008a550157f56f50</MessageDigest> + <Size>210110</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Relevé de conclusions.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID11"> + <BinaryDataObject id="ID12"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID12.pdf</Uri> + <MessageDigest algorithm="SHA-512">7d316982a4cb7416a2ed3d48735f9a0593b33b6f95d04d6f12682e0a5d12085effb2df035862dd70d03b1840edbb8e4bddeeedc68013fdf3068db0489563eed1</MessageDigest> + <Size>205838</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Accusé de réception du rectorat.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID14"> + <BinaryDataObject id="ID15"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID15.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Convocation-OJ.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID17"> + <BinaryDataObject id="ID18"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID18.mp3</Uri> + <MessageDigest algorithm="SHA-512">71ff1326d14b7581584e92f7f8b2e195201a214af67fec16854e17f4301a12dbbbc6dc1984bd9bf0dd65736a3b32e59b4d795c331fe766468394f3061950da0e</MessageDigest> + <Size>418442</Size> + <FormatIdentification> + <FormatLitteral>MPEG 1/2 Audio Layer 3</FormatLitteral> + <FormatId>fmt/134</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Enregistrement audio.mp3</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID20"> + <BinaryDataObject id="ID21"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID21.pdf</Uri> + <MessageDigest algorithm="SHA-512">41fcbf12eaec21ba65eeec5214e4376da9890a90e275e6b9dac7d8a9606892cd74ed026d0351ad4e8a2b7d32ce28ea1fd6c1066128e8ac4d86a9709378ffcf08</MessageDigest> + <Size>209935</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Feuille d'émargt- consultatifs.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID23"> + <BinaryDataObject id="ID24"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID24.pdf</Uri> + <MessageDigest algorithm="SHA-512">0718b77db6ac2b1d21729d6d3317aab0c7f70e4f8af3acfbabe1696032b5d89c70ced454369a5156c7094bfd74f83986fa1a0a27fd0538e4d9546a7e8df76442</MessageDigest> + <Size>206456</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Feuille d'émargt-élus.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID26"> + <BinaryDataObject id="ID27"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID27.pdf</Uri> + <MessageDigest algorithm="SHA-512">6cffd624d2d9dba4b66eb8c50d43c5791b8cccdd92675255ba507602323e1cee22d6e467140b2af42ff7d3499413e54547a8b6ad0498d7b2e8e67bda15fc3037</MessageDigest> + <Size>205683</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>PV CA antérieur01-10-2019.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID29"> + <BinaryDataObject id="ID30"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID30.pdf</Uri> + <MessageDigest algorithm="SHA-512">c5e1508e873734406f706a60cf5aec612c50845324655d650b4c16a3de1a2299b2a689028e0967a946369c02076cb82518368abfad628ee1d1217e4cad0fdc7b</MessageDigest> + <Size>203506</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>PV CA antérieur01-11-2019.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID33"> + <BinaryDataObject id="ID34"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID34.pdf</Uri> + <MessageDigest algorithm="SHA-512">1c326663ada662ad1a8ade439e6dde0ff02933e2640373aaec1817c5a6e378d4c57e7ab83e6c99469f0101842e78cfa63082eceaa558eafd1c8e85fd343defce</MessageDigest> + <Size>200492</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe PtOJ1 Infos.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID38"> + <BinaryDataObject id="ID39"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID39.pdf</Uri> + <MessageDigest algorithm="SHA-512">da4139be6e1fd9ac2649fc55a05dea421cba951f5404bb691c2af32085862bfdf0182a1121e77b80e8cf136fd19ed5bed394970fca22de2791e8da27dab25bfb</MessageDigest> + <Size>852122</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ConventionFictif.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID41"> + <BinaryDataObject id="ID42"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID42.pdf</Uri> + <MessageDigest algorithm="SHA-512">f3904a6484e1bbf392b68533b53e74464c6da839b76f7bd074dcee857a53e9724053e093102073450ff2de2b875bf2c8c1bc0478b7585f4f4344ba08c90e7507</MessageDigest> + <Size>1325131</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.7 - Portable Document Format</FormatLitteral> + <FormatId>fmt/276</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>PAPtOJ2PRJ3-PlanClasst SAE.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID44"> + <BinaryDataObject id="ID45"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID45.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélibPtOJ2SignPlanActions.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID49"> + <BinaryDataObject id="ID50"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID50.pdf</Uri> + <MessageDigest algorithm="SHA-512">3744809ee7b304f78ed3595473ec4fefc666b3bed2e3512d347c18a7afc83573b97ed3c40a2080d832496b386d61e8a2d3be6c1f9eefbd8ccb43f3029dd48307</MessageDigest> + <Size>198204</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ACI.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID52"> + <BinaryDataObject id="ID53"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID53.pdf</Uri> + <MessageDigest algorithm="SHA-512">c58cf5388cae5dd4bb55ac76a541f5f13683524e1c337836b5c75217d186f70fd351680499f344b82ef5b0c739da398ee8094f387c4bc3a425571a6e597349bf</MessageDigest> + <Size>306906</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 1 ACI.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID55"> + <BinaryDataObject id="ID56"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID56.pdf</Uri> + <MessageDigest algorithm="SHA-512">dc9cefa1e03764eccad4b7b3ba5ef6b4f977d373df9febdafd309793c91b6a71f74ed1e2567f6be0821f34dd8b2e0a266d0377e740ba11ebe6977d21381a9e00</MessageDigest> + <Size>307037</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 2 ACI.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID58"> + <BinaryDataObject id="ID59"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID59.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélibSignPtOJ3.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID62"> + <BinaryDataObject id="ID63"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID63.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélibSignPtOJ4.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID65"> + <BinaryDataObject id="ID66"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID66.pdf</Uri> + <MessageDigest algorithm="SHA-512">919b5cea234c11df0aaf6cc00eed4eca204a29900250c9474af7118b03d96f29133bdd761bb29ddc3e56ef81fc4e662b5fb72a408693daef2e595adfa42df2ba</MessageDigest> + <Size>210276</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID68"> + <BinaryDataObject id="ID69"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID69.pdf</Uri> + <MessageDigest algorithm="SHA-512">5358f033013102ac7272240a780cc77f9efba5eda6d943c036aae053ac46b443363bf5c5aae62bdee287bde9980b3fd74197726546fe098e29b0a008457106fa</MessageDigest> + <Size>210437</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID72"> + <BinaryDataObject id="ID73"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID73.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib1SignPtOJ5.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID76"> + <BinaryDataObject id="ID77"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID77.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib1SignPtOJ6College1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID79"> + <BinaryDataObject id="ID80"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID80.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib2SignPtOJ6College2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID82"> + <BinaryDataObject id="ID83"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID83.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib3SignPtOJ6College3.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID85"> + <BinaryDataObject id="ID86"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID86.pdf</Uri> + <MessageDigest algorithm="SHA-512">5f6d6348235a7b736dd2430a7369bae7c9371508e9c5c276cc9fb719ac2de46110dc84cf5f5fc3ee295fc7c0babfc3174e8303ad4c1ce4e7184682e51d6a67f5</MessageDigest> + <Size>207968</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 1 Collège 1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID88"> + <BinaryDataObject id="ID89"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID89.pdf</Uri> + <MessageDigest algorithm="SHA-512">fcf3976b6ee893a1e5bc5215fe3a1873639e2df7adee675258713181403eccf7763becd0ecb668e29ba72988abf12ab86bb1761ecf22003511559eef5eb33376</MessageDigest> + <Size>207968</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 2 Collège 2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID91"> + <BinaryDataObject id="ID92"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID92.pdf</Uri> + <MessageDigest algorithm="SHA-512">98308790accb1e0285f4e9e13fb10af8f5075962e99dd482a911ccb398daea72068a81549c044404480e15bb9aa59cda42178867870f6c20a9308cfc048cf738</MessageDigest> + <Size>210121</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 3 Collège 3.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID94"> + <BinaryDataObject id="ID95"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID95.pdf</Uri> + <MessageDigest algorithm="SHA-512">f71e44691d70ae7e3961920374cf62fea43e9bcf7976acf580fe8dedc60e3f8cc4471fbbbcc689307dbc451ec142d902a180dc420e1a6ed2583590626a8cd547</MessageDigest> + <Size>205939</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.7 - Portable Document Format</FormatLitteral> + <FormatId>fmt/276</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Procuration1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID97"> + <BinaryDataObject id="ID98"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID98.pdf</Uri> + <MessageDigest algorithm="SHA-512">56f84353b4b66caed44da4ef5264a337c4d267426b928257b9f3f2a67e1ec714782cddfdda73b0f87fc048ccd4f883c90711534085fd95767f181090010c6800</MessageDigest> + <Size>198621</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Procuration2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + + <DescriptiveMetadata> + + <ArchiveUnit id="ID10"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Séance CA du 02-12-2019</Title> + <OriginatingSystemId>ID-SI-Prod</OriginatingSystemId> + <Description xml:lang="fra">Ces documents sont archivés dans le but d'une conservation des décisions du conseil d'administration.</Description> + <CustodialHistory> + <CustodialHistoryItem>Ces archives sont transférées à l'initiative de la Direction des affaires juridiques directement vers le SAE externalisé pour conservation et après validation de l'archiviste de l'UPPA</CustodialHistoryItem> + </CustodialHistory> + <Language>fra</Language> + <Tag>Organe délibérant</Tag> + <Tag>Conseil d'administration</Tag> + <CreatedDate>2019-12-02</CreatedDate> + <!--Date de tenue du CA--> + <StartDate>2019-12-02</StartDate> <!--Date de tenue du CA--> + <EndDate>2019-12-02</EndDate> <!--Date de tenue du CA--> + </Content> + + <ArchiveUnit id="ID96"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Procuration1</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Procuration</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID94</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID99"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Procuration2</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Procuration</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID97</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID16"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Convocation-OJ</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID15</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID14</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID25"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Feuille d'émargement-élus</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID23</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID22"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Feuille d'émargement-membres consultatifs</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID20</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID19"> + <Management> + <AppraisalRule> + <Rule>APP-00015</Rule> + <StartDate>2019-12-31</StartDate> + <FinalAction>Destroy</FinalAction> + </AppraisalRule> + <AccessRule> + <Rule>ACC-00020</Rule> + <StartDate>2019-12-31</StartDate> + </AccessRule> + </Management> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Enregistrement audio</Title> + <OriginatingSystemId>ID-SI-Prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID17</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID102"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Relevé de conclusions</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID100</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID13"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Accusé de réception du rectorat</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID11</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID32"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé1Infos</Title> + <Tag>Point OJ</Tag> + <Tag>Information;E2S</Tag> + <Tag>Point n°1</Tag> + </Content> + + <ArchiveUnit id="ID31"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">PV CA antérieur01-11-2019</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Status>Voté</Status> + <Tag>PV</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID29</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID28"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">PV CA antérieur01-10-2019</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Status>Voté</Status> + <Tag>PV</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID26</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID35"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe PtOJ1 Infos</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID33</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + </ArchiveUnit> + <ArchiveUnit id="ID36"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé2CVTato</Title> + <Tag>Point OJ</Tag> + <Tag>Convention;Tato</Tag> <!-- A quoi correspond cette valeur ? Doit-elle apparaître ainsi ? --> + <Tag>Point n° 2</Tag> + </Content> + <ArchiveUnit id="ID103"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID46"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélibPtOJ2SignPlanActions</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID45</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID44</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID37"> + <Management> + <AppraisalRule> + <Rule>APP-00015</Rule> + <StartDate>2019-12-31</StartDate> + <FinalAction>Destroy</FinalAction> + </AppraisalRule> + </Management> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Convention</Title> + <Tag>Convention</Tag> + <Tag>Tato</Tag> + </Content> + <ArchiveUnit id="ID40"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ConventionFictif</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID38</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID43"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">PAPtOJ2PRJ3-PlanClasst SAE</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID41</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID47"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé3ACITet</Title> + <Tag>Point OJ</Tag> + <Tag>ACI;Tet</Tag> + <Tag>Point n°3</Tag> + </Content> + <ArchiveUnit id="ID106"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID60"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélibSignPtOJ3</Title> + <OriginatingSystemId>ID-Si-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID59</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID58</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID48"> + <Management> + <AppraisalRule> + <Rule>APP-00015</Rule> + <StartDate>2019-12-31</StartDate> + <FinalAction>Destroy</FinalAction> + </AppraisalRule> + </Management> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Accord international</Title> + <Tag>ACI</Tag> + <Tag>Tet</Tag> + </Content> + <ArchiveUnit id="ID51"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ACI</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID49</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID54"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 1 ACI</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID52</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID57"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 2 ACI</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID55</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID61"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé4SsCVScACI</Title> + <Tag>Point OJ</Tag> + <Tag>Point n°4</Tag> + </Content> + <ArchiveUnit id="ID104"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID64"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélibSignPtOJ4</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID63</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID62</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID67"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 1</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID65</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID70"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 2</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID68</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID71"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé5PVanterieur</Title> + <Tag>Point OJ</Tag> + <Tag>Point n°5</Tag> + <Tag>PV</Tag> + </Content> + <ArchiveUnit id="ID105"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID74"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib1SignPtOJ5</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID73</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID72</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID75"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé6StatutsColleges</Title> + <Tag>Point OJ</Tag> + <Tag>Point n°6</Tag> + <Tag>Statut;Collège</Tag> + </Content> + <ArchiveUnit id="ID107"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait Collège 1</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID78"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib1SignPtOJ6College1</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID77</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID76</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID87"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 1 Collège 1.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID85</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID108"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait Collège 2</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID81"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib2SignPtOJ6College2</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID80</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID79</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID90"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 2 Collège 2.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID88</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID109"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait Collège 3</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID84"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib3SignPtOJ6College3.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID83</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID82</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID93"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 3 Collège 3.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID91</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + </DescriptiveMetadata> + <ManagementMetadata> + <OriginatingAgencyIdentifier>19640251500270</OriginatingAgencyIdentifier> + <SubmissionAgencyIdentifier>19640251500270</SubmissionAgencyIdentifier> + <AppraisalRule> + <Rule>APP-00015</Rule> <!-- DUA 15 ans --> + <StartDate>2019-12-31</StartDate> + <FinalAction>Keep</FinalAction> + </AppraisalRule> + <AccessRule> + <Rule>ACC-00001</Rule> <!-- Librement communicable --> + <StartDate>2019-12-31</StartDate> + </AccessRule> + </ManagementMetadata> + </DataObjectPackage> + <ArchivalAgency> + <Identifier schemeName="SIRET" schemeAgencyName="INSEE">19341594000017</Identifier> + </ArchivalAgency> + <TransferringAgency> + <Identifier schemeName="SIRET" schemeAgencyName="INSEE">19640251500270</Identifier> + </TransferringAgency> +</ArchiveTransfer> \ No newline at end of file diff --git a/ui/ui-pastis/src/test/resources/manifests/manifestOK.xml b/ui/ui-pastis/src/test/resources/manifests/manifestOK.xml new file mode 100644 index 00000000..bffa6dbc --- /dev/null +++ b/ui/ui-pastis/src/test/resources/manifests/manifestOK.xml @@ -0,0 +1,1052 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ArchiveTransfer xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:pr='info:lc/xmlns/premis-v2' xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Date>2020-06-16T16:04:33.425</Date> + <MessageIdentifier>SIP SEDA UPPA de test</MessageIdentifier> + <ArchivalAgreement>IN-UPPA-0</ArchivalAgreement> + <CodeListVersions></CodeListVersions> + <DataObjectPackage> + <DataObjectGroup id="ID100"> + <BinaryDataObject id="ID101"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID101.pdf</Uri> + <MessageDigest algorithm="SHA-512">e188a8b598dea9064eae4dfe8d3f98ca002feb259ea21ff8b80c7f49d37a2433eb754f0c0d901f29b05b94463fe0553a8d946be90adcebd7008a550157f56f50</MessageDigest> + <Size>210110</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Relevé de conclusions.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID11"> + <BinaryDataObject id="ID12"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID12.pdf</Uri> + <MessageDigest algorithm="SHA-512">7d316982a4cb7416a2ed3d48735f9a0593b33b6f95d04d6f12682e0a5d12085effb2df035862dd70d03b1840edbb8e4bddeeedc68013fdf3068db0489563eed1</MessageDigest> + <Size>205838</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Accusé de réception du rectorat.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID14"> + <BinaryDataObject id="ID15"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID15.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Convocation-OJ.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID17"> + <BinaryDataObject id="ID18"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID18.mp3</Uri> + <MessageDigest algorithm="SHA-512">71ff1326d14b7581584e92f7f8b2e195201a214af67fec16854e17f4301a12dbbbc6dc1984bd9bf0dd65736a3b32e59b4d795c331fe766468394f3061950da0e</MessageDigest> + <Size>418442</Size> + <FormatIdentification> + <FormatLitteral>MPEG 1/2 Audio Layer 3</FormatLitteral> + <FormatId>fmt/134</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Enregistrement audio.mp3</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID20"> + <BinaryDataObject id="ID21"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID21.pdf</Uri> + <MessageDigest algorithm="SHA-512">41fcbf12eaec21ba65eeec5214e4376da9890a90e275e6b9dac7d8a9606892cd74ed026d0351ad4e8a2b7d32ce28ea1fd6c1066128e8ac4d86a9709378ffcf08</MessageDigest> + <Size>209935</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Feuille d'émargt- consultatifs.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID23"> + <BinaryDataObject id="ID24"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID24.pdf</Uri> + <MessageDigest algorithm="SHA-512">0718b77db6ac2b1d21729d6d3317aab0c7f70e4f8af3acfbabe1696032b5d89c70ced454369a5156c7094bfd74f83986fa1a0a27fd0538e4d9546a7e8df76442</MessageDigest> + <Size>206456</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Feuille d'émargt-élus.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID26"> + <BinaryDataObject id="ID27"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID27.pdf</Uri> + <MessageDigest algorithm="SHA-512">6cffd624d2d9dba4b66eb8c50d43c5791b8cccdd92675255ba507602323e1cee22d6e467140b2af42ff7d3499413e54547a8b6ad0498d7b2e8e67bda15fc3037</MessageDigest> + <Size>205683</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>PV CA antérieur01-10-2019.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID29"> + <BinaryDataObject id="ID30"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID30.pdf</Uri> + <MessageDigest algorithm="SHA-512">c5e1508e873734406f706a60cf5aec612c50845324655d650b4c16a3de1a2299b2a689028e0967a946369c02076cb82518368abfad628ee1d1217e4cad0fdc7b</MessageDigest> + <Size>203506</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>PV CA antérieur01-11-2019.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID33"> + <BinaryDataObject id="ID34"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID34.pdf</Uri> + <MessageDigest algorithm="SHA-512">1c326663ada662ad1a8ade439e6dde0ff02933e2640373aaec1817c5a6e378d4c57e7ab83e6c99469f0101842e78cfa63082eceaa558eafd1c8e85fd343defce</MessageDigest> + <Size>200492</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe PtOJ1 Infos.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID38"> + <BinaryDataObject id="ID39"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID39.pdf</Uri> + <MessageDigest algorithm="SHA-512">da4139be6e1fd9ac2649fc55a05dea421cba951f5404bb691c2af32085862bfdf0182a1121e77b80e8cf136fd19ed5bed394970fca22de2791e8da27dab25bfb</MessageDigest> + <Size>852122</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ConventionFictif.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID41"> + <BinaryDataObject id="ID42"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID42.pdf</Uri> + <MessageDigest algorithm="SHA-512">f3904a6484e1bbf392b68533b53e74464c6da839b76f7bd074dcee857a53e9724053e093102073450ff2de2b875bf2c8c1bc0478b7585f4f4344ba08c90e7507</MessageDigest> + <Size>1325131</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.7 - Portable Document Format</FormatLitteral> + <FormatId>fmt/276</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>PAPtOJ2PRJ3-PlanClasst SAE.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID44"> + <BinaryDataObject id="ID45"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID45.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélibPtOJ2SignPlanActions.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID49"> + <BinaryDataObject id="ID50"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID50.pdf</Uri> + <MessageDigest algorithm="SHA-512">3744809ee7b304f78ed3595473ec4fefc666b3bed2e3512d347c18a7afc83573b97ed3c40a2080d832496b386d61e8a2d3be6c1f9eefbd8ccb43f3029dd48307</MessageDigest> + <Size>198204</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ACI.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID52"> + <BinaryDataObject id="ID53"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID53.pdf</Uri> + <MessageDigest algorithm="SHA-512">c58cf5388cae5dd4bb55ac76a541f5f13683524e1c337836b5c75217d186f70fd351680499f344b82ef5b0c739da398ee8094f387c4bc3a425571a6e597349bf</MessageDigest> + <Size>306906</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 1 ACI.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID55"> + <BinaryDataObject id="ID56"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID56.pdf</Uri> + <MessageDigest algorithm="SHA-512">dc9cefa1e03764eccad4b7b3ba5ef6b4f977d373df9febdafd309793c91b6a71f74ed1e2567f6be0821f34dd8b2e0a266d0377e740ba11ebe6977d21381a9e00</MessageDigest> + <Size>307037</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 2 ACI.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID58"> + <BinaryDataObject id="ID59"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID59.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélibSignPtOJ3.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID62"> + <BinaryDataObject id="ID63"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID63.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélibSignPtOJ4.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID65"> + <BinaryDataObject id="ID66"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID66.pdf</Uri> + <MessageDigest algorithm="SHA-512">919b5cea234c11df0aaf6cc00eed4eca204a29900250c9474af7118b03d96f29133bdd761bb29ddc3e56ef81fc4e662b5fb72a408693daef2e595adfa42df2ba</MessageDigest> + <Size>210276</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID68"> + <BinaryDataObject id="ID69"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID69.pdf</Uri> + <MessageDigest algorithm="SHA-512">5358f033013102ac7272240a780cc77f9efba5eda6d943c036aae053ac46b443363bf5c5aae62bdee287bde9980b3fd74197726546fe098e29b0a008457106fa</MessageDigest> + <Size>210437</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID72"> + <BinaryDataObject id="ID73"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID73.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib1SignPtOJ5.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID76"> + <BinaryDataObject id="ID77"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID77.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib1SignPtOJ6College1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID79"> + <BinaryDataObject id="ID80"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID80.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib2SignPtOJ6College2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID82"> + <BinaryDataObject id="ID83"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID83.pdf</Uri> + <MessageDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</MessageDigest> + <Size>501988</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.6 - Portable Document Format</FormatLitteral> + <FormatId>fmt/20</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>ExtraitDélib3SignPtOJ6College3.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID85"> + <BinaryDataObject id="ID86"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID86.pdf</Uri> + <MessageDigest algorithm="SHA-512">5f6d6348235a7b736dd2430a7369bae7c9371508e9c5c276cc9fb719ac2de46110dc84cf5f5fc3ee295fc7c0babfc3174e8303ad4c1ce4e7184682e51d6a67f5</MessageDigest> + <Size>207968</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 1 Collège 1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID88"> + <BinaryDataObject id="ID89"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID89.pdf</Uri> + <MessageDigest algorithm="SHA-512">fcf3976b6ee893a1e5bc5215fe3a1873639e2df7adee675258713181403eccf7763becd0ecb668e29ba72988abf12ab86bb1761ecf22003511559eef5eb33376</MessageDigest> + <Size>207968</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 2 Collège 2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID91"> + <BinaryDataObject id="ID92"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID92.pdf</Uri> + <MessageDigest algorithm="SHA-512">98308790accb1e0285f4e9e13fb10af8f5075962e99dd482a911ccb398daea72068a81549c044404480e15bb9aa59cda42178867870f6c20a9308cfc048cf738</MessageDigest> + <Size>210121</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Pièce annexe 3 Collège 3.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID94"> + <BinaryDataObject id="ID95"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID95.pdf</Uri> + <MessageDigest algorithm="SHA-512">f71e44691d70ae7e3961920374cf62fea43e9bcf7976acf580fe8dedc60e3f8cc4471fbbbcc689307dbc451ec142d902a180dc420e1a6ed2583590626a8cd547</MessageDigest> + <Size>205939</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF 1.7 - Portable Document Format</FormatLitteral> + <FormatId>fmt/276</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Procuration1.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + <DataObjectGroup id="ID97"> + <BinaryDataObject id="ID98"> + <DataObjectVersion>BinaryMaster_1</DataObjectVersion> + <Uri>content/ID98.pdf</Uri> + <MessageDigest algorithm="SHA-512">56f84353b4b66caed44da4ef5264a337c4d267426b928257b9f3f2a67e1ec714782cddfdda73b0f87fc048ccd4f883c90711534085fd95767f181090010c6800</MessageDigest> + <Size>198621</Size> + <FormatIdentification> + <FormatLitteral>Acrobat PDF/A - Portable Document Format</FormatLitteral> + <FormatId>fmt/95</FormatId> + </FormatIdentification> + <FileInfo> + <Filename>Procuration2.pdf</Filename> + </FileInfo> + </BinaryDataObject> + </DataObjectGroup> + + <DescriptiveMetadata> + + <ArchiveUnit id="ID10"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Séance CA du 02-12-2019</Title> + <OriginatingSystemId>ID-SI-Prod</OriginatingSystemId> + <Description xml:lang="fra">Ces documents sont archivés dans le but d'une conservation des décisions du conseil d'administration.</Description> + <CustodialHistory> + <CustodialHistoryItem>Ces archives sont transférées à l'initiative de la Direction des affaires juridiques directement vers le SAE externalisé pour conservation et après validation de l'archiviste de l'UPPA</CustodialHistoryItem> + </CustodialHistory> + <Language>fra</Language> + <Tag>Organe délibérant</Tag> + <Tag>Conseil d'administration</Tag> + <CreatedDate>2019-12-02</CreatedDate> + <!--Date de tenue du CA--> + <StartDate>2019-12-02</StartDate> <!--Date de tenue du CA--> + <EndDate>2019-12-02</EndDate> <!--Date de tenue du CA--> + </Content> + + <ArchiveUnit id="ID96"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Procuration1</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Procuration</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID94</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID99"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Procuration2</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Procuration</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID97</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID16"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Convocation-OJ</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID15</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID14</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID25"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Feuille d'émargement-élus</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID23</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID22"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Feuille d'émargement-membres consultatifs</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID20</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID19"> + <Management> + <AppraisalRule> + <Rule>APP-00015</Rule> + <StartDate>2019-12-31</StartDate> + <FinalAction>Destroy</FinalAction> + </AppraisalRule> + <AccessRule> + <Rule>ACC-00020</Rule> + <StartDate>2019-12-31</StartDate> + </AccessRule> + </Management> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Enregistrement audio</Title> + <OriginatingSystemId>ID-SI-Prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID17</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID102"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Relevé de conclusions</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID100</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID13"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Accusé de réception du rectorat</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID11</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + <ArchiveUnit id="ID32"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé1Infos</Title> + <Tag>Point OJ</Tag> + <Tag>Information;E2S</Tag> + <Tag>Point n°1</Tag> + </Content> + + <ArchiveUnit id="ID31"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">PV CA antérieur01-11-2019</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Status>Voté</Status> + <Tag>PV</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID29</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID28"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">PV CA antérieur01-10-2019</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Status>Voté</Status> + <Tag>PV</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID26</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID35"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe PtOJ1 Infos</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID33</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + + </ArchiveUnit> + <ArchiveUnit id="ID36"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé2CVTato</Title> + <Tag>Point OJ</Tag> + <Tag>Convention;Tato</Tag> <!-- A quoi correspond cette valeur ? Doit-elle apparaître ainsi ? --> + <Tag>Point n° 2</Tag> + </Content> + <ArchiveUnit id="ID103"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID46"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélibPtOJ2SignPlanActions</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID45</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID44</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID37"> + <Management> + <AppraisalRule> + <Rule>APP-00015</Rule> + <StartDate>2019-12-31</StartDate> + <FinalAction>Destroy</FinalAction> + </AppraisalRule> + </Management> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Convention</Title> + <Tag>Convention</Tag> + <Tag>Tato</Tag> + </Content> + <ArchiveUnit id="ID40"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ConventionFictif</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID38</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID43"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">PAPtOJ2PRJ3-PlanClasst SAE</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID41</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID47"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé3ACITet</Title> + <Tag>Point OJ</Tag> + <Tag>ACI;Tet</Tag> + <Tag>Point n°3</Tag> + </Content> + <ArchiveUnit id="ID106"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID60"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélibSignPtOJ3</Title> + <OriginatingSystemId>ID-Si-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID59</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID58</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID48"> + <Management> + <AppraisalRule> + <Rule>APP-00015</Rule> + <StartDate>2019-12-31</StartDate> + <FinalAction>Destroy</FinalAction> + </AppraisalRule> + </Management> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Accord international</Title> + <Tag>ACI</Tag> + <Tag>Tet</Tag> + </Content> + <ArchiveUnit id="ID51"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ACI</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID49</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID54"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 1 ACI</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID52</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID57"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 2 ACI</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID55</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID61"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé4SsCVScACI</Title> + <Tag>Point OJ</Tag> + <Tag>Point n°4</Tag> + </Content> + <ArchiveUnit id="ID104"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID64"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélibSignPtOJ4</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID63</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID62</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID67"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 1</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID65</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID70"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 2</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID68</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID71"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé5PVanterieur</Title> + <Tag>Point OJ</Tag> + <Tag>Point n°5</Tag> + <Tag>PV</Tag> + </Content> + <ArchiveUnit id="ID105"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID74"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib1SignPtOJ5</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID73</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID72</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + <ArchiveUnit id="ID75"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">PointsOJLibellé6StatutsColleges</Title> + <Tag>Point OJ</Tag> + <Tag>Point n°6</Tag> + <Tag>Statut;Collège</Tag> + </Content> + <ArchiveUnit id="ID107"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait Collège 1</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID78"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib1SignPtOJ6College1</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID77</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID76</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID87"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 1 Collège 1.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID85</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID108"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait Collège 2</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID81"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib2SignPtOJ6College2</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID80</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID79</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID90"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 2 Collège 2.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID88</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + <ArchiveUnit id="ID109"> + <Content> + <DescriptionLevel>File</DescriptionLevel> + <Title xml:lang="fra">Extrait Collège 3</Title> + <Tag>Extrait de délibération</Tag> + </Content> + <ArchiveUnit id="ID84"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">ExtraitDélib3SignPtOJ6College3.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Signature> + <Signer> + <FullName>JEAN-MICHEL BAUDEQUIN</FullName> + <SigningTime>2020-02-24T12:25:58</SigningTime> + <Function>Fonction de la personne ou de l'entité</Function> + </Signer> + <Validator> + <FullName>NOM Prénom</FullName> <!-- Le validateur de la signature est-il une personne ou une institution ? --> + <ValidationTime>2019-12-26T10:00:00</ValidationTime> + <Function>Fonction de l'entité</Function> + </Validator> + <ReferencedObject> + <SignedObjectId>ID83</SignedObjectId> + <SignedObjectDigest algorithm="SHA-512">6e7a10c3b8f4d37d9e23dc63adbdd5f71ab74ae31df16d0552527f58e8000272640e521a19a3c89cf9509bc8fefa1a37b8bf52ba4e20df733cb2a88315f8aef7</SignedObjectDigest> + </ReferencedObject> + </Signature> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID82</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + <ArchiveUnit id="ID93"> + <Content> + <DescriptionLevel>Item</DescriptionLevel> + <Title xml:lang="fra">Pièce annexe 3 Collège 3.pdf</Title> + <OriginatingSystemId>ID-SI-prod</OriginatingSystemId> + <Tag>Pièce annexe</Tag> + </Content> + <DataObjectReference> + <DataObjectGroupReferenceId>ID91</DataObjectGroupReferenceId> + </DataObjectReference> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + </ArchiveUnit> + + </DescriptiveMetadata> + <ManagementMetadata> + <ArchivalProfile>PR-000001</ArchivalProfile> + <OriginatingAgencyIdentifier>19640251500270</OriginatingAgencyIdentifier> + <SubmissionAgencyIdentifier>19640251500270</SubmissionAgencyIdentifier> + <AppraisalRule> + <Rule>APP-00015</Rule> <!-- DUA 15 ans --> + <StartDate>2019-12-31</StartDate> + <FinalAction>Keep</FinalAction> + </AppraisalRule> + <AccessRule> + <Rule>ACC-00001</Rule> <!-- Librement communicable --> + <StartDate>2019-12-31</StartDate> + </AccessRule> + </ManagementMetadata> + </DataObjectPackage> + <ArchivalAgency> + <Identifier schemeName="SIRET" schemeAgencyName="INSEE">19341594000017</Identifier> + </ArchivalAgency> + <TransferringAgency> + <Identifier schemeName="SIRET" schemeAgencyName="INSEE">19640251500270</Identifier> + </TransferringAgency> +</ArchiveTransfer> \ No newline at end of file diff --git a/ui/ui-pastis/src/test/resources/manifests/rngProfile.rng b/ui/ui-pastis/src/test/resources/manifests/rngProfile.rng new file mode 100644 index 00000000..7a9185e6 --- /dev/null +++ b/ui/ui-pastis/src/test/resources/manifests/rngProfile.rng @@ -0,0 +1,846 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<rng:grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="fr:gouv:culture:archivesdefrance:seda:v2.1" + xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" + xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" + xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink"> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ArchivalAgreement"> + <rng:value type="token">IN-UPPA-0</rng:value> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:oneOrMore> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:element name="DataObjectVersion"> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="token"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:optional> + <rng:element name="FormatLitteral"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:element> + </rng:zeroOrMore> + </rng:element> + </rng:oneOrMore> + <rng:element name="DescriptiveMetadata"> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Séance du conseil d'administration</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">File</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="string"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:value type="token">Ces documents sont archivés dans le but d'une conservation des décisions du conseil d'administration.</rng:value> + </rng:element> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:element name="CustodialHistoryItem"> + <rng:value type="token">Ces archives sont transférées à l'initiative de la Direction des affaires juridiques directement vers le SAE externalisé pour conservation et après validation de l'archiviste de l'UPPA</rng:value> + </rng:element> + </rng:element> + </rng:optional> + <rng:element name="Language"> + <rng:value type="token">fra</rng:value> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Organe délibérant</rng:value> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Conseil d'administration</rng:value> + </rng:element> + <rng:element name="CreatedDate"> + <xsd:annotation> + <xsd:documentation>Date de tenue du CA</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date de tenue du CA</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date de tenue du CA</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Procurations</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="string"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Procuration</rng:value> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Convocation-OJ</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + <rng:value type="string">Convocation-OJ</rng:value> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Signature"> + <rng:oneOrMore> + <rng:element name="Signer"> + <rng:element name="FullName"> + <rng:data type="string"/> + </rng:element> + <rng:element name="SigningTime"> + <rng:data type="dateTime"/> + </rng:element> + <rng:optional> + <rng:element name="Function"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:oneOrMore> + <rng:element name="Validator"> + <rng:element name="FullName"> + <rng:data type="string"/> + </rng:element> + <rng:element name="ValidationTime"> + <rng:data type="dateTime"/> + </rng:element> + <rng:optional> + <rng:element name="Function"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="ReferencedObject"> + <rng:element name="SignedObjectId"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SignedObjectDigest"> + <rng:data type="token"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Feuille d'émargement-élus</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + <rng:value type="string">Feuille d'émargement-élus</rng:value> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Feuille d'émargement-membres consultatifs</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + <rng:value type="string">Feuille d'émargement-membres consultatifs</rng:value> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Enregistrement audio</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="Management"> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <xsd:annotation> + <xsd:documentation>DUA 15 ans</xsd:documentation> + </xsd:annotation> + <rng:value type="token">APP-00015</rng:value> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="token"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:value type="token">Destroy</rng:value> + </rng:element> + </rng:element> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:value type="token">ACC-00020</rng:value> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + <rng:value type="string">Enregistrement audio</rng:value> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Relevé de conclusions</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + <rng:value type="string">Relevé de conclusions</rng:value> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Accusé de réception du rectorat</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + <rng:value type="string">Accusé de réception du rectorat</rng:value> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:oneOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Point OJ</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">File</rng:value> + </rng:element> + <rng:element name="Title"> + <xsd:annotation> + <xsd:documentation>Intitulé du point à l'OJ</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Point OJ</rng:value> + </rng:element> + <rng:element name="Tag"> + <xsd:annotation> + <xsd:documentation>Point n°</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:zeroOrMore> + <rng:element name="Tag"> + <xsd:annotation> + <xsd:documentation>Mot-clés ordre du jour</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>PV CA antérieur</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Status"> + <xsd:annotation> + <xsd:documentation>"Voté" ou "Non voté"</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">PV</rng:value> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Extrait</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">File</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Extrait de délibération</rng:value> + </rng:element> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Extrait</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Signature"> + <rng:oneOrMore> + <rng:element name="Signer"> + <rng:element name="FullName"> + <rng:data type="string"/> + </rng:element> + <rng:element name="SigningTime"> + <rng:data type="dateTime"/> + </rng:element> + <rng:optional> + <rng:element name="Function"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:oneOrMore> + <rng:element name="Validator"> + <rng:element name="FullName"> + <rng:data type="string"/> + </rng:element> + <rng:element name="ValidationTime"> + <rng:data type="dateTime"/> + </rng:element> + <rng:optional> + <rng:element name="Function"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="ReferencedObject"> + <rng:element name="SignedObjectId"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SignedObjectDigest"> + <rng:data type="token"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Pièces annexes</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Pièce annexe</rng:value> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Pièces annexes</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Pièce annexe</rng:value> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Convention ou Accord international</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Management"> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:value type="token">APP-00015</rng:value> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="token"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:value type="token">Destroy</rng:value> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">File</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:optional> + <rng:element name="Tag"> + <rng:value type="token">ACI</rng:value> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Tag"> + <rng:value type="token">Convention</rng:value> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Convention ou ACI</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <xsd:annotation> + <xsd:documentation>Pièces annexes</xsd:documentation> + </xsd:annotation> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:value type="token">Item</rng:value> + </rng:element> + <rng:element name="Title"> + <rng:data type="token"/> + <rng:attribute name="xml:lang"> + <rng:value type="language">fra</rng:value> + </rng:attribute> + </rng:element> + <rng:element name="OriginatingSystemId"> + <xsd:annotation> + <xsd:documentation>ID-SI-prod</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="Tag"> + <rng:value type="token">Pièce annexe</rng:value> + </rng:element> + </rng:element> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:zeroOrMore> + </rng:element> + </rng:zeroOrMore> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:value type="token">19640251500270</rng:value> + </rng:element> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:value type="token">19640251500270</rng:value> + </rng:element> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <xsd:annotation> + <xsd:documentation>DUA 15 ans</xsd:documentation> + </xsd:annotation> + <rng:value type="token">APP-00015</rng:value> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:value type="token">Keep</rng:value> + </rng:element> + </rng:element> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <xsd:annotation> + <xsd:documentation>Librement communicable</xsd:documentation> + </xsd:annotation> + <rng:value type="token">ACC-00001</rng:value> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:attribute name="schemeName"> + <rng:value type="token">SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value type="token">INSEE</rng:value> + </rng:attribute> + <rng:value type="token">19341594000017</rng:value> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <rng:element name="Identifier"> + <rng:attribute name="schemeName"> + <rng:value type="token">SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value type="token">INSEE</rng:value> + </rng:attribute> + <rng:value type="token">19640251500270</rng:value> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/test/resources/profiles/profile_nok.rng b/ui/ui-pastis/src/test/resources/profiles/profile_nok.rng new file mode 100644 index 00000000..031dee85 --- /dev/null +++ b/ui/ui-pastis/src/test/resources/profiles/profile_nok.rng @@ -0,0 +1,861 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" +ns="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" +xmlns:xsd="http://www.w3.org/2001/XMLSchema" +xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" +xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" +xmlns:rng="http://relaxng.org/ns/structure/1.0" +xmlns:xs="http://www.w3.org/2001/XMLSchema" +xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Profil RNG avec 1 objet numérique déclaré (en O-N), et 1 AU racine (en O-n) qui déclare un AU fille (en O-N)--> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:element name="Comment"> + </rng:element> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ArchivalAgreement"> + <xsd:annotation> + <xsd:documentation>Déclaration du contrat d'entrée</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <xsd:annotation> + <xsd:documentation>Sert à lier un fichier à l'ArchiveUnit auquel il correspond. + Exemple: ID7</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"> + <xsd:annotation> + <xsd:documentation>Nom du fichier. Exemple: + 22100005200011_20091118_144251_1.pdf</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="Metadata"> + <rng:optional> + <rng:element name="Video"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Audio"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:value>19341594000017</rng:value> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <xsd:annotation> + <xsd:documentation> Doit permettre d'identifier l'opérateur technique réalisant le + versement de manière unique et non équivoque</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="token"/> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> diff --git a/ui/ui-pastis/src/test/resources/profiles/profile_ok.rng b/ui/ui-pastis/src/test/resources/profiles/profile_ok.rng new file mode 100644 index 00000000..494c6b9a --- /dev/null +++ b/ui/ui-pastis/src/test/resources/profiles/profile_ok.rng @@ -0,0 +1,870 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<rng:grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" +ns="fr:gouv:culture:archivesdefrance:seda:v2.1" xmlns="fr:gouv:culture:archivesdefrance:seda:v2.1" +xmlns:xsd="http://www.w3.org/2001/XMLSchema" +xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" +xmlns:seda="fr:gouv:culture:archivesdefrance:seda:v2.1" +xmlns:rng="http://relaxng.org/ns/structure/1.0" +xmlns:xs="http://www.w3.org/2001/XMLSchema" +xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Profil RNG avec 1 objet numérique déclaré (en O-N), et 1 AU racine (en O-n) qui déclare un AU fille (en O-N)--> + <rng:start> + <rng:element name="ArchiveTransfer"> + <rng:optional> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + </rng:optional> + <rng:optional> + <rng:element name="Comment"> + <xsd:annotation> + <xsd:documentation>Commentaire sur le versement</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:element name="Date"> + <rng:data type="dateTime"/> + </rng:element> + <rng:element name="MessageIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="ArchivalAgreement"> + <xsd:annotation> + <xsd:documentation>Déclaration du contrat d'entrée</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + <rng:element name="CodeListVersions"> + <rng:data type="token"/> + </rng:element> + <rng:element name="DataObjectPackage"> + <rng:attribute name="xml:id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:element name="DataObjectGroup"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:zeroOrMore> + <rng:element name="BinaryDataObject"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="DataObjectGroupId"> + <xsd:annotation> + <xsd:documentation>Sert à lier un fichier à l'ArchiveUnit auquel il correspond. + Exemple: ID7</xsd:documentation> + </xsd:annotation> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:element name="DataObjectVersion"> + <rng:data type="token"/> + <xsd:annotation> + <xsd:documentation>BinaryMaster par défaut</xsd:documentation> + </xsd:annotation> + </rng:element> + <rng:element name="Uri"> + <rng:data type="anyURI"/> + </rng:element> + <rng:element name="MessageDigest"> + <rng:data type="base64Binary"/> + <rng:attribute name="algorithm"> + <rng:data type="token"/> + </rng:attribute> + </rng:element> + <rng:element name="Size"> + <rng:data type="positiveInteger"/> + </rng:element> + <rng:element name="FormatIdentification"> + <rng:element name="FormatLitteral"> + <rng:data type="string"/> + </rng:element> + <rng:optional> + <rng:element name="MimeType"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="FormatId"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Encoding"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + <rng:element name="FileInfo"> + <rng:element name="Filename"> + <xsd:annotation> + <xsd:documentation>Nom du fichier. Exemple: + 22100005200011_20091118_144251_1.pdf</xsd:documentation> + </xsd:annotation> + <rng:data type="string"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="Metadata"> + <rng:optional> + <rng:element name="Video"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Audio"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="DescriptiveMetadata"> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:zeroOrMore> + <rng:element name="ArchiveUnit"> + <rng:attribute name="id"> + <rng:data type="ID"/> + </rng:attribute> + <rng:optional> + <rng:element name="ArchiveUnitProfile"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Management"> + <rng:optional> + <rng:element name="UpdateOperation"> + <rng:element name="ArchiveUnitIdentifierKey"> + <rng:element name="MetadataName"> + <rng:data type="token"/> + </rng:element> + <rng:element name="MetadataValue"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="Content"> + <rng:element name="DescriptionLevel"> + <rng:data type="token"/> + </rng:element> + <rng:oneOrMore> + <rng:element name="Title"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="FilePlanPosition"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="OriginatingAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="TransferringAgencyArchiveUnitIdentifier"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Description"> + <rng:attribute name="xml:lang"> + <rng:data type="language"/> + </rng:attribute> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="CustodialHistory"> + <rng:oneOrMore> + <rng:element name="CustodialHistoryItem"> + <rng:data type="string"/> + </rng:element> + </rng:oneOrMore> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="Type"> + <rng:data type="string"/> + </rng:element> + </rng:optional> + <rng:oneOrMore> + <rng:element name="Language"> + <xsd:annotation> + <xsd:documentation>Langue du contenu du sous-ensemble de l'archive + exprimée au format ISO 639-3</xsd:documentation> + </xsd:annotation> + <rng:data type="language"/> + </rng:element> + </rng:oneOrMore> + <rng:optional> + <rng:element name="DescriptionLanguage"> + <rng:data type="language"/> + </rng:element> + </rng:optional> + <rng:zeroOrMore> + <rng:element name="Tag"> + <rng:data type="token"/> + </rng:element> + </rng:zeroOrMore> + <rng:zeroOrMore> + <rng:element name="Keyword"> + <rng:element name="KeywordContent"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="OriginatingAgency"> + <xsd:annotation> + <xsd:documentation>Service producteur</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="SubmissionAgency"> + <xsd:annotation> + <xsd:documentation>Service versant</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="string"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RelatedObjectReference"> + <rng:zeroOrMore> + <rng:element name="IsVersionOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="Replaces"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="IsPartOf"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="References"> + <rng:optional> + <rng:element name="ArchiveUnitRefId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:optional> + <rng:element name="DataObjectReferenceId" a:defaultValue="id76745"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryArchiveUnitPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="RepositoryObjectPID"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="ExternalReference"> + <rng:data type="token"/> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + </rng:element> + </rng:optional> + <rng:element name="StartDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus ancien dans + l'ArchiveUnit</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + <rng:element name="EndDate"> + <xsd:annotation> + <xsd:documentation>Date du document le plus récent dans + l'ArchiveUnit.</xsd:documentation> + </xsd:annotation> + <rng:data type="date"/> + </rng:element> + </rng:element> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + <rng:optional> + <rng:element name="DataObjectReference"> + <rng:element name="DataObjectGroupReferenceId"> + <rng:data type="NCName"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:zeroOrMore> + </rng:element> + <rng:element name="ManagementMetadata"> + <rng:element name="ArchivalProfile"> + <rng:data type="token"/> + </rng:element> + <rng:element name="OriginatingAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:element name="SubmissionAgencyIdentifier"> + <rng:data type="token"/> + </rng:element> + <rng:optional> + <rng:element name="AppraisalRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + <rng:element name="FinalAction"> + <rng:data type="token"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="AccessRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + <rng:optional> + <rng:element name="DisseminationRule"> + <rng:element name="Rule"> + <rng:data type="token"/> + </rng:element> + <rng:element name="StartDate"> + <rng:data type="date"/> + </rng:element> + </rng:element> + </rng:optional> + </rng:element> + </rng:element> + <rng:element name="ArchivalAgency"> + <rng:element name="Identifier"> + <rng:value>19341594000017</rng:value> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + <rng:element name="TransferringAgency"> + <xsd:annotation> + <xsd:documentation> Doit permettre d'identifier l'opérateur technique réalisant le + versement de manière unique et non équivoque</xsd:documentation> + </xsd:annotation> + <rng:element name="Identifier"> + <rng:data type="token"/> + <rng:attribute name="schemeName"> + <rng:value>SIRET</rng:value> + </rng:attribute> + <rng:attribute name="schemeAgencyName"> + <rng:value>INSEE</rng:value> + </rng:attribute> + </rng:element> + </rng:element> + </rng:element> + </rng:start> +</rng:grammar> -- GitLab