{"version":3,"file":"libriciel-ls-composants.mjs","sources":["../../../projects/ls-composants/src/lib/structures/structure-messages.ts","../../../projects/ls-composants/src/lib/structures/model/application-id.ts","../../../projects/ls-composants/src/lib/structures/applications.ts","../../../projects/ls-composants/src/lib/structures/footer/footer.component.ts","../../../projects/ls-composants/src/lib/structures/footer/footer.component.html","../../../projects/ls-composants/src/lib/icons/common-icons.ts","../../../projects/ls-composants/src/lib/structures/sidebar/sidebar.service.ts","../../../projects/ls-composants/src/lib/structures/sidebar/sidebar.component.ts","../../../projects/ls-composants/src/lib/structures/sidebar/sidebar.component.html","../../../projects/ls-composants/src/lib/components/back-to-top/back-to-top.component.ts","../../../projects/ls-composants/src/lib/components/back-to-top/back-to-top.component.html","../../../projects/ls-composants/src/lib/structures/content/content.component.ts","../../../projects/ls-composants/src/lib/structures/content/content.component.html","../../../projects/ls-composants/src/lib/components/color-picker/color-picker.component.ts","../../../projects/ls-composants/src/lib/components/color-picker/color-picker.component.html","../../../projects/ls-composants/src/lib/components/max-length-textarea/MaxLengthTextAreaMessages.ts","../../../projects/ls-composants/src/lib/components/max-length-textarea/max-length-textarea.component.ts","../../../projects/ls-composants/src/lib/components/max-length-textarea/max-length-textarea.component.html","../../../projects/ls-composants/src/lib/i18n/common-messages.ts","../../../projects/ls-composants/src/lib/components/password/password.component.ts","../../../projects/ls-composants/src/lib/components/password/password.component.html","../../../projects/ls-composants/src/lib/ui-concepts/weight.ts","../../../projects/ls-composants/src/lib/ui-concepts/style.ts","../../../projects/ls-composants/src/lib/ui-concepts/common-styles-constants.ts","../../../projects/ls-composants/src/lib/ui-concepts/icon.size.ts","../../../projects/ls-composants/src/lib/components/buttons/button/button.component.ts","../../../projects/ls-composants/src/lib/components/buttons/button/button.component.html","../../../projects/ls-composants/src/lib/components/buttons/cancel-button/cancel-button.component.ts","../../../projects/ls-composants/src/lib/components/buttons/validate-button/validate-button.component.ts","../../../projects/ls-composants/src/lib/components/timepicker/timepicker.component.ts","../../../projects/ls-composants/src/lib/components/timepicker/timepicker.component.html","../../../projects/ls-composants/src/lib/components/libersign/libersign-status.model.ts","../../../projects/ls-composants/src/lib/components/libersign/libersign.util.ts","../../../projects/ls-composants/src/lib/components/libersign/libersign.native.util.ts","../../../projects/ls-composants/src/lib/components/libersign/libersign.applet.util.ts","../../../projects/ls-composants/src/lib/components/libersign/libersign.component.ts","../../../projects/ls-composants/src/lib/components/libersign/libersign.component.html","../../../projects/ls-composants/src/lib/components/buttons/go-back-button/go-back-button.component.ts","../../../projects/ls-composants/src/lib/components/buttons/save-button/save-button.component.ts","../../../projects/ls-composants/src/lib/directives/actionable.directive.ts","../../../projects/ls-composants/src/lib/pipes/to-snake-case.pipe.ts","../../../projects/ls-composants/src/lib/components/action-bar/action-bar.component.ts","../../../projects/ls-composants/src/lib/components/action-bar/action-bar.component.html","../../../projects/ls-composants/src/lib/pipes/to-id.pipe.ts","../../../projects/ls-composants/src/lib/pipes/pipe.module.ts","../../../projects/ls-composants/src/lib/directives/directive.module.ts","../../../projects/ls-composants/src/lib/components/radio-buttons/radio-buttons.component.ts","../../../projects/ls-composants/src/lib/components/radio-buttons/radio-buttons.component.html","../../../projects/ls-composants/src/lib/components/toggle-slider/toggle-slider.component.ts","../../../projects/ls-composants/src/lib/components/toggle-slider/toggle-slider.component.html","../../../projects/ls-composants/src/lib/components/options-list/options-list.component.ts","../../../projects/ls-composants/src/lib/components/options-list/options-list.component.html","../../../projects/ls-composants/src/lib/services/anssi-password-strength.service.ts","../../../projects/ls-composants/src/lib/components/password-with-strength/password-with-strength.component.ts","../../../projects/ls-composants/src/lib/components/password-with-strength/password-with-strength.component.html","../../../projects/ls-composants/src/lib/components/buttons/download-button/download-button.component.ts","../../../projects/ls-composants/src/lib/components/ui-components.module.ts","../../../projects/ls-composants/src/lib/structures/structure.module.ts","../../../projects/ls-composants/src/lib/pages/login/component/login-config/login-config.model.ts","../../../projects/ls-composants/src/lib/pages/login/component/login-model/login-model.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/login-model/login-model.component.html","../../../projects/ls-composants/src/lib/pages/login/component/login-config/login-config.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/login-config/login-config.component.html","../../../projects/ls-composants/src/lib/pages/login/i18n/login-messages.ts","../../../projects/ls-composants/src/lib/pages/login/component/login-model/login-page-model.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/forgot-password/forgot-password.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/forgot-password/forgot-password.component.html","../../../projects/ls-composants/src/lib/pages/login/component/forgot-password-success/forgot-password-success.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/forgot-password-success/forgot-password-success.component.html","../../../projects/ls-composants/src/lib/pages/login/component/login-form/login-form.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/login-form/login-form.component.html","../../../projects/ls-composants/src/lib/pages/login/component/reset-password/reset-password.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/reset-password/reset-password.component.html","../../../projects/ls-composants/src/lib/pages/login/component/login/login.component.ts","../../../projects/ls-composants/src/lib/pages/login/component/login/login.component.html","../../../projects/ls-composants/src/lib/pages/login/login.module.ts","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/i18n/rgpd-messages.ts","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/article/article.component.ts","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/article/article.component.html","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/entity/entity.component.ts","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/entity/entity.component.html","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/person/person.component.ts","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/person/person.component.html","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/rgpd-page.component.ts","../../../projects/ls-composants/src/lib/pages/rgpd/rgpd-page/component/rgpd-page.component.html","../../../projects/ls-composants/src/lib/pages/rgpd/ls-rgpd.module.ts","../../../projects/ls-composants/src/lib/models/version.ts","../../../projects/ls-composants/src/lib/pages/about/i18n/application-about-messages.ts","../../../projects/ls-composants/src/lib/pages/about/component/license/license.component.ts","../../../projects/ls-composants/src/lib/pages/about/component/license/license.component.html","../../../projects/ls-composants/src/lib/pages/about/component/support/support.component.ts","../../../projects/ls-composants/src/lib/pages/about/component/support/support.component.html","../../../projects/ls-composants/src/lib/pages/about/component/release-notes/release-notes.component.ts","../../../projects/ls-composants/src/lib/pages/about/component/release-notes/release-notes.component.html","../../../projects/ls-composants/src/lib/pages/about/component/about/about.component.ts","../../../projects/ls-composants/src/lib/pages/about/component/about/about.component.html","../../../projects/ls-composants/src/lib/pages/about/ls-about.module.ts","../../../projects/ls-composants/src/lib/pages/pages.module.ts","../../../projects/ls-composants/src/lib/workflows/models/workflow-model.ts","../../../projects/ls-composants/src/lib/workflows/models/step-model.ts","../../../projects/ls-composants/src/lib/workflows/models/workflow-model-options.ts","../../../projects/ls-composants/src/lib/workflows/models/step-event.ts","../../../projects/ls-composants/src/lib/utils/workflow-utils.ts","../../../projects/ls-composants/src/lib/workflows/ls-workflow-editor/ls-workflow-editor.component.ts","../../../projects/ls-composants/src/lib/workflows/ls-workflow-editor/ls-workflow-editor.component.html","../../../projects/ls-composants/src/lib/workflows/ls-workflow-instance-viewer/ls-workflow-instance-viewer.component.ts","../../../projects/ls-composants/src/lib/workflows/ls-workflow-instance-viewer/ls-workflow-instance-viewer.component.html","../../../projects/ls-composants/src/lib/workflows/workflows.module.ts","../../../projects/ls-composants/src/lib/ls-lib-composants.module.ts","../../../projects/ls-composants/src/lib/models/action-item.ts","../../../projects/ls-composants/src/lib/workflows/models/workflow-metadata.ts","../../../projects/ls-composants/src/lib/workflows/models/step-state.ts","../../../projects/ls-composants/src/lib/workflows/models/workflow-actor.ts","../../../projects/ls-composants/src/lib/components/libersign/certificate.model.ts","../../../projects/ls-composants/src/public-api.ts","../../../projects/ls-composants/src/libriciel-ls-composants.ts"],"sourcesContent":["/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Application} from \"./model/application\";\n\nexport class StructureMessages {\n\n  static readonly LIBRICIEL_LINK: string = 'https://www.libriciel.fr';\n  // noinspection SpellCheckingInspection\n  static readonly LIBRICIEL_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJDYWxxdWVfMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOTk3Ljk3IDE0NSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJsaWJyaWNpZWxfU0NPUCI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODc3LjIsNTQuNTRjLTMuMiwwLTUuODctLjYyLTguMDItMS44Ny0yLjE1LTEuMjUtMy43Ny0zLjA4LTQuODYtNS40OS0xLjEtMi40MS0xLjcxLTUuMzctMS44NC04Ljg3bDguMzQtMS42NGMuMDksMi4wNiwuMzQsMy44OCwuNzYsNS40NSwuNDIsMS41OCwxLjA1LDIuNzksMS45MSwzLjY1LC44NSwuODUsMS45OCwxLjI4LDMuMzgsMS4yOCwxLjU4LDAsMi42OS0uNDcsMy4zNS0xLjQxLC42Ni0uOTQsLjk5LTIuMTQsLjk5LTMuNTgsMC0yLjMyLS41My00LjIzLTEuNTgtNS43Mi0xLjA1LTEuNDktMi40NS0yLjk4LTQuMjEtNC40N2wtNi43LTUuOTFjLTEuODgtMS42Mi0zLjM4LTMuNDMtNC41LTUuNDItMS4xMi0xLjk5LTEuNjgtNC40Ni0xLjY4LTcuMzksMC00LjIxLDEuMjMtNy40NSwzLjY4LTkuNzIsMi40NS0yLjI4LDUuOC0zLjQyLDEwLjA1LTMuNDIsMi41LDAsNC41OCwuMzgsNi4yNCwxLjE1LDEuNjYsLjc3LDIuOTksMS44MywzLjk4LDMuMTksLjk5LDEuMzYsMS43MiwyLjksMi4yLDQuNjMsLjQ4LDEuNzMsLjc5LDMuNTYsLjkyLDUuNDlsLTguMjgsMS40NWMtLjA5LTEuNjYtLjI3LTMuMTUtLjU2LTQuNDctLjI5LTEuMzEtLjc5LTIuMzQtMS41MS0zLjA5LS43Mi0uNzQtMS43OS0xLjEyLTMuMTktMS4xMnMtMi41NSwuNDctMy4zMiwxLjQxYy0uNzcsLjk0LTEuMTUsMi4xMS0xLjE1LDMuNTIsMCwxLjgsLjM3LDMuMjgsMS4xMiw0LjQ0LC43NCwxLjE2LDEuODIsMi4zNiwzLjIyLDMuNThsNi42NCw1Ljg1YzIuMTksMS44NCw0LjA2LDQsNS42Miw2LjQ3LDEuNTUsMi40OCwyLjMzLDUuNDYsMi4zMyw4Ljk3LDAsMi41NC0uNTYsNC44LTEuNjgsNi43N3MtMi42NywzLjUyLTQuNjcsNC42M2MtMS45OSwxLjEyLTQuMzMsMS42OC03LDEuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNOTEwLjU4LDU0LjU0Yy0zLjksMC02Ljk1LS43Ny05LjE3LTIuMy0yLjIxLTEuNTMtMy43Ni0zLjYyLTQuNjMtNi4yNy0uODgtMi42NS0xLjMxLTUuNzEtMS4zMS05LjE3VjE3LjgxYzAtMy42NCwuNDQtNi43OSwxLjMxLTkuNDYsLjg4LTIuNjcsMi40Mi00LjczLDQuNjMtNi4xOCwyLjIxLTEuNDUsNS4yNy0yLjE3LDkuMTctMi4xNywzLjY4LDAsNi41NiwuNjIsOC42NCwxLjg3LDIuMDgsMS4yNSwzLjU2LDMuMDMsNC40NCw1LjM2LC44OCwyLjMyLDEuMzEsNS4wMiwxLjMxLDguMDh2NC40N2gtOS4zM3YtNC42YzAtMS40OS0uMDgtMi44NS0uMjMtNC4wNy0uMTUtMS4yMy0uNTctMi4yLTEuMjUtMi45Mi0uNjgtLjcyLTEuODUtMS4wOC0zLjUyLTEuMDhzLTIuODgsLjM4LTMuNjUsMS4xNWMtLjc3LC43Ny0xLjI2LDEuOC0xLjQ4LDMuMDktLjIyLDEuMjktLjMzLDIuNzUtLjMzLDQuMzd2MjMuMTNjMCwxLjkzLC4xNSwzLjUyLC40Niw0Ljc2LC4zMSwxLjI1LC44NiwyLjE5LDEuNjgsMi44MywuODEsLjY0LDEuOTIsLjk1LDMuMzIsLjk1LDEuNjIsMCwyLjc3LS4zOCwzLjQ1LTEuMTUsLjY4LS43NywxLjExLTEuNzgsMS4yOC0zLjA2LC4xNy0xLjI3LC4yNi0yLjY5LC4yNi00LjI3di00LjhoOS4zM3Y0LjI3YzAsMy4xNS0uNDIsNS45NS0xLjI1LDguMzgtLjgzLDIuNDMtMi4yOSw0LjM0LTQuMzcsNS43Mi0yLjA4LDEuMzgtNSwyLjA3LTguNzcsMi4wN1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik05NDYuMTksNTQuNTRjLTMuNzcsMC02Ljc3LS43LTktMi4xLTIuMjMtMS40LTMuODMtMy40Mi00LjgtNi4wNC0uOTYtMi42My0xLjQ1LTUuNzQtMS40NS05LjMzVjE3LjE1YzAtMy41OSwuNDgtNi42NywxLjQ1LTkuMjMsLjk2LTIuNTYsMi41Ni00LjUyLDQuOC01Ljg4LDIuMjMtMS4zNiw1LjIzLTIuMDQsOS0yLjA0czYuODksLjY4LDkuMSwyLjA0YzIuMjEsMS4zNiwzLjgxLDMuMzIsNC44LDUuODgsLjk5LDIuNTYsMS40OCw1LjY0LDEuNDgsOS4yM3YxOS45N2MwLDMuNTUtLjQ5LDYuNjMtMS40OCw5LjIzLS45OSwyLjYxLTIuNTgsNC42Mi00LjgsNi4wNC0yLjIxLDEuNDItNS4yNSwyLjE0LTkuMSwyLjE0Wm0wLTcuMTZjMS42MiwwLDIuODEtLjM1LDMuNTgtMS4wNSwuNzctLjcsMS4yOC0xLjY2LDEuNTQtMi44OSwuMjYtMS4yMywuMzktMi41NiwuMzktNC4wMVYxNC45MmMwLTEuNDktLjEzLTIuODMtLjM5LTQuMDFzLS43OC0yLjExLTEuNTQtMi43OWMtLjc3LS42OC0xLjk2LTEuMDItMy41OC0xLjAyLTEuNTMsMC0yLjY5LC4zNC0zLjQ4LDEuMDItLjc5LC42OC0xLjMxLDEuNjEtMS41OCwyLjc5LS4yNiwxLjE4LS4zOSwyLjUyLS4zOSw0LjAxdjI0LjUxYzAsMS40NSwuMTIsMi43OCwuMzYsNC4wMSwuMjQsMS4yMywuNzYsMi4xOSwxLjU0LDIuODksLjc5LC43LDEuOTcsMS4wNSwzLjU1LDEuMDVaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNOTY4LjczLDUzLjgxVi41OWgxNS42NGMzLjIsMCw1Ljc5LC41OSw3Ljc5LDEuNzcsMS45OSwxLjE4LDMuNDYsMi45LDQuNCw1LjE2LC45NCwyLjI2LDEuNDEsNC45OCwxLjQxLDguMTgsMCwzLjQ2LS41OSw2LjI1LTEuNzcsOC4zOC0xLjE4LDIuMTMtMi44NCwzLjY3LTQuOTYsNC42My0yLjEyLC45Ni00LjYzLDEuNDUtNy41MiwxLjQ1aC01LjI2djIzLjY1aC05LjcyWm05LjcyLTMwLjQ5aDMuNjhjMS43NSwwLDMuMTItLjI1LDQuMTEtLjc2LC45OS0uNSwxLjY2LTEuMzEsMi4wNC0yLjQzLC4zNy0xLjEyLC41Ni0yLjYyLC41Ni00LjVzLS4xNC0zLjQ5LS40My00LjdjLS4yOS0xLjItLjktMi4wOS0xLjg0LTIuNjYtLjk0LS41Ny0yLjQyLS44NS00LjQ0LS44NWgtMy42OHYxNS45WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNjcuOTgsMTE1LjM4djIzLjhoLTgyLjIyVjE2LjExaDI3LjdWMTE1LjM4aDU0LjUyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTMxMi45MSwxOC43N2MwLDQuODYtMS41Nyw4LjY3LTQuNzEsMTEuNDUtMy4xNCwyLjc4LTYuODQsNC4xNy0xMS4xLDQuMTdzLTcuOTYtMS4zOS0xMS4xLTQuMTdjLTMuMTQtMi43OC00LjcxLTYuNi00LjcxLTExLjQ1czEuNTctOC42Nyw0LjcxLTExLjQ1YzMuMTQtMi43OCw2Ljg0LTQuMTcsMTEuMS00LjE3czcuOTYsMS4zOSwxMS4xLDQuMTdjMy4xNCwyLjc4LDQuNzEsNi42LDQuNzEsMTEuNDVabS0yLjQ5LDEyMC40aC0yNi40NlY0NS43N2gyNi40NnY5My40MVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00MjIuMTIsOTIuNDdjMCw3LjQ2LTEuMSwxNC4yMS0zLjI5LDIwLjI1LTIuMTksNi4wNC01LjM2LDExLjE5LTkuNSwxNS40NS00LjE1LDQuMjYtOS4yMyw3LjU1LTE1LjI3LDkuODYtNi4wNCwyLjMxLTEyLjkxLDMuNDYtMjAuNiwzLjQ2LTMuMiwwLTYuNTQtLjE1LTEwLjAzLS40NC0zLjQ5LS4zLTYuOTMtLjY4LTEwLjMtMS4xNS0zLjM3LS40Ny02LjYtMS4wMy05LjY4LTEuNjktMy4wOC0uNjUtNS44LTEuMzMtOC4xNy0yLjA0VjUuNjNsMjYuNDYtNC4yNlY0Ny45YzIuOTYtMS4zLDYuMDQtMi4zMSw5LjIzLTMuMDIsMy4yLS43MSw2LjYzLTEuMDcsMTAuMy0xLjA3LDYuNjMsMCwxMi40OSwxLjE1LDE3LjU4LDMuNDYsNS4wOSwyLjMxLDkuMzUsNS41OSwxMi43OSw5Ljg2LDMuNDMsNC4yNiw2LjA0LDkuMzgsNy44MSwxNS4zNiwxLjc4LDUuOTgsMi42NiwxMi42NCwyLjY2LDE5Ljk4Wm0tMjYuOTktLjcxYzAtMTcuMDUtNi4yOC0yNS41Ny0xOC44Mi0yNS41Ny0yLjcyLDAtNS40MiwuMzYtOC4wOCwxLjA3LTIuNjYsLjcxLTQuODMsMS42LTYuNDgsMi42NnY0OC4xM2MxLjMsLjI0LDIuOTYsLjQ0LDQuOTcsLjYyLDIuMDEsLjE4LDQuMiwuMjcsNi41NywuMjcsNy4yMiwwLDEyLjY3LTIuNDksMTYuMzQtNy40NiwzLjY3LTQuOTcsNS41MS0xMS41NCw1LjUxLTE5LjcxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ5OC44NCw2OS4yMWMtMi4zNy0uNTktNS4xNS0xLjIxLTguMzUtMS44Ni0zLjItLjY1LTYuNjMtLjk4LTEwLjMtLjk4LTEuNjYsMC0zLjY0LC4xNS01Ljk1LC40NC0yLjMxLC4zLTQuMDYsLjYyLTUuMjQsLjk4djcxLjM5aC0yNi40NlY1MC43NGM0LjczLTEuNjYsMTAuMzMtMy4yMiwxNi43OC00LjcxLDYuNDUtMS40OCwxMy42NC0yLjIyLDIxLjU4LTIuMjIsMS40MiwwLDMuMTQsLjA5LDUuMTUsLjI3LDIuMDEsLjE4LDQuMDIsLjQyLDYuMDQsLjcxLDIuMDEsLjMsNC4wMiwuNjUsNi4wNCwxLjA3LDIuMDEsLjQyLDMuNzMsLjkyLDUuMTUsMS41MWwtNC40NCwyMS44NFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01NDYuNDMsMTguNzdjMCw0Ljg2LTEuNTcsOC42Ny00LjcxLDExLjQ1LTMuMTQsMi43OC02Ljg0LDQuMTctMTEuMSw0LjE3cy03Ljk2LTEuMzktMTEuMS00LjE3Yy0zLjE0LTIuNzgtNC43MS02LjYtNC43MS0xMS40NXMxLjU3LTguNjcsNC43MS0xMS40NWMzLjE0LTIuNzgsNi44NC00LjE3LDExLjEtNC4xN3M3Ljk2LDEuMzksMTEuMSw0LjE3YzMuMTQsMi43OCw0LjcxLDYuNiw0LjcxLDExLjQ1Wm0tMi40OSwxMjAuNGgtMjYuNDZWNDUuNzdoMjYuNDZ2OTMuNDFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTY0LjM3LDkyLjQ3YzAtNi43NSwxLjA5LTEzLjExLDMuMjktMTkuMDksMi4xOS01Ljk4LDUuMzYtMTEuMTksOS41LTE1LjYzLDQuMTQtNC40NCw5LjE3LTcuOTYsMTUuMS0xMC41Nyw1LjkyLTIuNiwxMi42Ny0zLjkxLDIwLjI1LTMuOTEsNC45NywwLDkuNTMsLjQ0LDEzLjY3LDEuMzMsNC4xNCwuODksOC4xNywyLjE2LDEyLjA4LDMuODJsLTUuNTEsMjEuMTNjLTIuNDktLjk1LTUuMjEtMS43OC04LjE3LTIuNDktMi45Ni0uNzEtNi4yOC0xLjA3LTkuOTQtMS4wNy03LjgxLDAtMTMuNjUsMi40My0xNy40OSw3LjI4LTMuODUsNC44Ni01Ljc3LDExLjI1LTUuNzcsMTkuMTgsMCw4LjQxLDEuOCwxNC45Miw1LjQyLDE5LjUzLDMuNjEsNC42Miw5LjkxLDYuOTMsMTguOTEsNi45MywzLjIsMCw2LjYzLS4yOSwxMC4zLS44OSwzLjY3LS41OSw3LjA0LTEuNTQsMTAuMTItMi44NGwzLjczLDIxLjY3Yy0zLjA4LDEuMy02LjkzLDIuNDItMTEuNTQsMy4zNy00LjYyLC45NS05LjcxLDEuNDItMTUuMjcsMS40Mi04LjUyLDAtMTUuODctMS4yNy0yMi4wMi0zLjgyLTYuMTYtMi41NC0xMS4yMi02LjAxLTE1LjE4LTEwLjM5LTMuOTctNC4zOC02Ljg3LTkuNTYtOC43LTE1LjU0LTEuODQtNS45OC0yLjc1LTEyLjQ2LTIuNzUtMTkuNDVaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjg2LjU1LDE4Ljc3YzAsNC44Ni0xLjU3LDguNjctNC43MSwxMS40NS0zLjE0LDIuNzgtNi44NCw0LjE3LTExLjEsNC4xN3MtNy45Ni0xLjM5LTExLjEtNC4xN2MtMy4xNC0yLjc4LTQuNzEtNi42LTQuNzEtMTEuNDVzMS41Ny04LjY3LDQuNzEtMTEuNDVjMy4xNC0yLjc4LDYuODQtNC4xNywxMS4xLTQuMTdzNy45NiwxLjM5LDExLjEsNC4xN2MzLjE0LDIuNzgsNC43MSw2LjYsNC43MSwxMS40NVptLTIuNDksMTIwLjRoLTI2LjQ2VjQ1Ljc3aDI2LjQ2djkzLjQxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTcwNC40OCw5My4xOGMwLTguMjksMS4yNy0xNS41NCwzLjgyLTIxLjc1LDIuNTQtNi4yMiw1Ljg5LTExLjM5LDEwLjAzLTE1LjU0LDQuMTQtNC4xNCw4LjkxLTcuMjgsMTQuMy05LjQxLDUuMzktMi4xMywxMC45Mi0zLjIsMTYuNi0zLjIsMTMuMjYsMCwyMy43NCw0LjA2LDMxLjQzLDEyLjE2LDcuNjksOC4xMSwxMS41NCwyMC4wNCwxMS41NCwzNS43OCwwLDEuNTQtLjA2LDMuMjMtLjE4LDUuMDYtLjEyLDEuODQtLjI0LDMuNDYtLjM2LDQuODhoLTYwLjAyYy41OSw1LjQ1LDMuMTQsOS43Nyw3LjY0LDEyLjk2LDQuNSwzLjIsMTAuNTQsNC43OSwxOC4xMSw0Ljc5LDQuODUsMCw5LjYyLS40NCwxNC4zLTEuMzMsNC42OC0uODksOC40OS0xLjk4LDExLjQ1LTMuMjlsMy41NSwyMS40OWMtMS40MiwuNzEtMy4zMiwxLjQyLTUuNjgsMi4xMy0yLjM3LC43MS01LDEuMzMtNy45LDEuODYtMi45LC41My02LjAxLC45OC05LjMyLDEuMzMtMy4zMiwuMzUtNi42MywuNTMtOS45NCwuNTMtOC40MSwwLTE1LjcyLTEuMjQtMjEuOTMtMy43My02LjIyLTIuNDktMTEuMzctNS44OS0xNS40NS0xMC4yMS00LjA4LTQuMzItNy4xLTkuNDQtOS4wNi0xNS4zNi0xLjk1LTUuOTItMi45My0xMi4zMS0yLjkzLTE5LjE4Wm02Mi4xNi0xMC4xMmMtLjEyLTIuMjUtLjUxLTQuNDQtMS4xNS02LjU3LS42NS0yLjEzLTEuNjYtNC4wMi0zLjAyLTUuNjgtMS4zNi0xLjY2LTMuMDgtMy4wMi01LjE1LTQuMDgtMi4wNy0xLjA3LTQuNjUtMS42LTcuNzMtMS42cy01LjUxLC41MS03LjY0LDEuNTFjLTIuMTMsMS4wMS0zLjkxLDIuMzQtNS4zMyw0LTEuNDIsMS42Ni0yLjUyLDMuNTgtMy4yOSw1Ljc3LS43NywyLjE5LTEuMzMsNC40MS0xLjY5LDYuNjZoMzQuOThaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODQ5LjkzLDE0MC45NWMtNy43LS4xMi0xMy45NC0uOTUtMTguNzQtMi40OS00LjgtMS41NC04LjU5LTMuNy0xMS4zNy02LjQ4LTIuNzgtMi43OC00LjY4LTYuMTUtNS42OC0xMC4xMi0xLjAxLTMuOTctMS41MS04LjQ0LTEuNTEtMTMuNDFWNS42M2wyNi40Ni00LjI2VjEwMy4xM2MwLDIuMzcsLjE4LDQuNSwuNTMsNi4zOSwuMzUsMS45LDEuMDMsMy40OSwyLjA0LDQuNzksMSwxLjMsMi40NiwyLjM3LDQuMzUsMy4yLDEuODksLjgzLDQuNDQsMS4zNiw3LjY0LDEuNmwtMy43MywyMS44NFoiLz48L2c+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNLjY5LDE3Ljg5bDc5LjQsMTI3LjEsMTIuNTMtNTAuODUtMjguMzctNTAuNTdjLTEuNjgtMi45OS00LjIyLTUuNC03LjI5LTYuOTJMNi4zMiwxMS42N2MtMy45NC0xLjk0LTcuOTYsMi41LTUuNjMsNi4yMloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMjIuNTgsNzguMjZsLTI5Ljk2LDE1Ljg5LTEyLjUzLDUwLjg1LDg4LjE1LTQyLjQzYzIuOC0xLjM1LDIuODgtNS4zMSwuMTMtNi43N2wtMzMuMjYtMTcuNTZjLTMuOTItMi4wNy04LjYtMi4wNi0xMi41MSwuMDFaIi8+PC9nPjwvZz48L2c+PC9zdmc+`\n  static readonly LIBRICIEL_TOOLTIP: string = 'Accéder au site de Libriciel SCOP';\n\n  static readonly ASALAE_NAME: string = 'asalae';\n  static readonly ASALAE_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.ASALAE_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly ASALAE_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIwMCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNzk5YWIxO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDkuNDQsNDQuNzVjOC42NiwwLDE1Ljg3LC45OCwyMS42NCwyLjk1LDUuNzcsMS45NywxMC4zOSw0Ljc5LDEzLjg3LDguNDYsMy40NywzLjY3LDUuOTMsOC4xMyw3LjM4LDEzLjM4LDEuNDQsNS4yNSwyLjE2LDExLjA4LDIuMTYsMTcuNTF2NjAuOTljLTQuMiwuOTItMTAuMDMsMi0xNy41MSwzLjI1LTcuNDgsMS4yNS0xNi41MywxLjg3LTI3LjE1LDEuODctNi42OSwwLTEyLjc2LS41OS0xOC4yLTEuNzctNS40NC0xLjE4LTEwLjEzLTMuMTEtMTQuMDctNS44LTMuOTMtMi42OS02Ljk1LTYuMi05LjA1LTEwLjUzLTIuMS00LjMzLTMuMTUtOS42NC0zLjE1LTE1Ljk0czEuMjEtMTEuMTUsMy42NC0xNS4zNWMyLjQzLTQuMiw1LjY3LTcuNTQsOS43NC0xMC4wMyw0LjA2LTIuNDksOC43Mi00LjI5LDEzLjk3LTUuNDEsNS4yNS0xLjExLDEwLjY5LTEuNjcsMTYuMzMtMS42NywzLjgsMCw3LjE4LC4xNywxMC4xMywuNDksMi45NSwuMzMsNS4zNCwuNzYsNy4xOCwxLjI4di0yLjc1YzAtNC45OC0xLjUxLTguOTgtNC41My0xMi0zLjAyLTMuMDItOC4yNi00LjUzLTE1Ljc0LTQuNTMtNC45OSwwLTkuOSwuMzYtMTQuNzYsMS4wOC00Ljg1LC43Mi05LjA1LDEuNzQtMTIuNTksMy4wNWwtMy43NC0yMy42MWMxLjctLjUyLDMuODQtMS4wOCw2LjM5LTEuNjdzNS4zNC0xLjExLDguMzYtMS41N2MzLjAyLS40Niw2LjItLjg1LDkuNTQtMS4xOCwzLjM0LS4zMyw2LjcyLS40OSwxMC4xMy0uNDlabTIuMzYsODUuNzhjMi44OCwwLDUuNjQtLjA2LDguMjYtLjIsMi42Mi0uMTMsNC43Mi0uMzMsNi4zLS41OXYtMjIuMjNjLTEuMTgtLjI2LTIuOTUtLjUyLTUuMzEtLjc5LTIuMzYtLjI2LTQuNTMtLjM5LTYuNDktLjM5LTIuNzUsMC01LjM1LC4xNy03Ljc3LC40OS0yLjQzLC4zMy00LjU2LC45NS02LjM5LDEuODctMS44NCwuOTItMy4yOCwyLjE2LTQuMzMsMy43NC0xLjA1LDEuNTctMS41NywzLjU0LTEuNTcsNS45LDAsNC41OSwxLjU0LDcuNzcsNC42Miw5LjU0LDMuMDgsMS43Nyw3LjMxLDIuNjYsMTIuNjksMi42NloiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNTAuNzYsMTI5LjkzYzUuMzgsMCw5LjE4LS41MiwxMS40MS0xLjU3LDIuMjMtMS4wNSwzLjM0LTMuMDgsMy4zNC02LjEsMC0yLjM2LTEuNDUtNC40My00LjMzLTYuMi0yLjg5LTEuNzctNy4yOC0zLjc3LTEzLjE4LTYtNC41OS0xLjctOC43NS0zLjQ3LTEyLjQ5LTUuMzEtMy43NC0xLjg0LTYuOTItNC4wMy05LjU0LTYuNTktMi42Mi0yLjU2LTQuNjYtNS42MS02LjEtOS4xNS0xLjQ1LTMuNTQtMi4xNi03LjgtMi4xNi0xMi43OSwwLTkuNzEsMy42MS0xNy4zOCwxMC44Mi0yMy4wMiw3LjIxLTUuNjQsMTcuMTItOC40NiwyOS43MS04LjQ2LDYuMywwLDEyLjMzLC41NiwxOC4xLDEuNjcsNS43NywxLjEyLDEwLjM2LDIuMzMsMTMuNzcsMy42NGwtNS4xMiwyMi44MmMtMy40MS0xLjE4LTcuMTItMi4yMy0xMS4xMi0zLjE1LTQtLjkyLTguNDktMS4zOC0xMy40OC0xLjM4LTkuMTgsMC0xMy43NywyLjU2LTEzLjc3LDcuNjcsMCwxLjE4LC4yLDIuMjMsLjU5LDMuMTUsLjM5LC45MiwxLjE4LDEuOCwyLjM2LDIuNjYsMS4xOCwuODUsMi43OSwxLjc4LDQuODIsMi43NywyLjAzLC45OSw0LjYyLDIuMDgsNy43NywzLjI3LDYuNDIsMi4zOCwxMS43NCw0LjczLDE1Ljk0LDcuMDQsNC4yLDIuMzEsNy41MSw0LjgxLDkuOTQsNy40OSwyLjQzLDIuNjgsNC4xMyw1LjY2LDUuMTIsOC45MywuOTgsMy4yNywxLjQ4LDcuMDcsMS40OCwxMS4zOCwwLDEwLjIxLTMuODQsMTcuOTMtMTEuNTEsMjMuMTctNy42Nyw1LjIzLTE4LjUzLDcuODUtMzIuNTYsNy44NS05LjE4LDAtMTYuODItLjc5LTIyLjkyLTIuMzYtNi4xLTEuNTctMTAuMzMtMi44OC0xMi42OS0zLjk0bDQuOTItMjMuODFjNC45OCwxLjk3LDEwLjEsMy41MSwxNS4zNSw0LjYyLDUuMjQsMS4xMiwxMC40MywxLjY3LDE1LjU0LDEuNjdaIi8+PC9nPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIxOTAiLz48L2c+PC9nPjxzdHlsZSB4bWxucz0iIiBpZD0iYXV0b2NvbnNlbnQtcHJlaGlkZSIvPjwvc3ZnPg==`;\n\n  static readonly COMELUS_NAME: string = 'comélus';\n  static readonly COMELUS_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/comelus`;\n  // noinspection SpellCheckingInspection\n  static readonly COMELUS_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIwMCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNjE5ZTlhO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNC42OCw5OS4yNGMwLTcuNDgsMS4yMS0xNC41MiwzLjY0LTIxLjE1LDIuNDMtNi42Miw1LjkzLTEyLjM5LDEwLjUzLTE3LjMxLDQuNTktNC45MiwxMC4xNi04LjgyLDE2LjcyLTExLjcxLDYuNTYtMi44OCwxNC4wMy00LjMzLDIyLjQzLTQuMzMsNS41MSwwLDEwLjU2LC40OSwxNS4xNSwxLjQ4LDQuNTksLjk4LDkuMDUsMi4zOSwxMy4zOCw0LjIzbC02LjEsMjMuNDFjLTIuNzUtMS4wNS01Ljc3LTEuOTctOS4wNS0yLjc1LTMuMjgtLjc5LTYuOTUtMS4xOC0xMS4wMi0xLjE4LTguNjYsMC0xNS4xMiwyLjY5LTE5LjM4LDguMDctNC4yNiw1LjM4LTYuMzksMTIuNDYtNi4zOSwyMS4yNSwwLDkuMzEsMiwxNi41Myw2LDIxLjY0LDQsNS4xMiwxMC45OCw3LjY3LDIwLjk1LDcuNjcsMy41NCwwLDcuMzQtLjMzLDExLjQxLS45OCw0LjA2LS42NSw3LjgtMS43LDExLjIxLTMuMTVsNC4xMywyNGMtMy40MSwxLjQ0LTcuNjcsMi42OS0xMi43OSwzLjc0LTUuMTIsMS4wNS0xMC43NiwxLjU3LTE2LjkyLDEuNTctOS40NCwwLTE3LjU4LTEuNDEtMjQuNC00LjIzLTYuODItMi44Mi0xMi40My02LjY2LTE2LjgyLTExLjUxLTQuNC00Ljg1LTcuNjEtMTAuNTktOS42NC0xNy4yMS0yLjAzLTYuNjItMy4wNS0xMy44LTMuMDUtMjEuNTRaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNOTguMTMsMTAwLjAzYzAtOS4xOCwxLjQxLTE3LjIxLDQuMjMtMjQuMSwyLjgyLTYuODksNi41Mi0xMi42MiwxMS4xMi0xNy4yMSw0LjU5LTQuNTksOS44Ny04LjA3LDE1Ljg0LTEwLjQzLDUuOTctMi4zNiwxMi4xLTMuNTQsMTguMzktMy41NCwxNC42OSwwLDI2LjMsNC40OSwzNC44MiwxMy40OCw4LjUyLDguOTksMTIuNzksMjIuMiwxMi43OSwzOS42NCwwLDEuNzEtLjA3LDMuNTgtLjIsNS42MS0uMTMsMi4wMy0uMjYsMy44NC0uMzksNS40MWgtNjYuNWMuNjUsNi4wMywzLjQ3LDEwLjgyLDguNDYsMTQuMzYsNC45OCwzLjU0LDExLjY3LDUuMzEsMjAuMDcsNS4zMSw1LjM4LDAsMTAuNjUtLjQ5LDE1Ljg0LTEuNDgsNS4xOC0uOTgsOS40MS0yLjE5LDEyLjY5LTMuNjRsMy45MywyMy44MWMtMS41NywuNzktMy42NywxLjU3LTYuMywyLjM2LTIuNjIsLjc5LTUuNTQsMS40OC04Ljc1LDIuMDctMy4yMiwuNTktNi42NiwxLjA4LTEwLjMzLDEuNDgtMy42NywuMzktNy4zNSwuNTktMTEuMDIsLjU5LTkuMzEsMC0xNy40MS0xLjM4LTI0LjMtNC4xMy02Ljg5LTIuNzUtMTIuNTktNi41Mi0xNy4xMi0xMS4zMS00LjUzLTQuNzktNy44Ny0xMC40Ni0xMC4wMy0xNy4wMi0yLjE2LTYuNTYtMy4yNS0xMy42NC0zLjI1LTIxLjI1Wm02OC44Ni0xMS4yMWMtLjEzLTIuNDktLjU2LTQuOTItMS4yOC03LjI4LS43Mi0yLjM2LTEuODQtNC40Ni0zLjM0LTYuMy0xLjUxLTEuODQtMy40MS0zLjM0LTUuNzEtNC41Mi0yLjMtMS4xOC01LjE1LTEuNzctOC41Ni0xLjc3cy02LjEsLjU2LTguNDYsMS42N2MtMi4zNiwxLjEyLTQuMzMsMi41OS01LjksNC40My0xLjU3LDEuODQtMi43OSwzLjk3LTMuNjQsNi4zOS0uODUsMi40My0xLjQ4LDQuODktMS44Nyw3LjM4aDM4Ljc2WiIvPjwvZz48cmVjdCBjbGFzcz0iY2xzLTIiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTkwIi8+PC9nPjwvZz48c3R5bGUgeG1sbnM9IiIgaWQ9ImF1dG9jb25zZW50LXByZWhpZGUiLz48L3N2Zz4=`;\n\n  static readonly IDELIBRE_NAME: string = 'idelibre';\n  static readonly IDELIBRE_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.IDELIBRE_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly IDELIBRE_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIwMCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDpub25lO30uY2xzLTJ7ZmlsbDojNGNhYmRmO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTkuNDcsMTkuNzFjMCw1LjM4LTEuNzQsOS42MS01LjIxLDEyLjY5LTMuNDgsMy4wOC03LjU3LDQuNjItMTIuMyw0LjYycy04LjgyLTEuNTQtMTIuMy00LjYyYy0zLjQ4LTMuMDgtNS4yMS03LjMxLTUuMjEtMTIuNjlzMS43NC05LjYxLDUuMjEtMTIuNjljMy40Ny0zLjA4LDcuNTctNC42MiwxMi4zLTQuNjJzOC44MiwxLjU0LDEyLjMsNC42MmMzLjQ3LDMuMDgsNS4yMSw3LjMxLDUuMjEsMTIuNjlabS0yLjc1LDEzMy4zOUgyNy40VjQ5LjYxaDI5LjMxdjEwMy40OVoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xNzUuNTUsMTQ5Ljc2Yy0yLjYyLC43OS01LjY0LDEuNTQtOS4wNSwyLjI2LTMuNDEsLjcyLTYuOTgsMS4zNC0xMC43MiwxLjg3LTMuNzQsLjUyLTcuNTQsLjk1LTExLjQxLDEuMjgtMy44NywuMzMtNy41NywuNDktMTEuMTIsLjQ5LTguNTMsMC0xNi4xMy0xLjI1LTIyLjgyLTMuNzQtNi42OS0yLjQ5LTEyLjMzLTYuMDYtMTYuOTItMTAuNzItNC41OS00LjY1LTguMS0xMC4yOS0xMC41My0xNi45Mi0yLjQzLTYuNjItMy42NC0xNC4wNy0zLjY0LTIyLjMzczEuMDUtMTUuOTcsMy4xNS0yMi43MmMyLjEtNi43NSw1LjEyLTEyLjQ5LDkuMDUtMTcuMjEsMy45NC00LjcyLDguNzYtOC4zMywxNC40Ni0xMC44Miw1LjcxLTIuNDksMTIuMjMtMy43NCwxOS41OC0zLjc0LDQuMDYsMCw3LjcsLjM5LDEwLjkyLDEuMTgsMy4yMSwuNzksNi40NiwxLjksOS43NCwzLjM0VjUuMTVMMTc1LjU1LC40M1YxNDkuNzZabS02Ni4zLTQ5LjE5YzAsOS4wNSwyLjAzLDE2LjMzLDYuMSwyMS44NCw0LjA2LDUuNTEsMTAuMSw4LjI2LDE4LjEsOC4yNiwyLjYyLDAsNS4wNS0uMSw3LjI4LS4zLDIuMjMtLjIsNC4wNi0uNDIsNS41MS0uNjl2LTUzLjMyYy0xLjg0LTEuMTgtNC4yMy0yLjE2LTcuMTgtMi45NS0yLjk1LS43OS01Ljk0LTEuMTgtOC45NS0xLjE4LTEzLjksMC0yMC44NSw5LjQ0LTIwLjg1LDI4LjMzWiIvPjwvZz48cmVjdCBjbGFzcz0iY2xzLTEiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTkwIi8+PC9nPjwvZz48c3R5bGUgeG1sbnM9IiIgaWQ9ImF1dG9jb25zZW50LXByZWhpZGUiLz48L3N2Zz4=`;\n\n  static readonly IPARAPHEUR_NAME: string = 'iparapheur';\n  static readonly IPARAPHEUR_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.IPARAPHEUR_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly IPARAPHEUR_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIwMCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDpub25lO30uY2xzLTJ7ZmlsbDojNTBjZmQ2O308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTcuMDEsMjAuMTljMCw1LjM4LTEuNzQsOS42MS01LjIxLDEyLjY5LTMuNDgsMy4wOC03LjU3LDQuNjItMTIuMyw0LjYycy04LjgyLTEuNTQtMTIuMy00LjYyYy0zLjQ4LTMuMDgtNS4yMS03LjMxLTUuMjEtMTIuNjlzMS43NC05LjYxLDUuMjEtMTIuNjljMy40Ny0zLjA4LDcuNTctNC42MiwxMi4zLTQuNjJzOC44MiwxLjU0LDEyLjMsNC42MmMzLjQ3LDMuMDgsNS4yMSw3LjMxLDUuMjEsMTIuNjlabS0yLjc1LDEzMy4zOUgyNC45NFY1MC4wOWgyOS4zMXYxMDMuNDlaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTc4LjAxLDEwMS44NGMwLDgtLjk4LDE1LjI4LTIuOTUsMjEuODQtMS45Nyw2LjU2LTQuODUsMTIuMi04LjY2LDE2LjkyLTMuODEsNC43Mi04LjUzLDguNC0xNC4xNywxMS4wMi01LjY0LDIuNjItMTIuMTMsMy45My0xOS40OCwzLjkzLTQuMDcsMC03Ljg3LS4zOS0xMS40MS0xLjE4LTMuNTQtLjc5LTYuOTUtMS45LTEwLjIzLTMuMzR2MzguOTVoLTI5LjMxVjUzLjYzYzIuNjItLjc5LDUuNjQtMS41NCw5LjA1LTIuMjYsMy40MS0uNzIsNi45OC0xLjM0LDEwLjcyLTEuODcsMy43NC0uNTIsNy41NC0uOTUsMTEuNDEtMS4yOCwzLjg3LS4zMyw3LjU3LS40OSwxMS4xMi0uNDksOC41MiwwLDE2LjEzLDEuMjgsMjIuODIsMy44NCw2LjY5LDIuNTYsMTIuMzMsNi4xNywxNi45MiwxMC44Miw0LjU5LDQuNjYsOC4xLDEwLjMzLDEwLjUzLDE3LjAyLDIuNDMsNi42OSwzLjY0LDE0LjE3LDMuNjQsMjIuNDNabS0yOS45LC43OWMwLTkuMDUtMi4wNC0xNi4zLTYuMS0yMS43NC00LjA3LTUuNDQtMTAuMS04LjE2LTE4LjEtOC4xNi0yLjYyLDAtNS4wNSwuMS03LjI4LC4yOS0yLjIzLC4yLTQuMDcsLjQzLTUuNTEsLjY5djUyLjkyYzEuODQsMS4xOCw0LjIzLDIuMTYsNy4xOCwyLjk1czUuOTMsMS4xOCw4Ljk1LDEuMThjMTMuOSwwLDIwLjg1LTkuMzgsMjAuODUtMjguMTNaIi8+PC9nPjxyZWN0IGNsYXNzPSJjbHMtMSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIxOTAiLz48L2c+PC9nPjxzdHlsZSB4bWxucz0iIiBpZD0iYXV0b2NvbnNlbnQtcHJlaGlkZSIvPjwvc3ZnPg==`;\n\n  static readonly PASTELL_NAME: string = 'pastell';\n  static readonly PASTELL_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.PASTELL_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly PASTELL_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIyMCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojOWJhMGNkO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTA1LjY3LDEwMS42YzAsOC0uOTgsMTUuMjgtMi45NSwyMS44NC0xLjk3LDYuNTYtNC44NSwxMi4yLTguNjYsMTYuOTItMy44MSw0LjcyLTguNTMsOC40LTE0LjE3LDExLjAyLTUuNjQsMi42Mi0xMi4xMywzLjkzLTE5LjQ4LDMuOTMtNC4wNywwLTcuODctLjM5LTExLjQxLTEuMTgtMy41NC0uNzktNi45NS0xLjktMTAuMjMtMy4zNHYzOC45NUg5LjQ3VjUzLjRjMi42Mi0uNzksNS42NC0xLjU0LDkuMDUtMi4yNiwzLjQxLS43Miw2Ljk4LTEuMzQsMTAuNzItMS44NywzLjc0LS41Miw3LjU0LS45NSwxMS40MS0xLjI4LDMuODctLjMzLDcuNTctLjQ5LDExLjEyLS40OSw4LjUyLDAsMTYuMTMsMS4yOCwyMi44MiwzLjg0LDYuNjksMi41NiwxMi4zMyw2LjE3LDE2LjkyLDEwLjgyLDQuNTksNC42Niw4LjEsMTAuMzMsMTAuNTMsMTcuMDIsMi40Myw2LjY5LDMuNjQsMTQuMTcsMy42NCwyMi40M1ptLTI5LjksLjc5YzAtOS4wNS0yLjA0LTE2LjMtNi4xLTIxLjc0LTQuMDctNS40NC0xMC4xLTguMTYtMTguMS04LjE2LTIuNjIsMC01LjA1LC4xLTcuMjgsLjI5LTIuMjMsLjItNC4wNywuNDMtNS41MSwuNjl2NTIuOTJjMS44NCwxLjE4LDQuMjMsMi4xNiw3LjE4LDIuOTVzNS45MywxLjE4LDguOTUsMS4xOGMxMy45LDAsMjAuODUtOS4zOCwyMC44NS0yOC4xM1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNjUuNDgsNDcuMTFjOC42NiwwLDE1Ljg3LC45OCwyMS42NCwyLjk1LDUuNzcsMS45NywxMC4zOSw0Ljc5LDEzLjg3LDguNDYsMy40NywzLjY3LDUuOTMsOC4xMyw3LjM4LDEzLjM4LDEuNDQsNS4yNSwyLjE2LDExLjA4LDIuMTYsMTcuNTF2NjAuOTljLTQuMiwuOTItMTAuMDMsMi0xNy41MSwzLjI1LTcuNDgsMS4yNS0xNi41MywxLjg3LTI3LjE1LDEuODctNi42OSwwLTEyLjc2LS41OS0xOC4yLTEuNzctNS40NC0xLjE4LTEwLjEzLTMuMTEtMTQuMDctNS44LTMuOTMtMi42OS02Ljk1LTYuMi05LjA1LTEwLjUzLTIuMS00LjMzLTMuMTUtOS42NC0zLjE1LTE1Ljk0czEuMjEtMTEuMTUsMy42NC0xNS4zNWMyLjQzLTQuMiw1LjY3LTcuNTQsOS43NC0xMC4wMyw0LjA2LTIuNDksOC43Mi00LjI5LDEzLjk3LTUuNDEsNS4yNS0xLjExLDEwLjY5LTEuNjcsMTYuMzMtMS42NywzLjgsMCw3LjE4LC4xNywxMC4xMywuNDksMi45NSwuMzMsNS4zNCwuNzYsNy4xOCwxLjI4di0yLjc1YzAtNC45OC0xLjUxLTguOTgtNC41My0xMi0zLjAyLTMuMDItOC4yNi00LjUzLTE1Ljc0LTQuNTMtNC45OSwwLTkuOSwuMzYtMTQuNzYsMS4wOC00Ljg1LC43Mi05LjA1LDEuNzQtMTIuNTksMy4wNWwtMy43NC0yMy42MWMxLjctLjUyLDMuODQtMS4wOCw2LjM5LTEuNjdzNS4zNC0xLjExLDguMzYtMS41N2MzLjAyLS40Niw2LjItLjg1LDkuNTQtMS4xOCwzLjM0LS4zMyw2LjcyLS40OSwxMC4xMy0uNDlabTIuMzYsODUuNzhjMi44OCwwLDUuNjQtLjA2LDguMjYtLjIsMi42Mi0uMTMsNC43Mi0uMzMsNi4zLS41OXYtMjIuMjNjLTEuMTgtLjI2LTIuOTUtLjUyLTUuMzEtLjc5LTIuMzYtLjI2LTQuNTMtLjM5LTYuNDktLjM5LTIuNzUsMC01LjM1LC4xNy03Ljc3LC40OS0yLjQzLC4zMy00LjU2LC45NS02LjM5LDEuODctMS44NCwuOTItMy4yOCwyLjE2LTQuMzMsMy43NC0xLjA1LDEuNTctMS41NywzLjU0LTEuNTcsNS45LDAsNC41OSwxLjU0LDcuNzcsNC42Miw5LjU0LDMuMDgsMS43Nyw3LjMxLDIuNjYsMTIuNjksMi42NloiLz48L2c+PHJlY3QgY2xhc3M9ImNscy0yIiB3aWR0aD0iMjIwIiBoZWlnaHQ9IjE5MCIvPjwvZz48L2c+PHN0eWxlIHhtbG5zPSIiIGlkPSJhdXRvY29uc2VudC1wcmVoaWRlIi8+PC9zdmc+`;\n\n  static readonly REFAE_NAME: string = 'refae';\n  static readonly REFAE_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.REFAE_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly REFAE_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5OS40OCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNzk5YWIxO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNzUuNyw3Ni4xN2MtMi42Mi0uNjUtNS43MS0xLjM0LTkuMjUtMi4wNy0zLjU0LS43Mi03LjM1LTEuMDgtMTEuNDEtMS4wOC0xLjg0LDAtNC4wMywuMTctNi41OSwuNDktMi41NiwuMzMtNC40OSwuNjktNS44LDEuMDh2NzkuMDlIMTMuMzRWNTUuNzFjNS4yNS0xLjgzLDExLjQ0LTMuNTcsMTguNTktNS4yMSw3LjE1LTEuNjQsMTUuMTItMi40NiwyMy45LTIuNDYsMS41NywwLDMuNDcsLjEsNS43MSwuMywyLjIzLC4yLDQuNDYsLjQ2LDYuNjksLjc5LDIuMjMsLjMzLDQuNDYsLjcyLDYuNjksMS4xOCwyLjIzLC40Niw0LjEzLDEuMDIsNS43MSwxLjY3bC00LjkyLDI0LjJaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODkuNDgsMTAyLjczYzAtOS4xOCwxLjQxLTE3LjIxLDQuMjMtMjQuMSwyLjgyLTYuODksNi41Mi0xMi42MiwxMS4xMi0xNy4yMSw0LjU5LTQuNTksOS44Ny04LjA3LDE1Ljg0LTEwLjQzLDUuOTctMi4zNiwxMi4xLTMuNTQsMTguMzktMy41NCwxNC42OSwwLDI2LjMsNC40OSwzNC44MiwxMy40OCw4LjUyLDguOTksMTIuNzksMjIuMiwxMi43OSwzOS42NCwwLDEuNzEtLjA3LDMuNTgtLjIsNS42MS0uMTMsMi4wMy0uMjYsMy44NC0uMzksNS40MUgxMTkuNThjLjY1LDYuMDMsMy40NywxMC44Miw4LjQ2LDE0LjM2LDQuOTgsMy41NCwxMS42Nyw1LjMxLDIwLjA3LDUuMzEsNS4zOCwwLDEwLjY1LS40OSwxNS44NC0xLjQ4LDUuMTgtLjk4LDkuNDEtMi4xOSwxMi42OS0zLjY0bDMuOTMsMjMuODFjLTEuNTcsLjc5LTMuNjcsMS41Ny02LjMsMi4zNi0yLjYyLC43OS01LjU0LDEuNDgtOC43NSwyLjA3LTMuMjIsLjU5LTYuNjYsMS4wOC0xMC4zMywxLjQ4LTMuNjcsLjM5LTcuMzUsLjU5LTExLjAyLC41OS05LjMxLDAtMTcuNDEtMS4zOC0yNC4zLTQuMTMtNi44OS0yLjc1LTEyLjU5LTYuNTItMTcuMTItMTEuMzEtNC41My00Ljc5LTcuODctMTAuNDYtMTAuMDMtMTcuMDItMi4xNi02LjU2LTMuMjUtMTMuNjQtMy4yNS0yMS4yNVptNjguODYtMTEuMjFjLS4xMy0yLjQ5LS41Ni00LjkyLTEuMjgtNy4yOC0uNzItMi4zNi0xLjg0LTQuNDYtMy4zNC02LjMtMS41MS0xLjg0LTMuNDEtMy4zNC01LjcxLTQuNTItMi4zLTEuMTgtNS4xNS0xLjc3LTguNTYtMS43N3MtNi4xLC41Ni04LjQ2LDEuNjdjLTIuMzYsMS4xMi00LjMzLDIuNTktNS45LDQuNDMtMS41NywxLjg0LTIuNzksMy45Ny0zLjY0LDYuMzktLjg1LDIuNDMtMS40OCw0Ljg5LTEuODcsNy4zOGgzOC43NloiLz48L2c+PHJlY3QgY2xhc3M9ImNscy0yIiB3aWR0aD0iMTk5LjQ4IiBoZWlnaHQ9IjE5MCIvPjwvZz48L2c+PHN0eWxlIHhtbG5zPSIiIGlkPSJhdXRvY29uc2VudC1wcmVoaWRlIi8+PC9zdmc+`;\n\n  static readonly S2LOW_NAME: string = 's²low';\n  static readonly S2LOW_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/slow`;\n  // noinspection SpellCheckingInspection\n  static readonly S2LOW_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE5OS40OCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojYWNjYmY5O30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjIuMDYsMTMyLjc5YzUuMzgsMCw5LjE4LS41MiwxMS40MS0xLjU3LDIuMjMtMS4wNSwzLjM0LTMuMDgsMy4zNC02LjEsMC0yLjM2LTEuNDUtNC40My00LjMzLTYuMi0yLjg5LTEuNzctNy4yOC0zLjc3LTEzLjE4LTYtNC41OS0xLjctOC43NS0zLjQ3LTEyLjQ5LTUuMzEtMy43NC0xLjg0LTYuOTItNC4wMy05LjU0LTYuNTktMi42Mi0yLjU2LTQuNjYtNS42MS02LjEtOS4xNS0xLjQ1LTMuNTQtMi4xNi03LjgtMi4xNi0xMi43OSwwLTkuNzEsMy42MS0xNy4zOCwxMC44Mi0yMy4wMiw3LjIxLTUuNjQsMTcuMTItOC40NiwyOS43MS04LjQ2LDYuMywwLDEyLjMzLC41NiwxOC4xLDEuNjcsNS43NywxLjEyLDEwLjM2LDIuMzMsMTMuNzcsMy42NGwtNS4xMiwyMi44MmMtMy40MS0xLjE4LTcuMTItMi4yMy0xMS4xMi0zLjE1LTQtLjkyLTguNDktMS4zOC0xMy40OC0xLjM4LTkuMTgsMC0xMy43NywyLjU2LTEzLjc3LDcuNjcsMCwxLjE4LC4yLDIuMjMsLjU5LDMuMTUsLjM5LC45MiwxLjE4LDEuOCwyLjM2LDIuNjYsMS4xOCwuODUsMi43OSwxLjc4LDQuODIsMi43NywyLjAzLC45OSw0LjYyLDIuMDgsNy43NywzLjI3LDYuNDIsMi4zOCwxMS43NCw0LjczLDE1Ljk0LDcuMDQsNC4yLDIuMzEsNy41MSw0LjgxLDkuOTQsNy40OSwyLjQzLDIuNjgsNC4xMyw1LjY2LDUuMTIsOC45MywuOTgsMy4yNywxLjQ4LDcuMDcsMS40OCwxMS4zOCwwLDEwLjIxLTMuODQsMTcuOTMtMTEuNTEsMjMuMTctNy42Nyw1LjIzLTE4LjUzLDcuODUtMzIuNTYsNy44NS05LjE4LDAtMTYuODItLjc5LTIyLjkyLTIuMzYtNi4xLTEuNTctMTAuMzMtMi44OC0xMi42OS0zLjk0bDQuOTItMjMuODFjNC45OCwxLjk3LDEwLjEsMy41MSwxNS4zNSw0LjYyLDUuMjQsMS4xMiwxMC40MywxLjY3LDE1LjU0LDEuNjdaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTY5LjA5LDE1NS44MWMtOC41My0uMTMtMTUuNDQtMS4wNS0yMC43Ni0yLjc1LTUuMzEtMS43LTkuNTEtNC4xLTEyLjU5LTcuMTgtMy4wOC0zLjA4LTUuMTgtNi44Mi02LjMtMTEuMjEtMS4xMi00LjM5LTEuNjctOS4zNS0xLjY3LTE0Ljg1VjUuODlsMjkuMzEtNC43MlYxMTMuOWMwLDIuNjMsLjIsNC45OSwuNTksNy4wOCwuMzksMi4xLDEuMTUsMy44NywyLjI2LDUuMzEsMS4xMSwxLjQ0LDIuNzIsMi42Miw0LjgyLDMuNTQsMi4xLC45Miw0LjkyLDEuNTEsOC40NiwxLjc3bC00LjEzLDI0LjJaIi8+PC9nPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjE5OS40OCIgaGVpZ2h0PSIxOTAiLz48L2c+PC9nPjxzdHlsZSB4bWxucz0iIiBpZD0iYXV0b2NvbnNlbnQtcHJlaGlkZSIvPjwvc3ZnPg==`;\n\n  static readonly VERSAE_NAME: string = 'versae';\n  static readonly VERSAE_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.VERSAE_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly VERSAE_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIxOS40OCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNzk5YWIxO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDUuMzIsMTUzLjM2Yy02LjcxLTEzLjExLTEzLjUzLTI4LjQ2LTIwLjQ0LTQ2LjA0LTYuOTEtMTcuNTctMTMuNDYtMzYuNzItMTkuNjUtNTcuNDVoMzEuMDhjMS4zMiw1LjEyLDIuODYsMTAuNjYsNC42NCwxNi42MiwxLjc4LDUuOTcsMy42MiwxMiw1LjUzLDE4LjEsMS45MSw2LjEsMy44MiwxMi4wMyw1LjczLDE3LjgsMS45MSw1Ljc3LDMuNzksMTEuMDIsNS42MywxNS43NCwxLjcxLTQuNzIsMy41NS05Ljk3LDUuNTMtMTUuNzQsMS45Ny01Ljc3LDMuOTItMTEuNzEsNS44My0xNy44LDEuOTEtNi4xLDMuNzUtMTIuMTMsNS41My0xOC4xLDEuNzgtNS45NywzLjMzLTExLjUxLDQuNjQtMTYuNjJoMzAuMzJjLTYuMTgsMjAuNzMtMTIuNzMsMzkuODctMTkuNjMsNTcuNDUtNi45LDE3LjU4LTEzLjcxLDMyLjkyLTIwLjQyLDQ2LjA0aC0yNC4zM1oiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xMTcuNTcsMTAyLjQxYzAtOS4xOCwxLjQxLTE3LjIxLDQuMjMtMjQuMSwyLjgyLTYuODksNi41Mi0xMi42MiwxMS4xMi0xNy4yMSw0LjU5LTQuNTksOS44Ny04LjA3LDE1Ljg0LTEwLjQzLDUuOTctMi4zNiwxMi4xLTMuNTQsMTguMzktMy41NCwxNC42OSwwLDI2LjMsNC40OSwzNC44MiwxMy40OCw4LjUyLDguOTksMTIuNzksMjIuMiwxMi43OSwzOS42NCwwLDEuNzEtLjA3LDMuNTgtLjIsNS42MS0uMTMsMi4wMy0uMjYsMy44NC0uMzksNS40MWgtNjYuNWMuNjUsNi4wMywzLjQ3LDEwLjgyLDguNDYsMTQuMzYsNC45OCwzLjU0LDExLjY3LDUuMzEsMjAuMDcsNS4zMSw1LjM4LDAsMTAuNjUtLjQ5LDE1Ljg0LTEuNDgsNS4xOC0uOTgsOS40MS0yLjE5LDEyLjY5LTMuNjRsMy45MywyMy44MWMtMS41NywuNzktMy42NywxLjU3LTYuMywyLjM2LTIuNjIsLjc5LTUuNTQsMS40OC04Ljc1LDIuMDctMy4yMiwuNTktNi42NiwxLjA4LTEwLjMzLDEuNDgtMy42NywuMzktNy4zNSwuNTktMTEuMDIsLjU5LTkuMzEsMC0xNy40MS0xLjM4LTI0LjMtNC4xMy02Ljg5LTIuNzUtMTIuNTktNi41Mi0xNy4xMi0xMS4zMS00LjUzLTQuNzktNy44Ny0xMC40Ni0xMC4wMy0xNy4wMi0yLjE2LTYuNTYtMy4yNS0xMy42NC0zLjI1LTIxLjI1Wm02OC44Ni0xMS4yMWMtLjEzLTIuNDktLjU2LTQuOTItMS4yOC03LjI4LS43Mi0yLjM2LTEuODQtNC40Ni0zLjM0LTYuMy0xLjUxLTEuODQtMy40MS0zLjM0LTUuNzEtNC41Mi0yLjMtMS4xOC01LjE1LTEuNzctOC41Ni0xLjc3cy02LjEsLjU2LTguNDYsMS42N2MtMi4zNiwxLjEyLTQuMzMsMi41OS01LjksNC40My0xLjU3LDEuODQtMi43OSwzLjk3LTMuNjQsNi4zOS0uODUsMi40My0xLjQ4LDQuODktMS44Nyw3LjM4aDM4Ljc2WiIvPjwvZz48cmVjdCBjbGFzcz0iY2xzLTIiIHdpZHRoPSIyMTkuNDgiIGhlaWdodD0iMTkwIi8+PC9nPjwvZz48c3R5bGUgeG1sbnM9IiIgaWQ9ImF1dG9jb25zZW50LXByZWhpZGUiLz48L3N2Zz4=`;\n\n  static readonly WEBDELIB_NAME: string = 'webdelib';\n  static readonly WEBDELIB_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.WEBDELIB_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly WEBDELIB_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI2OS43OCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojOGJkNDViO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODIuMjYsOTMuOTdjLTIuNjIsOS45Ny01LjQxLDE5Ljg3LTguMzYsMjkuNzEtMi45NSw5Ljg0LTYuMDcsMTkuNzQtOS4zNSwyOS43MWgtMjIuODJjLTIuMzctNS41MS00LjkzLTEyLjA3LTcuNjktMTkuNjctMi43Ni03LjYxLTUuNjMtMTUuOS04LjU4LTI0Ljg5LTIuOTYtOC45OC01Ljk5LTE4LjQ5LTkuMDgtMjguNTMtMy4wOS0xMC4wMy02LjA4LTIwLjE3LTguOTgtMzAuNGgzMC44OWMxLjA1LDQuNzIsMi4yMSw5Ljg3LDMuNDYsMTUuNDQsMS4yNSw1LjU4LDIuNTcsMTEuMzEsMy45NiwxNy4yMXMyLjg0LDExLjg0LDQuMzYsMTcuODFjMS41Miw1Ljk3LDMuMDYsMTEuNzEsNC42NSwxNy4yMSwxLjctNS43NywzLjM4LTExLjY3LDUuMDItMTcuNzEsMS42NC02LjAzLDMuMjEtMTEuOTcsNC43Mi0xNy44LDEuNTEtNS44MywyLjk1LTExLjQ4LDQuMzMtMTYuOTIsMS4zOC01LjQ0LDIuNTktMTAuNTMsMy42NC0xNS4yNWgyMS4yNWMxLjA1LDQuNzIsMi4yMyw5LjgxLDMuNTQsMTUuMjUsMS4zMSw1LjQ0LDIuNjksMTEuMDksNC4xMywxNi45MiwxLjQ0LDUuODQsMi45NSwxMS43Nyw0LjUzLDE3LjgsMS41Nyw2LjAzLDMuMjEsMTEuOTQsNC45MiwxNy43MSwxLjU4LTUuNTEsMy4xNy0xMS4yNSw0Ljc1LTE3LjIxLDEuNTgtNS45NywzLjA3LTExLjksNC40NS0xNy44MSwxLjM4LTUuOSwyLjctMTEuNjQsMy45Ni0xNy4yMSwxLjI1LTUuNTcsMi40MS0xMC43MiwzLjQ2LTE1LjQ0aDMwLjQ5Yy0yLjksMTAuMjMtNS44OSwyMC4zNi04Ljk4LDMwLjQtMy4wOSwxMC4wMy02LjEyLDE5LjU1LTkuMDcsMjguNTMtMi45Niw4Ljk5LTUuODUsMTcuMjgtOC42OCwyNC44OS0yLjgzLDcuNjEtNS40MiwxNC4xNy03Ljc5LDE5LjY3aC0yMi44MmMtMy4yOC05Ljk3LTYuNDktMTkuODctOS42NC0yOS43MS0zLjE1LTkuODQtNi4wMy0xOS43NC04LjY2LTI5LjcxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTI2Mi4zOCwxNTAuMDRjLTIuNjIsLjc5LTUuNjQsMS41NC05LjA1LDIuMjYtMy40MSwuNzItNi45OCwxLjM0LTEwLjcyLDEuODctMy43NCwuNTItNy41NCwuOTUtMTEuNDEsMS4yOC0zLjg3LC4zMy03LjU3LC40OS0xMS4xMiwuNDktOC41MywwLTE2LjEzLTEuMjUtMjIuODItMy43NC02LjY5LTIuNDktMTIuMzMtNi4wNi0xNi45Mi0xMC43Mi00LjU5LTQuNjUtOC4xLTEwLjI5LTEwLjUzLTE2LjkyLTIuNDMtNi42Mi0zLjY0LTE0LjA3LTMuNjQtMjIuMzNzMS4wNS0xNS45NywzLjE1LTIyLjcyYzIuMS02Ljc1LDUuMTItMTIuNDksOS4wNS0xNy4yMSwzLjk0LTQuNzIsOC43Ni04LjMzLDE0LjQ2LTEwLjgyLDUuNzEtMi40OSwxMi4yMy0zLjc0LDE5LjU4LTMuNzQsNC4wNiwwLDcuNywuMzksMTAuOTIsMS4xOCwzLjIxLC43OSw2LjQ2LDEuOSw5Ljc0LDMuMzRWNS40M2wyOS4zMS00LjcyVjE1MC4wNFptLTY2LjMtNDkuMTljMCw5LjA1LDIuMDMsMTYuMzMsNi4xLDIxLjg0LDQuMDYsNS41MSwxMC4xLDguMjYsMTguMSw4LjI2LDIuNjIsMCw1LjA1LS4xLDcuMjgtLjMsMi4yMy0uMiw0LjA2LS40Miw1LjUxLS42OXYtNTMuMzJjLTEuODQtMS4xOC00LjIzLTIuMTYtNy4xOC0yLjk1LTIuOTUtLjc5LTUuOTQtMS4xOC04Ljk1LTEuMTgtMTMuOSwwLTIwLjg1LDkuNDQtMjAuODUsMjguMzNaIi8+PC9nPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjI2OS43OCIgaGVpZ2h0PSIxOTAiLz48L2c+PC9nPjxzdHlsZSB4bWxucz0iIiBpZD0iYXV0b2NvbnNlbnQtcHJlaGlkZSIvPjwvc3ZnPg==`;\n\n  static readonly WEBGFC_NAME: string = 'webgfc';\n  static readonly WEBGFC_LINK: string = `${StructureMessages.LIBRICIEL_LINK}/logiciels/${StructureMessages.WEBGFC_NAME}`;\n  // noinspection SpellCheckingInspection\n  static readonly WEBGFC_LOGO: string = `PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FscXVlXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI2OS43OCAxOTAiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojODRjOWRhO30uY2xzLTJ7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iQ2FscXVlXzItMiI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODMuMjQsOTMuNTRjLTIuNjIsOS45Ny01LjQxLDE5Ljg3LTguMzYsMjkuNzEtMi45NSw5Ljg0LTYuMDcsMTkuNzQtOS4zNSwyOS43MWgtMjIuODJjLTIuMzctNS41MS00LjkzLTEyLjA3LTcuNjktMTkuNjctMi43Ni03LjYxLTUuNjMtMTUuOS04LjU4LTI0Ljg5LTIuOTYtOC45OC01Ljk5LTE4LjQ5LTkuMDgtMjguNTMtMy4wOS0xMC4wMy02LjA4LTIwLjE3LTguOTgtMzAuNGgzMC44OWMxLjA1LDQuNzIsMi4yMSw5Ljg3LDMuNDYsMTUuNDQsMS4yNSw1LjU4LDIuNTcsMTEuMzEsMy45NiwxNy4yMXMyLjg0LDExLjg0LDQuMzYsMTcuODFjMS41Miw1Ljk3LDMuMDYsMTEuNzEsNC42NSwxNy4yMSwxLjctNS43NywzLjM4LTExLjY3LDUuMDItMTcuNzEsMS42NC02LjAzLDMuMjEtMTEuOTcsNC43Mi0xNy44LDEuNTEtNS44MywyLjk1LTExLjQ4LDQuMzMtMTYuOTIsMS4zOC01LjQ0LDIuNTktMTAuNTMsMy42NC0xNS4yNWgyMS4yNWMxLjA1LDQuNzIsMi4yMyw5LjgxLDMuNTQsMTUuMjUsMS4zMSw1LjQ0LDIuNjksMTEuMDksNC4xMywxNi45MiwxLjQ0LDUuODQsMi45NSwxMS43Nyw0LjUzLDE3LjgsMS41Nyw2LjAzLDMuMjEsMTEuOTQsNC45MiwxNy43MSwxLjU4LTUuNTEsMy4xNy0xMS4yNSw0Ljc1LTE3LjIxLDEuNTgtNS45NywzLjA3LTExLjksNC40NS0xNy44MSwxLjM4LTUuOSwyLjctMTEuNjQsMy45Ni0xNy4yMSwxLjI1LTUuNTcsMi40MS0xMC43MiwzLjQ2LTE1LjQ0aDMwLjQ5Yy0yLjksMTAuMjMtNS44OSwyMC4zNi04Ljk4LDMwLjQtMy4wOSwxMC4wMy02LjEyLDE5LjU1LTkuMDcsMjguNTMtMi45Niw4Ljk5LTUuODUsMTcuMjgtOC42OCwyNC44OS0yLjgzLDcuNjEtNS40MiwxNC4xNy03Ljc5LDE5LjY3aC0yMi44MmMtMy4yOC05Ljk3LTYuNDktMTkuODctOS42NC0yOS43MS0zLjE1LTkuODQtNi4wMy0xOS43NC04LjY2LTI5LjcxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTI2MS4zOSwxMzkuOTdjMCwxNi45Mi00LjMsMjkuNDgtMTIuODksMzcuNjgtOC41OSw4LjItMjEuODcsMTIuMy0zOS44NCwxMi4zLTYuMjksMC0xMi41OS0uNTYtMTguODktMS42Ny02LjMtMS4xMi0xMi4xMy0yLjU5LTE3LjUxLTQuNDNsNS4xMi0yNC41OWM0LjU5LDEuODMsOS40MSwzLjI4LDE0LjQ2LDQuMzMsNS4wNSwxLjA1LDEwLjc5LDEuNTcsMTcuMjEsMS41Nyw4LjM5LDAsMTQuMzMtMS44NCwxNy44MS01LjUxLDMuNDctMy42Nyw1LjIxLTguMzksNS4yMS0xNC4xN3YtMy43NGMtMy4xNSwxLjQ0LTYuMzksMi41My05Ljc0LDMuMjUtMy4zNCwuNzItNi45OCwxLjA4LTEwLjkyLDEuMDgtMTQuMywwLTI1LjI1LTQuMjMtMzIuODYtMTIuNjktNy42MS04LjQ2LTExLjQxLTIwLjI5LTExLjQxLTM1LjUxLDAtNy42LDEuMTgtMTQuNTIsMy41NC0yMC43NiwyLjM2LTYuMjMsNS44LTExLjU3LDEwLjMzLTE2LjAzLDQuNTMtNC40NiwxMC4wNi03LjksMTYuNjItMTAuMzMsNi41Ni0yLjQzLDEzLjk3LTMuNjQsMjIuMjMtMy42NCwzLjU0LDAsNy4xOCwuMTcsMTAuOTIsLjQ5LDMuNzQsLjMzLDcuNDQsLjc2LDExLjEyLDEuMjgsMy42NywuNTMsNy4xOCwxLjE1LDEwLjUzLDEuODcsMy4zNCwuNzIsNi4zMywxLjQ4LDguOTUsMi4yNnY4Ni45NlptLTY0LjMzLTQyLjFjMCwxNi40LDYuNjIsMjQuNTksMTkuODcsMjQuNTksMy4wMiwwLDUuODMtLjM5LDguNDYtMS4xOCwyLjYyLS43OSw0Ljg1LTEuNyw2LjY5LTIuNzV2LTQ2LjgyYy0xLjQ0LS4yNi0zLjE1LS40OS01LjEyLS42OS0xLjk3LS4yLTQuMjYtLjMtNi44OS0uMy03Ljc0LDAtMTMuNTEsMi41Ni0xNy4zMSw3LjY3LTMuODEsNS4xMi01LjcxLDExLjYxLTUuNzEsMTkuNDhaIi8+PC9nPjxyZWN0IGNsYXNzPSJjbHMtMiIgd2lkdGg9IjI2OS43OCIgaGVpZ2h0PSIxOTAiLz48L2c+PC9nPjxzdHlsZSB4bWxucz0iIiBpZD0iYXV0b2NvbnNlbnQtcHJlaGlkZSIvPjwvc3ZnPg==`;\n\n  static getApplicationCopyright(applicationName: string): string {\n    return `${applicationName}\\u00a0©`;\n  }\n\n  static getApplicationCopyrightAddition(applicationName: string, currentYear: number): string {\n    return `\\u00a0Libriciel SCOP 2006-${currentYear}`;\n  }\n\n  static getTooltip(application: Application): string {\n    return `En savoir plus sur l'application ${application.title}`;\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport enum ApplicationId {\n\n  as = 'ASALAE',\n  ce = 'COMELUS',\n  id = 'IDELIBRE',\n  ip = 'IPARAPHEUR',\n  pa = 'PASTELL',\n  re = 'REFAE',\n  sl = 'S2LOW',\n  ve = 'VERSAE',\n  wd = 'WEBDELIB',\n  wg = 'WEBGFC',\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Application} from \"./model/application\";\nimport {StructureMessages} from \"./structure-messages\";\nimport {ApplicationId} from \"./model/application-id\";\n\nexport const Applications: Application[] = [\n  {\n    id: ApplicationId.as,\n    title: StructureMessages.ASALAE_NAME,\n    link: StructureMessages.ASALAE_LINK,\n    logo: StructureMessages.ASALAE_LOGO\n  },\n  {\n    id: ApplicationId.ce,\n    title: StructureMessages.COMELUS_NAME,\n    link: StructureMessages.COMELUS_LINK,\n    logo: StructureMessages.COMELUS_LOGO\n  },\n  {\n    id: ApplicationId.id,\n    title: StructureMessages.IDELIBRE_NAME,\n    link: StructureMessages.IDELIBRE_LINK,\n    logo: StructureMessages.IDELIBRE_LOGO\n  },\n  {\n    id: ApplicationId.ip,\n    title: StructureMessages.IPARAPHEUR_NAME,\n    link: StructureMessages.IPARAPHEUR_LINK,\n    logo: StructureMessages.IPARAPHEUR_LOGO\n  },\n  {\n    id: ApplicationId.pa,\n    title: StructureMessages.PASTELL_NAME,\n    link: StructureMessages.PASTELL_LINK,\n    logo: StructureMessages.PASTELL_LOGO\n  },\n  {\n    id: ApplicationId.re,\n    title: StructureMessages.REFAE_NAME,\n    link: StructureMessages.REFAE_LINK,\n    logo: StructureMessages.REFAE_LOGO\n  },\n  {\n    id: ApplicationId.sl,\n    title: StructureMessages.S2LOW_NAME,\n    link: StructureMessages.S2LOW_LINK,\n    logo: StructureMessages.S2LOW_LOGO\n  },\n  {\n    id: ApplicationId.ve,\n    title: StructureMessages.VERSAE_NAME,\n    link: StructureMessages.VERSAE_LINK,\n    logo: StructureMessages.VERSAE_LOGO\n  },\n  {\n    id: ApplicationId.wd,\n    title: StructureMessages.WEBDELIB_NAME,\n    link: StructureMessages.WEBDELIB_LINK,\n    logo: StructureMessages.WEBDELIB_LOGO\n  },\n  {\n    id: ApplicationId.wg,\n    title: StructureMessages.WEBGFC_NAME,\n    link: StructureMessages.WEBGFC_LINK,\n    logo: StructureMessages.WEBGFC_LOGO\n  }\n];\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {Application} from \"../model/application\";\nimport {Applications} from \"../applications\";\nimport {StructureMessages} from \"../structure-messages\";\n\n@Component({\n  selector: 'ls-footer',\n  templateUrl: './footer.component.html',\n  styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent {\n\n  messages = StructureMessages;\n  @Input() application_name: string = 'Application Libriciel';\n  @Input() active;\n\n  current_year: number = (new Date()).getFullYear();\n\n  app_list: Application [] = Applications;\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<footer class=\"ls-footer\">\n  <div class=\"ls-footer-item d-none d-xl-block text-start\">\n    <ul class=\"ls-icon-list ls-hide-when-no-login\">\n      <li *ngFor=\"let app of app_list\">\n        <a [href]=\"app.link\"\n           [ngClass]=\"{'active' : active == app.id }\"\n           [title]=\"messages.getTooltip(app)\"\n           data-toggle=\"tooltip\"\n           id=\"{{app.title}}\"\n           target=\"_blank\">\n          <img [alt]=\"app.title\" [src]=\"'data:image/svg+xml;base64,'+app.logo\">\n        </a>\n      </li>\n    </ul>\n  </div>\n\n  <div class=\"ls-footer-item application-copyright d-flex\">\n    <span class=\"d-xl-none\" [innerText]=\"messages.getApplicationCopyright(application_name)\"></span>\n    <span class=\"d-none d-xl-block\"\n          [innerText]=\"messages.getApplicationCopyright(application_name) + messages.getApplicationCopyrightAddition(application_name, current_year)\">\n    </span>\n  </div>\n\n  <div class=\"ls-footer-item ls-logo text-end\">\n    <a [href]=\"messages.LIBRICIEL_LINK\"\n       [title]=\"messages.LIBRICIEL_TOOLTIP\"\n       class=\"ls-logo\"\n       data-toggle=\"tooltip\"\n       id=\"libriciel\"\n       target=\"_blank\">\n      <img [alt]=\"messages.LIBRICIEL_TOOLTIP\" [src]=\"'data:image/svg+xml;base64,'+messages.LIBRICIEL_LOGO\">\n    </a>\n  </div>\n</footer>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport * as freeSolidIcons from '@fortawesome/free-solid-svg-icons';\nimport * as freeRegularIcons from '@fortawesome/free-regular-svg-icons';\nimport {IconDefinition} from \"@fortawesome/fontawesome-common-types\";\n\nexport class CommonIcons {\n  static SAVE_ICON: IconDefinition = freeSolidIcons.faSave;\n  static SHOW_ICON: IconDefinition = freeRegularIcons.faEye;\n  static DONT_SHOW_ICON: IconDefinition = freeRegularIcons.faEyeSlash;\n  static GO_BACK_ICON: IconDefinition = freeSolidIcons.faArrowLeft;\n  static SPINNER_ICON: IconDefinition = freeSolidIcons.faCircleNotch;\n  static ADD_ICON: IconDefinition = freeSolidIcons.faPlusCircle;\n  static CREATE_ICON: IconDefinition = freeSolidIcons.faPlus;\n  static INFO_ICON: IconDefinition = freeSolidIcons.faInfo;\n  static WARNING_ICON: IconDefinition = freeSolidIcons.faExclamationTriangle;\n  static TOOLTIP_ICON: IconDefinition = freeSolidIcons.faInfoCircle;\n  static DELETE_ICON: IconDefinition = freeSolidIcons.faTrashAlt;\n  static REMOVE_ICON: IconDefinition = freeSolidIcons.faTimesCircle;\n  static CLOSE_ICON: IconDefinition = freeSolidIcons.faTimes;\n  static MORE_ACTIONS_ICON: IconDefinition = freeSolidIcons.faEllipsisV;\n  static INVALID_FORM_ICON: IconDefinition = freeSolidIcons.faExclamationCircle;\n  static DEFAULT_MENU_ICON: IconDefinition = freeSolidIcons.faFolderOpen;\n  static DEFAULT_ACTION_ICON: IconDefinition = freeSolidIcons.faCogs;\n  static SEARCH_ICON: IconDefinition = freeSolidIcons.faSearch;\n  static CALENDAR_ICON: IconDefinition = freeRegularIcons.faCalendarAlt;\n  static VALIDATED_ICON: IconDefinition = freeSolidIcons.faCheck;\n  static REJECTED_ICON: IconDefinition = freeSolidIcons.faTimes;\n  static EDIT_ICON: IconDefinition = freeSolidIcons.faPencilAlt;\n  static REPLACE_ICON: IconDefinition = freeSolidIcons.faSyncAlt;\n  static PREVIOUS_ICON: IconDefinition = freeSolidIcons.faArrowLeft;\n  static NEXT_ICON: IconDefinition = freeSolidIcons.faArrowRight;\n  static CLOSE_ACCORDION_ICON: IconDefinition = freeSolidIcons.faMinusSquare;\n  static EXPAND_ACCORDION_ICON: IconDefinition = freeSolidIcons.faPlusSquare;\n  static SIGNED_ACTS_ICON: IconDefinition = freeSolidIcons.faUniversity;\n  static SUBMIT_ICON: IconDefinition = freeSolidIcons.faPaperPlane;\n  static PREVIEW_ICON: IconDefinition = freeRegularIcons.faEye;\n  static RE_INIT_ICON: IconDefinition = freeSolidIcons.faUndo;\n  static LOGIN_ICON: IconDefinition = freeSolidIcons.faSignInAlt;\n  static PASSWORD_ICON: IconDefinition = freeSolidIcons.faLock;\n  static LOGIN: IconDefinition = freeSolidIcons.faSignInAlt;\n  static DOWNLOAD_ICON: IconDefinition = freeSolidIcons.faDownload;\n  static COLLAPSE_ICON: IconDefinition = freeSolidIcons.faAngleDoubleLeft;\n  static UN_COLLAPSE_ICON: IconDefinition = freeSolidIcons.faAngleDoubleRight;\n}\n\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\n\n@Injectable()\nexport class SidebarService {\n  protected collapseSource: Subject<any> = new Subject<boolean>();\n  collapse$: Observable<any> = this.collapseSource.asObservable();\n\n  collapsed(isCollapsed: boolean) {\n    this.collapseSource.next(isCollapsed);\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {AfterContentInit, Component, ElementRef, HostBinding, Input, Renderer2} from '@angular/core';\nimport {SidebarService} from './sidebar.service';\nimport {CommonIcons} from \"../../icons/common-icons\";\n\n@Component({\n  selector: 'ls-sidebar',\n  templateUrl: './sidebar.component.html',\n  styleUrls: ['./sidebar.component.scss']\n})\nexport class SidebarComponent implements AfterContentInit {\n\n  readonly commonIcons = CommonIcons;\n  @HostBinding('class.collapsed') @Input() isCollapsed: boolean;\n  private changes: MutationObserver;\n  private mainMenuItems;\n  private subMenuLists;\n\n  constructor(private el: ElementRef, private sidebarService: SidebarService, private renderer: Renderer2) {\n  }\n\n  ngAfterContentInit() {\n    this.mainMenuItems = this.el.nativeElement.querySelectorAll('.main-menu > li');\n    this.subMenuLists = this.el.nativeElement.querySelectorAll('.main-menu > li > .sub-menu');\n\n    for (const mainMenuItem of this.mainMenuItems) {\n      this.renderer.listen(mainMenuItem, 'mouseover', () => {\n        mainMenuItem.classList.add('over-menu');\n\n        let maxWidth: number = 200;\n        const menuItem = mainMenuItem.querySelector('a');\n        const menuItemSpan = mainMenuItem.querySelector('a > span');\n        const subMenu = mainMenuItem.querySelector('.sub-menu');\n\n        const position = mainMenuItem.getBoundingClientRect();\n        if (this.isCollapsed) {\n          menuItem.style.transform = 'translateY(' + position.top + 'px)';\n          maxWidth = menuItemSpan.clientWidth > maxWidth ? menuItemSpan.clientWidth : maxWidth;\n        }\n        if (this.isCollapsed || !mainMenuItem.classList.contains('active')) {\n          const Xpx = this.isCollapsed ? 3.125 : 12.5;\n          subMenu.style.transform = 'translate3d(' + Xpx + 'rem, ' + position.top + 'px, 0px)';\n          maxWidth = subMenu.clientWidth > maxWidth ? subMenu.clientWidth : maxWidth;\n        }\n        if (this.isCollapsed) {\n          if (menuItemSpan.clientWidth < maxWidth) {\n            menuItemSpan.style.width = maxWidth + 'px';\n          }\n          if (subMenu.clientWidth < maxWidth) {\n            subMenu.style.width = maxWidth + 'px';\n          }\n        }\n\n      });\n\n      this.renderer.listen(mainMenuItem, 'mouseleave', () => {\n        mainMenuItem.classList.remove('over-menu');\n        mainMenuItem.querySelector('a').style.transform = '';\n        mainMenuItem.querySelector('.sub-menu').style.transform = '';\n        mainMenuItem.querySelector('.sub-menu').style.width = '';\n        mainMenuItem.querySelector('a > span').style.width = '';\n\n      });\n    }\n\n    this.setCollapsedClassEvent();\n\n    this.setMainMenuEvents();\n    this.setSubMenuEvents();\n  }\n\n  setCollapsedClassEvent() {\n    if (this.el.nativeElement.className === 'collapsed') {\n      this.isCollapsed = true;\n    }\n\n    this.changes = new MutationObserver((mutations: MutationRecord[]) => mutations.forEach((mutation: MutationRecord) => this.changed(mutation))\n    );\n\n    this.changes.observe(this.el.nativeElement, {\n      attributes: true,\n      childList: true,\n      characterData: true\n    });\n  }\n\n  changed(event) {\n    if (event.attributeName === 'class') {\n      this.isCollapsed = event.target.className.indexOf('collapsed') !== -1;\n      this.sidebarService.collapsed(this.isCollapsed);\n    }\n  }\n\n  setMainMenuEvents() {\n    const mainMenu = this.el.nativeElement.querySelectorAll('.main-menu');\n    for (const menu of mainMenu) {\n      for (const child of menu.children) {\n        this.renderer.listen(child, 'click', () => {\n          const activeItems = this.el.nativeElement.querySelectorAll('.active');\n          // We remove all active class\n          for (const childlist of activeItems) {\n            if (childlist.parentElement.parentElement !== child) {\n              childlist.classList.remove('active');\n            }\n          }\n          // We set active to current item\n          child.classList.add('active');\n\n          if (!this.isCollapsed) {\n            child.querySelector('a').style.transform = '';\n            child.querySelector('.sub-menu').style.transform = '';\n          }\n        });\n      }\n    }\n  }\n\n  setSubMenuEvents() {\n    const subMenus = this.el.nativeElement.querySelectorAll('.sub-menu li');\n\n    for (const submenu of subMenus) {\n      this.renderer.listen(submenu, 'click', () => {\n        // We remove all active class\n        for (const childlist of subMenus) {\n          childlist.classList.remove('active');\n        }\n        // We set active to current item\n        submenu.classList.add('active');\n      });\n    }\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<aside>\n  <ng-content></ng-content>\n\n  <div (click)=\"isCollapsed = !isCollapsed\"\n       class=\"ls-sidebar-toggle\">\n    <fa-icon [icon]=\"isCollapsed ? commonIcons.UN_COLLAPSE_ICON : commonIcons.COLLAPSE_ICON\"\n             class=\"toggle-collapse\">\n    </fa-icon>\n  </div>\n</aside>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, HostListener, OnInit} from '@angular/core';\nimport {animate, state, style, transition, trigger} from '@angular/animations';\n\n\n@Component({\n  selector: 'ls-back-to-top',\n  templateUrl: './back-to-top.component.html',\n  styleUrls: ['./back-to-top.component.scss'],\n  animations: [\n    trigger('fadeInOut', [\n      // ...\n      state('void', style({\n        opacity: 0\n      })),\n      transition('void <=> *', animate(300)),\n    ]),\n  ],\n\n})\nexport class BackToTopComponent implements OnInit {\n\n  showBackToTop: boolean = true;\n  offset: number = 200;\n\n  @HostListener('window:scroll')\n  checkScroll() {\n    this.showBackToTop = window.pageYOffset > this.offset;\n  }\n\n  ngOnInit() {\n    this.checkScroll();\n  }\n\n  backToTop() {\n    window.scrollTo({left: 0, top: 0, behavior: 'smooth'});\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div class=\"backtotop\" *ngIf=\"showBackToTop\" @fadeInOut>\n  <a (click)=\"backToTop()\" class=\"top-link\"><i class=\"fa fa-chevron-up\"></i></a>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, ElementRef} from '@angular/core';\nimport {SidebarService} from '../sidebar/sidebar.service';\n\n@Component({\n  selector: 'ls-content',\n  templateUrl: './content.component.html',\n  styleUrls: ['./content.component.scss']\n})\nexport class ContentComponent {\n\n  constructor(private el: ElementRef, private sidebarService: SidebarService) {\n    this.sidebarService.collapse$\n        .subscribe(isCollapsed => this.collapseEvent(isCollapsed));\n  }\n\n  collapseEvent(isCollapsed) {\n    if (isCollapsed) {\n      this.el.nativeElement.classList.add('sidebar-collapsed');\n    } else {\n      this.el.nativeElement.classList.remove('sidebar-collapsed');\n    }\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<main>\n  <ng-content></ng-content>\n  <ls-back-to-top></ls-back-to-top>\n</main>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  HostListener,\n  Input,\n  Output,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n  selector: 'ls-color-picker',\n  templateUrl: './color-picker.component.html',\n  styleUrls: ['./color-picker.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ColorPickerComponent),\n      multi: true\n    }\n  ],\n})\nexport class ColorPickerComponent implements ControlValueAccessor, AfterViewInit {\n\n  @ViewChild('picker') picker;    // square with gradient\n  @ViewChild('slider') slider;    // hue slider\n  @ViewChild('pointer') pointer;  // color pointer\n  @ViewChild('input') input;      // input for hex color\n\n  @Input() size: number = 200; // height == width\n\n  @Output() // Emit on 'color' property changed\n  changed: EventEmitter<string> = new EventEmitter();\n\n  isDown: boolean = false;     // mouse down on 'slider' element\n  sqIsDown: boolean = false;   // mouse down on 'picker' element\n  /**\n   * The element make an HSV as it's much easier to calculate with a color picker\n   * H : hue\n   * S : saturation\n   * V : value\n   */\n\n  hue: number = 0;\n  saturation: number = 0;\n  value: number = 0;\n\n  // This property is used to calculate 'picker' background with specific hue, we use 'hsl' with current 'hue'\n  cssProperties: string = 'linear-gradient(to top, #000000, rgba(255,255,255,0)), linear-gradient(to right, #ffffff , hsl(%hue%, 100%, 50%))';\n\n  constructor(private renderer2: Renderer2, private element: ElementRef) {\n  }\n\n  private _color; // Private color, as we need setter and getter to listen to change\n\n  /*******\n   * Define color getter and setter\n   */\n  get color() {\n    return this._color;\n  }\n\n  @Input()\n  set color(value) {\n    this.defineColor(value);\n  }\n\n  /*******\n   * Define 'id' of input element and remove id of current element\n   */\n  ngAfterViewInit(): void {\n    const id: string = this.element.nativeElement.getAttribute('id');\n    this.renderer2.removeAttribute(this.element.nativeElement, 'id');\n    this.renderer2.setAttribute(this.input.nativeElement, 'id', id);\n    this.defineColor(this.color);\n  }\n\n  /**\n   * Update color of 'slider' and 'picker' on 'hue' change\n   */\n  changePickerColor() {\n    if (this.slider) {\n      this.renderer2.setStyle(this.slider.nativeElement, 'background', 'hsl(%hue%, 100%, 50%)'.replace('%hue%', '' + this.hue));\n      this.renderer2.setStyle(this.picker.nativeElement, 'background', this.cssProperties.replace('%hue%', '' + this.hue));\n    }\n  }\n\n  /**\n   * Update _color property on change, and emit onChange event for ngModel\n   */\n  pickerChange() {\n    const rgb: number[] = this.hsvToRgb();\n    const hex: string = '#' + ('00' + rgb[0].toString(16).toUpperCase()).slice(-2) +\n        ('00' + rgb[1].toString(16).toUpperCase()).slice(-2) +\n        ('00' + rgb[2].toString(16).toUpperCase()).slice(-2);\n\n    this._color = hex;\n    this.onChange(hex);\n  }\n\n  /**\n   * Set 'slider' position with 'hue' value\n   */\n  huePosition() {\n    const px: number = Math.round(Math.max(this.hue * (this.size - 24) / 360, 0));\n    if (this.slider) {\n      this.renderer2.setStyle(this.slider.nativeElement, 'left', px - 12 + 'px');\n    }\n    this.changePickerColor();\n    this.pickerChange();\n  }\n\n  /**\n   * Set 'pointer' position with 'saturation' and 'value' values\n   */\n  sqPosition() {\n    if (this.pointer) {\n      const px: number = Math.round(Math.max(this.saturation * this.size / 100, 0));\n      this.renderer2.setStyle(this.pointer.nativeElement, 'left', px - 12 + 'px');\n\n      const py: number = Math.round(Math.max((100 - this.value) * this.size / 100, 0));\n      this.renderer2.setStyle(this.pointer.nativeElement, 'top', py - 12 + 'px');\n\n      this.pickerChange();\n    }\n  }\n\n  /********\n   * When we change 'hue' with mouse click, juste go to the position and emit color change\n   * @param event the mouse click event\n   */\n  changeHue(event) {\n    this.hue = Math.round(event.offsetX * 360 / event.target.clientWidth);\n    this.huePosition();\n    this.changed.emit(this._color);\n  }\n\n  defineColor(color) {\n    if (color && color.length === 7) {\n      this._color = color;\n      const R: number = parseInt(this._color.substring(1, 3), 16);\n      const G: number = parseInt(this._color.substring(3, 5), 16);\n      const B: number = parseInt(this._color.substring(5), 16);\n      this.rgbToHsv(R, G, B);\n      this.huePosition();\n      this.sqPosition();\n      this.changed.emit(this._color);\n    }\n  }\n\n  /****\n   * Events handlers : mouseup, mousemove and mousedown\n   */\n  @HostListener('document:mouseup', [])\n  mouseUp() {\n    if (this.isDown || this.sqIsDown) {\n      // Trigger event only if it was clicked\n      this.changed.emit(this._color);\n    }\n    this.isDown = false;\n    this.sqIsDown = false;\n  }\n\n  @HostListener('document:mousemove', ['$event'])\n  mouseMove(event) {\n    if (this.isDown) {\n      const rect = this.slider.nativeElement.parentElement.getBoundingClientRect();\n      const position: number = event.clientX - rect.left;\n\n      this.hue = Math.round(position * 360 / rect.width);\n      if (this.hue > 360) {\n        this.hue = 360;\n      } else if (this.hue < 0) {\n        this.hue = 0;\n      }\n      this.huePosition();\n    }\n    if (this.sqIsDown) {\n      const rect = this.pointer.nativeElement.parentElement.getBoundingClientRect();\n      const xPosition: number = event.clientX - rect.left;\n\n      this.saturation = Math.round(xPosition * 100 / rect.width);\n      if (this.saturation > 100) {\n        this.saturation = 100;\n      } else if (this.saturation < 0) {\n        this.saturation = 0;\n      }\n\n      const yPosition: number = event.clientY - rect.top;\n\n      this.value = 100 - Math.round(yPosition * 100 / rect.height);\n      if (this.value > 100) {\n        this.value = 100;\n      } else if (this.value < 0) {\n        this.value = 0;\n      }\n\n      this.sqPosition();\n    }\n  }\n\n  hueMouseDown() {\n    this.isDown = true;\n  }\n\n  sqMouseDown(event) {\n    this.sqIsDown = true;\n    this.mouseMove(event);\n  }\n\n\n  /******\n   * ngModel required functions\n   */\n  onChange: any = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  onTouched: any = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  registerOnChange(fn) {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn) {\n    this.onTouched = fn;\n  }\n\n  writeValue(value) {\n    this.defineColor(value);\n  }\n\n\n  /*********\n   * Utils fonctions, convert HSV <-> RGB\n   */\n  hsvToRgb() {\n    const H: number = this.hue;\n    const V: number = this.value / 100;\n    const S: number = this.saturation / 100;\n\n    const C: number = V * S;\n    const X: number = C * (1 - Math.abs((H / 60) % 2 - 1));\n    const m: number = V - C;\n\n    let prime: number[] = [C, 0, X];\n\n    if (H < 60) {\n      prime = [C, X, 0];\n    } else if (H < 120) {\n      prime = [X, C, 0];\n    } else if (H < 180) {\n      prime = [0, C, X];\n    } else if (H < 240) {\n      prime = [0, X, C];\n    } else if (H < 300) {\n      prime = [X, 0, C];\n    }\n\n    return [\n      Math.round((prime[0] + m) * 255),\n      Math.round((prime[1] + m) * 255),\n      Math.round((prime[2] + m) * 255)\n    ];\n  }\n\n  rgbToHsv(R: number, G: number, B: number) {\n    const Rp: number = R / 255;\n    const Gp: number = G / 255;\n    const Bp: number = B / 255;\n\n    const Cmax: number = Math.max(Rp, Gp, Bp);\n    const Cmin: number = Math.min(Rp, Gp, Bp);\n\n    const Delta: number = Cmax - Cmin;\n    let H: number = 0;\n\n    if (Delta === 0) {\n      H = 0;\n    } else if (Cmax === Rp) {\n      H = 60 * ((Gp - Bp) / Delta + (Gp < Bp ? 6 : 0));\n    } else if (Cmax === Gp) {\n      H = 60 * ((Bp - Rp) / Delta + 2);\n    } else if (Cmax === Bp) {\n      H = 60 * ((Rp - Gp) / Delta + 4);\n    }\n\n    let S: number = 0;\n\n    if (Cmax !== 0) {\n      S = Delta / Cmax;\n    }\n\n    this.hue = H;\n    this.saturation = S * 100;\n    this.value = Cmax * 100;\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div class=\"picker-container\" [style.width]=\"size + 2 + 'px'\">\n  <div #picker class=\"picker\" [style.height]=\"size + 'px'\" (mousedown)=\"sqMouseDown($event)\">\n    <div #pointer class=\"pointer\" [style.background-color]=\"color\"></div>\n  </div>\n\n  <div class=\"slider-container\">\n    <div class=\"hue\" (click)=\"changeHue($event)\"></div>\n    <div #slider class=\"slider\" [class.notclicked]=\"!isDown\" (mousedown)=\"hueMouseDown()\"></div>\n  </div>\n\n  <div class=\"result-container\">\n    <span class=\"selected-color\" [style.background-color]=\"color\">\n    </span>\n    <input maxlength=\"7\" #input pattern=\"#[A-Fa-f0-9]{6}\" [(ngModel)]=\"color\">\n  </div>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class MaxLengthTextAreaMessages {\n  public static max_left(size: number): string {\n    return size === 1 ? size + ' caractère restant' : size + ' caractères restants';\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {AfterViewInit, Component, ElementRef, forwardRef, Input, Renderer2, ViewChild} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {MaxLengthTextAreaMessages} from './MaxLengthTextAreaMessages';\n\n@Component({\n  selector: 'ls-max-length-textarea',\n  templateUrl: './max-length-textarea.component.html',\n  styleUrls: ['./max-length-textarea.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MaxLengthTextAreaComponent),\n      multi: true\n    }\n  ]\n})\nexport class MaxLengthTextAreaComponent implements ControlValueAccessor, AfterViewInit {\n\n  @Input() maxlength: number;\n  @Input() minlength: number;\n  @Input() required: boolean;\n  maxLengthTextAreaMessages = MaxLengthTextAreaMessages;\n\n  @Input() _value;\n  @Input() name;\n\n  @ViewChild('input') input;\n\n  constructor(private element: ElementRef, private renderer2: Renderer2) {\n  }\n\n  ngAfterViewInit(): void {\n    const id: string = this.element.nativeElement.getAttribute('id');\n    this.renderer2.removeAttribute(this.element.nativeElement, 'id');\n    this.renderer2.setAttribute(this.input.nativeElement, 'id', id);\n  }\n\n  get value() {\n    return this._value;\n  }\n\n  set value(value) {\n    this._value = value;\n    this.onChange(value);\n    this.onTouched();\n  }\n\n  onChange: any = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  onTouched: any = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  onChangeSelection() {\n    this.onChange(this._value);\n  }\n\n  registerOnChange(fn) {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn) {\n    this.onTouched = fn;\n  }\n\n  writeValue(value) {\n    if (value) {\n      this.value = value;\n    }\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<!--suppress HtmlFormInputWithoutLabel -->\n<textarea class=\"form-control\" #input\n          (ngModelChange)=\"onChangeSelection()\"\n          [(ngModel)]=\"value\" [required]=\"required\"\n          maxlength=\"{{maxlength}}\" [attr.name]=\"name\">\n</textarea>\n<span [innerText]=\"maxLengthTextAreaMessages.max_left(!value ? maxlength : maxlength - value.length)\"\n      class=\"information\">\n</span>\n\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class CommonMessages {\n\n  static CANCEL: string = 'Annuler';\n  static GO_BACK: string = 'Retour';\n  static SAVE: string = 'Enregistrer';\n  static VALIDATE: string = 'OK';\n  static SHOW: string = 'Afficher';\n  static HIDE: string = 'Masquer';\n  static ACTIVATE_ALL: string = 'Tout activer';\n  static DEACTIVATE_ALL: string = 'Tout désactiver';\n  static DOWNLOAD: string = 'Télécharger';\n  static SUBMIT: string = 'Soumettre';\n  static PREVIEW: string = 'Prévisualiser les modifications';\n  static RE_INIT: string = 'Réinitialiser';\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  forwardRef,\n  Input,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {CommonIcons} from '../../icons/common-icons';\nimport {CommonMessages} from '../../i18n/common-messages';\n\n@Component({\n  selector: 'ls-password',\n  templateUrl: './password.component.html',\n  styleUrls: ['./password.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PasswordComponent),\n      multi: true\n    }\n  ],\n})\nexport class PasswordComponent implements ControlValueAccessor, AfterViewInit {\n  @Input() id: string;\n  @Input() showIcon: boolean = true;\n  @Input() required: boolean;\n  @Input() trim: boolean = false;\n  @Input() name: string;\n  @Input() placeholder: string;\n  @Input() _value;\n  @ViewChild('input') input;\n  commonIcons = CommonIcons;\n  commonMessages = CommonMessages;\n  isShown: boolean = false;\n\n  constructor(protected element: ElementRef, protected renderer2: Renderer2) {\n  }\n\n  get value() {\n    return this._value;\n  }\n\n  set value(value) {\n    this._value = value && this.trim\n        ? value.trim()\n        : value;\n    this.onChange(this._value);\n    this.onTouched();\n  }\n\n  ngAfterViewInit(): void {\n    if (this.id) {\n      this.renderer2.setAttribute(this.input.nativeElement, 'id', this.id);\n      this.renderer2.removeAttribute(this.element.nativeElement, 'id');\n    }\n    if (this.name) {\n      this.renderer2.setAttribute(this.input.nativeElement, 'name', this.name);\n      this.renderer2.removeAttribute(this.element.nativeElement, 'name');\n\n    }\n    if (this.placeholder) {\n      this.renderer2.setAttribute(this.input.nativeElement, 'placeholder', this.placeholder);\n      this.renderer2.removeAttribute(this.element.nativeElement, 'placeholder');\n    }\n  }\n\n  togglePassword() {\n    this.isShown = !this.isShown;\n  }\n\n  onChange: any = () => {\n  }\n\n  onTouched: any = () => {\n  }\n\n  registerOnChange(fn) {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn) {\n    this.onTouched = fn;\n  }\n\n  writeValue(value) {\n    if (value) {\n      this.value = value;\n    }\n  }\n\n  trimValue(event) {\n    if (this.trim) {\n      event.target.value = event.target.value.trim();\n    }\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div class=\"input-group input-group-end-icon\">\n  <span class=\"input-group-text\" *ngIf=\"showIcon\" data-testId=\"lock-icon\">\n    <fa-icon [icon]=\"commonIcons.PASSWORD_ICON\"></fa-icon>\n  </span>\n\n  <input #input (keyup)=\"trimValue($event)\"\n         [(ngModel)]=\"value\"\n         [required]=\"required\"\n         [type]=\"isShown ? 'text' : 'password'\"\n         autocomplete=\"new-password\"\n         class=\"form-control\">\n\n  <button (click)=\"togglePassword()\"\n          [attr.aria-pressed]=\"isShown\"\n          [title]=\"isShown ? commonMessages.HIDE : commonMessages.SHOW\"\n          class=\"input-group-text input-icon form-control\"\n          data-testId=\"toggle-button\"\n          role=\"button\">\n    <fa-icon [icon]=\"isShown ? commonIcons.DONT_SHOW_ICON : commonIcons.SHOW_ICON\"></fa-icon>\n  </button>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport enum Weight {\n  PRIMARY = 'primary',\n  SECONDARY = 'secondary',\n  TERTIARY = 'tertiary',\n  MENU_ITEM = 'menu-item'\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport enum Style {\n  NORMAL = 'primary',\n  NEUTRAL = 'secondary',\n  SUCCESS = 'success',\n  WARNING = 'warning',\n  DANGER = 'danger',\n  INFO = 'info'\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Style} from './style';\n\nexport class CommonStylesConstants {\n\n  static getStyleClass(style: Style): string {\n    return `ls-${style.toString()}`;\n  }\n\n  static getButtonStyleClass(style: Style): string {\n    return `btn-${style.toString()}`;\n  }\n\n  static getButtonOutlineStyleClass(style: Style): string {\n    return `btn-outline-${style.toString()}`;\n  }\n\n  static getButtonLinkStyleClass(): string {\n    return `btn-link`;\n  }\n\n  static getButtonMenuItemStyleClass(): string {\n    return `menu-item ${CommonStylesConstants.getButtonLinkStyleClass()}`;\n  }\n\n  static getOnHoverStyleClass(style: Style): string {\n    return this.getStyleClass(style) + '-on-hover';\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport enum IconSize {\n  SMALL = 'small',\n  NORMAL = 'normal',\n  LARGE = 'large',\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {\n  Component, ElementRef, HostBinding, Input, OnInit, Renderer2\n} from '@angular/core';\nimport {CommonIcons} from '../../../icons/common-icons';\nimport {Weight} from '../../../ui-concepts/weight';\nimport {Style} from '../../../ui-concepts/style';\nimport {CommonStylesConstants} from '../../../ui-concepts/common-styles-constants';\nimport {IconDefinition} from '@fortawesome/fontawesome-common-types';\nimport {IconSize} from '../../../ui-concepts/icon.size';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'button[ls-button], a[ls-button]',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent implements OnInit {\n\n  constructor(protected el: ElementRef, protected renderer2: Renderer2) {\n  }\n\n  @HostBinding('class') classes: string;\n\n  private _disabled = false;\n  private _processing = false;\n  private _title: string;\n  @Input() icon: IconDefinition | string | string [];\n  @Input() weight: Weight = Weight.PRIMARY;\n  @Input() style: Style = Style.NORMAL;\n  @Input() processingIcon: IconDefinition | string | string [];\n  @Input() onlyIcon = false;\n  @Input() colorOnHover = false;\n  @Input() iconOnLeft = true;\n  @Input() iconSize: IconSize = IconSize.NORMAL;\n  @Input() text: string;\n\n  get title(): string {\n    return this._title;\n  }\n\n  @Input()\n  set title(value: string) {\n    this._title = value;\n    this.renderer2.setAttribute(this.el.nativeElement, 'title', this._title);\n  }\n\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  @Input()\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this.updateDisabledStatus();\n  }\n\n  get processing(): boolean {\n    return this._processing;\n  }\n\n  @Input()\n  set processing(value: boolean) {\n    this._processing = value;\n    this.updateDisabledStatus();\n  }\n\n  private static normalizeIconString(icon: IconDefinition | string | string []) {\n    if (typeof icon === 'string' && icon.trim().startsWith('fa')) {\n      icon = icon.trim().split(' ').map(str => {\n        if (str === 'fa-spin') {\n          str = '';\n        }\n        if (str.startsWith('fa-')) {\n          str = str.slice('fa-'.length);\n        }\n        if (str === 'fa') {\n          str = 'fas';\n        }\n        return str;\n      }).filter(str => str);\n    }\n    return icon;\n  }\n\n  ngOnInit() {\n    this.setButtonClasses();\n\n    if (!this.title && this.text) {\n      this.title = this.text;\n    }\n    this.processingIcon = this.icon ? this.processingIcon || CommonIcons.SPINNER_ICON : '';\n    // ensure backward compatibility for icons such as 'fa fa-save'\n    this.icon = ButtonComponent.normalizeIconString(this.icon);\n    this.processingIcon = ButtonComponent.normalizeIconString(this.processingIcon);\n    if (!this.el.nativeElement.getAttribute('type')) {\n      const type = this.getDefaultType();\n      if (type) {\n        this.renderer2.setAttribute(this.el.nativeElement, 'type', this.getDefaultType());\n      }\n    }\n  }\n\n  getDefaultType(): string {\n    return this.el.nativeElement.localName === 'button' ? 'button' : null;\n  }\n\n  getIconClasses(): string {\n    return this.weight === Weight.MENU_ITEM ? `${CommonStylesConstants.getStyleClass(this.style)} ` : '';\n  }\n\n  getIconSize(): string {\n    switch (this.iconSize) {\n      case IconSize.SMALL:\n        return `sm`;\n      case IconSize.LARGE:\n        return `lg`;\n      default:\n        return `fa-1x`;\n    }\n  }\n\n  setButtonClasses() {\n    this.classes = (this.el.nativeElement.getAttribute('class')\n            ? this.el.nativeElement.getAttribute('class') + ' '\n            : '')\n        + this.getBtnClasses();\n  }\n\n  getBtnClasses(): string {\n    let btnClasses = 'btn';\n\n    if (!this.iconOnLeft) {\n      btnClasses += ' icon-right ';\n    }\n\n    if (this.onlyIcon) {\n      return `${btnClasses} no-text`\n          + ' ' + (this.colorOnHover\n              ? CommonStylesConstants.getOnHoverStyleClass(this.style)\n              : CommonStylesConstants.getStyleClass(this.style));\n    }\n\n    switch (this.weight) {\n      case Weight.PRIMARY:\n        return `${CommonStylesConstants.getButtonStyleClass(this.style)} ${btnClasses}`;\n      case Weight.SECONDARY:\n        return `${CommonStylesConstants.getButtonOutlineStyleClass(this.style)} ${btnClasses}`;\n      case Weight.TERTIARY:\n        return `${CommonStylesConstants.getButtonLinkStyleClass()} ${btnClasses}`;\n      case Weight.MENU_ITEM:\n        return `${CommonStylesConstants.getButtonMenuItemStyleClass()} ${btnClasses}`;\n    }\n  }\n\n  private updateDisabledStatus() {\n    if (this.disabled || this.processing) {\n      this.renderer2.setAttribute(this.el.nativeElement, 'disabled', '');\n    } else {\n      this.renderer2.removeAttribute(this.el.nativeElement, 'disabled');\n    }\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<fa-icon *ngIf=\"icon\"\n         [icon]=\"processing  ? processingIcon : icon\"\n         [ngClass]=\"getIconClasses()\"\n         [spin]=\"processing\"\n         size=\"{{getIconSize()}}\">\n</fa-icon>\n<span *ngIf=\"text && !onlyIcon\" [innerText]=\"text\"></span>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ButtonComponent} from '../button/button.component';\nimport {Weight} from '../../../ui-concepts/weight';\nimport {CommonMessages} from '../../../i18n/common-messages';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'button[ls-button-cancel],a[ls-button-cancel]',\n  templateUrl: '../button/button.component.html',\n  styleUrls: ['./cancel-button.component.scss']\n})\nexport class CancelButtonComponent extends ButtonComponent implements OnInit {\n\n  ngOnInit() {\n    this.text = this.text ? this.text : CommonMessages.CANCEL;\n    this.weight = Weight.TERTIARY;\n    super.ngOnInit();\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ButtonComponent} from '../button/button.component';\nimport {Weight} from '../../../ui-concepts/weight';\nimport {CommonMessages} from '../../../i18n/common-messages';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'button[ls-button-validate],a[ls-button-validate]',\n  templateUrl: '../button/button.component.html',\n  styleUrls: ['./validate-button.component.scss']\n})\nexport class ValidateButtonComponent extends ButtonComponent implements OnInit {\n\n  ngOnInit() {\n    this.text = this.text ? this.text : CommonMessages.VALIDATE;\n    this.weight = Weight.PRIMARY;\n    super.ngOnInit();\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  forwardRef,\n  HostBinding,\n  Input,\n  OnInit,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport {animate, animateChild, group, query, state, style, transition, trigger} from '@angular/animations';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n  selector: 'ls-timepicker',\n  templateUrl: './timepicker.component.html',\n  styleUrls: ['./timepicker.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => TimepickerComponent),\n    multi: true\n  }],\n  animations: [\n    trigger('fadeInOut', [\n      transition('void => *', [\n        style({\n          opacity: 0\n        }),\n        group([\n          animate(300, style({\n            opacity: 1\n          })),\n          query('@popOut', animateChild())\n        ])]),\n      transition('* => void', [\n        style({\n          opacity: 1\n        }),\n        group([\n          animate(300, style({\n            opacity: 0\n          })),\n          query('@popOut', animateChild())\n        ])]),\n    ]),\n    trigger('popOut', [\n      // ...\n      state('void', style({\n        transform: 'scale(0.6)'\n      })),\n      transition('void <=> *', animate(300)),\n    ])\n  ],\n})\nexport class TimepickerComponent implements OnInit, AfterViewInit, ControlValueAccessor {\n\n  hoursElements: string[] = [\n    'subrot270',\n    'rot300',\n    'rot330',\n    'rot0',\n    'rot30',\n    'rot60',\n    'rot90',\n    'rot120',\n    'rot150',\n    'rot180',\n    'rot210',\n    'rot240',\n    'rot270',\n\n    'subrot300',\n    'subrot330',\n    'subrot0',\n    'subrot30',\n    'subrot60',\n    'subrot90',\n    'subrot120',\n    'subrot150',\n    'subrot180',\n    'subrot210',\n    'subrot240',\n  ];\n\n  minutesElements: string[] = [\n    'rot270',\n    'rot300',\n    'rot330',\n    'rot0',\n    'rot30',\n    'rot60',\n    'rot90',\n    'rot120',\n    'rot150',\n    'rot180',\n    'rot210',\n    'rot240',\n  ];\n\n  hour: number = 0;\n  minute: number = 0;\n\n  rot: number = 0;\n\n  showWrapper: boolean = false;\n  updateMode: boolean = false;\n  hourMode: boolean = true;\n\n  @Input() disabled: boolean = false;\n\n  @ViewChild('input') input;\n  @HostBinding('class.input-group') classInputGroup: boolean = true;\n  @HostBinding('class.input-group-end-icon') classInputGroupEndIcon: boolean = true;\n\n  constructor(private el: ElementRef, private renderer2: Renderer2) {\n  }\n\n  ngAfterViewInit(): void {\n    this.moveAttributeToInput('id');\n    this.moveAttributeToInput('tabindex');\n    this.moveAttributeToInput('required', '');\n    this.moveAttributeToInput('name', 'timepicker');\n  }\n\n  private moveAttributeToInput(attributeName: string, defaultValue?: string) {\n    const attribute = this.el.nativeElement.getAttribute(attributeName);\n    if (attribute !== null) {\n      this.renderer2.removeAttribute(this.el.nativeElement, attributeName);\n    }\n    if (attribute !== null || defaultValue) {\n      this.renderer2.setAttribute(this.input.nativeElement, attributeName, attribute ? attribute : defaultValue);\n    }\n  }\n\n  ngOnInit() {\n    this.validate();\n  }\n\n  pad(num): string {\n    return '00'.substring(0, 2 - ('' + num).length) + num;\n  }\n\n  show() {\n    this.showWrapper = true;\n    setTimeout(() => this.setHour(this.hour), 0);\n  }\n\n  rotateThis(nR): string {\n    let aR;\n    this.rot = this.rot || 0; // if rot undefined or 0, make 0, else rot\n    aR = this.rot % 360;\n    if (aR < 0) {\n      aR += 360;\n    }\n    if (aR < 180 && (nR > (aR + 180))) {\n      this.rot -= 360;\n    }\n    if (aR >= 180 && (nR <= (aR - 180))) {\n      this.rot += 360;\n    }\n    this.rot += (nR - aR);\n    return 'rotate( ' + this.rot + 'deg )';\n  }\n\n  setHour(hour) {\n    let transform: string = this.rotateThis((hour * 30) % 360);\n    if (hour === 0 || hour > 12) {\n      transform += ' scale(0.6)';\n    }\n    this.el.nativeElement.getElementsByClassName('time-picker-clock-arrow')[0].style.transform = transform;\n    this.hour = hour % 24;\n  }\n\n  setMinute(minute) {\n    this.minute = minute % 60;\n    this.el.nativeElement.getElementsByClassName('time-picker-clock-arrow')[0].style.transform = this.rotateThis(minute / 5 * 30);\n  }\n\n  mousedown() {\n    this.updateMode = true;\n  }\n\n  toHourMode() {\n    this.hourMode = true;\n    this.setHour(this.hour);\n  }\n\n  toMinuteMode() {\n    this.hourMode = false;\n    this.setMinute(this.minute);\n  }\n\n  mouseup(event) {\n    this.move(event);\n    this.updateMode = false;\n    if (this.hourMode) {\n      this.toMinuteMode();\n    }\n  }\n\n  move(event) {\n    if (this.updateMode && event.target instanceof HTMLButtonElement) {\n      const btn: HTMLButtonElement = event.target;\n\n      const nodes = Array.prototype.slice.call(btn.parentElement.children);\n      const index = nodes.indexOf(btn);\n      if (this.hourMode) {\n        this.setHour(index);\n      } else {\n        this.setMinute(index * 5);\n      }\n    }\n  }\n\n  hide() {\n    this.showWrapper = false;\n    this.updateMode = false;\n    this.hourMode = true;\n  }\n\n  validate() {\n    this.writeValue(this.pad(this.hour) + ':' + this.pad(this.minute));\n    this.el.nativeElement.getElementsByTagName('input')[0].value = this.pad(this.hour) + ':' + this.pad(this.minute);\n    this.hide();\n  }\n\n  inputChange($event) {\n    this.onChange($event.currentTarget.value);\n  }\n\n  // noinspection JSUnusedLocalSymbols\n  onChange = (time: string) => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  onTouched = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj) {\n      this.el.nativeElement.getElementsByTagName('input')[0].value = obj;\n      if (typeof obj === 'string') {\n        const time: string[] = obj.split(':');\n        this.hour = +time[0];\n        this.minute = +time[1];\n      }\n    }\n    this.onChange(obj);\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ng-container>\n  <div class=\"input-group input-group-end-icon\">\n    <input type=\"text\" #input class=\"ls-action-input form-control time-picker-input\"\n           (click)=\"show()\"\n           (change)=\"inputChange($event)\" (blur)=\"onTouched();\">\n    <span class=\"input-group-text input-icon form-control\" (click)=\"show()\">\n    <i class=\"far fa-clock\"></i>\n  </span>\n  </div>\n</ng-container>\n\n<div class=\"wrapper\" *ngIf=\"showWrapper\" [@fadeInOut]>\n  <div class=\"shadow time-picker\" [@popOut]>\n    <div class=\"time-picker-header\">\n      <span [ngClass]=\"hourMode ? 'active' : ''\" class=\"pointer-event\"\n            (click)=\"this.toHourMode()\">{{pad(hour % 24)}}</span>\n      <span> : </span>\n      <span [ngClass]=\"hourMode ? '' : 'active'\" class=\"pointer-event\"\n            (click)=\"this.toMinuteMode()\">{{pad(minute % 60)}}</span>\n    </div>\n\n    <div class=\"time-picker-content\">\n      <div class=\"background\"></div>\n      <div class=\"clock\" (mousemove)=\"move($event)\" (mouseup)=\"mouseup($event)\" (mousedown)=\"mousedown()\">\n        <div class=\"time-picker-hour\" [ngClass]=\"hourMode ? 'active' : ''\">\n          <button *ngFor=\"let rot of hoursElements; let i = index\" class=\"{{rot}} hourglass-btn\"\n                  [ngClass]=\"i == hour ? 'active' : ''\">\n            {{i}}\n          </button>\n        </div>\n\n        <div class=\"time-picker-minute\" [ngClass]=\"hourMode ? '' : 'active'\">\n          <button *ngFor=\"let rot of minutesElements; let i = index\" class=\"{{rot}} hourglass-btn\"\n                  [ngClass]=\"i == (minute / 5) ? 'active' : ''\" (click)=\"setMinute(i * 5)\">\n            {{((i) * 5) % 60}}\n          </button>\n        </div>\n\n        <div class=\"time-picker-clock-origin\"></div>\n        <div class=\"time-picker-clock-arrow\"></div>\n      </div>\n    </div>\n    <div class=\"time-picker-footer\">\n      <button ls-button-cancel (click)=\"hide()\"></button>\n      <button ls-button-validate (click)=\"validate()\"></button>\n    </div>\n  </div>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class LibersignStatus {\n  installed: boolean = true;\n  appletLoading: boolean = false;\n  dataToSignLoading: boolean = false;\n  signLoading: boolean = false;\n  certsLoading: boolean = false;\n  certsLoaded: boolean = false;\n  certsError: boolean = false;\n\n  isLoading(): boolean {\n    return this.appletLoading || this.dataToSignLoading || this.certsLoading || this.signLoading;\n  }\n\n  showCerts(): boolean {\n    return this.certsLoaded && !this.dataToSignLoading && !this.signLoading;\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {LibersignStatus} from './libersign-status.model';\nimport {LibersignCertificate} from './certificate.model';\nimport {BehaviorSubject} from 'rxjs';\n\nexport abstract class LibersignUtil {\n  status: LibersignStatus = new LibersignStatus();\n\n  certificates: [LibersignCertificate];\n  currentCert: LibersignCertificate;\n  _favorite: LibersignCertificate;\n\n  FAVORITEKEY: string = 'libersign-fav';\n  signatures;\n  _signatures: any[] = [];\n\n  abstract init(updateUrl: string, appletUrl: string);\n\n  abstract loadCertificates();\n\n  abstract selectCertificate(cert: LibersignCertificate);\n\n  abstract doSign(dataToSign: string[]);\n\n  abstract destroy();\n\n  constructor() {\n    this.signatures = new BehaviorSubject<any[]>(this._signatures);\n  }\n\n  set favorite(cert: LibersignCertificate) {\n    localStorage.setItem(this.FAVORITEKEY, cert.ID);\n    this._favorite = cert;\n  }\n\n  get favorite() {\n    if (this._favorite !== undefined) {\n      return this._favorite;\n    } else {\n      const id: string = localStorage.getItem(this.FAVORITEKEY);\n      for (const cert of this.certificates) {\n        if (cert.ID === id) {\n          this._favorite = cert;\n          return cert;\n        }\n      }\n    }\n    return undefined;\n  }\n\n  sign(dataToSign: string[]) {\n    this.status.dataToSignLoading = false;\n    this.status.signLoading = true;\n    this.doSign(dataToSign);\n  }\n\n  commonLoadCert() {\n    this.status.certsLoading = false;\n    this.status.certsLoaded = true;\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {LibersignUtil} from './libersign.util';\nimport {LibersignCertificate} from './certificate.model';\n\ndeclare var LiberSign: {\n  setUpdateUrl(url: string)\n  getCertificates()\n  sign(certId: string, dataToSign: any)\n};\n\nexport class LibersignNativeUtil extends LibersignUtil {\n  init(updateUrl: string, _appletUrl: string) {\n    this.status.certsLoading = true;\n    try {\n      LiberSign.setUpdateUrl(updateUrl);\n    } catch (error) {\n      console.log('error catched');\n    }\n    this.loadCertificates();\n  }\n\n  loadCertificates() {\n    LiberSign.getCertificates().then((cs: [LibersignCertificate]) => {\n      if (cs !== undefined) {\n        this.certificates = cs;\n        this.selectCertificate(this.favorite);\n        this.commonLoadCert();\n      }\n    }, _ => {\n      this.status.certsError = true;\n    });\n  }\n\n  doSign(dataToSign: string[]) {\n    LiberSign.sign(this.currentCert.ID, {dataToSign: dataToSign}).then(sig => {\n      this.signatures.next(sig);\n    });\n  }\n\n  selectCertificate(cert: LibersignCertificate) {\n    this.currentCert = cert;\n  }\n\n  destroy() {\n    // Nothing to do here\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {LibersignUtil} from './libersign.util';\nimport {NgZone} from '@angular/core';\nimport {LibersignCertificate} from './certificate.model';\n\nexport class LibersignAppletUtil extends LibersignUtil {\n  appletElement;\n\n  constructor(private zone: NgZone) {\n    super();\n  }\n\n  init(updateUrl: string, appletUrl: string) {\n    this.status.appletLoading = true;\n    this.appletElement = document.getElementById('appletLibersign');\n    if (this.appletElement == null) {\n      const appletElement = document.createElement('div');\n      appletElement.id = 'appletLibersign';\n      document.body.appendChild(appletElement);\n\n      this.appletElement = document.getElementById('appletLibersign');\n\n      // @ts-ignore\n      window.appletIsLoaded = () => {\n        this.zone.run(() => {\n          this.status.appletLoading = false;\n          this.status.certsLoading = true;\n          this.loadCertificates();\n        });\n        this.selectCertificate(this.favorite);\n      };\n\n      this.appletElement.innerHTML = `\n<applet codebase=\"${appletUrl}\" id=\"liberSignApplet\" code=\"org/adullact/parapheur/applets/splittedsign/Main.class\" archive=\"SplittedSignatureApplet.jar\" name=\"Signature i-Parapheur\" height=\"0\" width=\"100%\">\n  <param name=\"permissions\" value=\"all-permissions\">\n  <param name=\"codebase_lookup\" value=\"true\">\n  <param name=\"display_cancel\" value=\"true\">\n  <param name=\"cancel_mode\" value=\"javascript\">\n</applet>`;\n    } else {\n      this.zone.run(() => {\n        this.status.appletLoading = false;\n        this.status.certsLoading = true;\n        this.loadCertificates();\n      });\n      this.selectCertificate(this.favorite);\n    }\n  }\n\n  loadCertificates() {\n    const appletElement: HTMLElement = document.getElementById('liberSignApplet');\n    if (appletElement != null) {\n      // @ts-ignore\n      const certStr = document.getElementById('liberSignApplet').getCertificates();\n      this.certificates = JSON.parse(certStr)['certs'];\n      this.commonLoadCert();\n    }\n  }\n\n  selectCertificate(cert: LibersignCertificate) {\n    this.zone.run(() => {\n      this.currentCert = cert;\n    });\n  }\n\n  doSign(dataToSign: string[]) {\n    // @ts-ignore\n    const signatureValue = document.getElementById('liberSignApplet').sign(this.currentCert.ID, dataToSign);\n    this.zone.run(() => {\n      this.signatures.next(JSON.parse(signatureValue));\n    });\n  }\n\n  destroy() {\n    // @ts-ignore\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, NgZone, OnInit, Output} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {LibersignCertificate} from './certificate.model';\nimport {LibersignUtil} from './libersign.util';\nimport {LibersignNativeUtil} from './libersign.native.util';\nimport {LibersignAppletUtil} from './libersign.applet.util';\n\ndeclare var LiberSign: any;\n\n@Component({\n  selector: 'ls-libersign',\n  templateUrl: './libersign.component.html',\n  styleUrls: ['./libersign.component.scss'],\n})\nexport class LibersignComponent implements OnInit {\n\n  constructor(private httpClient: HttpClient, private zone: NgZone) {\n  }\n\n  @Input() updateUrl: string;\n  @Input() appletUrl: string;\n  @Output()\n  sign: EventEmitter<LibersignCertificate> = new EventEmitter<LibersignCertificate>();\n  @Output()\n  cancel: EventEmitter<any> = new EventEmitter();\n  @Output()\n  signed: EventEmitter<any> = new EventEmitter();\n\n  // @ts-ignore\n  isIE: boolean = /*@cc_on!@*/!!document.documentMode;\n  isValid: boolean = true;\n  libersignUtil: LibersignUtil;\n\n  ngOnInit() {\n    if (typeof LiberSign !== 'undefined') {\n      this.libersignUtil = new LibersignNativeUtil();\n    } else if (this.isIE) {\n      this.libersignUtil = new LibersignAppletUtil(this.zone);\n    } else {\n      this.libersignUtil = new LibersignAppletUtil(this.zone);\n    }\n\n    this.libersignUtil.init(this.updateUrl, this.appletUrl);\n\n    this.libersignUtil.signatures.subscribe(sig => {\n      this.signed.emit(sig);\n    });\n  }\n\n  public onSign() {\n    this.libersignUtil.status.dataToSignLoading = true;\n    this.sign.emit(this.libersignUtil.currentCert);\n  }\n\n  public onCancel() {\n    this.libersignUtil.destroy();\n    this.cancel.emit();\n  }\n\n  @Input()\n  set dataToSign(value: string[]) {\n    // tslint:disable-next-line:triple-equals\n    if (value != undefined && value.length > 0) {\n      if (typeof value === 'string') {\n        try {\n          value = JSON.parse(value);\n          this.libersignUtil.status.signLoading = true;\n          this.libersignUtil.sign(value);\n        } catch (error) {\n          // Do nothing\n        }\n      } else {\n        this.libersignUtil.status.signLoading = true;\n        this.libersignUtil.sign(value);\n      }\n    }\n  }\n\n  @Input()\n  set valid(value: string) {\n    this.isValid = value === 'true';\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div class=\"libersign-container\" [ngClass]=\"libersignUtil.status.certsLoaded ? '' : 'min-height'\">\n  <span class=\"text text-danger\" *ngIf=\"!libersignUtil.status.installed\">\n    <i class=\"fa fa-times\"></i> Merci d'installer l'extension LiberSign\n  </span>\n\n  <span class=\"text text-danger\" *ngIf=\"libersignUtil.status.certsError\">\n    <i class=\"fa fa-times\"></i> Erreur lors de la récupération des certificats\n  </span>\n\n  <div *ngIf=\"libersignUtil.status.isLoading()\" class=\"center\">\n    <div class=\"lds-roller\">\n      <div></div>\n      <div></div>\n      <div></div>\n      <div></div>\n      <div></div>\n      <div></div>\n      <div></div>\n      <div></div>\n    </div>\n\n    <div *ngIf=\"libersignUtil.status.certsLoading\" class=\"text text-info\">\n      Chargement des certificats disponibles en cours...\n    </div>\n\n    <div *ngIf=\"libersignUtil.status.appletLoading\" class=\"text text-info\">\n      Chargement de l'applet de signature en cours...\n    </div>\n\n    <div *ngIf=\"libersignUtil.status.dataToSignLoading\" class=\"text text-info\">\n      Récupération des informations de signature en cours...\n    </div>\n\n    <div *ngIf=\"libersignUtil.status.signLoading\" class=\"text text-info\">\n      Signature en cours...\n    </div>\n  </div>\n\n  <div *ngIf=\"libersignUtil.status.showCerts()\" class=\"certs-loaded\">\n    <table class=\"table\">\n      <thead>\n      <tr>\n        <th></th>\n        <th>Nom</th>\n        <th>Émetteur</th>\n        <th>Date d'expiration</th>\n      </tr>\n      </thead>\n\n      <tbody>\n      <tr *ngFor=\"let cert of libersignUtil.certificates\" (click)=\"libersignUtil.selectCertificate(cert)\"\n          [class.active]=\"libersignUtil.currentCert && libersignUtil.currentCert.ID == cert.ID\">\n        <td>\n          <i class=\"fa-star text text-warning\" [ngClass]=\"libersignUtil.favorite === cert ? 'fa' : 'far fa fa-star-o'\"\n             title=\"Certificat favori\" (click)=\"libersignUtil.favorite = cert\"></i>\n          <span [className]=\"'label label-' + cert.verifiedWith[0]\"\n                *ngIf=\"cert.verifiedWith.length > 0\">{{cert.verifiedWith[0]}}</span>\n        </td>\n        <td>{{cert.CN}}</td>\n        <td>{{cert.ISSUERDN}}</td>\n        <td>{{cert.NOTAFTER | date:'dd/MM/yyyy'}}</td>\n      </tr>\n      </tbody>\n    </table>\n\n    <div class=\"float-end libersign-action-buttons\">\n      <button class=\"btn btn-warning\" (click)=\"onCancel()\">\n        <i class=\"fa fa-times-circle-o\"></i>\n        Annuler\n      </button>\n\n      <button class=\"btn btn-primary\" (click)=\"onSign()\" [disabled]=\"!libersignUtil.currentCert || !isValid\">\n        <i class=\"fa ls-signature\"></i>\n        Signer\n      </button>\n    </div>\n  </div>\n</div>\n\n\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ButtonComponent} from '../button/button.component';\nimport {CommonMessages} from '../../../i18n/common-messages';\nimport {CommonIcons} from '../../../icons/common-icons';\nimport {Weight} from '../../../ui-concepts/weight';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'button[ls-button-go-back],a[ls-button-go-back]',\n  templateUrl: '../button/button.component.html',\n  styleUrls: ['./go-back-button.component.scss']\n})\nexport class GoBackButtonComponent extends ButtonComponent implements OnInit {\n\n  ngOnInit() {\n    this.text = this.text ? this.text : CommonMessages.GO_BACK;\n    this.icon = CommonIcons.GO_BACK_ICON;\n    this.weight = Weight.SECONDARY;\n    super.ngOnInit();\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ButtonComponent} from '../button/button.component';\nimport {CommonMessages} from '../../../i18n/common-messages';\nimport {CommonIcons} from '../../../icons/common-icons';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'button[ls-button-save],a[ls-button-save]',\n  templateUrl: '../button/button.component.html',\n  styleUrls: ['./save-button.component.scss']\n})\nexport class SaveButtonComponent extends ButtonComponent implements OnInit {\n\n  ngOnInit() {\n    this.text = this.text ? this.text : CommonMessages.SAVE;\n    this.icon = this.icon ? this.icon : CommonIcons.SAVE_ICON;\n    super.ngOnInit();\n  }\n\n  getDefaultType(): string {\n    return 'submit';\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Directive, EventEmitter, HostListener, Input, Output} from '@angular/core';\nimport {HasId} from '../models/has-id';\nimport {ActionItem} from '../models/action-item';\n\n@Directive({\n  selector: '[lsActionable]'\n})\nexport class ActionableDirective<T extends HasId> {\n\n  @Input() action: ActionItem<T>;\n  @Input() argument: T[];\n  @Output() done: EventEmitter<any> = new EventEmitter();\n\n  @HostListener('click') onClick() {\n    this.action.actuator.action(this.argument)\n        .subscribe(actionResult => this.done.emit(actionResult));\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n  name: 'toSnakeCase'\n})\nexport class ToSnakeCasePipe implements PipeTransform {\n\n  transform(value: string): string {\n    return value.replace(/\\W+/g, ' ').toLowerCase().split(' ').join('_');\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {Weight} from '../../ui-concepts/weight';\nimport {HasId} from '../../models/has-id';\nimport {ActionItems} from '../../models/action-items';\n\n@Component({\n  selector: 'ls-action-bar',\n  templateUrl: './action-bar.component.html',\n  styleUrls: ['./action-bar.component.scss']\n})\nexport class ActionBarComponent<T extends HasId> {\n\n  get otherActions(): ActionItems {\n    return this._otherActions;\n  }\n\n  @Input()\n  set otherActions(value: ActionItems) {\n    this._otherActions = value;\n    this._otherActions.forEach(item => item.initializeItem());\n  }\n\n  get secondaryActions(): ActionItems {\n    return this._secondaryActions;\n  }\n\n  @Input()\n  set secondaryActions(value: ActionItems) {\n    this._secondaryActions = value;\n    this._secondaryActions.forEach(item => item.initializeItem());\n  }\n\n  get primaryActions(): ActionItems {\n    return this._primaryActions;\n  }\n\n  @Input()\n  set primaryActions(value: ActionItems) {\n    this._primaryActions = value;\n    this._primaryActions.forEach(item => item.initializeItem());\n  }\n\n  private _primaryActions: ActionItems = [];\n  private _secondaryActions: ActionItems = [];\n  private _otherActions: ActionItems = [];\n  @Input() argument: T;\n  @Output() needReload: EventEmitter<any> = new EventEmitter();\n  @Output() actionResult: EventEmitter<any> = new EventEmitter();\n\n  weight = Weight;\n\n  sendResult($event: any) {\n    this.actionResult.emit($event);\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div\n    *ngIf=\"secondaryActions?.length>0 || primaryActions?.length>0 || otherActions?.length>0\"\n    class=\"ls-action-bar\"\n    role=\"group\">\n  <div *ngIf=\"secondaryActions?.length>0\" class=\"ls-action-bar\">\n    <ng-container *ngFor=\"let item of secondaryActions; let index = index\">\n      <button ls-button (done)=\"sendResult($event)\"\n              *ngIf=\"item.enabled && item.actionValidator?.isActionValid([argument])\"\n              [action]=\"item\"\n              [argument]=\"[argument]\"\n              [icon]=\"item.icon\"\n              [style]=\"item.style\"\n              [text]=\"item.longName\"\n              [weight]=\"weight.SECONDARY\"\n              id=\"{{item.name | toSnakeCase}}-secondary\"\n              lsActionable>\n      </button>\n    </ng-container>\n  </div>\n  <div *ngIf=\"primaryActions?.length>0\" class=\"ls-action-bar\">\n    <ng-container *ngFor=\"let item of primaryActions; let index = index\">\n      <button ls-button (done)=\"sendResult($event)\"\n              *ngIf=\"item.enabled && item.actionValidator?.isActionValid([argument])\"\n              [action]=\"item\"\n              [argument]=\"[argument]\"\n              [icon]=\"item.icon\"\n              [style]=\"item.style\"\n              [text]=\"item.longName\"\n              [weight]=\"weight.PRIMARY\"\n              id=\"{{item.name | toSnakeCase}}-primary\"\n              lsActionable>\n      </button>\n    </ng-container>\n  </div>\n  <div *ngIf=\"otherActions?.length>0\" class=\"ls-action-bar\">\n    <ng-container *ngFor=\"let item of otherActions; let index = index\">\n      <button ls-button (done)=\"sendResult($event)\"\n              *ngIf=\"item.enabled && item.actionValidator?.isActionValid([argument])\"\n              [action]=\"item\"\n              [argument]=\"[argument]\"\n              [icon]=\"item.icon\"\n              [style]=\"item.style\"\n              [text]=\"item.longName\"\n              [weight]=\"weight.SECONDARY\"\n              id=\"{{item.name | toSnakeCase}}-other\"\n              lsActionable>\n      </button>\n    </ng-container>\n  </div>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {ToSnakeCasePipe} from './to-snake-case.pipe';\n\n@Pipe({\n  name: 'toId'\n})\nexport class ToIdPipe extends ToSnakeCasePipe implements PipeTransform {\n\n  transform(value: string): string {\n    return super.transform(value).replace(/^_*/g, '').replace(/_*$/g, '');\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ToSnakeCasePipe} from './to-snake-case.pipe';\nimport {ToIdPipe} from './to-id.pipe';\n\n\n@NgModule({\n  declarations: [ToSnakeCasePipe, ToIdPipe],\n  imports: [\n    CommonModule\n  ],\n  exports: [ToSnakeCasePipe]\n})\nexport class PipeModule {\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActionableDirective} from './actionable.directive';\n\n@NgModule({\n  declarations: [ActionableDirective],\n  imports: [\n    CommonModule\n  ],\n  exports: [ActionableDirective]\n})\nexport class DirectiveModule {\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  Component,\n  ElementRef,\n  forwardRef,\n  Input,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {ToIdPipe} from \"../../pipes/to-id.pipe\";\nimport {HasId} from \"../../models/has-id\";\nimport {Choice} from \"../../models/choice\";\n\n@Component({\n  selector: 'ls-radio-buttons',\n  templateUrl: './radio-buttons.component.html',\n  host: {'class': 'ls-radio-buttons'},\n  styleUrls: ['./radio-buttons.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RadioButtonsComponent),\n      multi: true\n    },\n    ToIdPipe,\n  ]\n})\nexport class RadioButtonsComponent implements ControlValueAccessor, AfterContentInit, AfterViewInit {\n  get id(): string {\n    return this._id;\n  }\n\n  @Input()\n  set id(value: string) {\n    this._id = value;\n    if (this.input) {\n      this.renderer2.setAttribute(this.input.nativeElement, 'id', this.id);\n    }\n  }\n\n  _value: any;\n\n  // RGAA feature\n  @Input() legend: string = '';\n  @Input() showLegend: boolean = true;\n  @ViewChild('input') input;\n  @Input() additionalLegendClasses: string = '';\n  private _id: string;\n\n  get value(): any | HasId {\n    return this._value;\n  }\n\n  @Input()\n  set value(value: any | HasId) {\n    this._value = value;\n    this.onChange(value);\n    this.onTouched();\n  }\n\n  private _items: Choice[] = [];\n\n  get items(): Choice[] {\n    return this._items;\n  }\n\n  @Input()\n  set items(items: Choice[]) {\n    this._items = items;\n    if (this.value && this.items) {\n      this.value = this.items.find(item =>\n          item.value.id && this.value.id\n              ? item.value.id === this.value.id\n              : item.value === this.value);\n    }\n  }\n\n  constructor(private element: ElementRef, private renderer2: Renderer2, private toIdPipe: ToIdPipe) {\n  }\n\n  ngAfterViewInit(): void {\n    const id: string = this.element.nativeElement.getAttribute('id');\n    this.renderer2.removeAttribute(this.element.nativeElement, 'id');\n\n    /* mandatory id for RGAA purpose is taken from attribute id passed to the component\n    // if not present from the legend\n    // if everything failed, an id is generated\n    */\n    setTimeout(() => {\n      if (id) this.id = id;\n      if (!this.id) {\n        if (this.legend) {\n          const calculatedId = this.toIdPipe.transform(this.legend);\n          if (calculatedId.length > 0) {\n            this.id = calculatedId;\n          }\n        } else {\n          this.id = Math.random().toString(36).substr(2, 9);\n        }\n      }\n\n    });\n  }\n\n  ngAfterContentInit(): void {\n    if (this.value === undefined && this.items.length > 0 && !this.items.find(item => item.value === undefined)) {\n      this.value = this.items[0].value;\n    }\n  }\n\n  onChange: any = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  onTouched: any = () => {\n    // tslint:disable-next-line:semicolon\n  };\n\n  onChangeSelection(value) {\n    this.onChange(value);\n  }\n\n  isSelected(element: Choice): boolean {\n    return element.value && this.value && element.value.id && this.value.id\n        ? element.value.id === this.value.id\n        : element.value === this.value;\n  }\n\n  registerOnChange(fn) {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn) {\n    this.onTouched = fn;\n  }\n\n  writeValue(value: any) {\n    this.value = value;\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<fieldset #input>\n  <legend *ngIf=\"legend\"\n          [attr.class]=\"additionalLegendClasses\"\n          [hidden]=\"!showLegend\"\n          [innerText]=\"legend\">\n  </legend>\n\n  <ng-container *ngIf=\"items\">\n    <div class=\"btn-group\"\n         role=\"group\">\n      <ng-container *ngFor=\"let item of items; index as i\">\n        <input [ngModel]=\"value\"\n               (ngModelChange)=\"onChangeSelection(item.value)\"\n               [attr.aria-checked]=\"isSelected(item)\"\n               [attr.aria-labelledby]=\"'radio_button_choice_'+id+'_'+i\"\n               [id]=\"'radio_button_'+id+'_'+i\"\n               [value]=\"item.value\"\n               autocomplete=\"off\"\n               class=\"btn-check\"\n               name=\"value\"\n               type=\"radio\">\n\n        <label [for]=\"'radio_button_'+id+'_'+i\"\n               [innerText]=\"item.name\"\n               [ngClass]=\"isSelected(item) ? 'btn-primary': 'btn-outline-secondary'\"\n               class=\"btn\">\n        </label>\n      </ng-container>\n    </div>\n  </ng-container>\n</fieldset>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, forwardRef, Input, Output} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n  selector: 'ls-toggle-slider',\n  templateUrl: './toggle-slider.component.html',\n  styleUrls: ['./toggle-slider.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ToggleSliderComponent),\n      multi: true\n    }\n  ]\n})\nexport class ToggleSliderComponent implements ControlValueAccessor {\n\n  @Input()\n  title;\n  checked: Boolean;\n  onTouchedCallback: () => {};\n\n  @Output()\n  private valueChange: EventEmitter<any> = new EventEmitter();\n\n  propagateChange = (_: any) => {\n  }\n\n  writeValue(value: any) {\n    if ((value !== undefined) && (value !== null)) {\n      this.checked = value;\n    }\n  }\n\n  registerOnChange(fn: any) {\n    this.propagateChange = fn;\n  }\n\n  registerOnTouched(fn: any) {\n    this.onTouchedCallback = fn;\n  }\n\n  onChange(event) {\n    this.checked = event.target.checked;\n    this.propagateChange(event.target.checked);\n    this.valueChange.emit(event.target.checked);\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<label class=\"switch\" title=\"{{title}}\">\n  <input (change)=\"onChange($event)\" [checked]=\"checked\" type=\"checkbox\">\n  <span class=\"slider round\"></span>\n</label>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Component, HostBinding, Input } from '@angular/core';\nimport { Options } from '../../models/options';\nimport { Option } from '../../models/option';\nimport { CommonMessages } from '../../i18n/common-messages';\n\n@Component({\n  selector: 'ls-options-list',\n  templateUrl: './options-list.component.html',\n  styleUrls: ['./options-list.component.scss']\n})\nexport class OptionsListComponent {\n\n  @HostBinding() class = 'ls-table';\n\n  @Input()\n  set optionsList(value: Options) {\n    this._optionsList = value;\n    this.updateAllChecked();\n  }\n\n  get optionsList(): Options {\n    return this._optionsList;\n  }\n\n  private _optionsList: Options;\n  allChecked = false;\n  commonMessages = CommonMessages;\n\n  toggleAll(value: boolean) {\n    this._optionsList.values.forEach(option => this.setValue(option, value));\n  }\n\n  setValue(option: Option, value: boolean) {\n    option.active = value;\n    this.updateAllChecked();\n  }\n\n  valueChanged(option: Option, value: boolean) {\n    this.setValue(option, value);\n  }\n\n  private updateAllChecked(): void {\n    this.allChecked = this._optionsList.values.length > 0 ? this._optionsList.values.every(option => option.active) : false;\n  }\n\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<table class=\"table table-striped inner-table\">\n  <thead>\n  <tr>\n    <th>\n      <div class=\"option-header\">\n        <span [innerText]=\"optionsList?.name\"></span>\n        <span class=\"all-checked\"\n              [innerText]=\"allChecked ? commonMessages.DEACTIVATE_ALL : commonMessages.ACTIVATE_ALL\">\n        </span>\n      </div>\n    </th>\n    <th class=\"toggle-button-column\">\n      <ls-toggle-slider [(ngModel)]=\"allChecked\"\n                        (valueChange)=\"toggleAll($event)\">\n      </ls-toggle-slider>\n    </th>\n  </tr>\n  </thead>\n  <tbody>\n  <tr *ngFor=\"let option of optionsList?.values\">\n    <td [innerText]=\"option.name\"></td>\n    <td class=\"toggle-button-column\">\n      <ls-toggle-slider (valueChange)=\"valueChanged(option, $event)\"\n                        [(ngModel)]=\"option.active\">\n      </ls-toggle-slider>\n    </td>\n  </tr>\n  </tbody>\n</table>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AnssiPasswordStrengthService {\n\n  getStrengthMeterAnssiSymbols(password: string): number {\n    const\n        binaryPattern = [\n          {pattern: /^[0-1]+$/g, symbols: 2}\n        ],\n        hexadecimalPattern = [\n          {pattern: /^(?=.*[a-f])(?!.*[A-F])[0-9a-f]*$|^(?=.*[A-F])(?!.*[a-f])[0-9A-F]*$/g, symbols: 16}\n        ],\n        hexadecimalMixedCasesPattern = [\n          {pattern: /^(?=.*[A-F])(?=.*[a-f])[0-9a-fA-F]*$/g, symbols: 22}\n        ],\n        globalPatterns = [\n          {pattern: /[0-9]/g, symbols: 10},\n          {pattern: /[a-z]/g, symbols: 26},\n          {pattern: /[A-Z]/g, symbols: 26},\n          {pattern: /[€!#$*%? ]/g, symbols: 8},\n          {pattern: /[&\\[|\\]@^µ§:;.,<>°²³'\"]/g, symbols: 20},\n          {pattern: /[àâäæçèéêëîïôœùûü]/g, symbols: 16},\n          {pattern: /[ÀÂÄÆÇÈÉÊËÎÏÔŒÙÛÜ]/g, symbols: 16}\n        ];\n\n    let symbolNumber: number = 0;\n    [binaryPattern, hexadecimalPattern, hexadecimalMixedCasesPattern, globalPatterns]\n        .find(patterns => {\n              symbolNumber = patterns.reduce(\n                  function (symbols, element) {\n                    return (password.match(element.pattern) ? element.symbols : 0) + symbols;\n                  }, 0);\n              return symbolNumber > 0;\n            }\n        );\n    return symbolNumber;\n  }\n\n  getStrengthMeterAnssiEntropy(password: string): number {\n    const symbols: number = this.getStrengthMeterAnssiSymbols(password);\n    return symbols === 0\n        ? 0\n        : Math.round(password.length * Math.log(symbols) * Math.LOG2E);\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {AnssiPasswordStrengthService} from '../../services/anssi-password-strength.service';\nimport {PasswordComponent} from '../password/password.component';\n\n@Component({\n  selector: 'ls-password-with-strength',\n  templateUrl: './password-with-strength.component.html',\n  styleUrls: ['./password-with-strength.component.scss'],\n  host: {'class': 'ls-password-with-strength'},\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PasswordWithStrengthComponent),\n      multi: true\n    }\n  ]\n})\nexport class PasswordWithStrengthComponent implements ControlValueAccessor {\n  constructor(protected element: ElementRef,\n              protected anssiPasswordStrengthService: AnssiPasswordStrengthService) {\n  }\n\n  private _weakStrengthLevel: number = 64;\n  private _averageStrengthLevel: number = 80;\n  private _strongStrengthLevel: number = 100;\n  @Input() _value;\n  @Input() showIcon: boolean = true;\n  @Input() placeholder: string;\n  @Input() required: boolean;\n  @Input() trim: boolean = false;\n  @Input() name: string;\n  @Input() id: string;\n  @ViewChild(PasswordComponent) lsPassword;\n  @Output() strengthLevel: EventEmitter<any> = new EventEmitter();\n\n  level: StrengthLevel = StrengthLevel.VERY_WEAK;\n  strength: number = 0;\n\n  get value() {\n    return this._value;\n  }\n\n  set value(value) {\n    this._value = value && this.trim\n        ? value.trim()\n        : value;\n    this.onChange(this._value);\n    this.onTouched();\n  }\n\n  get strongStrengthLevel(): number {\n    return this._strongStrengthLevel;\n  }\n\n  @Input()\n  set strongStrengthLevel(value: number) {\n    this._strongStrengthLevel = Math.max(0, value);\n    this.checkLevelsCoherence();\n  }\n\n  get averageStrengthLevel(): number {\n    return this._averageStrengthLevel;\n  }\n\n  @Input()\n  set averageStrengthLevel(value: number) {\n    this._averageStrengthLevel = Math.max(0, value);\n    this.checkLevelsCoherence();\n  }\n\n  get weakStrengthLevel(): number {\n    return this._weakStrengthLevel;\n  }\n\n  @Input()\n  set weakStrengthLevel(value: number) {\n    this._weakStrengthLevel = Math.max(0, value);\n    this.checkLevelsCoherence();\n  }\n\n\n  private getStrengthLevel(value: number): StrengthLevel {\n    // Thresholds are determined by ANSSI :\n    // https://www.ssi.gouv.fr/administration/precautions-elementaires/calculer-la-force-dun-mot-de-passe/\n    let level = StrengthLevel.VERY_WEAK;\n    if (value >= this._weakStrengthLevel) {\n      level = StrengthLevel.WEAK;\n    }\n    if (value >= this._averageStrengthLevel) {\n      level = StrengthLevel.AVERAGE;\n    }\n    if (value >= this._strongStrengthLevel) {\n      level = StrengthLevel.STRONG;\n    }\n    return level;\n  }\n\n  private checkLevelsCoherence() {\n    if (this.averageStrengthLevel > this.strongStrengthLevel) {\n      this.averageStrengthLevel = this.strongStrengthLevel;\n    }\n\n    if (this.weakStrengthLevel > this.averageStrengthLevel) {\n      this.weakStrengthLevel = this.averageStrengthLevel;\n    }\n  }\n\n  writeValue(value) {\n    if (value) {\n      this.value = value;\n    }\n  }\n\n  onChange: any = () => {\n  }\n\n  onTouched: any = () => {\n  }\n\n  registerOnChange(fn) {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn) {\n    this.onTouched = fn;\n  }\n\n  onChangeSelection(value: string) {\n    this.strength = value\n        ? this.anssiPasswordStrengthService.getStrengthMeterAnssiEntropy(value)\n        : 0;\n    this.level = this.getStrengthLevel(this.strength);\n    this.strengthLevel.emit(this.strength);\n  }\n\n  getProgressClass(): string {\n    switch (this.level) {\n      case StrengthLevel.VERY_WEAK: {\n        return 'bg-danger';\n      }\n      case StrengthLevel.WEAK: {\n        return 'bg-warning';\n      }\n      case StrengthLevel.AVERAGE: {\n        return 'bg-info';\n      }\n      case StrengthLevel.STRONG: {\n        return 'bg-success';\n      }\n    }\n  }\n\n  getPercent(): string {\n    return Math.min(Math.floor(100 * this.strength / this._strongStrengthLevel), 100).toString() + '%';\n  }\n}\n\nenum StrengthLevel {\n  STRONG = 'STRONG',\n  AVERAGE = 'AVERAGE',\n  WEAK = 'WEAK',\n  VERY_WEAK = 'VERY_WEAK'\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ls-password class=\"ls-password\"\n             (ngModelChange)=\"onChangeSelection($event)\"\n             [(ngModel)]=\"value\"\n             [name]=\"name\"\n             [required]=\"required\"\n             [showIcon]=\"showIcon\"\n             [id]=\"id\"\n             [placeholder]=\"placeholder\"\n             [trim]=\"trim\">\n</ls-password>\n\n<div class=\"progress\">\n  <div [attr.aria-valuemax]=\"strongStrengthLevel\"\n       [attr.aria-valuenow]=\"strength\"\n       [ngClass]=\"getProgressClass()\"\n       [style.width]=\"getPercent()\"\n       aria-valuemin=\"0\"\n       class=\"progress-bar progress-bar-striped\"\n       data-testId=\"progress-bar\"\n       role=\"progressbar\">\n  </div>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ButtonComponent} from '../button/button.component';\nimport {CommonMessages} from '../../../i18n/common-messages';\nimport {CommonIcons} from '../../../icons/common-icons';\n\n@Component({\n  // tslint:disable-next-line:component-selector\n  selector: 'button[ls-button-download],a[ls-button-download]',\n  templateUrl: '../button/button.component.html',\n  styleUrls: ['./download-button.component.scss']\n})\nexport class DownloadButtonComponent extends ButtonComponent implements OnInit {\n\n  ngOnInit() {\n    this.text = this.text ? this.text : CommonMessages.DOWNLOAD;\n    this.icon = this.icon ? this.icon : CommonIcons.DOWNLOAD_ICON;\n    super.ngOnInit();\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {BackToTopComponent} from './back-to-top/back-to-top.component';\nimport {ColorPickerComponent} from './color-picker/color-picker.component';\nimport {MaxLengthTextAreaComponent} from './max-length-textarea/max-length-textarea.component';\nimport {PasswordComponent} from './password/password.component';\nimport {TimepickerComponent} from './timepicker/timepicker.component';\nimport {CommonModule} from '@angular/common';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {LibersignComponent} from './libersign/libersign.component';\nimport {HttpClientModule} from '@angular/common/http';\nimport {ButtonComponent} from './buttons/button/button.component';\nimport {CancelButtonComponent} from './buttons/cancel-button/cancel-button.component';\nimport {GoBackButtonComponent} from './buttons/go-back-button/go-back-button.component';\nimport {SaveButtonComponent} from './buttons/save-button/save-button.component';\nimport {ValidateButtonComponent} from './buttons/validate-button/validate-button.component';\nimport {ActionBarComponent} from './action-bar/action-bar.component';\nimport {PipeModule} from '../pipes/pipe.module';\nimport {DirectiveModule} from '../directives/directive.module';\nimport {RadioButtonsComponent} from './radio-buttons/radio-buttons.component';\nimport {ToggleSliderComponent} from './toggle-slider/toggle-slider.component';\nimport {OptionsListComponent} from './options-list/options-list.component';\nimport {PasswordWithStrengthComponent} from './password-with-strength/password-with-strength.component';\nimport {DownloadButtonComponent} from './buttons/download-button/download-button.component';\nimport {FaIconLibrary, FontAwesomeModule} from '@fortawesome/angular-fontawesome';\nimport {fas} from \"@fortawesome/free-solid-svg-icons\";\nimport {far} from \"@fortawesome/free-regular-svg-icons\";\n\n\n@NgModule({\n  schemas: [NO_ERRORS_SCHEMA],\n  declarations: [\n    BackToTopComponent,\n    ColorPickerComponent,\n    MaxLengthTextAreaComponent,\n    PasswordComponent,\n    TimepickerComponent,\n    LibersignComponent,\n    ButtonComponent,\n    CancelButtonComponent,\n    GoBackButtonComponent,\n    SaveButtonComponent,\n    DownloadButtonComponent,\n    ValidateButtonComponent,\n    ActionBarComponent,\n    RadioButtonsComponent,\n    OptionsListComponent,\n    ToggleSliderComponent,\n    PasswordWithStrengthComponent\n  ],\n  imports: [\n    BrowserModule,\n    CommonModule,\n    BrowserAnimationsModule,\n    FormsModule,\n    ReactiveFormsModule,\n    HttpClientModule,\n    PipeModule,\n    DirectiveModule,\n    FontAwesomeModule\n  ],\n  exports: [\n    BackToTopComponent,\n    ColorPickerComponent,\n    MaxLengthTextAreaComponent,\n    PasswordComponent,\n    TimepickerComponent,\n    LibersignComponent,\n    ButtonComponent,\n    CancelButtonComponent,\n    GoBackButtonComponent,\n    SaveButtonComponent,\n    DownloadButtonComponent,\n    ValidateButtonComponent,\n    ActionBarComponent,\n    RadioButtonsComponent,\n    OptionsListComponent,\n    ToggleSliderComponent,\n    PasswordWithStrengthComponent\n  ]\n})\nexport class LsUiComponentsModule {\n\n  // This is for Components with contents\n  public static angularComponents = {\n    // components\n    'ls-lib-back-top-top': BackToTopComponent,\n    'ls-lib-max-length-textarea': MaxLengthTextAreaComponent,\n    'ls-lib-color-picker': ColorPickerComponent,\n    'ls-lib-timepicker': TimepickerComponent,\n    'ls-lib-password': PasswordComponent,\n    'ls-lib-password-with-strength': PasswordWithStrengthComponent,\n    'ls-lib-libersign': LibersignComponent,\n    'ls-lib-button': ButtonComponent,\n    'ls-lib-button-cancel': CancelButtonComponent,\n    'ls-lib-button-go-back': GoBackButtonComponent,\n    'ls-lib-button-save': SaveButtonComponent,\n    'ls-lib-button-validate': ValidateButtonComponent,\n    'ls-lib-download-validate': ValidateButtonComponent,\n    'ls-lib-action-bar': ActionBarComponent,\n    'ls-lib-radio-buttons': RadioButtonsComponent,\n    'ls-lib-options_list': OptionsListComponent,\n    'ls-lib-toggle-slider': ToggleSliderComponent\n  };\n\n  constructor(library: FaIconLibrary) {\n    library.addIconPacks(fas, far);\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {FormsModule} from '@angular/forms';\nimport {FooterComponent} from './footer/footer.component';\nimport {SidebarComponent} from './sidebar/sidebar.component';\nimport {ContentComponent} from './content/content.component';\nimport {SidebarService} from './sidebar/sidebar.service';\nimport {LsUiComponentsModule} from '../components/ui-components.module';\nimport {FontAwesomeModule} from \"@fortawesome/angular-fontawesome\";\n\n\n@NgModule({\n  declarations: [\n    FooterComponent,\n    SidebarComponent,\n    ContentComponent,\n  ],\n  imports: [\n    BrowserModule,\n    BrowserAnimationsModule,\n    FormsModule,\n    LsUiComponentsModule,\n    FontAwesomeModule\n  ],\n  exports: [\n    FooterComponent,\n    SidebarComponent,\n    ContentComponent,\n  ],\n  providers: [\n    SidebarService\n  ]\n})\nexport class LsStructureModule {\n  public static angularComponents = {\n    // structure\n    'ls-lib-footer': FooterComponent,\n    'ls-lib-sidebar': SidebarComponent,\n    'ls-lib-content': ContentComponent,\n  };\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class LoginConfigModel {\n  showCustom: boolean;\n  showInformation: boolean;\n  informationText: string;\n  informationType: 'info' | 'warning' | 'danger';\n  colorBackground: string;\n  colorText: string;\n  subText: string;\n  imgData: string;\n  imgName: string;\n}\n\nexport const defaultConfiguration: LoginConfigModel = {\n  showCustom: true,\n  showInformation: false,\n  informationText: 'Mon message',\n  informationType: 'info',\n  colorBackground: '#F7F7F7',\n  colorText: '#000000',\n  subText: 'Développons ensemble, vos projets de demain.',\n  // tslint:disable-next-line:max-line-length\n  imgData: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJDYWxxdWVfMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgOTk3Ljk3IDE0NSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMyYjI4NTk7fS5jbHMtMntmaWxsOiM0MmExZTg7fTwvc3R5bGU+PC9kZWZzPjxnIGlkPSJsaWJyaWNpZWxfU0NPUCI+PGc+PGc+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNODc3LjIsNTQuNTRjLTMuMiwwLTUuODctLjYyLTguMDItMS44Ny0yLjE1LTEuMjUtMy43Ny0zLjA4LTQuODYtNS40OS0xLjEtMi40MS0xLjcxLTUuMzctMS44NC04Ljg3bDguMzQtMS42NGMuMDksMi4wNiwuMzQsMy44OCwuNzYsNS40NSwuNDIsMS41OCwxLjA1LDIuNzksMS45MSwzLjY1LC44NSwuODUsMS45OCwxLjI4LDMuMzgsMS4yOCwxLjU4LDAsMi42OS0uNDcsMy4zNS0xLjQxLC42Ni0uOTQsLjk5LTIuMTQsLjk5LTMuNTgsMC0yLjMyLS41My00LjIzLTEuNTgtNS43Mi0xLjA1LTEuNDktMi40NS0yLjk4LTQuMjEtNC40N2wtNi43LTUuOTFjLTEuODgtMS42Mi0zLjM4LTMuNDMtNC41LTUuNDItMS4xMi0xLjk5LTEuNjgtNC40Ni0xLjY4LTcuMzksMC00LjIxLDEuMjMtNy40NSwzLjY4LTkuNzIsMi40NS0yLjI4LDUuOC0zLjQyLDEwLjA1LTMuNDIsMi41LDAsNC41OCwuMzgsNi4yNCwxLjE1LDEuNjYsLjc3LDIuOTksMS44MywzLjk4LDMuMTksLjk5LDEuMzYsMS43MiwyLjksMi4yLDQuNjMsLjQ4LDEuNzMsLjc5LDMuNTYsLjkyLDUuNDlsLTguMjgsMS40NWMtLjA5LTEuNjYtLjI3LTMuMTUtLjU2LTQuNDctLjI5LTEuMzEtLjc5LTIuMzQtMS41MS0zLjA5LS43Mi0uNzQtMS43OS0xLjEyLTMuMTktMS4xMnMtMi41NSwuNDctMy4zMiwxLjQxYy0uNzcsLjk0LTEuMTUsMi4xMS0xLjE1LDMuNTIsMCwxLjgsLjM3LDMuMjgsMS4xMiw0LjQ0LC43NCwxLjE2LDEuODIsMi4zNiwzLjIyLDMuNThsNi42NCw1Ljg1YzIuMTksMS44NCw0LjA2LDQsNS42Miw2LjQ3LDEuNTUsMi40OCwyLjMzLDUuNDYsMi4zMyw4Ljk3LDAsMi41NC0uNTYsNC44LTEuNjgsNi43N3MtMi42NywzLjUyLTQuNjcsNC42M2MtMS45OSwxLjEyLTQuMzMsMS42OC03LDEuNjhaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNOTEwLjU4LDU0LjU0Yy0zLjksMC02Ljk1LS43Ny05LjE3LTIuMy0yLjIxLTEuNTMtMy43Ni0zLjYyLTQuNjMtNi4yNy0uODgtMi42NS0xLjMxLTUuNzEtMS4zMS05LjE3VjE3LjgxYzAtMy42NCwuNDQtNi43OSwxLjMxLTkuNDYsLjg4LTIuNjcsMi40Mi00LjczLDQuNjMtNi4xOCwyLjIxLTEuNDUsNS4yNy0yLjE3LDkuMTctMi4xNywzLjY4LDAsNi41NiwuNjIsOC42NCwxLjg3LDIuMDgsMS4yNSwzLjU2LDMuMDMsNC40NCw1LjM2LC44OCwyLjMyLDEuMzEsNS4wMiwxLjMxLDguMDh2NC40N2gtOS4zM3YtNC42YzAtMS40OS0uMDgtMi44NS0uMjMtNC4wNy0uMTUtMS4yMy0uNTctMi4yLTEuMjUtMi45Mi0uNjgtLjcyLTEuODUtMS4wOC0zLjUyLTEuMDhzLTIuODgsLjM4LTMuNjUsMS4xNWMtLjc3LC43Ny0xLjI2LDEuOC0xLjQ4LDMuMDktLjIyLDEuMjktLjMzLDIuNzUtLjMzLDQuMzd2MjMuMTNjMCwxLjkzLC4xNSwzLjUyLC40Niw0Ljc2LC4zMSwxLjI1LC44NiwyLjE5LDEuNjgsMi44MywuODEsLjY0LDEuOTIsLjk1LDMuMzIsLjk1LDEuNjIsMCwyLjc3LS4zOCwzLjQ1LTEuMTUsLjY4LS43NywxLjExLTEuNzgsMS4yOC0zLjA2LC4xNy0xLjI3LC4yNi0yLjY5LC4yNi00LjI3di00LjhoOS4zM3Y0LjI3YzAsMy4xNS0uNDIsNS45NS0xLjI1LDguMzgtLjgzLDIuNDMtMi4yOSw0LjM0LTQuMzcsNS43Mi0yLjA4LDEuMzgtNSwyLjA3LTguNzcsMi4wN1oiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik05NDYuMTksNTQuNTRjLTMuNzcsMC02Ljc3LS43LTktMi4xLTIuMjMtMS40LTMuODMtMy40Mi00LjgtNi4wNC0uOTYtMi42My0xLjQ1LTUuNzQtMS40NS05LjMzVjE3LjE1YzAtMy41OSwuNDgtNi42NywxLjQ1LTkuMjMsLjk2LTIuNTYsMi41Ni00LjUyLDQuOC01Ljg4LDIuMjMtMS4zNiw1LjIzLTIuMDQsOS0yLjA0czYuODksLjY4LDkuMSwyLjA0YzIuMjEsMS4zNiwzLjgxLDMuMzIsNC44LDUuODgsLjk5LDIuNTYsMS40OCw1LjY0LDEuNDgsOS4yM3YxOS45N2MwLDMuNTUtLjQ5LDYuNjMtMS40OCw5LjIzLS45OSwyLjYxLTIuNTgsNC42Mi00LjgsNi4wNC0yLjIxLDEuNDItNS4yNSwyLjE0LTkuMSwyLjE0Wm0wLTcuMTZjMS42MiwwLDIuODEtLjM1LDMuNTgtMS4wNSwuNzctLjcsMS4yOC0xLjY2LDEuNTQtMi44OSwuMjYtMS4yMywuMzktMi41NiwuMzktNC4wMVYxNC45MmMwLTEuNDktLjEzLTIuODMtLjM5LTQuMDFzLS43OC0yLjExLTEuNTQtMi43OWMtLjc3LS42OC0xLjk2LTEuMDItMy41OC0xLjAyLTEuNTMsMC0yLjY5LC4zNC0zLjQ4LDEuMDItLjc5LC42OC0xLjMxLDEuNjEtMS41OCwyLjc5LS4yNiwxLjE4LS4zOSwyLjUyLS4zOSw0LjAxdjI0LjUxYzAsMS40NSwuMTIsMi43OCwuMzYsNC4wMSwuMjQsMS4yMywuNzYsMi4xOSwxLjU0LDIuODksLjc5LC43LDEuOTcsMS4wNSwzLjU1LDEuMDVaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNOTY4LjczLDUzLjgxVi41OWgxNS42NGMzLjIsMCw1Ljc5LC41OSw3Ljc5LDEuNzcsMS45OSwxLjE4LDMuNDYsMi45LDQuNCw1LjE2LC45NCwyLjI2LDEuNDEsNC45OCwxLjQxLDguMTgsMCwzLjQ2LS41OSw2LjI1LTEuNzcsOC4zOC0xLjE4LDIuMTMtMi44NCwzLjY3LTQuOTYsNC42My0yLjEyLC45Ni00LjYzLDEuNDUtNy41MiwxLjQ1aC01LjI2djIzLjY1aC05LjcyWm05LjcyLTMwLjQ5aDMuNjhjMS43NSwwLDMuMTItLjI1LDQuMTEtLjc2LC45OS0uNSwxLjY2LTEuMzEsMi4wNC0yLjQzLC4zNy0xLjEyLC41Ni0yLjYyLC41Ni00LjVzLS4xNC0zLjQ5LS40My00LjdjLS4yOS0xLjItLjktMi4wOS0xLjg0LTIuNjYtLjk0LS41Ny0yLjQyLS44NS00LjQ0LS44NWgtMy42OHYxNS45WiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yNjcuOTgsMTE1LjM4djIzLjhoLTgyLjIyVjE2LjExaDI3LjdWMTE1LjM4aDU0LjUyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTMxMi45MSwxOC43N2MwLDQuODYtMS41Nyw4LjY3LTQuNzEsMTEuNDUtMy4xNCwyLjc4LTYuODQsNC4xNy0xMS4xLDQuMTdzLTcuOTYtMS4zOS0xMS4xLTQuMTdjLTMuMTQtMi43OC00LjcxLTYuNi00LjcxLTExLjQ1czEuNTctOC42Nyw0LjcxLTExLjQ1YzMuMTQtMi43OCw2Ljg0LTQuMTcsMTEuMS00LjE3czcuOTYsMS4zOSwxMS4xLDQuMTdjMy4xNCwyLjc4LDQuNzEsNi42LDQuNzEsMTEuNDVabS0yLjQ5LDEyMC40aC0yNi40NlY0NS43N2gyNi40NnY5My40MVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00MjIuMTIsOTIuNDdjMCw3LjQ2LTEuMSwxNC4yMS0zLjI5LDIwLjI1LTIuMTksNi4wNC01LjM2LDExLjE5LTkuNSwxNS40NS00LjE1LDQuMjYtOS4yMyw3LjU1LTE1LjI3LDkuODYtNi4wNCwyLjMxLTEyLjkxLDMuNDYtMjAuNiwzLjQ2LTMuMiwwLTYuNTQtLjE1LTEwLjAzLS40NC0zLjQ5LS4zLTYuOTMtLjY4LTEwLjMtMS4xNS0zLjM3LS40Ny02LjYtMS4wMy05LjY4LTEuNjktMy4wOC0uNjUtNS44LTEuMzMtOC4xNy0yLjA0VjUuNjNsMjYuNDYtNC4yNlY0Ny45YzIuOTYtMS4zLDYuMDQtMi4zMSw5LjIzLTMuMDIsMy4yLS43MSw2LjYzLTEuMDcsMTAuMy0xLjA3LDYuNjMsMCwxMi40OSwxLjE1LDE3LjU4LDMuNDYsNS4wOSwyLjMxLDkuMzUsNS41OSwxMi43OSw5Ljg2LDMuNDMsNC4yNiw2LjA0LDkuMzgsNy44MSwxNS4zNiwxLjc4LDUuOTgsMi42NiwxMi42NCwyLjY2LDE5Ljk4Wm0tMjYuOTktLjcxYzAtMTcuMDUtNi4yOC0yNS41Ny0xOC44Mi0yNS41Ny0yLjcyLDAtNS40MiwuMzYtOC4wOCwxLjA3LTIuNjYsLjcxLTQuODMsMS42LTYuNDgsMi42NnY0OC4xM2MxLjMsLjI0LDIuOTYsLjQ0LDQuOTcsLjYyLDIuMDEsLjE4LDQuMiwuMjcsNi41NywuMjcsNy4yMiwwLDEyLjY3LTIuNDksMTYuMzQtNy40NiwzLjY3LTQuOTcsNS41MS0xMS41NCw1LjUxLTE5LjcxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ5OC44NCw2OS4yMWMtMi4zNy0uNTktNS4xNS0xLjIxLTguMzUtMS44Ni0zLjItLjY1LTYuNjMtLjk4LTEwLjMtLjk4LTEuNjYsMC0zLjY0LC4xNS01Ljk1LC40NC0yLjMxLC4zLTQuMDYsLjYyLTUuMjQsLjk4djcxLjM5aC0yNi40NlY1MC43NGM0LjczLTEuNjYsMTAuMzMtMy4yMiwxNi43OC00LjcxLDYuNDUtMS40OCwxMy42NC0yLjIyLDIxLjU4LTIuMjIsMS40MiwwLDMuMTQsLjA5LDUuMTUsLjI3LDIuMDEsLjE4LDQuMDIsLjQyLDYuMDQsLjcxLDIuMDEsLjMsNC4wMiwuNjUsNi4wNCwxLjA3LDIuMDEsLjQyLDMuNzMsLjkyLDUuMTUsMS41MWwtNC40NCwyMS44NFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01NDYuNDMsMTguNzdjMCw0Ljg2LTEuNTcsOC42Ny00LjcxLDExLjQ1LTMuMTQsMi43OC02Ljg0LDQuMTctMTEuMSw0LjE3cy03Ljk2LTEuMzktMTEuMS00LjE3Yy0zLjE0LTIuNzgtNC43MS02LjYtNC43MS0xMS40NXMxLjU3LTguNjcsNC43MS0xMS40NWMzLjE0LTIuNzgsNi44NC00LjE3LDExLjEtNC4xN3M3Ljk2LDEuMzksMTEuMSw0LjE3YzMuMTQsMi43OCw0LjcxLDYuNiw0LjcxLDExLjQ1Wm0tMi40OSwxMjAuNGgtMjYuNDZWNDUuNzdoMjYuNDZ2OTMuNDFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTY0LjM3LDkyLjQ3YzAtNi43NSwxLjA5LTEzLjExLDMuMjktMTkuMDksMi4xOS01Ljk4LDUuMzYtMTEuMTksOS41LTE1LjYzLDQuMTQtNC40NCw5LjE3LTcuOTYsMTUuMS0xMC41Nyw1LjkyLTIuNiwxMi42Ny0zLjkxLDIwLjI1LTMuOTEsNC45NywwLDkuNTMsLjQ0LDEzLjY3LDEuMzMsNC4xNCwuODksOC4xNywyLjE2LDEyLjA4LDMuODJsLTUuNTEsMjEuMTNjLTIuNDktLjk1LTUuMjEtMS43OC04LjE3LTIuNDktMi45Ni0uNzEtNi4yOC0xLjA3LTkuOTQtMS4wNy03LjgxLDAtMTMuNjUsMi40My0xNy40OSw3LjI4LTMuODUsNC44Ni01Ljc3LDExLjI1LTUuNzcsMTkuMTgsMCw4LjQxLDEuOCwxNC45Miw1LjQyLDE5LjUzLDMuNjEsNC42Miw5LjkxLDYuOTMsMTguOTEsNi45MywzLjIsMCw2LjYzLS4yOSwxMC4zLS44OSwzLjY3LS41OSw3LjA0LTEuNTQsMTAuMTItMi44NGwzLjczLDIxLjY3Yy0zLjA4LDEuMy02LjkzLDIuNDItMTEuNTQsMy4zNy00LjYyLC45NS05LjcxLDEuNDItMTUuMjcsMS40Mi04LjUyLDAtMTUuODctMS4yNy0yMi4wMi0zLjgyLTYuMTYtMi41NC0xMS4yMi02LjAxLTE1LjE4LTEwLjM5LTMuOTctNC4zOC02Ljg3LTkuNTYtOC43LTE1LjU0LTEuODQtNS45OC0yLjc1LTEyLjQ2LTIuNzUtMTkuNDVaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjg2LjU1LDE4Ljc3YzAsNC44Ni0xLjU3LDguNjctNC43MSwxMS40NS0zLjE0LDIuNzgtNi44NCw0LjE3LTExLjEsNC4xN3MtNy45Ni0xLjM5LTExLjEtNC4xN2MtMy4xNC0yLjc4LTQuNzEtNi42LTQuNzEtMTEuNDVzMS41Ny04LjY3LDQuNzEtMTEuNDVjMy4xNC0yLjc4LDYuODQtNC4xNywxMS4xLTQuMTdzNy45NiwxLjM5LDExLjEsNC4xN2MzLjE0LDIuNzgsNC43MSw2LjYsNC43MSwxMS40NVptLTIuNDksMTIwLjRoLTI2LjQ2VjQ1Ljc3aDI2LjQ2djkzLjQxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTcwNC40OCw5My4xOGMwLTguMjksMS4yNy0xNS41NCwzLjgyLTIxLjc1LDIuNTQtNi4yMiw1Ljg5LTExLjM5LDEwLjAzLTE1LjU0LDQuMTQtNC4xNCw4LjkxLTcuMjgsMTQuMy05LjQxLDUuMzktMi4xMywxMC45Mi0zLjIsMTYuNi0zLjIsMTMuMjYsMCwyMy43NCw0LjA2LDMxLjQzLDEyLjE2LDcuNjksOC4xMSwxMS41NCwyMC4wNCwxMS41NCwzNS43OCwwLDEuNTQtLjA2LDMuMjMtLjE4LDUuMDYtLjEyLDEuODQtLjI0LDMuNDYtLjM2LDQuODhoLTYwLjAyYy41OSw1LjQ1LDMuMTQsOS43Nyw3LjY0LDEyLjk2LDQuNSwzLjIsMTAuNTQsNC43OSwxOC4xMSw0Ljc5LDQuODUsMCw5LjYyLS40NCwxNC4zLTEuMzMsNC42OC0uODksOC40OS0xLjk4LDExLjQ1LTMuMjlsMy41NSwyMS40OWMtMS40MiwuNzEtMy4zMiwxLjQyLTUuNjgsMi4xMy0yLjM3LC43MS01LDEuMzMtNy45LDEuODYtMi45LC41My02LjAxLC45OC05LjMyLDEuMzMtMy4zMiwuMzUtNi42MywuNTMtOS45NCwuNTMtOC40MSwwLTE1LjcyLTEuMjQtMjEuOTMtMy43My02LjIyLTIuNDktMTEuMzctNS44OS0xNS40NS0xMC4yMS00LjA4LTQuMzItNy4xLTkuNDQtOS4wNi0xNS4zNi0xLjk1LTUuOTItMi45My0xMi4zMS0yLjkzLTE5LjE4Wm02Mi4xNi0xMC4xMmMtLjEyLTIuMjUtLjUxLTQuNDQtMS4xNS02LjU3LS42NS0yLjEzLTEuNjYtNC4wMi0zLjAyLTUuNjgtMS4zNi0xLjY2LTMuMDgtMy4wMi01LjE1LTQuMDgtMi4wNy0xLjA3LTQuNjUtMS42LTcuNzMtMS42cy01LjUxLC41MS03LjY0LDEuNTFjLTIuMTMsMS4wMS0zLjkxLDIuMzQtNS4zMyw0LTEuNDIsMS42Ni0yLjUyLDMuNTgtMy4yOSw1Ljc3LS43NywyLjE5LTEuMzMsNC40MS0xLjY5LDYuNjZoMzQuOThaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODQ5LjkzLDE0MC45NWMtNy43LS4xMi0xMy45NC0uOTUtMTguNzQtMi40OS00LjgtMS41NC04LjU5LTMuNy0xMS4zNy02LjQ4LTIuNzgtMi43OC00LjY4LTYuMTUtNS42OC0xMC4xMi0xLjAxLTMuOTctMS41MS04LjQ0LTEuNTEtMTMuNDFWNS42M2wyNi40Ni00LjI2VjEwMy4xM2MwLDIuMzcsLjE4LDQuNSwuNTMsNi4zOSwuMzUsMS45LDEuMDMsMy40OSwyLjA0LDQuNzksMSwxLjMsMi40NiwyLjM3LDQuMzUsMy4yLDEuODksLjgzLDQuNDQsMS4zNiw3LjY0LDEuNmwtMy43MywyMS44NFoiLz48L2c+PGc+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNLjY5LDE3Ljg5bDc5LjQsMTI3LjEsMTIuNTMtNTAuODUtMjguMzctNTAuNTdjLTEuNjgtMi45OS00LjIyLTUuNC03LjI5LTYuOTJMNi4zMiwxMS42N2MtMy45NC0xLjk0LTcuOTYsMi41LTUuNjMsNi4yMloiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0xMjIuNTgsNzguMjZsLTI5Ljk2LDE1Ljg5LTEyLjUzLDUwLjg1LDg4LjE1LTQyLjQzYzIuOC0xLjM1LDIuODgtNS4zMSwuMTMtNi43N2wtMzMuMjYtMTcuNTZjLTMuOTItMi4wNy04LjYtMi4wNi0xMi41MSwuMDFaIi8+PC9nPjwvZz48L2c+PC9zdmc+',\n  imgName: 'logo-libriciel.svg'\n};\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, ElementRef, HostListener, Input, ViewChild} from '@angular/core';\nimport {defaultConfiguration, LoginConfigModel} from '../login-config/login-config.model';\n\n@Component({\n  selector: 'ls-login-model',\n  templateUrl: './login-model.component.html',\n  styleUrls: ['./login-model.component.scss']\n})\nexport class LoginModelComponent {\n  @Input() logo;\n\n  _visualConfiguration: LoginConfigModel = defaultConfiguration;\n\n  @ViewChild('imgcontainer') imgEl: ElementRef;\n  imgSize: { w: number, h: number };\n\n  @Input()\n  set visualConfiguration(config) {\n    this._visualConfiguration = typeof config === 'string' ? JSON.parse(config) : config;\n    this.getImageDimensions(this._visualConfiguration.imgData);\n  }\n\n  getImageDimensions(file) {\n    const i = new Image();\n    i.onload = () => {\n      this.imgSize = {w: i.width, h: i.height};\n      this.handleImgPositionning();\n    };\n    i.src = file;\n  }\n\n  @HostListener('window:resize')\n  handleImgPositionning() {\n    if (this.imgSize !== null) {\n      const w = this.imgEl.nativeElement.offsetWidth;\n      const h = this.imgEl.nativeElement.offsetHeight;\n\n      let finalSize;\n      let width: any = '90%';\n      let height: any = '90%';\n\n      if (this.imgSize.w > this.imgSize.h) {\n        finalSize = (w * 0.9 * this.imgSize.h) / (h * this.imgSize.w) * 100;\n        height = finalSize + '%';\n        if (finalSize > 90) {\n          width = 'auto';\n          height = '90%';\n        }\n      } else {\n        finalSize = (h * 0.9 * this.imgSize.w) / (w * this.imgSize.h) * 100;\n        width = finalSize + '%';\n        if (finalSize > 90) {\n          height = 'auto';\n          width = '90%';\n        }\n      }\n      this.imgEl.nativeElement.style['background-size'] = width + ' ' + height;\n    }\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<main class=\"connection-page\">\n  <section class=\"main\">\n    <div [style.background-color]=\"_visualConfiguration.colorBackground\"\n         [style.color]=\"_visualConfiguration.colorText\"\n         [style.display]=\"_visualConfiguration.showCustom ? '': 'none'\"\n         class=\"coll-side\">\n      <div #imgcontainer class=\"img-container\"\n           [ngStyle]=\"{'background-image': 'url(&quot;' + _visualConfiguration.imgData + '&quot;)'}\">\n\n      </div>\n      <div class=\"sub-txt\">\n        <span>{{_visualConfiguration.subText}}</span>\n      </div>\n    </div>\n    <div class=\"form-side\">\n\n      <div class=\"form-content\"\n           [ngClass]=\"_visualConfiguration.showInformation && _visualConfiguration.informationText ? 'form-content-padding' : ''\">\n        <div class=\"soft-logo\">\n          <img id=\"libriciel-logo\" [src]=\"logo\" alt=\"Image du Libriciel\" src=\"\">\n        </div>\n\n        <ng-content></ng-content>\n\n      </div>\n    </div>\n  </section>\n  <section *ngIf=\"_visualConfiguration.showInformation && _visualConfiguration.informationText\"\n           class=\"floating-message\">\n    <div [ngClass]=\"'alert-' + _visualConfiguration.informationType\" class=\"alert\">\n      <i [class.fa-exclamation-circle]=\"_visualConfiguration.informationType === 'warning'\"\n         [class.fa-exclamation-triangle]=\"_visualConfiguration.informationType === 'danger'\"\n         [class.fa-info-circle]=\"_visualConfiguration.informationType === 'info'\"\n         class=\"fa fa-lg\"\n      ></i>\n      {{_visualConfiguration.informationText}}</div>\n  </section>\n</main>\n\n\n\n\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, HostListener, Input, Output, ViewChild} from '@angular/core';\nimport {defaultConfiguration, LoginConfigModel} from './login-config.model';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {Weight} from '../../../../ui-concepts/weight';\nimport {CommonIcons} from '../../../../icons/common-icons';\nimport {CommonMessages} from '../../../../i18n/common-messages';\n\n@Component({\n  selector: 'ls-login-config',\n  templateUrl: './login-config.component.html',\n  styleUrls: ['./login-config.component.scss']\n})\nexport class LoginConfigComponent {\n\n  @Output() save: EventEmitter<LoginConfigModel> = new EventEmitter<LoginConfigModel>();\n  @Output() back: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('fileInput') fileInput;\n\n  previewChanges: boolean = false;\n  saving: boolean = false;\n  isSaved: boolean = false;\n  weight = Weight;\n  commonIcons = CommonIcons;\n  commonMessages = CommonMessages;\n\n  constructor(public _DomSanitizationService: DomSanitizer) {\n    this._configuration = Object.assign({}, defaultConfiguration);\n  }\n\n  _configuration: LoginConfigModel;\n  _asyncSave: boolean = false;\n  _timeoutShow;\n\n  @HostListener('saved') onSaved() {\n    this.isSaved = true;\n    this.saving = false;\n    clearTimeout(this._timeoutShow);\n    this._timeoutShow = setTimeout(() => {\n      this.isSaved = false;\n    }, 3000);\n  }\n\n  @Input()\n  set asyncSave(async) {\n    this._asyncSave = typeof async === 'string' ? async === 'true' : async;\n  }\n\n  @Input()\n  set configuration(config) {\n    if (!config || typeof config === 'string' && config.trim() === '') {\n      config = defaultConfiguration;\n    }\n    this._configuration = typeof config === 'string' ? JSON.parse(config) : config;\n  }\n\n  public stopPropagation(event: any): void {\n    event.stopPropagation();\n  }\n\n  @HostListener('document:keydown.escape')\n  public onEscapeKeyPressed() {\n    this.previewChanges = false;\n  }\n\n  public onFileChanged(event) {\n    const file = event.target.files[0];\n    const reader: FileReader = new FileReader();\n\n    reader.addEventListener('load', () => {\n      this._configuration.imgName = file.name;\n      // @ts-ignore\n      this._configuration.imgData = reader.result;\n    }, false);\n\n    if (file) {\n      reader.readAsDataURL(file);\n    }\n  }\n\n  removeCurrentFile() {\n    this._configuration.imgData = undefined;\n    this.fileInput.nativeElement.value = '';\n  }\n\n  public onReset() {\n    this.removeCurrentFile();\n    Object.assign(this._configuration, defaultConfiguration);\n  }\n\n  public onSave() {\n    this.save.emit(this._configuration);\n    if (this._asyncSave) {\n      this.saving = true;\n    } else {\n      this.onSaved();\n    }\n  }\n\n  public onBack() {\n    this.back.emit();\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<h3>Personnalisation de la page de connexion</h3>\n\n<span class=\"alert alert-info\">\n  <i class=\"fa fa-info-circle\"></i>\n  Rappel : les champs renseignés ci-dessous sont visibles de tous les utilisateurs\n</span>\n\n<div class=\"action-buttons\">\n  <button ls-button-go-back (click)=\"onBack()\"></button>\n  <button ls-button (click)=\"previewChanges = true\" [icon]=\"commonIcons.PREVIEW_ICON\" [text]=\"commonMessages.PREVIEW\"\n          [weight]=\"weight.SECONDARY\">\n  </button>\n  <button ls-button (click)=\"onReset()\" [icon]=\"commonIcons.RE_INIT_ICON\" [text]=\"commonMessages.RE_INIT\"\n          [weight]=\"weight.SECONDARY\">\n  </button>\n  <button ls-button-save (click)=\"onSave()\" [processing]=\"saving\"></button>\n\n  <span *ngIf=\"isSaved\" class=\"text text-success\"><i class=\"fa fa-check\"></i> Configuration enregistrée</span>\n</div>\n\n<div class=\"content-div\">\n  <div>\n    <div>\n      <h3>Collectivité / structure</h3>\n      <p>Activer l'espace de personnalisation réservé à la collectivité / structure ?</p>\n      <div>\n        <input [(ngModel)]=\"_configuration.showCustom\" [value]=\"true\" checked class=\"btn-radio\" id=\"show-custom-yes\"\n               name=\"show-custom\"\n               type=\"radio\">\n        <label for=\"show-custom-yes\">\n          Activer\n        </label>\n        <input [(ngModel)]=\"_configuration.showCustom\" [value]=\"false\" class=\"btn-radio\" id=\"show-custom-no\"\n               name=\"show-custom\"\n               type=\"radio\">\n        <label class=\"margin-left-16\" for=\"show-custom-no\">\n          Désactiver\n        </label>\n      </div>\n    </div>\n    <div [class.disabled]=\"!_configuration.showCustom\">\n      <h4>Logo de la collectivité</h4>\n      <input\n          #fileInput\n          (change)=\"onFileChanged($event)\" style=\"display: none\"\n          type=\"file\">\n      <button (click)=\"fileInput.click()\" *ngIf=\"!_configuration.imgData\" class=\"btn btn-primary\">\n        <i class=\"fa fa-plus-circle\"></i>\n        Ajouter une image\n      </button>\n      <div *ngIf=\"_configuration.imgData\" class=\"image-informations\">\n        <div>\n          <i class=\"fa fa-image\"></i>\n          {{_configuration.imgName}}\n        </div>\n        <div>\n          <i (click)=\"removeCurrentFile()\" title=\"Supprimer le logo\" class=\"fa fa-trash fa-trash-alt\"></i>\n          <i (click)=\"fileInput.click()\" title=\"Modifier le logo\" class=\"fa fa-refresh fa-sync\"></i>\n        </div>\n      </div>\n    </div>\n    <div [class.disabled]=\"!_configuration.showCustom\">\n      <h4>\n        Couleurs\n      </h4>\n      <div class=\"d-flex\">\n        <div class=\"color-picker color-background\">\n          <label for=\"background-color\">Couleur de fond</label>\n          <ls-color-picker id=\"background-color\" [(ngModel)]=\"_configuration.colorBackground\"></ls-color-picker>\n        </div>\n        <div class=\"color-picker color-text\">\n          <label for=\"text-color\">Couleur du sous-titre</label>\n          <ls-color-picker id=\"text-color\" [(ngModel)]=\"_configuration.colorText\"></ls-color-picker>\n        </div>\n      </div>\n    </div>\n\n    <div [class.disabled]=\"!_configuration.showCustom\">\n      <label class=\"h4\" for=\"soustitre\">\n        Sous-titre\n      </label>\n      <ls-max-length-textarea [(ngModel)]=\"_configuration.subText\" id=\"soustitre\" maxlength=\"300\"\n                              name=\"soustitre\"></ls-max-length-textarea>\n    </div>\n  </div>\n  <div>\n    <div>\n      <h3>Message d'informations</h3>\n      <p>Afficher un message d'information ?</p>\n      <div>\n        <input [(ngModel)]=\"_configuration.showInformation\" [value]=\"true\" checked class=\"btn-radio\" id=\"show-info-yes\"\n               name=\"show-info\"\n               type=\"radio\">\n        <label for=\"show-info-yes\">\n          Afficher\n        </label>\n        <input [(ngModel)]=\"_configuration.showInformation\" [value]=\"false\" class=\"btn-radio\" id=\"show-info-no\"\n               name=\"show-info\"\n               type=\"radio\">\n        <label class=\"margin-left-16\" for=\"show-info-no\">\n          Ne pas afficher\n        </label>\n      </div>\n\n    </div>\n\n    <div [class.disabled]=\"!_configuration.showInformation\">\n      <label for=\"message-text\">Texte du message :</label>\n      <ls-max-length-textarea [(ngModel)]=\"_configuration.informationText\" id=\"message-text\" maxlength=\"300\"\n                              name=\"message-text\"></ls-max-length-textarea>\n    </div>\n\n    <div [class.disabled]=\"!_configuration.showInformation\">\n      <h4>Niveau d'alerte du message</h4>\n      <div class=\"\">\n        <input [(ngModel)]=\"_configuration.informationType\" id=\"exampleRadios1\" name=\"exampleRadios\" type=\"radio\"\n               value=\"info\">\n        <label class=\" alert alert-info margin-left-16\" for=\"exampleRadios1\">\n          <i class=\"fa fa-info-circle\">\n          </i>\n          Information\n        </label>\n      </div>\n      <div class=\"\">\n        <input [(ngModel)]=\"_configuration.informationType\" id=\"exampleRadios2\" name=\"exampleRadios\" type=\"radio\"\n               value=\"warning\">\n        <label class=\"alert alert-warning margin-left-16\" for=\"exampleRadios2\">\n          <i class=\"fa fa-exclamation-circle\"></i>\n          Alerte\n        </label>\n      </div>\n      <div class=\"\">\n        <input [(ngModel)]=\"_configuration.informationType \" id=\"exampleRadios3\" name=\"exampleRadios\" type=\"radio\"\n               value=\"danger\">\n        <label class=\"alert alert-danger margin-left-16\" for=\"exampleRadios3\">\n          <i class=\"fa fa-exclamation-triangle\"></i>\n          Danger\n        </label>\n      </div>\n    </div>\n  </div>\n</div>\n\n\n<div [class.show]=\"previewChanges\" class=\"preview-modal\">\n  <div (click)=\"previewChanges = false\" class=\"preview-background\">\n    <div (click)=\"stopPropagation($event)\" class=\"preview-body\">\n      <h3>Prévisualisation de la page de connexion</h3>\n\n      <div class=\"login-previsu\">\n        <div [style.background-color]=\"_configuration.colorBackground\" class=\"login-previsu-sidebar\"\n             [style.opacity]=\"_configuration.showCustom ? 1 : 0\">\n          <img *ngIf=\"_configuration.imgData\"\n               [src]=\"_DomSanitizationService.bypassSecurityTrustUrl(_configuration.imgData)\" alt=\"Image preview...\"\n               src=\"\">\n          <div [style.color]=\"_configuration.colorText\">{{_configuration.subText}}</div>\n        </div>\n        <div class=\"login-previsu-content\">\n          <span *ngIf=\"_configuration.showInformation && _configuration.informationText\"\n                [ngSwitch]=\"_configuration.informationType\"\n                [ngClass]=\"'alert-' + _configuration.informationType\" class=\"alert\">\n            <i *ngSwitchCase=\"'info'\" class=\"fa fa-info-circle\"></i>\n            <i *ngSwitchCase=\"'warning'\" class=\"fa fa-exclamation-circle\"></i>\n            <i *ngSwitchCase=\"'danger'\" class=\"fa fa-exclamation-triangle\"></i>\n            {{_configuration.informationText}}\n          </span>\n        </div>\n        <div class=\"login-previsu-footer\">\n\n        </div>\n        <div class=\"login-previsu-footer\">\n\n        </div>\n      </div>\n      <i (click)=\"previewChanges = false\" class=\"fa fa-times close-icon\"></i>\n    </div>\n  </div>\n\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class LoginMessages {\n\n  static readonly BACK_TO_CONNEXION_PAGE: string = 'Retourner à la page de connexion';\n  static readonly LOST_PASSWORD: string = 'Mot de passe oublié ?';\n  static readonly LOGIN: string = 'Se connecter';\n  static readonly LOGIN_INSTRUCTION_TITLE: string = 'Veuillez saisir vos identifiants de connexion';\n  static readonly LOGIN_ERROR: string = 'Identifiant ou mot de passe erroné';\n  static readonly PASSWORD_RESET_SUCCESS: string = 'Vous pouvez désormais vous connecter avec votre identifiant et votre nouveau mot de passe';\n  static readonly PASSWORD: string = 'Mot de passe';\n  static readonly REMEMBER_ME: string = 'Se souvenir de moi';\n  static readonly IDENTIFIER: string = 'Identifiant';\n  static readonly CHANGE_PASSWORD_TITLE: string = 'Veuillez saisir un nouveau mot de passe';\n  static readonly PASSWORDS_NOT_IDENTICAL_WARNING: string = 'Les deux mots de passe ne sont pas identiques';\n  static readonly NEW_PASSWORD_LABEL: string = 'Nouveau mot de passe';\n  static readonly CONFIRM_PASSWORD_LABEL: string = 'Confirmation du nouveau mot de passe';\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {defaultConfiguration, LoginConfigModel} from '../login-config/login-config.model';\nimport {LoginMessages} from '../../i18n/login-messages';\n\n@Component({template: ''})\nexport abstract class LoginPageModelComponent {\n\n  submitted: boolean = false;\n\n  @Input() formAction: string = '';\n  @Input() logo;\n  @Input() isFormAjax: boolean = false;\n  @Input() showError: boolean = false;\n  @Input() errorMessage: string = LoginMessages.LOGIN_ERROR;\n\n  @Output()\n  submit: EventEmitter<any> = new EventEmitter();\n\n  protected constructor(public _DomSanitizationService: DomSanitizer) {\n  }\n\n  _visualConfiguration: LoginConfigModel = defaultConfiguration;\n\n  @Input()\n  set visualConfiguration(config) {\n    if (!config || typeof config === 'string' && config.trim() === '') {\n      config = defaultConfiguration;\n    }\n    if (typeof config === 'string') {\n      try {\n        config = JSON.parse(config);\n      } catch (e) {\n        console.error('enable to parse JSON config: ' + config);\n        console.error(e);\n      }\n    }\n    this._visualConfiguration = config;\n  }\n\n  preventFormSubmit(event) {\n    if (this.isFormAjax) {\n      this.submitted = true;\n      event.preventDefault();\n    }\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {LoginPageModelComponent} from '../login-model/login-page-model.component';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {CommonIcons} from '../../../../icons/common-icons';\nimport {CommonMessages} from '../../../../i18n/common-messages';\nimport {LoginMessages} from '../../i18n/login-messages';\n\n@Component({\n  selector: 'ls-forgot-password',\n  templateUrl: './forgot-password.component.html',\n  styleUrls: ['./forgot-password.component.scss']\n})\nexport class ForgotPasswordComponent extends LoginPageModelComponent {\n\n  username: string;\n  email: string;\n  usernameormail: string;\n\n  commonIcons = CommonIcons;\n  commonMessages = CommonMessages;\n  loginMessages = LoginMessages;\n\n  @Input() oneFieldForgot: boolean = false;\n  @Input() usernameormailInputName: string = 'usernameormail';\n  @Input() usernameInputName: string = 'username';\n  @Input() emailInputName: string = 'email';\n\n  @Output()\n  backToLogin: EventEmitter<any> = new EventEmitter();\n\n  constructor(public _DomSanitizationService: DomSanitizer) {\n    super(_DomSanitizationService);\n  }\n\n  backToLoginPage() {\n    this.backToLogin.emit();\n  }\n\n  preventFormSubmit(event) {\n    super.preventFormSubmit(event);\n  }\n\n  submitForm() {\n    this.submit.emit({\n      username: this.username,\n      email: this.email,\n      usernameormail: this.usernameormail\n    });\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ls-login-model [logo]=\"logo\" [visualConfiguration]=\"_visualConfiguration\">\n  <section id=\"forgot-page\">\n    <h1 class=\"page-title\">Mot de passe oublié ?</h1>\n    <form [action]=\"formAction\" id=\"ls-forgot-form\" method=\"post\" (submit)=\"preventFormSubmit($event)\">\n\n      <div *ngIf=\"!oneFieldForgot\" class=\"form-group\">\n        <label [attr.for]=\"usernameInputName\">\n          Identifiant\n        </label>\n        <input [attr.name]=\"usernameInputName\" [attr.id]=\"usernameInputName\" [(ngModel)]=\"username\" class=\"form-control\"\n               placeholder=\"Mon identifiant\"\n               type=\"text\" required>\n      </div>\n      <div *ngIf=\"!oneFieldForgot\" class=\"form-group\">\n        <label [attr.for]=\"emailInputName\">\n          Adresse mail\n        </label>\n        <input [attr.id]=\"emailInputName\" [attr.name]=\"emailInputName\" [(ngModel)]=\"email\" class=\"form-control\"\n               placeholder=\"adresse@mail.com\" type=\"text\" required>\n      </div>\n\n      <div *ngIf=\"oneFieldForgot\" class=\"form-group\">\n        <label [attr.for]=\"usernameormailInputName\">\n          Saisissez votre nom d'utilisateur ou votre adresse mail\n        </label>\n        <input [attr.name]=\"usernameormailInputName\" [attr.id]=\"usernameormailInputName\" [(ngModel)]=\"usernameormail\"\n               class=\"form-control\"\n               placeholder=\"Nom d'utilisateur ou adresse mail\"\n               type=\"text\" required>\n      </div>\n\n      <div class=\"alert alert-info\">\n        <div class=\"fa fa-lg fa-info-circle\"></div>\n        <div>\n          Si vos informations sont correctes, un e-mail vous sera envoyé.<br>\n          Vous pourrez ainsi créer un nouveau mot de passe.\n        </div>\n      </div>\n\n      <ng-content></ng-content>\n\n      <div class=\"ls-action-bar justify-content-between\">\n        <button ls-button-go-back (click)=\"backToLoginPage()\" [text]=\"loginMessages.BACK_TO_CONNEXION_PAGE\"></button>\n\n        <button ls-button (click)=\"submitForm()\" [icon]=\"commonIcons.SUBMIT_ICON\"\n                [processing]=\"submitted\"\n                [text]=\"commonMessages.SUBMIT\"\n                form=\"ls-forgot-form\"\n                type=\"submit\">\n        </button>\n      </div>\n    </form>\n  </section>\n</ls-login-model>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { LoginPageModelComponent } from '../login-model/login-page-model.component';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { LoginMessages } from '../../i18n/login-messages';\n\n@Component({\n  selector: 'ls-forgot-password-success',\n  templateUrl: './forgot-password-success.component.html',\n  styleUrls: ['./forgot-password-success.component.scss']\n})\nexport class ForgotPasswordSuccessComponent extends LoginPageModelComponent {\n\n  @Output() backToLogin: EventEmitter<any> = new EventEmitter();\n\n  loginMessages = LoginMessages;\n\n  constructor(public _DomSanitizationService: DomSanitizer) {\n    super(_DomSanitizationService);\n  }\n\n  backToLoginPage() {\n    this.backToLogin.emit();\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ls-login-model [logo]=\"logo\" [visualConfiguration]=\"_visualConfiguration\">\n  <section class=\"forgot-success-page\">\n\n    <div class=\"alert alert-success\">\n      <i class=\"fa fa-lg fa-check\"></i>\n      Si vos informations sont correctes, un e-mail vous a été envoyé.\n    </div>\n    <button ls-button (click)=\"backToLoginPage()\" [text]=\"loginMessages.BACK_TO_CONNEXION_PAGE\"></button>\n  </section>\n</ls-login-model>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {LoginPageModelComponent} from '../login-model/login-page-model.component';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {Weight} from '../../../../ui-concepts/weight';\nimport {LoginMessages} from '../../i18n/login-messages';\nimport {CommonIcons} from '../../../../icons/common-icons';\n\n@Component({\n  selector: 'ls-login-form',\n  templateUrl: './login-form.component.html',\n  styleUrls: ['./login-form.component.scss']\n})\nexport class LoginFormComponent extends LoginPageModelComponent {\n\n  username: string;\n  password: string;\n  rememberMe: boolean;\n\n  weight = Weight;\n  loginMessages = LoginMessages;\n  commonIcons = CommonIcons;\n\n  @Input() showRememberMe: boolean = false;\n  @Input() usernameInputName: string = 'username';\n  @Input() passwordInputName: string = 'password';\n  @Input() rememberMeInputName: string = 'rememberme';\n  @Input() passwordReset: boolean = false;\n  @Input() successMessage: string = '';\n  @Output() forgotPassword: EventEmitter<any> = new EventEmitter();\n\n  constructor(public _DomSanitizationService: DomSanitizer) {\n    super(_DomSanitizationService);\n  }\n\n  askForResetPassword() {\n    this.forgotPassword.emit();\n  }\n\n  preventFormSubmit(event) {\n    super.preventFormSubmit(event);\n  }\n\n  submitForm() {\n    this.submit.emit({\n      username: this.username,\n      password: this.password,\n      rememberMe: this.rememberMe\n    });\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ls-login-model [logo]=\"logo\" [visualConfiguration]=\"_visualConfiguration\">\n  <section>\n    <h1 class=\"page-title\" [innerText]=\"loginMessages.LOGIN_INSTRUCTION_TITLE\"></h1>\n    <form class=\"ls-horizontal-form\" [action]=\"formAction\" method=\"post\" id=\"ls-login-form\" ngNoForm\n          (submit)=\"preventFormSubmit($event)\">\n\n      <div *ngIf=\"showError\" class=\"alert alert-danger\">\n        <i class=\"fa fa-exclamation-triangle\"></i>\n        <span [innerHTML]=\"errorMessage\"></span>\n      </div>\n\n      <div *ngIf=\"successMessage\" class=\"alert alert-success\">\n        <i class=\"fa fa-check\"></i>\n        {{successMessage}}\n      </div>\n\n      <div *ngIf=\"passwordReset\" class=\"alert alert-success\">\n        <i class=\"fa fa-check\"></i>\n        <span [innerText]=\"loginMessages.PASSWORD_RESET_SUCCESS\"></span>\n      </div>\n\n      <div class=\"row form-group\">\n        <label class=\"col-sm-3 col-form-label\" [attr.for]=\"usernameInputName\"\n               [innerText]=\"loginMessages.IDENTIFIER\"></label>\n        <div class=\"col-sm-9\">\n          <div class=\"input-group\">\n                <span class=\"input-group-text\">\n                  <i class=\"fa fa-user\"></i>\n                </span>\n            <input [(ngModel)]=\"username\" [attr.name]=\"usernameInputName\" [attr.id]=\"usernameInputName\"\n                   class=\"form-control\" required>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"row form-group\">\n        <label class=\"col-sm-3 col-form-label\" [attr.for]=\"passwordInputName\"\n               [innerText]=\"loginMessages.PASSWORD\"></label>\n        <ls-password class=\"col-sm-9\" [(ngModel)]=\"password\" [name]=\"passwordInputName\" [attr.id]=\"passwordInputName\"\n                     required></ls-password>\n      </div>\n\n      <div *ngIf=\"showRememberMe\" class=\"row form-group\">\n        <div class=\"form-check\">\n          <input [(ngModel)]=\"rememberMe\" [attr.name]=\"rememberMeInputName\" [attr.id]=\"rememberMeInputName\"\n                 class=\"form-check-input\"\n                 type=\"checkbox\">\n          <label class=\"form-check-label\" [attr.for]=\"rememberMeInputName\"\n                 [innerText]=\"loginMessages.REMEMBER_ME\"></label>\n        </div>\n      </div>\n\n      <ng-content></ng-content>\n\n      <div class=\"ls-action-bar ls-action-bar-align-right\">\n        <button ls-button (click)=\"askForResetPassword()\"\n                [text]=\"loginMessages.LOST_PASSWORD\"\n                [weight]=\"weight.TERTIARY\"></button>\n\n        <button ls-button (click)=\"submitForm()\" [icon]=\"commonIcons.LOGIN_ICON\" [processing]=\"submitted\"\n                [text]=\"loginMessages.LOGIN\"\n                form=\"ls-login-form\"\n                type=\"submit\">\n        </button>\n      </div>\n    </form>\n  </section>\n</ls-login-model>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {LoginPageModelComponent} from '../login-model/login-page-model.component';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {LoginMessages} from \"../../i18n/login-messages\";\nimport {CommonIcons} from \"../../../../icons/common-icons\";\n\n@Component({\n  selector: 'ls-reset-password',\n  templateUrl: './reset-password.component.html',\n  styleUrls: ['./reset-password.component.scss']\n})\nexport class ResetPasswordComponent extends LoginPageModelComponent {\n\n  readonly messages = LoginMessages;\n  readonly commonIcons = CommonIcons;\n\n  samePassword: boolean = true;\n  newPassword: string;\n  newPasswordConfirm: string;\n\n  @Input() passwordInputName = 'password';\n  @Input() passwordConfirmInputName = 'passwordconfirm';\n\n  constructor(public _DomSanitizationService: DomSanitizer) {\n    super(_DomSanitizationService);\n  }\n\n  preventFormSubmit($event: SubmitEvent) {\n    super.preventFormSubmit($event);\n  }\n\n  submitForm() {\n    if (this.newPassword === this.newPasswordConfirm) {\n      this.submit.emit({password: this.newPassword});\n    } else {\n      this.samePassword = false;\n    }\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ls-login-model [visualConfiguration]=\"_visualConfiguration\" [logo]=\"logo\">\n  <section id=\"reset-page\">\n    <h1 class=\"page-title\" [innerText]=\"messages.CHANGE_PASSWORD_TITLE\"></h1>\n\n    <form id=\"reset-form\" method=\"post\" [action]=\"formAction\" (submit)=\"preventFormSubmit($event)\">\n\n      <div class=\"alert alert-danger\" *ngIf=\"!samePassword\">\n        <fa-icon class=\"mr-2\" [icon]=\"commonIcons.WARNING_ICON\"></fa-icon>\n        <span [innerText]=\"messages.PASSWORDS_NOT_IDENTICAL_WARNING\"></span>\n      </div>\n\n      <div class=\"form-group\">\n        <label [attr.for]=\"passwordInputName\" [innerText]=\"messages.NEW_PASSWORD_LABEL\"></label>\n        <ls-password-with-strength\n            [showIcon]=\"false\"\n            [(ngModel)]=\"newPassword\"\n            [name]=\"passwordInputName\"\n            [attr.id]=\"passwordInputName\"\n            required>\n        </ls-password-with-strength>\n      </div>\n\n      <div class=\"form-group\">\n        <label [attr.for]=\"passwordConfirmInputName\" [innerText]=\"messages.CONFIRM_PASSWORD_LABEL\"></label>\n        <ls-password-with-strength\n            [showIcon]=\"false\"\n            [attr.id]=\"passwordConfirmInputName\"\n            [(ngModel)]=\"newPasswordConfirm\"\n            [name]=\"passwordConfirmInputName\"\n            required>\n        </ls-password-with-strength>\n      </div>\n\n      <ng-content></ng-content>\n\n      <div class=\"ls-action-bar ls-action-bar-align-right\">\n        <button ls-button-save type=\"submit\" (click)=\"submitForm()\" [processing]=\"submitted\"></button>\n        <div class=\"ls-action-bar ls-action-bar-align-right\">\n          <button\n              ls-button-save\n              type=\"submit\"\n              (click)=\"submitForm()\"\n              [processing]=\"submitted\">\n          </button>\n        </div>\n      </div>\n    </form>\n  </section>\n</ls-login-model>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {LoginPageModelComponent} from '../login-model/login-page-model.component';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Component({\n  selector: 'ls-login',\n  templateUrl: './login.component.html',\n  styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent extends LoginPageModelComponent {\n\n  @Input() testMode: boolean = false;\n  @Input() currentPage: string = 'login';\n\n  @Input() loginFormAction: string = '';\n  @Input() loginShowError: boolean = false;\n  @Input() loginSuccessMessage: string = '';\n  @Input() loginIsFormAjax: boolean = false;\n  @Input() loginPasswordReset: boolean = false;\n  @Input() loginShowRememberMe: boolean = false;\n  @Input() loginUsernameInputName: string = 'username';\n  @Input() loginPasswordInputName: string = 'password';\n  @Input() loginRememberMeInputName: string = 'rememberme';\n\n  @Input() forgotFormAction: string = '';\n  @Input() forgotIsFormAjax: boolean = false;\n  @Input() forgotOneFieldForgot: boolean = false;\n  @Input() forgotUsernameInputName: string = 'username';\n  @Input() forgotEmailInputName: string = 'email';\n  @Input() forgotUsernameormailInputName: string = 'usernameormail';\n\n  @Input() resetFormAction: string = '';\n  @Input() resetIsFormAjax: boolean = false;\n  @Input() resetPasswordInputName: string = 'password';\n  @Input() resetPasswordConfirmInputName: string = 'passwordconfirm';\n\n  @Output()\n  loginSubmit: EventEmitter<any> = new EventEmitter();\n  @Output()\n  forgotSubmit: EventEmitter<any> = new EventEmitter();\n  @Output()\n  resetSubmit: EventEmitter<any> = new EventEmitter();\n\n  constructor(public _DomSanitizationService: DomSanitizer) {\n    super(_DomSanitizationService);\n  }\n\n  login(event) {\n    this.loginSubmit.emit(event);\n  }\n\n  forgot(event) {\n    this.forgotSubmit.emit(event);\n  }\n\n  reset(event) {\n    this.resetSubmit.emit(event);\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div *ngIf=\"testMode\" class=\"testmode-container\">\n  <span>Mode test</span>\n  <span class=\"btn btn-primary\" (click)=\"currentPage = 'login'\">Page de login</span>\n  <span class=\"btn btn-primary\" (click)=\"currentPage = 'forgot'\">Mot de passe oublié</span>\n  <span class=\"btn btn-primary\" (click)=\"currentPage = 'forgot-success'\">Mot de passe oublié demandé</span>\n  <span class=\"btn btn-primary\" (click)=\"currentPage = 'reset'\">Remise à zéro</span>\n</div>\n\n<ls-login-form\n    *ngIf=\"currentPage === 'login'\"\n    [visualConfiguration]=\"_visualConfiguration\"\n    [logo]=\"logo\"\n\n    [formAction]=\"loginFormAction\"\n    [showError]=\"loginShowError\"\n    [successMessage]=\"loginSuccessMessage\"\n    [passwordReset]=\"loginPasswordReset\"\n    [isFormAjax]=\"loginIsFormAjax\"\n    [showRememberMe]=\"loginShowRememberMe\"\n    [passwordInputName]=\"loginPasswordInputName\"\n    [usernameInputName]=\"loginUsernameInputName\"\n    [rememberMeInputName]=\"loginRememberMeInputName\"\n\n    (forgotPassword)=\"currentPage = 'forgot'\"\n    (submit)=\"login($event)\">\n  <ng-content select=\".login-form-addons\"></ng-content>\n</ls-login-form>\n\n<ls-forgot-password\n    *ngIf=\"currentPage === 'forgot'\"\n    [visualConfiguration]=\"_visualConfiguration\"\n    [logo]=\"logo\"\n\n    [formAction]=\"forgotFormAction\"\n    [isFormAjax]=\"forgotIsFormAjax\"\n    [oneFieldForgot]=\"forgotOneFieldForgot\"\n    [usernameInputName]=\"forgotUsernameInputName\"\n    [emailInputName]=\"forgotEmailInputName\"\n    [usernameormailInputName]=\"forgotUsernameormailInputName\"\n\n    (backToLogin)=\"currentPage = 'login'\"\n    (submit)=\"forgot($event)\">\n  <ng-content select=\".forgot-form-addons\"></ng-content>\n</ls-forgot-password>\n\n<ls-forgot-password-success\n    *ngIf=\"currentPage === 'forgot-success'\"\n    [logo]=\"logo\"\n    [visualConfiguration]=\"_visualConfiguration\"\n\n    (backToLogin)=\"currentPage = 'login'\">\n</ls-forgot-password-success>\n\n<ls-reset-password\n    *ngIf=\"currentPage === 'reset'\"\n    [logo]=\"logo\"\n    [visualConfiguration]=\"_visualConfiguration\"\n\n    [formAction]=\"resetFormAction\"\n    [isFormAjax]=\"resetIsFormAjax\"\n    [passwordInputName]=\"resetPasswordInputName\"\n    [passwordConfirmInputName]=\"resetPasswordConfirmInputName\"\n\n    (submit)=\"reset($event)\">\n  <ng-content select=\".reset-form-addons\"></ng-content>\n</ls-reset-password>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {FormsModule} from '@angular/forms';\nimport {LsUiComponentsModule} from '../../components/ui-components.module';\nimport {LoginModelComponent} from './component/login-model/login-model.component';\nimport {LoginConfigComponent} from './component/login-config/login-config.component';\nimport {ForgotPasswordComponent} from './component/forgot-password/forgot-password.component';\nimport {ForgotPasswordSuccessComponent} from './component/forgot-password-success/forgot-password-success.component';\nimport {LoginComponent} from './component/login/login.component';\nimport {LoginFormComponent} from './component/login-form/login-form.component';\nimport {ResetPasswordComponent} from './component/reset-password/reset-password.component';\nimport {FontAwesomeModule} from \"@fortawesome/angular-fontawesome\";\n\n@NgModule({\n  declarations: [\n    LoginModelComponent,\n    ForgotPasswordComponent,\n    ForgotPasswordSuccessComponent,\n    LoginConfigComponent,\n    LoginFormComponent,\n    ResetPasswordComponent,\n    LoginComponent\n  ],\n  imports: [\n    BrowserModule,\n    BrowserAnimationsModule,\n    FormsModule,\n    LsUiComponentsModule,\n    FontAwesomeModule\n  ],\n  exports: [\n    LoginModelComponent,\n    ForgotPasswordComponent,\n    ForgotPasswordSuccessComponent,\n    LoginConfigComponent,\n    LoginFormComponent,\n    ResetPasswordComponent,\n    LoginComponent\n  ]\n})\nexport class LsLoginModule {\n  constructor() {\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Entity} from '../model/entity';\nimport {Application} from '../model/application';\n\nexport class RgpdMessages {\n\n  static readonly RESPONSIBLE_FOR_PROCESSING: string = 'Responsable des traitements';\n  static readonly ENTITY: string = `Entité :`;\n  static readonly RESPONSIBLE_FOR_PROCESSING_PERSON: string = `Responsable de l'entité / Responsable des traitements :`;\n  static readonly DPO: string = `Délégué à la protection des données de l'entité (DPD/DPO) :`;\n  static readonly SIRET: string = `numéro SIRET :`;\n  static readonly APE_CODE: string = `code APE :`;\n  static readonly PHONE_NUMBER: string = `n° de téléphone :`;\n  static readonly MAIL: string = `email :`;\n  static readonly NO_ENTITY_NAME_ERROR: string = `Le nom de l'entité n'a pas été renseignée`;\n  static readonly NO_ENTITY_ADDRESS_ERROR: string = `L'adresse de l'entité n'a pas été renseignée`;\n  static readonly NO_ENTITY_SIRET_ERROR: string = `Le siret de l'entité n'a pas été renseigné`;\n  static readonly NO_NAME_ERROR: string = `Le nom n'a pas été renseigné`;\n  static readonly NO_TITLE_ERROR: string = `Le titre n'a pas été renseigné`;\n  static readonly NO_MAIL_ERROR: string = `Le courriel n'a pas été renseigné`;\n  static readonly A0_NO_DECLARING_ENTITY_ERROR: string = `L'entité déclarante n'a pas été renseignée`;\n  static readonly A0_NO_RESPONSIBLE_ERROR: string = `Le responsable de l'entité déclarante n'a pas été renseigné`;\n  static readonly A0_NO_DPO_ERROR: string = `Le DPO de l'entité déclarante n'a pas été renseigné`;\n  static readonly A1_LEGAL_NOTICE_TITLE: string = 'Article 1 - Mentions légales';\n  static readonly A1_LEGAL_NOTICE_TITLE_H3_1: string = `1.1 Logiciel (ci-après « le logiciel ») :`;\n  static readonly A1_LEGAL_NOTICE_TITLE_H3_2: string = `1.2 Éditeur (ci-après « l'éditeur ») :`;\n  static readonly A1_NO_APPLICATION_NAME_ERROR: string = `Le nom de l'application n'a pas été renseigné.`;\n  static readonly A2_HOSTING_TITLE: string = 'Article 2 - Hébergement';\n  static readonly A2_MAINTENANCE_H3: string = `2.1 Maintenance du serveur :`;\n  static readonly A2_HOSTING_H3: string = `2.2 Hébergeur :`;\n  static readonly A2_NO_MAINTENANCE_ENTITY_ERROR: string = 'Entité responsable de la maintenance non renseignée';\n  static readonly A2_NO_HOSTING_ENTITY_ERROR: string = `Entité responsable de l'hébergement non renseignée`;\n  static readonly A3_COLLECT_TITLE: string = 'Article 3 - Collecte';\n  static readonly A3_COLLECT_MANDATORY: string = 'Lors de cette action, les données suivantes seront obligatoirement collectées :';\n  static readonly A3_COLLECT_OPTIONAL: string = 'Lors de cette action, les données suivantes pourront être collectées :';\n  static readonly A3_NO_COLLECTED_DATA_ERROR: string = `Les données collectées n'ont pas été renseignées.`;\n  static readonly A4_PROCESSES_TITLE: string = 'Article 4 - Traitements';\n  static readonly A4_NO_PROCESSES_ERROR: string = `Les traitements sur les données n'ont pas été renseignés.`;\n  static readonly A5_COOKIES_TITLE: string = 'Article 5 - Cookies';\n  static readonly A6_FORGOT_RIGHT_TITLE: string = `Article 6 - Droit à l'oubli`;\n  static readonly A6_FORGOT_RIGHT_CONTENT_2: string = `La suppression de votre compte laissera les traces de votre activité :`;\n  static readonly A7_DATA_RIGHTS_TITLE: string = `Article 7 - Vos droits sur les données vous concernant`;\n  static readonly DEFAULT_MANDATORY_COOKIES_NAME: string = 'Cookies strictement nécessaires';\n  static readonly A5_COOKIES_CONTENT_1: string = `Ces cookies sont nécessaires au fonctionnement de l'application et ne peuvent pas être désactivés.`;\n  static readonly A5_NO_COOKIES: string = `L'application n'utilise pas de cookies.`;\n  static readonly A5_NO_COOKIES_ERROR: string = `Les cookies de l'application n'ont pas été renseignés.`;\n\n  static getA3ProcessesContent1(application: Application): string {\n    return !application.collectedDataSet || application.collectedDataSet.length === 0\n        ? `<p>Aucune données ne sont collectées pour le bon fonctionnement de <strong>${application.name}</strong>.</p>`\n        : null;\n  }\n\n  static getA4ProcessesContent1(application: Application): string {\n    return application.dataProcesses && application.dataProcesses.length > 0\n        ? `<p>Vos informations personnelles sont utilisées pour le bon fonctionnement de <strong>${application.name}</strong> dans les cas listés ci-après :</p>`\n        : `<p>Aucune information personnelle n'est utilisée pour le bon fonctionnement de <strong>${application.name}</strong>.</p>`;\n  }\n\n  static getDefaultMandatoryCookieDescription(cookieSessionDuration: string): string {\n    return `Nous utilisons un cookie de session qui est utilisé pour stocker des informations de votre la session en cours. Les informations, telles que les données de connexion ou les formulaires en ligne déjà remplis, sont également conservées pendant la session. Toutefois, si vous mettez fin à votre session de navigation ou que votre session expire ${cookieSessionDuration && cookieSessionDuration !== '' ? '(' + cookieSessionDuration + ' par défaut)' : ''}, l’identifiant de session et toutes les autres données stockées seront effacés.`;\n  }\n\n  static getA6ForgotRightContent1(application: Application): string {\n    return application?.name\n        ? `<p>Sur votre demande ou à la demande de l'administrateur de <strong>${application.name}</strong>, votre compte utilisateur peut être supprimé définitivement.</p>`\n        : `<p>Sur votre demande ou à la demande de l'administrateur, votre compte utilisateur peut être supprimé définitivement.</p>`;\n  }\n\n  static getA7DataRightsContent(entity: Entity): string {\n    let content = `<p>Vous pouvez accéder et obtenir une copie des données vous concernant, vous\nopposer au traitement de ces données, les faire rectifier ou les faire effacer.\nVous disposez également d'un droit à la limitation du traitement de vos données.</p>\n<ul><li>\n<a href=\"https://www.cnil.fr/fr/les-droits-pour-maitriser-vos-donnees-personnelles\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Comprendre vos droits informatique et libertés</a>\n</li></ul>`;\n\n    content += (entity && entity.dpo && entity.dpo.mail)\n        ? `<h3>Exercer ses droits</h3>\n  <p>Pour exercer vos droits sur les données personnelles vous concernant, vous\n  pouvez contacter le Délégué à la Protection des Données (DPO), à l’adresse\n  suivante :<ul><li><a href=\"mailto:${entity.dpo.mail}\">${entity.dpo.mail}</a></li></ul></p>`\n        : '';\n\n    content += '<h3>Réclamation (plainte) auprès de la CNIL</h3>' +\n        '<p>Si vous estimez, après nous avoir contacté, que vos droits sur vos données ne sont pas respectés, vous pouvez <a href=\"https://www.cnil.fr/fr/plaintes\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">adresser une réclamation (plainte) à la CNIL</a>.</p>';\n\n    return content;\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'ls-article',\n  templateUrl: './article.component.html',\n  styleUrls: ['./article.component.scss'],\n  host: {'class': 'ls-article'}\n})\nexport class ArticleComponent {\n\n  @Input() title: string;\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<h2 [innerText]=\"title\"></h2>\n<div class=\"content\">\n  <ng-content></ng-content>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {Entity} from '../../model/entity';\nimport {RgpdMessages} from '../../i18n/rgpd-messages';\n\n@Component({\n  selector: 'ls-entity',\n  templateUrl: './entity.component.html',\n  styleUrls: ['./entity.component.scss'],\n  host: {'class': 'ls-entity'}\n})\nexport class EntityComponent {\n\n  readonly messages = RgpdMessages;\n\n  @Input() entity: Entity;\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ng-container>\n  <div>\n    <span *ngIf=\"entity?.name\" [innerText]=\"entity.name\"></span>\n    <span><em *ngIf=\"!entity?.name\" [innerText]=\"messages.NO_ENTITY_NAME_ERROR\"></em></span>\n  </div>\n\n  <div>\n    <span *ngIf=\"entity?.address\" [innerText]=\"entity.address\"></span>\n    <span><em *ngIf=\"!entity?.address\" [innerText]=\"messages.NO_ENTITY_ADDRESS_ERROR\"></em></span>\n  </div>\n\n  <div>\n    <label [innerText]=\"messages.SIRET\"></label>\n    <span *ngIf=\"entity?.siret\" [innerText]=\"entity.siret\"></span>\n    <span><em *ngIf=\"!entity?.siret\" [innerText]=\"messages.NO_ENTITY_SIRET_ERROR\"></em></span>\n  </div>\n\n  <div *ngIf=\"entity?.apeCode\">\n    <label [innerText]=\"messages.APE_CODE\"></label>\n    <span [innerText]=\"entity?.apeCode\"></span>\n  </div>\n\n  <div *ngIf=\"entity?.phoneNumber\">\n    <label [innerText]=\"messages.PHONE_NUMBER\"></label>\n    <span [innerText]=\"entity?.phoneNumber\"></span>\n  </div>\n\n  <div *ngIf=\"entity?.mail\">\n    <label [innerText]=\"messages.MAIL\"></label>\n    <span [innerText]=\"entity?.mail\"></span>\n  </div>\n</ng-container>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {Person} from '../../model/person';\nimport {RgpdMessages} from '../../i18n/rgpd-messages';\n\n@Component({\n  selector: 'ls-person',\n  templateUrl: './person.component.html',\n  styleUrls: ['./person.component.scss'],\n  host: {'class': 'ls-person'}\n})\nexport class PersonComponent {\n\n  readonly messages = RgpdMessages;\n\n  @Input() person: Person;\n  @Input() isTitleMandatory: boolean = false;\n  @Input() isMailMandatory: boolean = false;\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ng-container *ngIf=\"person\">\n  <div class=\"group\">\n    <span *ngIf=\"person.name\" [innerText]=\"person.name\"></span>\n    <span *ngIf=\"!person.name\" [innerText]=\"messages.NO_NAME_ERROR\" class=\"missing-data-error\"></span>\n  </div>\n\n  <div *ngIf=\"person.title || isTitleMandatory\" class=\"group\">\n    <span *ngIf=\"person.title\" [innerText]=\"person.title\"></span>\n    <span *ngIf=\"!person.title\" [innerText]=\"messages.NO_TITLE_ERROR\" class=\"missing-data-error\"></span>\n  </div>\n\n  <div *ngIf=\"person.mail || isMailMandatory\" class=\"group\">\n    <span *ngIf=\"person.mail\" [innerText]=\"person.mail\"></span>\n    <span *ngIf=\"!person.mail\" [innerText]=\"messages.NO_MAIL_ERROR\" class=\"missing-data-error\"></span>\n  </div>\n</ng-container>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {RgpdMessages} from '../i18n/rgpd-messages';\nimport {Category} from '../model/category';\nimport {RgpdData} from '../model/rgpd-data';\n\n@Component({\n  selector: 'ls-rgpd-page',\n  templateUrl: './rgpd-page.component.html',\n  styleUrls: ['./rgpd-page.component.scss']\n})\nexport class RgpdPageComponent {\n\n  private _rgpdData: RgpdData;\n\n  @Input() set rgpdData(rgpdData: RgpdData) {\n    this._rgpdData = typeof rgpdData === 'string' ? JSON.parse(rgpdData) : rgpdData;\n    this.prepareData();\n    this.buildCookiesArticle();\n  }\n\n  get rgpdData(): RgpdData {\n    return this._rgpdData;\n  }\n\n  cookieCategories: Category[] = [];\n\n  readonly messages = RgpdMessages;\n\n  private prepareData() {\n    if (this.rgpdData?.application?.noDataCollected) {\n      if (this.rgpdData.application.collectedDataSet && this.rgpdData?.application?.collectedDataSet?.length > 0) {\n        console.error(`rgpdData.application.noDataCollected is true and rgpdData.application.collectedDataSet is not null or empty`);\n      } else {\n        this.rgpdData.application.collectedDataSet = [];\n      }\n    }\n\n    if (this.rgpdData?.application?.noDataProcessed) {\n      if (this.rgpdData.application.noDataProcessed && this.rgpdData?.application?.dataProcesses?.length > 0) {\n        console.error(`rgpdData.application.noDataProcessed is true and rgpdData.application.dataProcesses is not null or empty`);\n      } else {\n        this.rgpdData.application.dataProcesses = [];\n      }\n    }\n  }\n\n  private buildCookiesArticle() {\n    if (this.rgpdData?.application) {\n      if (this.rgpdData?.application.cookieSessionDuration\n          || (this.rgpdData?.application.mandatoryCookies && this.rgpdData?.application.mandatoryCookies.length > 0)) {\n        const mandatoryCookies: Category = {\n          name: this.messages.DEFAULT_MANDATORY_COOKIES_NAME,\n          description: this.messages.A5_COOKIES_CONTENT_1,\n          elements: []\n        };\n\n        if (this.rgpdData?.application.cookieSessionDuration) {\n          mandatoryCookies.elements.push(\n              this.messages.getDefaultMandatoryCookieDescription(this.rgpdData?.application.cookieSessionDuration));\n        }\n\n        if (this.rgpdData?.application.mandatoryCookies) {\n          mandatoryCookies.elements = mandatoryCookies.elements.concat(this.rgpdData?.application.mandatoryCookies);\n        }\n\n        this.cookieCategories.push(mandatoryCookies);\n      }\n\n      if (this.rgpdData?.application.optionalCookies) {\n        this.cookieCategories = this.cookieCategories.concat(this.rgpdData?.application.optionalCookies);\n      }\n\n      if (this.rgpdData?.application.noCookies && this.cookieCategories.length > 0) {\n        console.error('rgpdData.application.noCookies is set to true but some cookies have been provided.');\n        this.rgpdData.application.noCookies = false;\n      }\n    }\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<ls-article [title]=\"messages.RESPONSIBLE_FOR_PROCESSING\">\n  <ng-container *ngIf=\"rgpdData?.declaringEntity\">\n    <h3 [innerText]=\"messages.ENTITY\"></h3>\n    <ls-entity *ngIf=\"rgpdData?.declaringEntity\" [entity]=\"rgpdData?.declaringEntity\"></ls-entity>\n\n    <ng-container>\n      <h3 [innerText]=\"messages.RESPONSIBLE_FOR_PROCESSING_PERSON\"></h3>\n      <ls-person [person]=\"rgpdData?.declaringEntity?.responsible\" [isTitleMandatory]=\"true\"></ls-person>\n      <p *ngIf=\"!rgpdData?.declaringEntity.responsible\" [innerText]=\"messages.A0_NO_RESPONSIBLE_ERROR\"\n         class=\"missing-data-error\"></p>\n    </ng-container>\n\n    <ng-container>\n      <h3 [innerText]=\"messages.DPO\"></h3>\n      <ls-person [person]=\"rgpdData?.declaringEntity.dpo\" [isMailMandatory]=\"true\"></ls-person>\n      <p *ngIf=\"!rgpdData?.declaringEntity.dpo\" [innerText]=\"messages.A0_NO_DPO_ERROR\"\n         class=\"missing-data-error\"></p>\n    </ng-container>\n  </ng-container>\n\n  <p *ngIf=\"!rgpdData?.declaringEntity\" [innerText]=\"messages.A0_NO_DECLARING_ENTITY_ERROR\"\n     class=\"missing-data-error\"></p>\n</ls-article>\n\n<ls-article [title]=\"messages.A1_LEGAL_NOTICE_TITLE\">\n  <h3 [innerText]=\"messages.A1_LEGAL_NOTICE_TITLE_H3_1\"></h3>\n  <p><strong *ngIf=\"rgpdData?.application?.name\" [innerText]=\"rgpdData?.application?.name\"></strong></p>\n  <p *ngIf=\"!rgpdData?.application?.name\" [innerText]=\"messages.A1_NO_APPLICATION_NAME_ERROR\"\n     class=\"missing-data-error\"></p>\n\n  <h3 [innerText]=\"messages.A1_LEGAL_NOTICE_TITLE_H3_2\"></h3>\n  <ls-entity [entity]=\"rgpdData?.application?.editor\"></ls-entity>\n</ls-article>\n\n<ls-article [title]=\"messages.A2_HOSTING_TITLE\">\n  <h3 [innerText]=\"messages.A2_MAINTENANCE_H3\"></h3>\n  <p *ngIf=\"!rgpdData?.maintenanceEntity\" [innerText]=\"messages.A2_NO_MAINTENANCE_ENTITY_ERROR\"\n     class=\"missing-data-error\"></p>\n  <ls-entity *ngIf=\"rgpdData?.maintenanceEntity\" [entity]=\"rgpdData?.maintenanceEntity\"></ls-entity>\n\n  <h3 [innerText]=\"messages.A2_HOSTING_H3\"></h3>\n  <p *ngIf=\"!(rgpdData?.hostingEntity || rgpdData?.hostingEntityComments)\"\n     [innerText]=\"messages.A2_NO_HOSTING_ENTITY_ERROR\" class=\"missing-data-error\"></p>\n  <p *ngIf=\"rgpdData?.hostingEntityComments\" [innerText]=\"rgpdData?.hostingEntityComments\"></p>\n  <ls-entity *ngIf=\"rgpdData?.hostingEntity\" [entity]=\"rgpdData?.hostingEntity\"></ls-entity>\n</ls-article>\n\n<ls-article [title]=\"messages.A3_COLLECT_TITLE\">\n  <p *ngIf=\"!rgpdData?.application?.noDataCollected && !rgpdData?.application?.collectedDataSet\"\n     [innerText]=\"messages.A3_NO_COLLECTED_DATA_ERROR\"\n     class=\"missing-data-error\">\n  </p>\n  <div\n      *ngIf=\"(rgpdData?.application?.noDataCollected || rgpdData?.application?.collectedDataSet) && rgpdData?.application.name\"\n      [outerHTML]=\"messages.getA3ProcessesContent1(rgpdData.application)\">\n  </div>\n\n  <ng-container *ngFor=\"let collectedData of rgpdData?.application?.collectedDataSet; let index = index\">\n    <h3 [innerText]=\"'3.'+ (index+1) + '&nbsp;' + collectedData.name\"></h3>\n    <p *ngIf=\"collectedData.description\" [innerText]=\"collectedData.description\"></p>\n\n    <ng-container *ngIf=\"collectedData.mandatoryElements && collectedData.mandatoryElements.length > 0\">\n      <p [innerText]=\"messages.A3_COLLECT_MANDATORY\"></p>\n\n      <ul>\n        <li *ngFor=\"let element of collectedData.mandatoryElements\" [innerText]=\"element\"></li>\n      </ul>\n    </ng-container>\n\n    <ng-container *ngIf=\"collectedData.optionalElements && collectedData.optionalElements.length > 0\">\n      <p [innerText]=\"messages.A3_COLLECT_OPTIONAL\"></p>\n\n      <ul>\n        <li *ngFor=\"let element of collectedData.optionalElements\" [innerText]=\"element\"></li>\n      </ul>\n    </ng-container>\n  </ng-container>\n</ls-article>\n\n<ls-article [title]=\"messages.A4_PROCESSES_TITLE\">\n  <p *ngIf=\"!rgpdData?.application?.noDataProcessed && !rgpdData?.application?.dataProcesses\"\n     class=\"missing-data-error\"\n     [innerText]=\"messages.A4_NO_PROCESSES_ERROR\">\n  </p>\n\n  <div\n      *ngIf=\"(rgpdData?.application?.noDataProcessed || rgpdData?.application?.dataProcesses) && rgpdData?.application.name\"\n      [outerHTML]=\"messages.getA4ProcessesContent1(rgpdData.application)\">\n  </div>\n\n  <ng-container *ngFor=\"let processCategory of rgpdData?.application?.dataProcesses; let index = index\">\n    <h3 [innerText]=\"'4.'+ (index+1) + '&nbsp;' + processCategory.name\"></h3>\n\n    <p *ngIf=\"processCategory.description\" [innerText]=\"processCategory.description\"></p>\n\n    <ul>\n      <li *ngFor=\"let element of processCategory.elements\" [innerText]=\"element\"></li>\n    </ul>\n  </ng-container>\n</ls-article>\n\n<ls-article [title]=\"messages.A5_COOKIES_TITLE\">\n\n  <p *ngIf=\"rgpdData?.application?.noCookies\" [innerText]=\"messages.A5_NO_COOKIES\"></p>\n\n  <p *ngIf=\"!rgpdData?.application || cookieCategories.length===0 && !rgpdData?.application.noCookies\"\n     class=\"missing-data-error\"\n     [innerText]=\"messages.A5_NO_COOKIES_ERROR\">\n  </p>\n\n  <ng-container *ngFor=\"let cookieCategory of cookieCategories; let index = index\">\n    <h3 [innerText]=\"'5.'+ (index+1) + '&nbsp;' + cookieCategory.name\"></h3>\n\n    <p *ngIf=\"cookieCategory.description\" [innerText]=\"cookieCategory.description\"></p>\n\n    <ul>\n      <li *ngFor=\"let cookie of cookieCategory.elements\" [innerText]=\"cookie\"></li>\n    </ul>\n  </ng-container>\n</ls-article>\n\n<ls-article [title]=\"messages.A6_FORGOT_RIGHT_TITLE\">\n  <div *ngIf=\"rgpdData?.application\" [outerHTML]=\"messages.getA6ForgotRightContent1(rgpdData.application)\">\n  </div>\n\n  <ng-container\n      *ngIf=\"rgpdData?.application && rgpdData?.application.preservedDataAfterDeletion && rgpdData?.application.preservedDataAfterDeletion.length>0\">\n    <p [innerText]=\"messages.A6_FORGOT_RIGHT_CONTENT_2\"></p>\n\n    <ul>\n      <li *ngFor=\"let process of rgpdData?.application.preservedDataAfterDeletion\" [innerText]=\"process\"></li>\n    </ul>\n  </ng-container>\n</ls-article>\n\n<ls-article [title]=\"messages.A7_DATA_RIGHTS_TITLE\">\n  <div *ngIf=\"rgpdData?.declaringEntity\" [outerHTML]=\"messages.getA7DataRightsContent(rgpdData.declaringEntity)\"></div>\n</ls-article>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RgpdPageComponent} from './rgpd-page/component/rgpd-page.component';\nimport {ArticleComponent} from './rgpd-page/component/article/article.component';\nimport {EntityComponent} from './rgpd-page/component/entity/entity.component';\nimport {PersonComponent} from './rgpd-page/component/person/person.component';\n\n\n@NgModule({\n  declarations: [\n    RgpdPageComponent,\n    ArticleComponent,\n    EntityComponent,\n    PersonComponent\n  ],\n  exports: [\n    RgpdPageComponent\n  ],\n  imports: [\n    CommonModule\n  ]\n})\nexport class LsRgpdModule {\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class Version {\n  major: number;\n  minor: number;\n  patch: number;\n  preReleaseIdentifier?: string;\n  name?: string;\n\n  getFullName(): string {\n    return `${this.name ? this.name + ' ' : ''}${this.major}.${this.minor}.${this.patch}`\n        + (this.preReleaseIdentifier ? `-${this.preReleaseIdentifier}` : '');\n  }\n\n  constructor(values?: {\n    major: number,\n    minor: number,\n    patch: number,\n    preReleaseIdentifier?: string,\n    name?: string\n  }) {\n    if (values) {\n      this.major = values.major;\n      this.minor = values.minor;\n      this.patch = values.patch;\n      this.preReleaseIdentifier = values.preReleaseIdentifier;\n      this.name = values.name;\n    }\n  }\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class ApplicationAboutMessages {\n\n  public static ADDED: string = 'Ajouts';\n  public static CHANGED: string = 'Modifications';\n  public static FIXED: string = 'Corrections';\n  public static DEPRECATED: string = 'Dépréciations';\n  public static REMOVED: string = 'Retraits';\n  public static SECURITY: string = 'Sécurité';\n  public static OTHERS: string = 'Autres';\n  public static VERSIONS: string = 'Versions';\n  public static LICENSE: string = 'Informations légales';\n  public static SUPPORT: string = 'Assistance / support';\n  public static SUPPORT_LINK: string = `<p>Si vous disposez d'un contrat de support et maintenance chez Libriciel SCOP, <a href=\"https://www.libriciel.fr/support-et-maintenance/\" target=\"_blank\">suivez ce lien</a>.`;\n  public static CURRENT_VERSION: string = `Version courante&nbsp;:&nbsp;`;\n\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {ApplicationAboutMessages} from '../../i18n/application-about-messages';\n\n@Component({\n  selector: 'ls-license',\n  templateUrl: './license.component.html',\n  styleUrls: ['./license.component.scss']\n})\nexport class LicenseComponent {\n\n  public applicationAboutMessages = ApplicationAboutMessages;\n\n  @Input() license: string;\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<h2 [innerText]=\"applicationAboutMessages.LICENSE\"></h2>\n\n<div class=\"content\">\n  <p>Si vous disposez d'un contrat de support et maintenance chez Libriciel SCOP<a href=\"https://www.libriciel.fr/support-et-maintenance/\" target=\"_blank\">suivez ce lien</a>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component} from '@angular/core';\nimport {ApplicationAboutMessages} from '../../i18n/application-about-messages';\n\n@Component({\n  selector: 'ls-support',\n  templateUrl: './support.component.html',\n  styleUrls: ['./support.component.scss']\n})\nexport class SupportComponent {\n\n  public applicationAboutMessages = ApplicationAboutMessages;\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<h2 [innerText]=\"applicationAboutMessages.SUPPORT\"></h2>\n<div [innerHTML]=\"applicationAboutMessages.SUPPORT_LINK\" class=\"content\"></div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {ReleaseNotes} from '../../../../models/release-notes';\nimport {ApplicationAboutMessages} from '../../i18n/application-about-messages';\n\n@Component({\n  selector: 'ls-release-notes',\n  templateUrl: './release-notes.component.html',\n  styleUrls: ['./release-notes.component.scss']\n})\nexport class ReleaseNotesComponent {\n  get releaseNotes(): ReleaseNotes[] {\n    return this._releaseNotes;\n  }\n\n  @Input()\n  set releaseNotes(releaseNotes: ReleaseNotes[]) {\n    this._releaseNotes = typeof releaseNotes === 'string' ? JSON.parse(releaseNotes) : releaseNotes;\n  }\n\n  public applicationAboutMessages = ApplicationAboutMessages;\n\n  private _releaseNotes: ReleaseNotes[] = [];\n\n  @Input() applicationName;\n\n  private static getApplicationVersion(releaseNote: ReleaseNotes): string {\n    return `${releaseNote.version.major}.${releaseNote.version.minor}.${releaseNote.version.patch}${releaseNote.version.preReleaseIdentifier ? '-' + releaseNote.version.preReleaseIdentifier : ''}`;\n  }\n\n  getVersionTitle(releaseNote: ReleaseNotes): string {\n    return `[${ReleaseNotesComponent.getApplicationVersion(releaseNote)}] - ${releaseNote.date}`;\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<h2 [innerText]=\"applicationAboutMessages.VERSIONS\"></h2>\n<div class=\"content\">\n  <div class=\"currentVersion\" *ngIf=\"applicationName\">\n    <span [innerHTML]=\"applicationAboutMessages.CURRENT_VERSION\"></span>\n    <span class=\"version\" [innerText]=\"applicationName\"></span>\n  </div>\n  <ul class=\"release-notes\">\n    <li *ngFor=\"let releaseNote of releaseNotes\" class=\"release-note\">\n      <h3 [innerText]=\"getVersionTitle(releaseNote)\" class=\"version\"></h3>\n      <div *ngIf=\"releaseNote?.added?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.ADDED\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let added of releaseNote.added\">{{added}}</li>\n        </ul>\n      </div>\n      <div *ngIf=\"releaseNote?.changed?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.CHANGED\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let changed of releaseNote.changed\">{{changed}}</li>\n        </ul>\n      </div>\n      <div *ngIf=\"releaseNote?.fixed?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.FIXED\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let fixed of releaseNote.fixed\">{{fixed}}</li>\n        </ul>\n      </div>\n      <div *ngIf=\"releaseNote?.deprecated?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.DEPRECATED\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let deprecated of releaseNote.deprecated\">{{deprecated}}</li>\n        </ul>\n      </div>\n      <div *ngIf=\"releaseNote?.removed?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.REMOVED\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let removed of releaseNote.removed\">{{removed}}</li>\n        </ul>\n      </div>\n      <div *ngIf=\"releaseNote?.security?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.SECURITY\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let security of releaseNote.security\">{{security}}</li>\n        </ul>\n      </div>\n      <div *ngIf=\"releaseNote?.others?.length >0\" class=\"part\">\n        <h4 [innerText]=\"applicationAboutMessages.OTHERS\"></h4>\n        <ul class=\"section\">\n          <li *ngFor=\"let other of releaseNote.others\">{{other}}</li>\n        </ul>\n      </div>\n    </li>\n  </ul>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {ReleaseNotes} from '../../../../models/release-notes';\nimport {Version} from '../../../../models/version';\n\n@Component({\n  selector: 'ls-about',\n  templateUrl: './about.component.html',\n  styleUrls: ['./about.component.scss']\n})\nexport class AboutComponent {\n\n  @Input() releaseNotes: ReleaseNotes[];\n  @Input() license: string;\n\n  @Input()\n  set applicationVersion(version: Version) {\n    this._applicationVersion = typeof version === 'string'\n        ? Object.assign(new Version(), JSON.parse(version))\n        : version;\n  }\n\n  get applicationVersion(): Version {\n    return this._applicationVersion;\n  }\n\n  private _applicationVersion: Version;\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div class=\"row\">\n  <div class=\"col\">\n    <ls-license *ngIf=\"license\"\n                [license]=\"license\"\n                class=\"ls-article\">\n    </ls-license>\n    <ls-support class=\"ls-article\"></ls-support>\n  </div>\n  <div class=\"col\" *ngIf=\"applicationVersion || releaseNotes?.length >0\">\n    <ls-release-notes [releaseNotes]=\"releaseNotes\"\n                      [applicationName]=\"applicationVersion ? applicationVersion.getFullName() : null\"\n                      class=\"ls-article\">\n    </ls-release-notes>\n  </div>\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AboutComponent} from './component/about/about.component';\nimport {SupportComponent} from './component/support/support.component';\nimport {ReleaseNotesComponent} from './component/release-notes/release-notes.component';\nimport {LicenseComponent} from './component/license/license.component';\n\n\n@NgModule({\n  declarations: [LicenseComponent, AboutComponent, SupportComponent, ReleaseNotesComponent],\n  exports: [LicenseComponent, AboutComponent, SupportComponent, ReleaseNotesComponent],\n  imports: [CommonModule]\n})\nexport class LsAboutModule {\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {NgModule} from '@angular/core';\nimport {LsLoginModule} from './login/login.module';\nimport {LsRgpdModule} from './rgpd/ls-rgpd.module';\nimport {LsAboutModule} from './about/ls-about.module';\nimport {LoginConfigComponent} from \"./login/component/login-config/login-config.component\";\nimport {LoginFormComponent} from \"./login/component/login-form/login-form.component\";\nimport {ForgotPasswordComponent} from \"./login/component/forgot-password/forgot-password.component\";\nimport {\n  ForgotPasswordSuccessComponent\n} from \"./login/component/forgot-password-success/forgot-password-success.component\";\nimport {ResetPasswordComponent} from \"./login/component/reset-password/reset-password.component\";\nimport {LoginComponent} from \"./login/component/login/login.component\";\nimport {LoginModelComponent} from \"./login/component/login-model/login-model.component\";\nimport {RgpdPageComponent} from \"./rgpd/rgpd-page/component/rgpd-page.component\";\nimport {AboutComponent} from \"./about/component/about/about.component\";\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    LsLoginModule,\n    LsRgpdModule,\n    LsAboutModule\n  ],\n  exports: [\n    LsLoginModule,\n    LsRgpdModule,\n    LsAboutModule\n  ]\n})\nexport class LsPagesModule {\n  public static angularComponents = {\n    'ls-lib-login-config': LoginConfigComponent,\n    'ls-lib-login-form': LoginFormComponent,\n    'ls-lib-forgot-password': ForgotPasswordComponent,\n    'ls-lib-forgot-password-success': ForgotPasswordSuccessComponent,\n    'ls-lib-reset-password': ResetPasswordComponent,\n    'ls-lib-login': LoginComponent,\n    'ls-lib-login-model': LoginModelComponent,\n    'ls-lib-rgpd-page': RgpdPageComponent,\n    'ls-lib-about-page': AboutComponent\n  };\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {StepModel} from './step-model';\n\n\nexport class WorkflowModel {\n  id: number;\n  name: string;\n  steps: StepModel[] = [];\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {WorkflowActor} from './workflow-actor';\nimport {WorkflowMetadata} from \"./workflow-metadata\";\n\n\nexport class StepModel {\n  id: string;\n  name: string;\n  type: any;\n  state: string;\n  date?: string;\n  validationMode: string;\n  validators: WorkflowActor[] = [];\n  notifiedValidators: WorkflowActor [] = []\n  validationMetadata: WorkflowMetadata[] = [];\n  rejectionMetadata: WorkflowMetadata[] = [];\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class WorkflowEditorOptions {\n  workflow: WorkflowOptions = new WorkflowOptions();\n  classes: ClassesOptions = new ClassesOptions();\n  messages: MessagesOptions = new MessagesOptions();\n}\n\nexport class WorkflowOptions {\n  hideStart: boolean = false;\n  hideEnd: boolean = false;\n  useValidatorName: boolean = true;\n  editable: boolean = true;\n}\n\nexport class ClassesOptions {\n  addStepIcon: string = 'fa fa-plus-circle';\n  startIcon: string = 'far fa-flag';\n  endIcon: string = 'fas fa-flag-checkered';\n  editorIdentifier: string = 'ls-workflow-editor-default-layout';\n}\n\nexport class MessagesOptions {\n  addStepButtonTitle: string = 'Ajouter une étape';\n  firstStepTitle: string = 'Début';\n  lastStepTitle: string = 'Fin';\n  validatorListTitle: string = 'Bureaux';\n  notifiedValidatorListTitle: string = 'Bureaux notifiés';\n  validationMetadataListTitle: string = 'Métadonnées obligatoires';\n  rejectionMetadataListTitle: string = 'Métadonnées de rejet obligatoires';\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {WorkflowActor} from './workflow-actor';\nimport {WorkflowMetadata} from \"./workflow-metadata\";\nimport {StepModel} from \"./step-model\";\n\n\nexport class StepEvent {\n  action: StepEventAction;\n  index: number;\n  step?: StepModel;\n}\n\nexport enum StepEventAction {\n  CREATION, EDITION\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2024 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Injectable} from '@angular/core';\nimport {WorkflowEditorOptions} from \"../workflows/models/workflow-model-options\";\nimport {WorkflowActor} from \"../workflows/models/workflow-actor\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class WorkflowUtils {\n  public inputChecks(options: WorkflowEditorOptions) {\n    if (!options) throw new Error('Missing options for the ls workflow component !');\n    if (!options.classes) throw new Error('Missing classes options the ls workflow component !');\n    if (!options.messages) throw new Error('Missing localised messages options the ls workflow component !');\n  }\n\n  parseValidatorTitle(useValidatorName: boolean, validator: WorkflowActor): string {\n    return useValidatorName\n        ? validator.name\n        : validator.firstname + ' ' + validator.lastname\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\nimport {CdkDragDrop, moveItemInArray} from \"@angular/cdk/drag-drop\";\nimport {WorkflowModel} from \"../models/workflow-model\";\nimport {StepModel} from \"../models/step-model\";\nimport {WorkflowEditorOptions} from \"../models/workflow-model-options\";\nimport {StepEvent, StepEventAction} from \"../models/step-event\";\nimport {WorkflowUtils} from \"../../utils/workflow-utils\";\nimport {WorkflowActor} from \"../models/workflow-actor\";\nimport {WorkflowMetadata} from \"../models/workflow-metadata\";\n\n\n@Component({\n  selector: 'ls-workflow-editor',\n  templateUrl: './ls-workflow-editor.component.html',\n  styleUrls: ['./ls-workflow-editor.component.scss']\n})\nexport class LsWorkflowEditorComponent implements OnInit, OnChanges {\n\n  readonly stepEventActions = StepEventAction;\n\n  @Input() workflow: WorkflowModel;\n  @Output() workflowChange: EventEmitter<WorkflowModel> = new EventEmitter<WorkflowModel>();\n\n  @Input() selectedStepEvent: StepEvent;\n  @Output() selectedStepEventChange: EventEmitter<StepEvent> = new EventEmitter<StepEvent>();\n\n  @Input() options: WorkflowEditorOptions = new WorkflowEditorOptions();\n\n  @Input() stepToColorClassFunction: (step: StepModel) => string;\n  @Input() stepToValidationModeIconFunction: (step: StepModel) => string;\n  @Input() stepToActionIconClassFunction: (step: StepModel) => string;\n  @Input() stepToTooltipFunction: (step: StepModel) => string;\n\n  constructor(public workflowUtils: WorkflowUtils) {\n  }\n\n  ngOnInit(): void {\n    if (!this.workflow) {\n      console.error('Missing input workflow data');\n      this.workflow = new WorkflowModel();\n    }\n\n    this.workflowUtils.inputChecks(this.options);\n  }\n\n  ngOnChanges(_: SimpleChanges): void {\n    if(!this.selectedStepEvent) {\n      this.clearInCreationSteps();\n    }\n  }\n\n  drop(dragEvent: CdkDragDrop<StepModel>): void {\n    moveItemInArray(this.workflow.steps, dragEvent.previousIndex, dragEvent.currentIndex);\n  }\n\n  emitStepEvent(index: number = 0, stepEventAction: StepEventAction = StepEventAction.CREATION, step?: StepModel): void {\n\n    if (!this.options.workflow.editable || (!!step && !step.type)) return;\n\n    const existingInCreationStep: StepModel = this.workflow.steps.find((step: StepModel) => !step.type);\n    const indexOfExistingInCreationStep: number = this.workflow.steps.indexOf(existingInCreationStep);\n    const deletedStepBeforeCurrentInCreationStep: boolean =\n        indexOfExistingInCreationStep >= 0\n        && indexOfExistingInCreationStep < index\n        && index > 0;\n\n    if (deletedStepBeforeCurrentInCreationStep) {\n      index--;\n    }\n\n    this.clearInCreationSteps();\n\n    if (stepEventAction === StepEventAction.CREATION) {\n      index === -1\n          ? this.workflow.steps.push(new StepModel())\n          : this.workflow.steps.splice(index, 0, new StepModel());\n    }\n\n    this.selectedStepEvent = {action: stepEventAction, index: index, step: step};\n\n    this.selectedStepEventChange.emit(this.selectedStepEvent);\n\n  }\n\n  isPreviousStepInCreation(index: number): boolean {\n    return !!this.workflow.steps[index - 1] && !this.workflow.steps[index - 1].type\n  }\n\n  lastStepInCreation(): boolean {\n    if (this.workflow?.steps?.length === 0) {\n      return false;\n    }\n    return !this.workflow.steps[this.workflow.steps.length - 1].type;\n  }\n\n  unselect(): void {\n    this.clearInCreationSteps();\n    this.selectedStepEvent = null;\n    this.selectedStepEventChange.emit(null);\n  }\n\n  clearInCreationSteps() {\n    this.workflow.steps = this.workflow.steps.filter((step: StepModel) => !!step.type)\n  }\n\n  getValidatorListTooltip(validators: WorkflowActor[]): string {\n    let listToJoin: string[] = this.options.workflow.useValidatorName\n        ? validators.map((actor: WorkflowActor): string => actor.name)\n        : validators.map((actor: WorkflowActor): string => actor.firstname + ' ' + actor.lastname);\n\n    return listToJoin.join(\", \");\n  }\n\n  getMetadataListTooltip(metadataList: WorkflowMetadata[]): string {\n    return metadataList.map((metadata: WorkflowMetadata) => metadata.name).join(\", \");\n  }\n\n  isInCreation(step: StepModel): boolean {\n    return !step?.type;\n  }\n\n  isStepSelected(index: number): boolean {\n    return this.selectedStepEvent?.index === index;\n  }\n\n  isOneOtherStepSelected(index: number): boolean {\n    return !!this.selectedStepEvent && this.selectedStepEvent.index !== index;\n  }\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<div cdkDropList\n     [cdkDropListDisabled]=\"!options.workflow.editable\"\n     [ngClass]=\"options.classes.editorIdentifier\"\n     (cdkDropListDropped)=\"drop($event)\"\n     (cdkDropListEntered)=\"unselect()\"\n     (cdkDropListSorted)=\"unselect()\"\n     class=\"d-flex flex-column align-items-center\">\n\n\n  <!-- Link start -->\n  <span *ngIf=\"options.workflow.hideStart\" class=\"ball\"></span>\n  <span *ngIf=\"!options.workflow.hideStart\"\n        class=\"big-ball-with-icon d-flex align-items-center justify-content-center\">\n    <i [ngClass]=\"options.classes.startIcon\"></i>\n  </span>\n\n\n  <!-- Empty or null steps -->\n  <div *ngIf=\"!workflow || !workflow.steps || workflow.steps.length === 0\"\n       class=\"d-flex flex-column align-items-center\">\n    <span class=\"ls-workflow-link\">\n      <div *ngIf=\"options.workflow.editable\"\n           (click)=\"emitStepEvent()\"\n           class=\"ms-2 add-step-button text-nowrap pointer h-100 d-flex flex-row align-items-center\">\n        <i [ngClass]=\"options.classes.addStepIcon\" aria-hidden=\"true\"></i>\n        <span [innerText]=\"options.messages.addStepButtonTitle\" class=\"ms-2\"></span>\n      </div>\n    </span>\n  </div>\n\n  <!-- Steps -->\n  <div *ngFor=\"let step of workflow?.steps; let i = index\" cdkDrag class=\"d-flex flex-column align-items-center\">\n\n    <!-- Step link -->\n    <span class=\"ls-workflow-link\">\n      <div *ngIf=\"options.workflow.editable && !!step.type && !isPreviousStepInCreation(i)\"\n           (click)=\"emitStepEvent(i)\"\n           class=\"ms-2 add-step-button text-nowrap pointer h-100 d-flex flex-row align-items-center\">\n        <i [ngClass]=\"options.classes.addStepIcon\" aria-hidden=\"true\"></i>\n        <span class=\"ms-2\" [innerText]=\"options.messages.addStepButtonTitle\"></span>\n      </div>\n    </span>\n\n    <!-- Step body -->\n    <div [ngClass]=\"[\n           stepToColorClassFunction(step),\n           options.workflow.editable ? 'pointer': '',\n           isStepSelected(i) ? 'selected' : '',\n           isOneOtherStepSelected(i) ? 'blurred' : ''\n         ]\"\n         (click)=\"emitStepEvent(i, stepEventActions.EDITION, step)\"\n         class=\"ls-workflow-step shadow-sm p-3 position-relative\">\n\n      <table class=\"table table-borderless\">\n        <thead></thead>\n        <tbody>\n        <tr class=\"step-title\">\n          <td class=\"icon-column\">\n            <i *ngIf=\"!isInCreation(step)\" [ngClass]=\"stepToActionIconClassFunction(step)\"\n               [ngbTooltip]=\"stepToTooltipFunction(step)\"></i>\n            <i *ngIf=\"!step.type\" [ngClass]=\"options.classes.addStepIcon\"></i>\n          </td>\n          <td>\n            <span *ngIf=\"!isInCreation(step)\" [innerText]=\"step.name\"></span>\n            <span *ngIf=\"isInCreation(step)\" [innerText]=\"'Nouvelle étape'\"></span>\n          </td>\n        </tr>\n        <tr>\n          <td class=\"icon-column\">\n            <i *ngIf=\"!isInCreation(step)\" [ngClass]=\"stepToValidationModeIconFunction(step)\"></i>\n          </td>\n          <td>\n            <span *ngIf=\"!isInCreation(step)\" [innerText]=\"options.messages.validatorListTitle\"></span>\n\n            <div>\n              <span *ngFor=\"let actor of step.validators; let actorIndex = index\" class=\"step-list-item\">\n                {{ workflowUtils.parseValidatorTitle(options.workflow.useValidatorName, actor) }}\n                <span *ngIf=\"actorIndex < step.validators.length - 1\" [innerText]=\"', '\"></span>\n              </span>\n            </div>\n          </td>\n        </tr>\n        <tr *ngIf=\"step.notifiedValidators?.length > 0\">\n          <td class=\"icon-column\"></td>\n          <td [innerText]=\"options.messages.notifiedValidatorListTitle + ' (' + step.notifiedValidators.length + ')'\"\n              [ngbTooltip]=\"getValidatorListTooltip(step.notifiedValidators)\"\n              class=\"text-decoration-underline\">\n          </td>\n        </tr>\n        <tr *ngIf=\"step.validationMetadata?.length > 0\">\n          <td class=\"icon-column\"></td>\n          <td [innerText]=\"options.messages.validationMetadataListTitle + ' (' + step.validationMetadata.length + ')'\"\n              [ngbTooltip]=\"getMetadataListTooltip(step.validationMetadata)\"\n              class=\"text-decoration-underline\">\n          </td>\n        </tr>\n        <tr *ngIf=\"step.rejectionMetadata?.length > 0\">\n          <td class=\"icon-column\"></td>\n          <td [innerText]=\"options.messages.rejectionMetadataListTitle + ' (' + step.rejectionMetadata.length + ')'\"\n              [ngbTooltip]=\"getMetadataListTooltip(step.rejectionMetadata)\"\n              class=\"text-decoration-underline\">\n          </td>\n        </tr>\n        </tbody>\n      </table>\n    </div>\n  </div>\n\n  <!-- Link -->\n  <span *ngIf=\"workflow.steps?.length > 0\" class=\"ls-workflow-link\">\n      <div *ngIf=\"options.workflow.editable && !lastStepInCreation()\"\n           (click)=\"emitStepEvent(-1)\"\n           class=\"ms-2 add-step-button text-nowrap pointer h-100 d-flex flex-row align-items-center\">\n        <i [ngClass]=\"options.classes.addStepIcon\" aria-hidden=\"true\"></i>\n        <span class=\"ms-2\" [innerText]=\"options.messages.addStepButtonTitle\"></span>\n      </div>\n  </span>\n\n  <!-- Link end -->\n  <span *ngIf=\"!options.workflow.hideEnd\"\n        class=\"big-ball-with-icon d-flex align-items-center justify-content-center\">\n    <i [ngClass]=\"options.classes.endIcon\"></i>\n  </span>\n\n</div>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Component, Input, OnInit} from '@angular/core';\nimport {StepModel} from '../models/step-model';\nimport {WorkflowModel} from \"../models/workflow-model\";\nimport {WorkflowEditorOptions} from \"../models/workflow-model-options\";\nimport {WorkflowUtils} from \"../../utils/workflow-utils\";\n\n@Component({\n  selector: 'ls-workflow-instance-viewer',\n  templateUrl: './ls-workflow-instance-viewer.component.html',\n  styleUrls: ['./ls-workflow-instance-viewer.component.scss']\n})\nexport class LsWorkflowInstanceViewerComponent implements OnInit {\n\n  @Input() workflow: WorkflowModel;\n  @Input() options: WorkflowEditorOptions = new WorkflowEditorOptions();\n\n  @Input() stepToColorClassFunction: (step: StepModel) => string;\n  @Input() stepToActionIconClassFunction: (step: StepModel) => string;\n  @Input() stepToTooltipFunction: (step: StepModel) => string;\n\n  constructor(public workflowUtils: WorkflowUtils) {\n  }\n\n  ngOnInit(): void {\n    if (!this.workflow) {\n      console.error('Missing input workflow data');\n      this.workflow = new WorkflowModel();\n    }\n\n    this.workflowUtils.inputChecks(this.options);\n  }\n\n}\n","<!--\n  ~ Librairie-angular\n  ~ Copyright (C) 2019-2023 Libriciel SCOP\n  ~\n  ~ This program is free software: you can redistribute it and/or modify\n  ~ it under the terms of the GNU Affero General Public License as published by\n  ~ the Free Software Foundation, either version 3 of the License, or\n  ~ (at your option) any later version.\n  ~\n  ~ This program is distributed in the hope that it will be useful,\n  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of\n  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  ~ GNU Affero General Public License for more details.\n  ~\n  ~ You should have received a copy of the GNU Affero General Public License\n  ~ along with this program. If not, see <http://www.gnu.org/licenses/>.\n  -->\n\n<table class=\"table table-borderless\">\n  <thead></thead>\n  <tbody>\n  <tr *ngFor=\"let step of workflow.steps; let stepIndex = index\" class=\"d-flex\">\n    <td [ngClass]=\"{'validated': step.state === 'VALIDATED', 'rejected': step.state === 'REJECTED'}\"\n        class=\"icon-column d-flex\">\n      <i *ngIf=\"step.state === 'VALIDATED'\" class=\"fa fa-check\"></i>\n      <i *ngIf=\"step.state === 'REJECTED'\" class=\"fa fa-times\"></i>\n      <i *ngIf=\"step.state === 'CURRENT'\" class=\"fa fa-arrow-right\"></i>\n    </td>\n    <td class=\"icon-column d-flex flex-column\">\n      <div class=\"d-flex flex-column align-items-center h-100\">\n        <i [ngClass]=\"[\n             stepToActionIconClassFunction(step),\n             step.state === 'VALIDATED' ? 'validated' : '',\n             step.state === 'REJECTED' ? 'rejected' : ''\n            ]\"\n           [ngbTooltip]=\"stepToTooltipFunction(step)\">\n        </i>\n        <span *ngIf=\"stepIndex < workflow.steps.length - 1\" class=\"ls-workflow-link h-100 mt-1 mb-1\"></span>\n      </div>\n    </td>\n    <td *ngIf=\"step.state !== 'VALIDATED' && step.state !== 'REJECTED'\" class=\"ms-2\">\n      <span *ngFor=\"let validator of step.validators; let validatorIndex = index\">\n        {{ workflowUtils.parseValidatorTitle(options.workflow.useValidatorName, validator) }}\n        <span *ngIf=\"validatorIndex < step.validators.length - 1\" [innerText]=\"', '\"></span>\n      </span>\n    </td>\n    <td *ngIf=\"step.state === 'VALIDATED' || step.state === 'REJECTED'\" class=\"ms-2\">\n      <div [ngClass]=\"{'validated': step.state === 'VALIDATED', 'rejected': step.state === 'REJECTED'}\"\n           [innerText]=\"step.validators[0].name\">\n      </div>\n      <div class=\"text-muted\" [innerText]=\"'par ' + step.validators[0].firstname + ' ' + step.validators[0].lastname\"></div>\n      <div class=\"text-muted fst-italic\" *ngIf=\"!!step.date\" [innerText]=\"step.date | date: 'le d MMMM y à hh:mm:ss'\"></div>\n    </td>\n  </tr>\n\n  </tbody>\n</table>\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {LOCALE_ID, NgModule} from '@angular/core';\nimport {LsWorkflowEditorComponent} from \"./ls-workflow-editor/ls-workflow-editor.component\";\nimport {LsWorkflowInstanceViewerComponent} from \"./ls-workflow-instance-viewer/ls-workflow-instance-viewer.component\";\nimport {CommonModule, registerLocaleData} from \"@angular/common\";\nimport localeFr from '@angular/common/locales/fr';\nimport {BrowserModule} from \"@angular/platform-browser\";\nimport {BrowserAnimationsModule} from \"@angular/platform-browser/animations\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {HttpClientModule} from \"@angular/common/http\";\nimport {PipeModule} from \"../pipes/pipe.module\";\nimport {DirectiveModule} from \"../directives/directive.module\";\nimport {FontAwesomeModule} from \"@fortawesome/angular-fontawesome\";\nimport {CdkDrag, CdkDropList} from \"@angular/cdk/drag-drop\";\nimport {NgbPopoverModule, NgbTooltipModule} from \"@ng-bootstrap/ng-bootstrap\";\n\nregisterLocaleData(localeFr, 'fr');\n\n@NgModule({\n  declarations: [\n    LsWorkflowEditorComponent,\n    LsWorkflowInstanceViewerComponent\n  ],\n  imports: [\n    BrowserModule,\n    CommonModule,\n    BrowserAnimationsModule,\n    FormsModule,\n    ReactiveFormsModule,\n    HttpClientModule,\n    PipeModule,\n    DirectiveModule,\n    FontAwesomeModule,\n    CdkDrag,\n    CdkDropList,\n    NgbPopoverModule,\n    NgbTooltipModule\n  ],\n  providers: [{provide: LOCALE_ID, useValue: 'fr-FR'}],\n  exports: [\n    LsWorkflowEditorComponent,\n    LsWorkflowInstanceViewerComponent,\n  ]\n})\nexport class LsWorkflowsModule {\n  public static angularComponents = {\n    // workflows\n    'ls-lib-workflow-editor': LsWorkflowEditorComponent,\n    'ls-lib-workflow-instance-viewer': LsWorkflowInstanceViewerComponent,\n  };\n}\n","import {NgModule} from '@angular/core';\nimport {LsUiComponentsModule} from './components/ui-components.module';\nimport {LsStructureModule} from './structures/structure.module';\nimport {LsPagesModule} from './pages/pages.module';\nimport {LsWorkflowsModule} from \"./workflows/workflows.module\";\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    LsUiComponentsModule,\n    LsStructureModule,\n    LsPagesModule,\n    LsWorkflowsModule\n  ],\n  exports: [\n    LsUiComponentsModule,\n    LsStructureModule,\n    LsPagesModule,\n    LsWorkflowsModule\n  ]\n})\nexport class LsComposantsModule {\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport {Observable, of} from 'rxjs';\nimport {HasId} from './has-id';\nimport {ActionResult} from './actuator/action-result';\nimport {Style} from '../ui-concepts/style';\nimport {IActuator} from './actuator/i-actuator';\nimport {IValidator} from './validator/i-validator';\nimport {IconDefinition} from '@fortawesome/fontawesome-common-types';\nimport {CommonIcons} from '../icons/common-icons';\n\nexport class ActionItem<T extends HasId> {\n  name: string;\n  longName?: string;\n  icon?: IconDefinition | string | string [];\n  style?: Style;\n  actuator: IActuator<T>;\n  actionValidator?: IValidator<T>;\n  enabled?: boolean;\n\n  constructor(object: {\n    name: string;\n    longName?: string;\n    icon?: IconDefinition | string | string [];\n    icon_stacked?: string;\n    style?: Style;\n    actuator?: IActuator<T>;\n    enabled?: boolean;\n    fullButton?: boolean;\n    actionValidator?: IValidator<T>;\n  }) {\n    this.name = object.name;\n    this.longName = object.longName ? object.longName : object.name;\n    this.icon = object.icon;\n    this.style = object.style ? object.style : Style.NORMAL;\n    this.actuator = object.actuator;\n    this.actionValidator = object.actionValidator;\n    this.enabled = object.enabled;\n  }\n\n  initializeItem() {\n    const self: ActionItem<T> = this;\n    this.icon = this.icon && this.icon !== '' ? this.icon : CommonIcons.DEFAULT_ACTION_ICON;\n    this.enabled = true;\n\n    this.actionValidator = this.actionValidator\n        ? this.actionValidator\n        : new class implements IValidator<T> {\n          isActionValid = (): boolean => true;\n        }();\n\n    this.actuator = this.actuator\n        ? this.actuator\n        : new class implements IActuator<T> {\n          action(elements: T[]): Observable<ActionResult> {\n            // tslint:disable-next-line:no-console\n            console.debug(self.name + ' clicked on elements ' + elements.map(value => value ? value.id : '' + '').join(','));\n            return of({});\n          }\n        }();\n  }\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class WorkflowMetadata {\n  id: string;\n  key: string;\n  name: string;\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport enum StepState {\n  PENDING = 'pending',\n  CURRENT = 'current',\n  VALIDATED = 'approve',\n  SKIPPED = 'skipped',\n  REJECTED = 'rejected'\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class WorkflowActor {\n  id: number | string;\n  lastname?: string;\n  firstname?: string;\n  name?: string;\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport class LibersignCertificate {\n  CN: string;\n  ID: string;\n  PUBKEY: string;\n  EMAILADDRESS: string;\n  NOTAFTER: bigint;\n  ISSUERDN: string;\n  verifiedWith: [string];\n}\n","/*\n * Librairie-angular\n * Copyright (C) 2019-2023 Libriciel SCOP\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/*\n * Public API Surface of ls-composants\n */\n\n// Modules and component\nexport {LsStructureModule} from './lib/structures/structure.module';\nexport {ContentComponent} from './lib/structures/content/content.component';\nexport {SidebarService} from './lib/structures/sidebar/sidebar.service';\nexport {SidebarComponent} from './lib/structures/sidebar/sidebar.component';\nexport {FooterComponent} from './lib/structures/footer/footer.component';\n\nexport {LsComposantsModule} from './lib/ls-lib-composants.module';\nexport {LsUiComponentsModule} from './lib/components/ui-components.module';\nexport {BackToTopComponent} from './lib/components/back-to-top/back-to-top.component';\nexport {ColorPickerComponent} from './lib/components/color-picker/color-picker.component';\nexport {LibersignComponent} from './lib/components/libersign/libersign.component';\nexport {TimepickerComponent} from './lib/components/timepicker/timepicker.component';\nexport {MaxLengthTextAreaComponent} from './lib/components/max-length-textarea/max-length-textarea.component';\nexport {PasswordComponent} from './lib/components/password/password.component';\nexport {PasswordWithStrengthComponent} from './lib/components/password-with-strength/password-with-strength.component';\nexport {RadioButtonsComponent} from './lib/components/radio-buttons/radio-buttons.component';\nexport {ButtonComponent} from './lib/components/buttons/button/button.component';\nexport {CancelButtonComponent} from './lib/components/buttons/cancel-button/cancel-button.component';\nexport {SaveButtonComponent} from './lib/components/buttons/save-button/save-button.component';\nexport {ValidateButtonComponent} from './lib/components/buttons/validate-button/validate-button.component';\nexport {GoBackButtonComponent} from './lib/components/buttons/go-back-button/go-back-button.component';\nexport {DownloadButtonComponent} from './lib/components/buttons/download-button/download-button.component';\nexport {ActionBarComponent} from './lib/components/action-bar/action-bar.component';\nexport {ToggleSliderComponent} from './lib/components/toggle-slider/toggle-slider.component';\nexport {OptionsListComponent} from './lib/components/options-list/options-list.component';\n\nexport {LsPagesModule} from './lib/pages/pages.module';\nexport {LsLoginModule} from './lib/pages/login/login.module';\nexport {LsAboutModule} from './lib/pages/about/ls-about.module';\nexport {LsRgpdModule} from './lib/pages/rgpd/ls-rgpd.module';\nexport {AboutComponent} from './lib/pages/about/component/about/about.component';\nexport {SupportComponent} from './lib/pages/about/component/support/support.component';\nexport {ReleaseNotesComponent} from './lib/pages/about/component/release-notes/release-notes.component';\nexport {LicenseComponent} from './lib/pages/about/component/license/license.component';\nexport {RgpdPageComponent} from './lib/pages/rgpd/rgpd-page/component/rgpd-page.component';\nexport {ForgotPasswordComponent} from './lib/pages/login/component/forgot-password/forgot-password.component';\nexport {LoginComponent} from './lib/pages/login/component/login/login.component';\nexport {LoginModelComponent} from './lib/pages/login/component/login-model/login-model.component';\nexport {\n  ForgotPasswordSuccessComponent\n} from './lib/pages/login/component/forgot-password-success/forgot-password-success.component';\nexport {LoginConfigComponent} from './lib/pages/login/component/login-config/login-config.component';\nexport {LoginFormComponent} from './lib/pages/login/component/login-form/login-form.component';\nexport {ResetPasswordComponent} from './lib/pages/login/component/reset-password/reset-password.component';\n\nexport {LsWorkflowsModule} from './lib/workflows/workflows.module'\nexport {LsWorkflowEditorComponent} from './lib/workflows/ls-workflow-editor/ls-workflow-editor.component'\nexport {\n  LsWorkflowInstanceViewerComponent\n} from './lib/workflows/ls-workflow-instance-viewer/ls-workflow-instance-viewer.component'\n\n\n// Models\nexport {Version} from './lib/models/version';\nexport {HasId} from './lib/models/has-id';\nexport {ReleaseNotes} from './lib/models/release-notes';\nexport {ActionItem} from './lib/models/action-item';\nexport {Choice} from './lib/models/choice';\nexport {ActionItems} from './lib/models/action-items';\nexport {Option} from './lib/models/option';\nexport {Options} from './lib/models/options';\nexport {LoginConfigModel} from './lib/pages/login/component/login-config/login-config.model';\nexport {RgpdData} from './lib/pages/rgpd/rgpd-page/model/rgpd-data';\nexport {IValidator} from './lib/models/validator/i-validator';\nexport {IActuator} from './lib/models/actuator/i-actuator';\nexport {ActionResult} from './lib/models/actuator/action-result';\nexport {StepEvent, StepEventAction} from './lib/workflows/models/step-event';\nexport {WorkflowMetadata} from './lib/workflows/models/workflow-metadata';\nexport {StepModel} from './lib/workflows/models/step-model';\nexport {StepState} from './lib/workflows/models/step-state';\nexport {WorkflowActor} from './lib/workflows/models/workflow-actor';\nexport {WorkflowModel} from './lib/workflows/models/workflow-model';\nexport {WorkflowEditorOptions} from './lib/workflows/models/workflow-model-options';\nexport {LibersignCertificate} from './lib/components/libersign/certificate.model';\n\n// Enums and constants\nexport {CommonIcons} from './lib/icons/common-icons';\nexport {IconSize} from './lib/ui-concepts/icon.size';\nexport {Style} from './lib/ui-concepts/style';\nexport {Weight} from './lib/ui-concepts/weight';\nexport {defaultConfiguration} from './lib/pages/login/component/login-config/login-config.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SidebarService","i2.BackToTopComponent","i1","i2","i3","i2.CancelButtonComponent","i3.ValidateButtonComponent","i2.ActionableDirective","i3.ButtonComponent","i4.ToSnakeCasePipe","i1.ToIdPipe","i3.ToggleSliderComponent","i1.AnssiPasswordStrengthService","i4.PasswordComponent","i4.ColorPickerComponent","i5.MaxLengthTextAreaComponent","i6.ButtonComponent","i7.GoBackButtonComponent","i8.SaveButtonComponent","i4.ButtonComponent","i5.GoBackButtonComponent","i6.LoginModelComponent","i2.ButtonComponent","i3.LoginModelComponent","i5.ButtonComponent","i4.SaveButtonComponent","i5.PasswordWithStrengthComponent","i6","i7.LoginModelComponent","i3.ForgotPasswordComponent","i4.ForgotPasswordSuccessComponent","i5.LoginFormComponent","i6.ResetPasswordComponent","i2.ArticleComponent","i3.EntityComponent","i4.PersonComponent","i2.LicenseComponent","i3.SupportComponent","i4.ReleaseNotesComponent","i1.WorkflowUtils"],"mappings":"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"}