@valtimo/shared 13.10.0 → 13.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1458,6 +1458,7 @@
1458
1458
  "dropzone": {
1459
1459
  "drop": "Datei auswählen oder hier über drag-and-drop ablegen",
1460
1460
  "maxFileSize": "Maximale Datei-Größe: ",
1461
+ "acceptedFiles": "Akzeptierte Dateien: ",
1461
1462
  "jsonDocDef": "Die Case-Definition muss im JSON-Format sein",
1462
1463
  "formJsonDocDef": "Die Formular-Definition muss im JSON-Format sein",
1463
1464
  "objecttypeDef": "Die Objekttypdefinition muss im JSON-Format sein",
@@ -1607,6 +1608,7 @@
1607
1608
  "path": "Pfad",
1608
1609
  "dataType": "Datentyp",
1609
1610
  "fieldType": "Feldtyp",
1611
+ "required": "Pflicht",
1610
1612
  "matchType": "Übereinstimmen",
1611
1613
  "exact": "Genau",
1612
1614
  "like": "Enthält",
@@ -1634,7 +1636,9 @@
1634
1636
  "text": "Text",
1635
1637
  "textContains": "Text enthält",
1636
1638
  "noSearchfieldsTitle": "Keine Suchfelder",
1637
- "noSearchfieldsDescription": "Innerhalb dieser case definition wurden noch keine Suchfelder konfiguriert."
1639
+ "noSearchfieldsDescription": "Innerhalb dieser case definition wurden noch keine Suchfelder konfiguriert.",
1640
+ "requiredEnabled": "Pflichtfeld",
1641
+ "requiredDisabled": "Optional"
1638
1642
  },
1639
1643
  "searchFieldsOverviewTooltips": {
1640
1644
  "title": "Der Titel ist ein optionales Feld, das als Bezeichnung für das aktuelle Suchfeld erscheint. Wenn der Titel nicht festgelegt ist, ist der Standardwert die Übersetzung des Suchfeldschlüssels (wenn keine Übersetzung verfügbar ist, wird der ursprüngliche Schlüsselwert angezeigt).",
@@ -1646,7 +1650,8 @@
1646
1650
  "matchType": "Die Übereinstimmen legt fest, wie Werte in der Datenbank mit den Suchwerten verknüpft werden. Beim Übereinstimmungstyp 'Genau' würde der Wert '1' nur mit dem Wert '1' übereinstimmen. Für den Übereinstimmungstyp 'Enthält' würde der Wert '1' mit dem Wert '1', '123' und allen anderen Werten übereinstimmen, die '1' enthalten.",
1647
1651
  "dropdownDataProvider": "Die Dropdown-Datenquelle bestimmt, woher die Daten für die Dropdown-Liste stammen.",
1648
1652
  "configFile": "Eine Konfigurationsdatei mit Dropdown-Werten verwenden.",
1649
- "dropdownListValues": "Legen Sie benutzerdefinierte Werte für die Dropdown-Liste fest. Der in der Dropdown-Liste angezeigte Wert sollte in das rechte Textfeld eingegeben werden. Das linke Textfeld sollte die ID dieses Werts enthalten."
1653
+ "dropdownListValues": "Legen Sie benutzerdefinierte Werte für die Dropdown-Liste fest. Der in der Dropdown-Liste angezeigte Wert sollte in das rechte Textfeld eingegeben werden. Das linke Textfeld sollte die ID dieses Werts enthalten.",
1654
+ "required": "Legt fest, ob der Benutzer vor der Suche einen Wert eingeben muss."
1650
1655
  },
1651
1656
  "searchFieldDataType": {"select": "Wählen Sie einen Datentyp aus"},
1652
1657
  "searchFieldFieldType": {"select": "Wählen Sie einen Feldtyp aus"},
@@ -415,7 +415,7 @@
415
415
  "message": {"empty": "No result found"},
416
416
  "cta": {"close": "Close", "moreDetails": "More details"},
417
417
  "formManagement": {
418
- "noFormDefinitionFoundAdmin": "There is no form connected to the start event/user task. To link a form go to Admin menu > Process links.",
418
+ "noFormDefinitionFoundAdmin": "There is no form connected to the start event/user task. To configure this, click on the button below.",
419
419
  "noFormDefinitionFoundUser": "There is no form connected to the start event/user task. Ask an admin user for assistance.",
420
420
  "gotoProcessLinksButton": "Configure now",
421
421
  "loading": "Loading form...",
@@ -739,8 +739,8 @@
739
739
  "namePlaceholder": "Enter name here",
740
740
  "nameTooltip": "The name is used for the visible name of the case definition in the UI",
741
741
  "version": "Case definition version",
742
- "versionPlaceholder": "Enter version here",
743
- "versionTooltip": "The version is used for the visible version of the case definition in the UI",
742
+ "versionPlaceholder": "Enter version here (e.g. 1.0.0)",
743
+ "versionTooltip": "The version is used for the visible version of the case definition in the UI. Use Semantic Versioning (e.g. 1.0.0).",
744
744
  "description": "Case definition description",
745
745
  "descriptionPlaceholder": "Enter description here",
746
746
  "descriptionTooltip": "The description is used for the visible description of the case definition in the UI"
@@ -839,6 +839,7 @@
839
839
  "type": "Choose widget type",
840
840
  "width": "Choose widget width",
841
841
  "density": "Choose widget density",
842
+ "filters": "Filters",
842
843
  "displayConditions": "Set display conditions"
843
844
  }
844
845
  },
@@ -919,7 +920,8 @@
919
920
  "ellipsisCharacterLimitPlaceholder": "Choose a number of characters (optional)",
920
921
  "linkText": "Link text",
921
922
  "linkTextTooltip": "The text that will be displayed for the link. If left empty, the URL will be used as link text.",
922
- "linkTextPlaceholder": "Link text (optional)"
923
+ "linkTextPlaceholder": "Link text (optional)",
924
+ "defaultSortWarning": "Updating this will overwrite other default sortings."
923
925
  },
924
926
  "map": {
925
927
  "add": "Add field",
@@ -974,6 +976,22 @@
974
976
  "valueTooltip": "Name of the property you wish to access within the previously filled collection data path"
975
977
  }
976
978
  },
979
+ "filters": {
980
+ "description": "Define the filters that should appear above the interactive table.",
981
+ "title": "Title",
982
+ "titlePlaceholder": "Choose a title",
983
+ "titleTooltip": "The title of the filter.",
984
+ "key": "Key",
985
+ "keyPlaceholder": "Enter a unique key",
986
+ "keyTooltip": "A unique key by which the filter is identified. If the key is not unique, you will not be able to save the filter.",
987
+ "dataType": "Data type",
988
+ "dataTypePlaceholder": "Enter a data type",
989
+ "dataTypeTooltip": "The data type decides what input is shown to the user. For example, for the data type 'Date', a date picker is shown.",
990
+ "fieldType": "Field type",
991
+ "fieldTypePlaceholder": "Enter a field type",
992
+ "fieldTypeTooltip": "The field type decides the values the user can input. For the option 'Single', the user can only input a single value. For the option 'Range', the user may input two values, and these values, and all the values in between, are searched for.",
993
+ "add": "Add filter"
994
+ },
977
995
  "displayConditions": {
978
996
  "description": "Configure conditions to control when this widget is shown. If you do not add any conditions, the widget is always displayed.",
979
997
  "conditions": "Conditions (Optional)",
@@ -1329,6 +1347,7 @@
1329
1347
  "noItemsFound": "No items found",
1330
1348
  "clearAll": "Clear all",
1331
1349
  "clear": "Clear",
1350
+ "filters": "Filters",
1332
1351
  "show": "Show",
1333
1352
  "display": "Display",
1334
1353
  "items": "items",
@@ -1459,6 +1478,7 @@
1459
1478
  "dropzone": {
1460
1479
  "drop": "Choose a file or drag it here",
1461
1480
  "maxFileSize": "Maximum file size: ",
1481
+ "acceptedFiles": "Accepted files: ",
1462
1482
  "jsonDocDef": "The case definition must be in the JSON format",
1463
1483
  "formJsonDocDef": "The form definition must be in the JSON format",
1464
1484
  "objecttypeDef": "The objecttype definition must be in JSON format",
@@ -1617,6 +1637,7 @@
1617
1637
  "path": "Path",
1618
1638
  "dataType": "Data type",
1619
1639
  "fieldType": "Field type",
1640
+ "required": "Required",
1620
1641
  "matchType": "Match",
1621
1642
  "exact": "Exact",
1622
1643
  "like": "Contains",
@@ -1644,7 +1665,9 @@
1644
1665
  "text": "Text",
1645
1666
  "textContains": "Text contains",
1646
1667
  "noSearchfieldsTitle": "No search fields",
1647
- "noSearchfieldsDescription": "There are no search fields configured for this case type."
1668
+ "noSearchfieldsDescription": "There are no search fields configured for this case type.",
1669
+ "requiredEnabled": "Required",
1670
+ "requiredDisabled": "Optional"
1648
1671
  },
1649
1672
  "searchFieldsOverviewTooltips": {
1650
1673
  "title": "The title is an optional field that appears as a label for the current search field. When the title is not set, the default value will be the search field key translation (if there is no translation available, the original key value will be displayed).",
@@ -1656,7 +1679,8 @@
1656
1679
  "matchType": "The match type decides how values in the database are matched to the search values. For the match type 'Exact', the value '1' would only be matched to the value '1'. For the match type 'Contains', the value '1' would be matched to the value '1', '123', and all other values containing '1'.",
1657
1680
  "dropdownDataProvider": "The dropdown data source determines where the data for the dropdown comes from.",
1658
1681
  "configFile": "Use a config file with dropdown values. The config value must be present on the server",
1659
- "dropdownListValues": "Set custom values for the dropdown list. The value shown in the dropdown list should be entered in the right text-field. The left text-field should contain the id of that value."
1682
+ "dropdownListValues": "Set custom values for the dropdown list. The value shown in the dropdown list should be entered in the right text-field. The left text-field should contain the id of that value.",
1683
+ "required": "Decides whether the user must enter a value before a search can be executed."
1660
1684
  },
1661
1685
  "searchFieldDataType": {"select": "Select a data type"},
1662
1686
  "searchFieldFieldType": {"select": "Select a field type"},
@@ -2039,7 +2063,7 @@
2039
2063
  "keyTitle": "Key",
2040
2064
  "keyPlaceholder": "Enter a key for the API configuration",
2041
2065
  "pluginIdTitle": "Plugin configuration",
2042
- "typeTitle": "type",
2066
+ "typeTitle": "Type",
2043
2067
  "addColumn": "Add Column",
2044
2068
  "editColumn": "Edit column",
2045
2069
  "columnTitlePlaceholder": "Enter column title",
@@ -2057,6 +2081,7 @@
2057
2081
  "tabType": "Tab type",
2058
2082
  "tabTypeTitle": "Tab type",
2059
2083
  "tabTypePlaceholder": "Enter tab type",
2084
+ "tabProperties": "Properties",
2060
2085
  "addTab": "Add tab",
2061
2086
  "editTab": "Edit tab",
2062
2087
  "rowAction": "Row action",
@@ -418,7 +418,7 @@
418
418
  "message": {"empty": "Geen resultaat gevonden"},
419
419
  "cta": {"close": "Sluiten", "moreDetails": "Meer details"},
420
420
  "formManagement": {
421
- "noFormDefinitionFoundAdmin": "Er is geen formulier gekoppeld aan de start event/user task. Om een formulier te koppelen ga naar Admin menu > Proceskoppelingen",
421
+ "noFormDefinitionFoundAdmin": "Er is geen formulier gekoppeld aan de start event/user task. Druk op de knop om deze te configureren.",
422
422
  "noFormDefinitionFoundUser": "Er is geen formulier gekoppeld aan de start event/user task. Vraag een beheerder om hulp.",
423
423
  "gotoProcessLinksButton": "Configureer nu",
424
424
  "loading": "Formulier wordt geladen...",
@@ -626,7 +626,7 @@
626
626
  "placeholder": "Documenten API document uploaden"
627
627
  },
628
628
  "caseHandler": {
629
- "title": "dossierbehandelaar",
629
+ "title": "Dossierbehandelaar",
630
630
  "canHaveHandler": "Dossiertype kan een behandelaar hebben",
631
631
  "assignUser": "Gebruikerstaken automatisch toewijzen aan dossierbehandelaar",
632
632
  "disabledAutoAssignTooltip": "Het automatisch toewijzen van een gebruikerstaak aan de dossierbehandelaar kan alleen worden ingeschakeld als de dossier zelf een behandelaar kan hebben.",
@@ -746,8 +746,8 @@
746
746
  "namePlaceholder": "Voer hier een naam in",
747
747
  "nameTooltip": "De naam die de gebruiker te zien krijgt.",
748
748
  "version": "Versie van de dossierdefinitie",
749
- "versionPlaceholder": "Voer hier een versie in",
750
- "versionTooltip": "De versie wordt zichtbaar in de gebruikersinterface als aanduiding van deze dossierdefinitie.",
749
+ "versionPlaceholder": "Voer hier een versie in (bijv. 1.0.0)",
750
+ "versionTooltip": "De versie wordt zichtbaar in de gebruikersinterface als aanduiding van deze dossierdefinitie. Gebruik Semantic Versioning (bijv. 1.0.0).",
751
751
  "description": "Beschrijving van de dossierdefinitie",
752
752
  "descriptionPlaceholder": "Voer hier een beschrijving in",
753
753
  "descriptionTooltip": "De beschrijving wordt weergegeven als extra context voor de dossierdefinitie."
@@ -858,6 +858,7 @@
858
858
  "type": "Kies widget-type",
859
859
  "width": "Kies widget-breedte",
860
860
  "density": "Kies widgetdichtheid",
861
+ "filters": "Filters",
861
862
  "displayConditions": "Weergavecondities instellen"
862
863
  }
863
864
  },
@@ -944,7 +945,8 @@
944
945
  "ellipsisCharacterLimitPlaceholder": "Kies een aantal tekens (optioneel)",
945
946
  "linkText": "Link tekst",
946
947
  "linkTextTooltip": "De tekst die wordt weergegeven als een link. Als dit leeg is, wordt de URL als tekst gebruikt.",
947
- "linkTextPlaceholder": "Link tekst (optioneel)"
948
+ "linkTextPlaceholder": "Link tekst (optioneel)",
949
+ "defaultSortWarning": "Het bijwerken hiervan zal andere standaardsorteringen overschrijven."
948
950
  },
949
951
  "map": {
950
952
  "add": "Veld toevoegen",
@@ -1002,6 +1004,22 @@
1002
1004
  "valueTooltip": "Naam van de eigenschap waartoe u toegang wilt krijgen binnen het eerder ingevulde collectiegegevens-pad"
1003
1005
  }
1004
1006
  },
1007
+ "filters": {
1008
+ "description": "Definieer de filters die boven de interactieve tabel beschikbaar zijn.",
1009
+ "title": "Titel",
1010
+ "titlePlaceholder": "Kies een titel",
1011
+ "titleTooltip": "De titel is een optioneel veld dat wordt weergegeven als een label voor het huidige zoekveld. Als de titel niet is ingesteld, is de standaardwaarde de key-vertaling van het zoekveld (als er geen vertaling beschikbaar is, wordt de oorspronkelijke key-waarde weergegeven).",
1012
+ "key": "Key",
1013
+ "keyPlaceholder": "Voer een unieke key in",
1014
+ "keyTooltip": "Een unieke key waarmee het zoekveld wordt geïdentificeerd. Als de key niet uniek is, kan het zoekveld niet worden opgeslagen.",
1015
+ "dataType": "Datatype",
1016
+ "dataTypePlaceholder": "Voer een datatype in",
1017
+ "dataTypeTooltip": "Het datatype bepaalt welke invoer aan de gebruiker wordt getoond. Voor het datatype 'Datum' wordt bijvoorbeeld een datumkiezer getoond.",
1018
+ "fieldType": "Veldtype",
1019
+ "fieldTypePlaceholder": "Voer een veldtype in",
1020
+ "fieldTypeTooltip": "Het veldtype bepaalt de waarden die de gebruiker kan invoeren. Voor de optie 'Enkel' kan de gebruiker slechts één waarde invoeren. Bij de optie 'Reeks' kan de gebruiker twee waarden invoeren. Naar deze waarden, en alle waarden daartussen, wordt vervolgens gezocht.",
1021
+ "add": "Filter toevoegen"
1022
+ },
1005
1023
  "displayConditions": {
1006
1024
  "description": "Configureer condities om te bepalen wanneer deze widget wordt getoond. Als je geen condities toevoegt, wordt de widget altijd weergegeven.",
1007
1025
  "conditions": "Condities (Optioneel)",
@@ -1360,6 +1378,7 @@
1360
1378
  "noItemsFound": "Geen items gevonden",
1361
1379
  "clearAll": "Alles wissen",
1362
1380
  "clear": "Wissen",
1381
+ "filters": "Filters",
1363
1382
  "show": "Toon",
1364
1383
  "display": "Weergave",
1365
1384
  "items": "items",
@@ -1489,6 +1508,7 @@
1489
1508
  "dropzone": {
1490
1509
  "drop": "Kies een bestand, of sleep het hier naartoe",
1491
1510
  "maxFileSize": "Maximale bestandsgrootte: ",
1511
+ "acceptedFiles": "Geaccepteerde bestanden: ",
1492
1512
  "jsonDocDef": "De dossier-definitie moet in het JSON-formaat zijn",
1493
1513
  "formJsonDocDef": "De formulier-definitie moet in het JSON-formaat zijn",
1494
1514
  "objecttypeDef": "De objecttype-definitie moet in JSON-formaat zjn",
@@ -1647,6 +1667,7 @@
1647
1667
  "path": "Pad",
1648
1668
  "dataType": "Datatype",
1649
1669
  "fieldType": "Veldtype",
1670
+ "required": "Verplicht",
1650
1671
  "matchType": "Overeenkomst",
1651
1672
  "exact": "Precies",
1652
1673
  "like": "Bevat",
@@ -1674,7 +1695,9 @@
1674
1695
  "text": "Text",
1675
1696
  "textContains": "Tekst bevat",
1676
1697
  "noSearchfieldsTitle": "Geen zoekvelden",
1677
- "noSearchfieldsDescription": "Er zijn geen zoekvelden geconfigureerd voor dit dossiertype."
1698
+ "noSearchfieldsDescription": "Er zijn geen zoekvelden geconfigureerd voor dit dossiertype.",
1699
+ "requiredEnabled": "Verplicht",
1700
+ "requiredDisabled": "Optioneel"
1678
1701
  },
1679
1702
  "searchFieldsOverviewTooltips": {
1680
1703
  "title": "De titel is een optioneel veld dat wordt weergegeven als een label voor het huidige zoekveld. Als de titel niet is ingesteld, is de standaardwaarde de key-vertaling van het zoekveld (als er geen vertaling beschikbaar is, wordt de oorspronkelijke key-waarde weergegeven).",
@@ -1686,7 +1709,8 @@
1686
1709
  "matchType": "De overeenkomst bepaalt hoe waarden in de database worden gekoppeld aan de zoekwaarden. Voor het zoektype 'Exact' zou de waarde '1' alleen overeenkomen met de waarde '1'. Voor het zoektype 'Bevat' zou de waarde '1' overeenkomen met de waarde '1', '123' en alle andere waarden die '1' bevatten.",
1687
1710
  "dropdownDataProvider": "De dropdown-databron bepaalt waar de data voor de dropdown lijst vandaan komt.",
1688
1711
  "configFile": "Gebruik een configuratiebestand met dropdown-waarden",
1689
- "dropdownListValues": "Stel aangepaste waarden in voor de dropdown lijst. De waarde die in de dropdown lijst wordt weergegeven, moet in het rechter tekstveld worden ingevoerd. Het linker tekstveld moet de id van die waarde bevatten."
1712
+ "dropdownListValues": "Stel aangepaste waarden in voor de dropdown lijst. De waarde die in de dropdown lijst wordt weergegeven, moet in het rechter tekstveld worden ingevoerd. Het linker tekstveld moet de id van die waarde bevatten.",
1713
+ "required": "Bepaalt of de gebruiker een waarde moet invullen voordat er gezocht kan worden."
1690
1714
  },
1691
1715
  "searchFieldDataType": {"select": "Selecteer een datatype"},
1692
1716
  "searchFieldFieldType": {"select": "Selecteer een veldtype"},
@@ -2093,6 +2117,7 @@
2093
2117
  "tabType": "Tabtype",
2094
2118
  "tabTypeTitle": "Tabtype",
2095
2119
  "tabTypePlaceholder": "Voer tabtype in",
2120
+ "tabProperties": "Properties",
2096
2121
  "addTab": "Tab toevoegen",
2097
2122
  "editTab": "Tab bewerken",
2098
2123
  "rowAction": "Rijactie",
@@ -1095,7 +1095,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
1095
1095
  * limitations under the License.
1096
1096
  */
1097
1097
  const VERSIONS = {
1098
- frontendLibraries: '13.10.0',
1098
+ frontendLibraries: '13.12.0',
1099
1099
  };
1100
1100
 
1101
1101
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-shared.mjs","sources":["../../../../projects/valtimo/shared/src/lib/utils/router.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/url.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/global-notification.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/route-params.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/display-type.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/validate-bsn.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/index.ts","../../../../projects/valtimo/shared/src/lib/services/base-api.service.ts","../../../../projects/valtimo/shared/src/lib/models/config.ts","../../../../projects/valtimo/shared/src/lib/models/email-notification-settings.model.ts","../../../../projects/valtimo/shared/src/lib/models/menu-item.model.ts","../../../../projects/valtimo/shared/src/lib/models/menu.config.ts","../../../../projects/valtimo/shared/src/lib/models/security.config.ts","../../../../projects/valtimo/shared/src/lib/models/extension.model.ts","../../../../projects/valtimo/shared/src/lib/models/http-loader.ts","../../../../projects/valtimo/shared/src/lib/models/roles.ts","../../../../projects/valtimo/shared/src/lib/models/user-management.model.ts","../../../../projects/valtimo/shared/src/lib/models/page.ts","../../../../projects/valtimo/shared/src/lib/models/search.model.ts","../../../../projects/valtimo/shared/src/lib/models/versions.model.ts","../../../../projects/valtimo/shared/src/lib/models/user-settings.model.ts","../../../../projects/valtimo/shared/src/lib/models/translation.model.ts","../../../../projects/valtimo/shared/src/lib/models/localization.model.ts","../../../../projects/valtimo/shared/src/lib/models/form-view-model.model.ts","../../../../projects/valtimo/shared/src/lib/models/window.model.ts","../../../../projects/valtimo/shared/src/lib/models/management.model.ts","../../../../projects/valtimo/shared/src/lib/models/tag-color.model.ts","../../../../projects/valtimo/shared/src/lib/models/global-configuration.model.ts","../../../../projects/valtimo/shared/src/lib/models/display-type.model.ts","../../../../projects/valtimo/shared/src/lib/models/modal.model.ts","../../../../projects/valtimo/shared/src/lib/models/condition.model.ts","../../../../projects/valtimo/shared/src/lib/models/index.ts","../../../../projects/valtimo/shared/src/lib/services/config.service.ts","../../../../projects/valtimo/shared/src/lib/services/global-notification.service.ts","../../../../projects/valtimo/shared/src/lib/services/localization.service.ts","../../../../projects/valtimo/shared/src/lib/services/menu-include.service.ts","../../../../projects/valtimo/shared/src/lib/services/user-settings.service.ts","../../../../projects/valtimo/shared/src/lib/constants/versions.ts","../../../../projects/valtimo/shared/src/lib/constants/case-management-tab-token.ts","../../../../projects/valtimo/shared/src/lib/constants/form-view-model-token.ts","../../../../projects/valtimo/shared/src/lib/constants/error.constants.ts","../../../../projects/valtimo/shared/src/lib/constants/case-configuration-extensions-token.ts","../../../../projects/valtimo/shared/src/lib/constants/iko.token.ts","../../../../projects/valtimo/shared/src/lib/constants/index.ts","../../../../projects/valtimo/shared/src/lib/services/environment.service.ts","../../../../projects/valtimo/shared/src/lib/services/draft-version.service.ts","../../../../projects/valtimo/shared/src/lib/services/edit-permissions.service.ts","../../../../projects/valtimo/shared/src/lib/services/index.ts","../../../../projects/valtimo/shared/src/lib/components/global-notification.component.ts","../../../../projects/valtimo/shared/src/lib/extension/extension.component.ts","../../../../projects/valtimo/shared/src/lib/extension/extension.component.html","../../../../projects/valtimo/shared/src/lib/config.module.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-translate.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-keycloak.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-icon.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/index.ts","../../../../projects/valtimo/shared/src/lib/testing/index.ts","../../../../projects/valtimo/shared/src/lib/translation/custom-multi-translate-http-loader.ts","../../../../projects/valtimo/shared/src/lib/translation/custom-multi-translate-http-loader-factory.ts","../../../../projects/valtimo/shared/src/lib/translation/multi-translate-http-loader-factory.ts","../../../../projects/valtimo/shared/src/lib/translation/index.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/zgw-object-type-component-token.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/zgw-documenten-api-documents-component-token.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/index.ts","../../../../projects/valtimo/shared/src/lib/zgw/index.ts","../../../../projects/valtimo/shared/src/public-api.ts","../../../../projects/valtimo/shared/src/valtimo-shared.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ExtraOptions} from '@angular/router';\n\nclass RouterUtils {\n public static getRouterExtraOptions(): ExtraOptions {\n return {canceledNavigationResolution: 'computed'};\n }\n}\n\nexport {RouterUtils};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass UrlUtils {\n static formatUrlTrailingSlash(url: string, returnWithTrailingSlash: boolean): string {\n if (url && typeof url === 'string') {\n const urlLastCharacter = url[url.length - 1];\n const urlLastCharacterIsSlash = urlLastCharacter === '/';\n\n if (!returnWithTrailingSlash && urlLastCharacterIsSlash) {\n return url.slice(0, -1);\n } else if (returnWithTrailingSlash && !urlLastCharacterIsSlash) {\n return `${url}/`;\n }\n }\n\n return url;\n }\n\n static formatUrlStartWithSlash(url: string): string {\n if (url && typeof url === 'string' && url.length > 0 && url[0] !== '/') {\n return `/${url}`;\n }\n\n return `${url}`;\n }\n\n static getUrlHost(urlString: string): string {\n let url!: URL;\n\n try {\n url = new URL(urlString);\n } catch (_) {}\n\n return url ? url.host : '';\n }\n}\n\nexport {UrlUtils};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NotificationContent} from 'carbon-components-angular';\n\nexport const DEFAULT_NOTIFICATION_PARAMS = {\n duration: 4000,\n showClose: true,\n};\n\nexport const getNotificationObject = (content: NotificationContent): NotificationContent => ({\n ...DEFAULT_NOTIFICATION_PARAMS,\n ...content,\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CaseManagementParams, ManagementContext} from '../models';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest, distinctUntilChanged, filter, map, Observable, of, switchMap} from 'rxjs';\nimport {isEqual} from 'lodash';\n\nconst getCaseManagementRouteParams = (\n route: ActivatedRoute,\n doFilter = false\n): Observable<CaseManagementParams | undefined> => {\n const rootParams$ = route.params ? route.params : of({});\n const parentParams$ = route.parent?.params ? route.parent.params : of({});\n return combineLatest([rootParams$, parentParams$]).pipe(\n map(([rootParams, parentParams]) => {\n const caseDefinitionKey =\n rootParams['caseDefinitionKey'] || parentParams['caseDefinitionKey'];\n const caseDefinitionVersionTag =\n rootParams['caseDefinitionVersionTag'] || parentParams['caseDefinitionVersionTag'];\n if (caseDefinitionKey && caseDefinitionVersionTag) {\n return {caseDefinitionKey, caseDefinitionVersionTag};\n }\n return null;\n }),\n filter((params): params is CaseManagementParams => (doFilter ? params !== null : true)),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n};\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | null> {\n return route.data.pipe(\n map(data => (data && (data['context'] as ManagementContext)) || null),\n distinctUntilChanged()\n );\n}\n\nfunction getCaseManagementRouteParamsAndContext(\n route: ActivatedRoute\n): Observable<[ManagementContext, CaseManagementParams]> {\n const params$ = getCaseManagementRouteParams(route, true);\n const context$ = getContextObservable(route);\n\n return context$.pipe(\n switchMap(context => {\n if (context === 'case') {\n return combineLatest([of(context), params$]) as Observable<\n [ManagementContext, CaseManagementParams]\n >;\n }\n\n const fallbackParams: CaseManagementParams = {\n caseDefinitionKey: '',\n caseDefinitionVersionTag: '',\n };\n return of([context, fallbackParams] as [ManagementContext, CaseManagementParams]);\n })\n );\n}\n\nexport {getCaseManagementRouteParams, getContextObservable, getCaseManagementRouteParamsAndContext};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeParameters} from '../models';\n\nconst getDisplayTypeParametersView = (displayTypeParameters: DisplayTypeParameters): string => {\n if (displayTypeParameters?.dateFormat) {\n return displayTypeParameters.dateFormat;\n } else if (displayTypeParameters?.tagAmount) {\n return displayTypeParameters.tagAmount.toString();\n } else if (displayTypeParameters?.enum) {\n return Object.keys(displayTypeParameters.enum).reduce((acc, curr) => {\n const keyValuePairString = `${curr}: ${displayTypeParameters.enum?.[curr]}`;\n if (!acc) {\n return `${keyValuePairString}`;\n }\n\n return `${acc}, ${keyValuePairString}`;\n }, '');\n }\n\n return '-';\n};\n\nexport {getDisplayTypeParametersView};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst validateBsn = (value: string): {isValid: boolean; errorKey: string | null} => {\n const baseKey = 'interface.dataValidation.bsnValidator';\n\n if (!value) {\n return {isValid: false, errorKey: `${baseKey}.valueEmpty`};\n }\n\n const trimmed = value.toString().trim();\n\n if (!/^\\d+$/.test(trimmed)) {\n return {isValid: false, errorKey: `${baseKey}.valueOnlyDigits`};\n }\n\n if (trimmed.length < 8 || trimmed.length > 9) {\n return {isValid: false, errorKey: `${baseKey}.valueMinLength`};\n }\n\n if (trimmed.length > 9) {\n return {isValid: false, errorKey: `${baseKey}.valueMaxLength`};\n }\n\n if (/^0+$/.test(trimmed) || /^9+$/.test(trimmed)) {\n return {isValid: false, errorKey: `${baseKey}.valueAllZerosOrNines`};\n }\n\n const digits = trimmed.split('').map(d => parseInt(d, 10));\n let sum = 0;\n const length = digits.length;\n\n for (let i = 0; i < length; i++) {\n const weight = i === length - 1 ? -1 : length - i;\n sum += digits[i] * weight;\n }\n\n if (sum % 11 !== 0) {\n return {isValid: false, errorKey: `${baseKey}.valueElfCheck`};\n }\n\n return {isValid: true, errorKey: null};\n};\n\nexport {validateBsn};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './router.utils';\nexport * from './url.utils';\nexport * from './global-notification.utils';\nexport * from './route-params.utils';\nexport * from './display-type.utils';\nexport * from './validate-bsn.utils';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {UrlUtils} from '../utils';\n\nexport abstract class BaseApiService {\n private readonly _valtimoEndpointUri!: string;\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n this._valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getApiUrl(urlPart: string): string {\n const urlWithStartSlash = UrlUtils.formatUrlStartWithSlash(urlPart);\n const urlFormattedWithTrailingSlash = `${UrlUtils.formatUrlTrailingSlash(this._valtimoEndpointUri, false)}${urlWithStartSlash}`;\n return urlFormattedWithTrailingSlash;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Injector} from '@angular/core';\nimport {Auth} from './security.config';\nimport {MenuConfig} from './menu.config';\nimport {CSPHeaderParams} from 'csp-header';\nimport {FormioOptions} from '@formio/angular';\n\nconst VALTIMO_CONFIG = new InjectionToken<ValtimoConfig>('valtimoConfig');\n\n// eslint-disable-next-line\nconst INITIALIZERS = new InjectionToken<(() => Function)[]>('initializers');\n\ndeclare type Direction = 'ASC' | 'DESC';\n\ninterface DefinitionColumn {\n propertyName: string;\n translationKey: string;\n sortable?: boolean;\n viewType?: string;\n default?: boolean | string;\n enum?: Array<string> | {[key: string]: string};\n title?: string;\n format?: string;\n key?: string;\n tagAmount?: number;\n}\n\ninterface CustomTaskList {\n fields: Array<DefinitionColumn>;\n defaultSortedColumn?: SortState;\n}\n\ninterface CustomLeftSidebar {\n defaultMenuWidth?: number;\n maxMenuWidth?: number;\n minMenuWidth?: number;\n}\n\ninterface Sort {\n name: string;\n direction: Direction;\n}\n\ninterface SortState {\n state: Sort;\n isSorting: boolean;\n}\n\ninterface OverrideFormioOptions extends FormioOptions {\n [key: string]: any;\n}\n\ninterface ValtimoConfigFeatureToggles {\n applicationTitleAsSuffix?: boolean;\n enableHackathonCasesPage?: boolean;\n showUserNameInTopBar?: boolean;\n showPlantATreeButton?: boolean;\n experimentalDmnEditing?: boolean;\n disableCaseCount?: boolean;\n caseListColumn?: boolean;\n enableObjectManagement?: boolean;\n largeLogoMargin?: boolean;\n sortFilesByDate?: boolean;\n returnToLastUrlAfterTokenExpiration?: boolean;\n enableTabManagement?: boolean;\n hideValtimoVersionsForNonAdmins?: boolean;\n useStartEventNameAsStartFormTitle?: boolean;\n allowUserThemeSwitching?: boolean;\n enableCompactModeToggle?: boolean;\n compactModeOnByDefault?: boolean;\n enableUserNameInTopBarToggle?: boolean;\n enableFormViewModel?: boolean;\n enableIntermediateSave?: boolean;\n enableTaskPanel?: boolean;\n enableFormFlowBreadcrumbs?: boolean;\n enablePbacDocumentenApiDocuments?: boolean;\n enableSuppressDocumentError?: boolean;\n enableIkoType?: boolean;\n}\n\ninterface ValtimoConfig {\n // eslint-disable-next-line\n logoSvgBase64?: string;\n darkModeLogoSvgBase64?: string;\n logoPngBase64?: string;\n darkModeLogoPngBase64?: string;\n applicationTitle?: string;\n /**@deprecated Initializers will be removed in the future. */\n initializers?: ((injector: Injector) => () => void)[];\n menu: MenuConfig;\n authentication: Auth;\n production: boolean;\n whitelistedDomains: string[];\n langKey?: Language;\n valtimoApi: {\n endpointUri: string;\n };\n changePasswordUrl?: {\n endpointUri: string;\n };\n swagger: {\n endpointUri: string;\n };\n mockApi: {\n endpointUri: string;\n };\n logger: any;\n definitions: any;\n openZaak: {\n catalogus: string;\n };\n uploadProvider: UploadProvider;\n caseFileSizeUploadLimitMB?: number;\n caseFileUploadAcceptedFiles?: string;\n supportedDocumentFileTypesToViewInBrowser?: string[];\n defaultDefinitionTable: Array<DefinitionColumn>;\n translationResources?: Array<string>;\n featureToggles?: ValtimoConfigFeatureToggles;\n visibleTaskListTabs?: Array<TaskListTab>;\n visibleCaseListTabs?: Array<CaseListTab>;\n customTaskList?: CustomTaskList;\n customLeftSidebar?: CustomLeftSidebar;\n caseObjectTypes?: {\n [definitionNameId: string]: Array<string>;\n };\n overrideFeedbackMenuItemToMailTo?: FeedbackMailTo;\n csp?: CSPHeaderParams;\n formioOptions?: OverrideFormioOptions;\n}\n\ninterface FeedbackMailTo {\n email?: string;\n subjectTranslationKey: string;\n bodyTranslationKey: string;\n}\n\nenum UploadProvider {\n S3,\n /**@deprecated This upload provider will be removed in the future. */\n OPEN_ZAAK,\n DOCUMENTEN_API,\n}\n\nenum TaskListTab {\n MINE = 'mine',\n OPEN = 'open',\n ALL = 'all',\n}\n\nenum CaseListTab {\n MINE = 'MINE',\n OPEN = 'OPEN',\n ALL = 'ALL',\n}\n\nenum Language {\n NL = 'nl',\n EN = 'en',\n}\n\nexport {\n VALTIMO_CONFIG,\n INITIALIZERS,\n Direction,\n DefinitionColumn,\n CustomTaskList,\n CustomLeftSidebar,\n Sort,\n SortState,\n OverrideFormioOptions,\n ValtimoConfigFeatureToggles,\n ValtimoConfig,\n FeedbackMailTo,\n UploadProvider,\n TaskListTab,\n CaseListTab,\n Language,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface EmailNotificationSettings {\n emailNotifications: boolean;\n taskNotifications: boolean;\n emailNotificationOnMonday: boolean;\n emailNotificationOnTuesday: boolean;\n emailNotificationOnWednesday: boolean;\n emailNotificationOnThursday: boolean;\n emailNotificationOnFriday: boolean;\n emailNotificationOnSaturday: boolean;\n emailNotificationOnSunday: boolean;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Observable} from 'rxjs';\n\nenum IncludeFunction {\n ObjectManagementEnabled,\n}\n\ninterface MenuItem {\n title: string;\n sequence: number;\n id?: string;\n link?: string[] | null;\n textClass?: string;\n iconClass?: string;\n children?: MenuItem[];\n roles?: string[];\n show?: boolean;\n count$?: Observable<number>;\n includeFunction?: IncludeFunction;\n}\n\nexport {MenuItem, IncludeFunction};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {MenuItem} from './menu-item.model';\n\nexport interface MenuConfig {\n menuItems: MenuItem[];\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {EmailNotificationSettings} from './email-notification-settings.model';\nimport {Injector} from '@angular/core';\n\nexport interface UserIdentity {\n email: string;\n firstName: string;\n lastName: string;\n roles: Array<string>;\n username?: string;\n id?: string;\n}\n\nexport class ValtimoUserIdentity implements UserIdentity {\n private readonly _email: string;\n private readonly _firstName: string;\n private readonly _lastName: string;\n private readonly _roles: string[];\n private readonly _username?: string;\n private readonly _id?: string;\n\n constructor(\n email: string,\n firstName: string,\n lastName: string,\n roles: Array<string>,\n username?: string,\n id?: string\n ) {\n this._email = email;\n this._firstName = firstName;\n this._lastName = lastName;\n this._roles = roles;\n this._username = username;\n this._id = id;\n }\n\n get email(): string {\n return this._email;\n }\n\n get firstName(): string {\n return this._firstName;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n\n get roles(): string[] {\n return this._roles;\n }\n\n get username(): string | undefined {\n return this._username;\n }\n\n get id(): string | undefined {\n return this._id;\n }\n}\n\nexport interface UserService {\n getUserSubject(): ReplaySubject<UserIdentity>;\n\n logout(): void;\n\n getToken(): Promise<string>;\n\n updateToken?(minValidity: number): Promise<boolean>;\n}\n\nexport interface EmailNotificationService {\n getEmailNotificationSettings(): Observable<EmailNotificationSettings>;\n\n updateEmailNotificationSettings(\n settings: EmailNotificationSettings\n ): Observable<EmailNotificationSettings>;\n}\n\nexport interface AuthProviders {\n guardServiceProvider: any;\n userServiceProvider: any;\n}\n\nexport interface Auth {\n module: any;\n // eslint-disable-next-line\n initializer: (injector: Injector) => Function;\n authProviders: AuthProviders;\n options: any;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\n\nexport interface ExtensionPoint {\n module: string;\n page: string;\n section: string;\n component: any;\n}\n\nexport class ExtensionLoader {\n private readonly componentFactoryResolver: ComponentFactoryResolver = null;\n private componentRef: ComponentRef<any> = null;\n\n constructor(componentFactoryResolver: ComponentFactoryResolver) {\n this.componentFactoryResolver = componentFactoryResolver;\n }\n\n loadExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n extensionPoint.component\n );\n this.componentRef = viewContainerRef.createComponent(componentFactory);\n }\n\n loadAndClearExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n extensionPoint.component\n );\n viewContainerRef.clear();\n return (this.componentRef = viewContainerRef.createComponent(componentFactory));\n }\n}\n\nexport class Extension {\n public readonly _name: string;\n public readonly _extensionPoint: BasicExtensionPoint;\n\n constructor(name: string, extensionPoint: BasicExtensionPoint) {\n this._name = name;\n this._extensionPoint = extensionPoint;\n }\n\n get extensionPoint(): BasicExtensionPoint {\n return this._extensionPoint;\n }\n}\n\nexport class BasicExtensionPoint implements ExtensionPoint {\n private readonly _module: string;\n private readonly _page: string;\n private readonly _section: string;\n private readonly _component: any;\n\n constructor(module: string, page: string, section: string, component: any) {\n this._module = module;\n this._page = page;\n this._section = section;\n this._component = component;\n }\n\n supports(module: string, page: string, section: string): boolean {\n return this._module === module && this._page === page && this._section === section;\n }\n\n get module(): string {\n return this._module;\n }\n\n get page(): string {\n return this._page;\n }\n\n get section(): string {\n return this._section;\n }\n\n get component(): any {\n return this._component;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {HttpClient} from '@angular/common/http';\n\nexport function HttpLoaderFactory(httpClient: HttpClient) {\n return new TranslateHttpLoader(httpClient);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const ROLE_ADMIN = 'ROLE_ADMIN';\nexport const ROLE_USER = 'ROLE_USER';\nexport const ROLE_DEVELOPER = 'ROLE_DEVELOPER';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface User {\n id: string;\n fullName: string;\n firstName: string;\n lastName: string;\n email: string;\n roles: Array<string>;\n langKey: string;\n activated: boolean;\n emailVerified: boolean;\n verified: string;\n status: string;\n}\n\nexport interface NamedUser {\n id: string;\n email: string;\n firstName: string;\n lastName: string;\n label: string;\n userName: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface SortResult {\n sorted: boolean;\n unsorted: boolean;\n}\n\ninterface Pageable {\n sort: SortResult;\n pageSize: number;\n pageNumber: number;\n offset: number;\n unpaged: boolean;\n paged: boolean;\n}\n\ninterface Page<T> {\n content: Array<T>;\n pageable: Pageable;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n sort: SortResult;\n numberOfElements: number;\n size: number;\n number: number;\n [key: string]: any;\n}\n\nexport {SortResult, Pageable, Page};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SearchFieldDataType = 'text' | 'number' | 'date' | 'datetime' | 'boolean' | 'bsn';\n\ntype SearchFieldFieldType =\n | 'single'\n | 'multiple'\n | 'range'\n | 'single-select-dropdown'\n | 'multi-select-dropdown';\n\ntype SearchFieldMatchType = 'exact' | 'like';\n\ntype SearchFieldBoolean = 'booleanPositive' | 'booleanNegative';\n\ntype BooleanValueSingle = boolean;\n\ntype TextValueSingle = string;\ntype ValueMultiple = Array<\n BooleanValueSingle | TextValueSingle | NumberValueSingle | NumberValueRange\n>;\n\ntype NumberValueSingle = number;\n\ninterface NumberValueRange {\n start: NumberValueSingle;\n end: NumberValueSingle;\n}\n\ntype SearchFieldValue =\n | BooleanValueSingle\n | TextValueSingle\n | ValueMultiple\n | NumberValueSingle\n | NumberValueRange;\n\ninterface SearchField {\n ownerId?: string;\n title?: string;\n key: string;\n path?: string;\n order?: number;\n dataType: SearchFieldDataType;\n fieldType: SearchFieldFieldType;\n matchType?: SearchFieldMatchType;\n dropdownDataProvider?: string;\n uuid?: string;\n}\n\ninterface SearchFieldWithValue extends SearchField {\n value: SearchFieldValue;\n}\n\ninterface SearchFieldValues {\n [searchFieldKey: string]: SearchFieldValue;\n}\n\ninterface SearchFieldColumnView {\n title: string;\n key: string;\n path: string;\n dataType: string;\n fieldType: string;\n}\n\ntype SearchOperator = 'AND' | 'OR';\n\ntype AssigneeFilter = 'OPEN' | 'MINE' | 'ALL';\n\ninterface SearchFilter {\n key: string;\n values: Array<string>;\n multiValue?: boolean;\n}\n\ninterface SearchFilterRange {\n key: string;\n rangeFrom: string;\n rangeTo: string;\n}\n\nexport {\n SearchFieldDataType,\n SearchFieldFieldType,\n SearchFieldMatchType,\n SearchFieldBoolean,\n SearchField,\n SearchFieldValue,\n SearchFieldWithValue,\n SearchFieldValues,\n SearchFieldColumnView,\n SearchOperator,\n SearchFilter,\n SearchFilterRange,\n AssigneeFilter,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Versions {\n frontendLibraries: string;\n}\n\nexport {Versions};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface UserSettings {\n collapsibleWidescreenMenu?: boolean;\n languageCode?: string;\n compactMode?: boolean;\n showUserNameInTopBar?: boolean;\n preferredTheme?: string;\n}\n\nexport {UserSettings};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ITranslationResource {\n prefix: string;\n suffix?: string;\n optional?: boolean;\n}\n\nexport {ITranslationResource};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype LocalizationContent = object;\n\ninterface Localization {\n languageKey: string;\n content: LocalizationContent;\n}\n\ninterface MergedLocalizations {\n [languageKey: string]: LocalizationContent;\n}\n\nexport {Localization, LocalizationContent, MergedLocalizations};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\ninterface FormViewModel {\n component: Type<any>;\n}\n\nexport {FormViewModel};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {editor} from 'monaco-editor';\n\ntype MonacoEditor = typeof editor;\n\ninterface ValtimoWindow extends Window {\n monaco?: {\n editor?: MonacoEditor;\n };\n flags?: {\n formioValueResolverSelectorComponentRegistered: boolean;\n };\n}\n\nexport {ValtimoWindow};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ManagementContext = 'case' | 'independent';\n\nexport {ManagementContext};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum TagColor {\n WarmGray = 'WARMGRAY',\n Red = 'RED',\n Magenta = 'MAGENTA',\n Purple = 'PURPLE',\n Blue = 'BLUE',\n Cyan = 'CYAN',\n Teal = 'TEAL',\n Green = 'GREEN',\n Gray = 'GRAY',\n CoolGray = 'COOLGRAY',\n HighContrast = 'HIGHCONTRAST',\n Outline = 'OUTLINE',\n Orange = 'ORANGE',\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface GlobalConfiguration {\n canUpdateGlobalConfiguration: boolean;\n}\n\nexport {GlobalConfiguration};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface DisplayType {\n type: string;\n displayTypeParameters: DisplayTypeParameters;\n}\n\ninterface DisplayTypeParameters {\n enum?: {\n [key: string]: string;\n };\n dateFormat?: string;\n tagAmount?: number;\n}\n\nexport {DisplayTypeParameters, DisplayType};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ModalMode = 'add' | 'edit' | 'delete' | 'duplicate';\n\ntype ModalCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {ModalMode, ModalCloseEvent};\n","enum Operator {\n NOT_EQUAL_TO = '!=',\n EQUAL_TO = '==',\n GREATER_THAN = '>',\n GREATER_THAN_OR_EQUAL_TO = '>=',\n LESS_THAN = '<',\n LESS_THAN_OR_EQUAL_TO = '<=',\n}\n\ninterface Condition {\n path: string;\n operator: string;\n value: string;\n}\n\nexport {Operator, Condition};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './config';\nexport * from './email-notification-settings.model';\nexport * from './menu-item.model';\nexport * from './menu.config';\nexport * from './security.config';\nexport * from './extension.model';\nexport * from './http-loader';\nexport * from './roles';\nexport * from './user-management.model';\nexport * from './page';\nexport * from './search.model';\nexport * from './versions.model';\nexport * from './user-settings.model';\nexport * from './translation.model';\nexport * from './localization.model';\nexport * from './form-view-model.model';\nexport * from './window.model';\nexport * from './management.model';\nexport * from './tag-color.model';\nexport * from './global-configuration.model';\nexport * from './case-management.model';\nexport * from './display-type.model';\nexport * from './modal.model';\nexport * from './condition.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, Inject, Injectable, ViewContainerRef} from '@angular/core';\nimport {\n Extension,\n ExtensionLoader,\n ExtensionPoint,\n VALTIMO_CONFIG,\n ValtimoConfig,\n ValtimoConfigFeatureToggles,\n} from '../models';\nimport {UrlUtils} from '../utils';\nimport {map, Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n private readonly extensionLoader: ExtensionLoader;\n private readonly extensions: Array<Extension> = [];\n private readonly DEFAULT_APPLICATION_TITLE = 'Valtimo';\n\n constructor(\n @Inject(VALTIMO_CONFIG) private valtimoConfig: ValtimoConfig,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {\n this.extensionLoader = new ExtensionLoader(componentFactoryResolver);\n }\n\n public get config(): ValtimoConfig {\n const config = this.valtimoConfig;\n const translationResourcesConfig = config.translationResources;\n\n return {\n ...config,\n initializers: config.initializers || [],\n whitelistedDomains: config.whitelistedDomains.map(domain =>\n UrlUtils.formatUrlTrailingSlash(domain, false)\n ),\n mockApi: {\n ...config.mockApi,\n endpointUri: UrlUtils.formatUrlTrailingSlash(config.mockApi.endpointUri, true),\n },\n swagger: {\n ...config.swagger,\n endpointUri: UrlUtils.formatUrlTrailingSlash(config.swagger.endpointUri, false),\n },\n valtimoApi: {\n ...config.valtimoApi,\n endpointUri: UrlUtils.formatUrlTrailingSlash(config.valtimoApi.endpointUri, true),\n },\n ...(translationResourcesConfig && {\n translationResources: translationResourcesConfig.map(resource =>\n UrlUtils.formatUrlTrailingSlash(resource, true)\n ),\n }),\n applicationTitle: config.applicationTitle || this.DEFAULT_APPLICATION_TITLE,\n };\n }\n\n public get featureToggles(): ValtimoConfig['featureToggles'] {\n return this.config.featureToggles;\n }\n\n public get config$(): Observable<ValtimoConfig> {\n return of(this.config);\n }\n\n public get featureToggles$(): Observable<ValtimoConfig['featureToggles']> {\n return of(this.config.featureToggles);\n }\n\n public get initializers() {\n return this.valtimoConfig?.initializers || [];\n }\n\n public addExtension(extension: Extension) {\n return this.extensions.push(extension);\n }\n\n public getSupportedExtensionPoint(module: string, page: string, section: string) {\n return this.extensions.find(extension =>\n extension.extensionPoint.supports(module, page, section)\n );\n }\n\n public getSupportedExtensionPoints(module: string, page: string, section: string) {\n return this.extensions.filter(extension =>\n extension.extensionPoint.supports(module, page, section)\n );\n }\n\n public loadExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n this.extensionLoader.loadExtensionPoint(viewContainerRef, extensionPoint);\n }\n\n public loadAndReturnExtensionPoint(\n viewContainerRef: ViewContainerRef,\n extensionPoint: ExtensionPoint\n ) {\n return this.extensionLoader.loadAndClearExtensionPoint(viewContainerRef, extensionPoint);\n }\n\n public getFeatureToggleObservable(\n featureToggle: keyof ValtimoConfigFeatureToggles\n ): Observable<boolean> {\n return this.featureToggles$.pipe(\n map(featureToggles => !!(featureToggles && featureToggles[featureToggle]))\n );\n }\n\n public getFeatureToggle(featureToggle: keyof ValtimoConfigFeatureToggles): boolean {\n return !!(this.featureToggles && this.featureToggles[featureToggle]);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ComponentRef, EventEmitter, Injectable} from '@angular/core';\nimport {\n ActionableContent,\n ActionableNotification,\n Notification,\n NotificationContent,\n NotificationService,\n Toast,\n ToastContent,\n} from 'carbon-components-angular';\nimport {take} from 'rxjs';\nimport {getNotificationObject} from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalNotificationService {\n private _notificationService: NotificationService | null = null;\n private readonly _notificationQueue: (Notification & {id: string})[] = [];\n\n public setNotificationService(service: NotificationService): void {\n this._notificationService = service;\n }\n\n public getNotificationService(): NotificationService | null {\n return this._notificationService;\n }\n\n public showNotification(\n notificationObj: NotificationContent | ToastContent | ActionableContent,\n notificationComp: typeof Notification = Notification\n ): Notification | null {\n if (!this._notificationService) return null;\n\n return this.handleNotificationRef(\n this._notificationService?.showNotification(\n getNotificationObject(notificationObj),\n notificationComp\n )\n );\n }\n\n public showToast(\n notificationObj: NotificationContent | ToastContent,\n notificationComp: typeof Toast = Toast\n ): Notification | null {\n if (!this._notificationService) return null;\n\n return this.handleNotificationRef(\n this._notificationService?.showToast(getNotificationObject(notificationObj), notificationComp)\n );\n }\n\n public showActionable(\n notificationObj: ActionableContent,\n notificationComp: typeof ActionableNotification = ActionableNotification\n ): Notification | null {\n if (!this._notificationService) return null;\n\n return this.handleNotificationRef(\n this._notificationService?.showActionable(\n getNotificationObject(notificationObj),\n notificationComp\n )\n );\n }\n\n public close(notificationRef: any): void {\n notificationRef.close.emit();\n }\n\n public getSmartTimeout(notificationObj: any): number | null {\n if (!this._notificationService) return null;\n return this._notificationService?.getSmartTimeout(notificationObj);\n }\n\n public getNotificationRefs(): ComponentRef<any>[] | null {\n if (!this._notificationService) return null;\n return this._notificationService?.notificationRefs;\n }\n\n public getOnCloseEmitter(): EventEmitter<any> | null {\n if (!this._notificationService) return null;\n return this._notificationService?.onClose;\n }\n\n public ngOnDestroy(): void {\n this._notificationService?.ngOnDestroy();\n this._notificationQueue.splice(0, this._notificationQueue.length);\n }\n\n private handleNotificationRef(notificationRef: any): Notification | null {\n const notification = {\n ...notificationRef,\n id:\n notificationRef.toastID ??\n notificationRef.notificationID ??\n notificationRef.actionableNotificationID,\n };\n\n if (this._notificationQueue.length > 3) {\n this._notificationQueue.splice(0, 1);\n this.close(notificationRef);\n }\n\n this._notificationQueue.push(notification);\n setTimeout(() => this.removeNotificationInQueue(notification.id), 4000);\n\n notificationRef.close\n .pipe(take(1))\n .subscribe(() => this.removeNotificationInQueue(notification.id));\n\n return notificationRef;\n }\n\n private removeNotificationInQueue(id: string): void {\n const index = this._notificationQueue.findIndex(\n (notification: Notification & {id: string}) => notification.id === id\n );\n if (index === -1) return;\n\n this._notificationQueue.splice(index, 1);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Localization, LocalizationContent, MergedLocalizations} from '../models';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {map, Observable, of} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalizationService {\n private readonly valtimoApiUri!: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this.valtimoApiUri = configService?.config?.valtimoApi?.endpointUri;\n }\n\n public getLocalization(languageKey: string): Observable<LocalizationContent> {\n return this.http\n .get<LocalizationContent>(`${this.valtimoApiUri}v1/localization/${languageKey}`, {\n headers: new HttpHeaders().set('X-Skip-Interceptor', '403'),\n })\n .pipe(catchError(() => of({})));\n }\n\n public getLocalizations(): Observable<Localization[]> {\n return this.http.get<Localization[]>(`${this.valtimoApiUri}v1/localization`);\n }\n\n public getMergedLocalizations(): Observable<MergedLocalizations> {\n return this.getLocalizations().pipe(\n map(res => res.reduce((acc, curr) => ({...acc, [curr.languageKey]: curr.content}), {}))\n );\n }\n\n public updateLocalization(\n languageKey: string,\n updatedLocalizationContent: LocalizationContent\n ): Observable<LocalizationContent> {\n return this.http.put<LocalizationContent>(\n `${this.valtimoApiUri}management/v1/localization/${languageKey}`,\n updatedLocalizationContent\n );\n }\n\n public updateLocalizations(updatedLocalizations: Localization[]): Observable<Localization[]> {\n return this.http.put<Localization[]>(\n `${this.valtimoApiUri}management/v1/localization`,\n updatedLocalizations\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {IncludeFunction, ValtimoConfig} from '../models';\nimport {ConfigService} from './config.service';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuIncludeService {\n private valtimoConfig!: ValtimoConfig;\n\n constructor(private readonly configService: ConfigService) {\n this.valtimoConfig = this.configService.config;\n }\n\n getIncludeFunction(includeFunction: IncludeFunction): Observable<boolean> {\n switch (includeFunction) {\n case IncludeFunction.ObjectManagementEnabled:\n return of(!!this.valtimoConfig?.featureToggles?.enableObjectManagement || true);\n default:\n return of(true);\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {UserSettings} from '../models';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserSettingsService {\n private readonly valtimoApiUri!: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this.valtimoApiUri = configService?.config?.valtimoApi?.endpointUri;\n }\n\n getUserSettings(): Observable<UserSettings> {\n return this.http.get<UserSettings>(`${this.valtimoApiUri}v1/user/settings`);\n }\n\n saveUserSettings(settings: UserSettings): Observable<any> {\n return this.http.put(`${this.valtimoApiUri}v1/user/settings`, settings);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Versions} from '../models';\n\nconst VERSIONS: Versions = {\n frontendLibraries: '13.10.0',\n};\n\nexport {VERSIONS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CaseManagementTabConfig} from '../models';\n\nconst CASE_MANAGEMENT_TAB_TOKEN = new InjectionToken<CaseManagementTabConfig>(\n 'Specify a component to display per configured tab translation key.'\n);\n\nexport {CASE_MANAGEMENT_TAB_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {FormViewModel} from '../models';\n\nconst FORM_VIEW_MODEL_TOKEN = new InjectionToken<FormViewModel>(\n 'Specify the form view model component.'\n);\n\nexport {FORM_VIEW_MODEL_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpHeaders} from '@angular/common/http';\n\nconst InterceptorSkip = 'X-Skip-Interceptor';\nconst InterceptorSkipHeader = new HttpHeaders().set(InterceptorSkip, 'all');\n\nexport {InterceptorSkip, InterceptorSkipHeader};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst CASE_CONFIGURATION_EXTENSIONS_TOKEN = new InjectionToken<Type<any>[]>(\n 'Specify components to display on on the case management general page.'\n);\n\nexport {CASE_CONFIGURATION_EXTENSIONS_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\n\nconst IKO_TOKEN = new InjectionToken<boolean>('IKO is enabled when this token is provided');\n\nexport {IKO_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './versions';\nexport * from './case-management-tab-token';\nexport * from './form-view-model-token';\nexport * from './error.constants';\nexport * from './case-configuration-extensions-token';\nexport * from './iko.token';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable, of} from 'rxjs';\nimport {ConfigService} from './config.service';\nimport {BaseApiService} from './base-api.service';\nimport {GlobalConfiguration} from '../models';\nimport {catchError} from 'rxjs/operators';\nimport {InterceptorSkip} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnvironmentService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public canUpdateGlobalConfiguration(): Observable<boolean> {\n return this.httpClient\n .get<GlobalConfiguration>(this.getApiUrl('management/v1/case-definition/check'), {\n headers: new HttpHeaders().set(InterceptorSkip, '404'),\n })\n .pipe(\n map(response => response.canUpdateGlobalConfiguration),\n catchError(() => of(true))\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable, of} from 'rxjs';\nimport {ConfigService} from './config.service';\nimport {BaseApiService} from './base-api.service';\nimport {InterceptorSkip} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DraftVersionService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public isDraftVersion(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<boolean> {\n if (!caseDefinitionKey || !caseDefinitionVersionTag) {\n return of(false);\n }\n\n return this.httpClient\n .get<any>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}`\n ),\n {\n headers: new HttpHeaders().set(InterceptorSkip, '403'),\n }\n )\n .pipe(map(caseDefinition => !caseDefinition.final));\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {BaseApiService} from './base-api.service';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {combineLatest, map, Observable, of} from 'rxjs';\nimport {EnvironmentService} from './environment.service';\nimport {DraftVersionService} from './draft-version.service';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditPermissionsService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService,\n public readonly environmentService: EnvironmentService,\n public readonly draftVersionService: DraftVersionService\n ) {\n super(httpClient, configService);\n }\n\n public hasEditPermissions(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<boolean> {\n return combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.draftVersionService.isDraftVersion(caseDefinitionKey, caseDefinitionVersionTag),\n ]).pipe(map(([canUpdate, isDraftVersion]) => canUpdate && isDraftVersion));\n }\n\n public hasPermissionsToEditBasedOnContext(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n context: string\n ): Observable<boolean> {\n if (context === 'case') {\n return this.hasEditPermissions(caseDefinitionKey, caseDefinitionVersionTag);\n } else if (context === 'independent') {\n return this.environmentService.canUpdateGlobalConfiguration();\n }\n return of(false);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './base-api.service';\nexport * from './config.service';\nexport * from './global-notification.service';\nexport * from './localization.service';\nexport * from './menu-include.service';\nexport * from './user-settings.service';\nexport * from './environment.service';\nexport * from './draft-version.service';\nexport * from './edit-permissions.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\nimport {NotificationService} from 'carbon-components-angular';\nimport {GlobalNotificationService} from '../services';\n\n@Component({\n selector: 'valtimo-global-notification',\n template: ``,\n styles: `\n ::ng-deep.cds--toast-notification {\n width: 100%;\n }\n `,\n providers: [NotificationService],\n standalone: true,\n imports: [CommonModule],\n})\nexport class GlobalNotificationComponent implements OnInit {\n constructor(\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly notificationService: NotificationService\n ) {}\n\n public ngOnInit(): void {\n this.globalNotificationService.setNotificationService(this.notificationService);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input, OnInit, ViewChild, ViewContainerRef} from '@angular/core';\nimport {ConfigService} from '../services/config.service';\nimport {Extension, ExtensionLoader, ExtensionPoint} from '../models';\n\n@Component({\n selector: 'valtimo-extension',\n templateUrl: './extension.component.html',\n styleUrls: ['./extension.component.css'],\n standalone: false,\n})\nexport class ExtensionComponent implements OnInit {\n public extensionLoader: ExtensionLoader = null;\n public selectedExtensionPoint: ExtensionPoint;\n public supportedExtensions: Array<Extension>;\n @Input() public module: string;\n @Input() public page: string;\n @Input() public section: string;\n @ViewChild('injectExtension', {read: ViewContainerRef, static: true})\n viewContainerRef: ViewContainerRef;\n\n constructor(private configService: ConfigService) {}\n\n ngOnInit() {\n this.configService\n .getSupportedExtensionPoints(this.module, this.page, this.section)\n .forEach(extension => {\n this.configService.loadExtensionPoint(this.viewContainerRef, extension.extensionPoint);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-template #injectExtension></ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {ConfigService} from './services/config.service';\nimport {VALTIMO_CONFIG, ValtimoConfig} from './models';\nimport {ExtensionComponent} from './extension/extension.component';\n\n@NgModule({\n declarations: [ExtensionComponent],\n imports: [],\n exports: [ExtensionComponent],\n})\nexport class ConfigModule {\n static forRoot(config: ValtimoConfig): ModuleWithProviders<ConfigModule> {\n return {\n ngModule: ConfigModule,\n providers: [\n ConfigService,\n {\n provide: VALTIMO_CONFIG,\n useValue: config,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MockTranslateService {\n public stream(key: string): Observable<any> {\n return of(null);\n }\n\n public instant(key: string): string {\n return '';\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport {KeycloakProfile} from 'keycloak-js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MockKeycloakService {\n public get keycloakEvents$(): Observable<{type: string}> {\n return of({type: ''});\n }\n\n public isLoggedIn(): Observable<boolean> {\n return of(true);\n }\n\n private readonly MOCK_USER_PROFILE: KeycloakProfile = {\n id: '',\n username: '',\n email: '',\n firstName: '',\n lastName: '',\n enabled: true,\n emailVerified: true,\n totp: true,\n createdTimestamp: 0,\n };\n\n public async loadUserProfile(): Promise<KeycloakProfile> {\n return this.MOCK_USER_PROFILE;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MockIconService {\n public registerAll(value: Array<any>): void {\n return;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './mock-translate.service';\nexport * from './mock-keycloak.service';\nexport * from './mock-icon.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {catchError, map, switchMap} from 'rxjs/operators';\nimport {combineLatest, forkJoin, Observable, of} from 'rxjs';\nimport {deepmerge} from 'deepmerge-ts';\nimport {ITranslationResource} from '../models';\nimport {TranslateLoader} from '@ngx-translate/core';\nimport {LocalizationService} from '../services/localization.service';\n\nexport class CustomMultiTranslateHttpLoader implements TranslateLoader {\n private readonly _handler: HttpBackend;\n private readonly _httpClient: HttpClient;\n private readonly _resourcesPrefix: Array<string> | ITranslationResource[];\n private readonly _localizationService: LocalizationService;\n constructor(\n _handler: HttpBackend,\n _httpClient: HttpClient,\n _localizationService: LocalizationService,\n _resourcesPrefix: Array<string> | ITranslationResource[]\n ) {\n this._handler = _handler;\n this._httpClient = _httpClient;\n this._resourcesPrefix = _resourcesPrefix;\n this._localizationService = _localizationService;\n }\n getTranslation(lang: string): Observable<any> {\n const requests = this._resourcesPrefix.map(resource => {\n let path;\n if (resource.prefix) path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;\n else path = `${resource}${lang}.json`;\n return new HttpClient(this._handler).get(path).pipe(\n catchError(res => {\n if (!resource.optional) {\n console.group();\n console.error('Something went wrong for the following translation file:', path);\n console.error(res);\n console.groupEnd();\n }\n return of({});\n })\n );\n });\n\n return forkJoin(requests).pipe(\n switchMap(localResourcesResponse =>\n combineLatest([of(localResourcesResponse), this._localizationService.getLocalization(lang)])\n ),\n map(([localResourcesResponse, localizationResponse]) =>\n deepmerge(...[...localResourcesResponse, localizationResponse])\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {ConfigService} from '../services/config.service';\nimport {CustomMultiTranslateHttpLoader} from './custom-multi-translate-http-loader';\nimport {LocalizationService} from '../services/localization.service';\n\nexport function CustomMultiTranslateHttpLoaderFactory(\n http: HttpBackend,\n httpClient: HttpClient,\n configService: ConfigService,\n localizationService: LocalizationService\n) {\n const translationResources = configService?.config?.translationResources;\n\n return new CustomMultiTranslateHttpLoader(http, httpClient, localizationService, [\n './valtimo-translation/core/',\n ...(translationResources &&\n Array.isArray(translationResources) &&\n translationResources.length > 0\n ? translationResources\n : []),\n ]);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend} from '@angular/common/http';\nimport {MultiTranslateHttpLoader} from 'ngx-translate-multi-http-loader';\nimport {ConfigService} from '../services/config.service';\n\nexport function MultiTranslateHttpLoaderFactory(http: HttpBackend, configService: ConfigService) {\n const translationResources = configService.config.translationResources;\n\n return new MultiTranslateHttpLoader(http, [\n './valtimo-translation/core/',\n ...(translationResources &&\n Array.isArray(translationResources) &&\n translationResources.length > 0\n ? translationResources\n : []),\n ]);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './custom-multi-translate-http-loader';\nexport * from './custom-multi-translate-http-loader-factory';\nexport * from './multi-translate-http-loader-factory';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst ZGW_OBJECT_TYPE_COMPONENT_TOKEN = new InjectionToken<Type<any>>(\n 'Specify a component to display ZGW object types.'\n);\n\nexport {ZGW_OBJECT_TYPE_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN = new InjectionToken<Type<any>>(\n 'Specify a component to display on documents tab when Documenten API is set as the upload provider in the environment file.'\n);\n\nexport {ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zgw-object-type-component-token';\nexport * from './zgw-documenten-api-documents-component-token';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './constants';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of shared\n */\n\nexport * from './lib/components/global-notification.component';\nexport * from './lib/config.module';\nexport * from './lib/constants';\nexport * from './lib/extension/extension.component';\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/testing';\nexport * from './lib/translation';\nexport * from './lib/utils';\nexport * from './lib/zgw';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ConfigService","i1.ConfigService","i3.EnvironmentService","i4.DraftVersionService","i1.GlobalNotificationService","switchMap","map"],"mappings":"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"}
1
+ {"version":3,"file":"valtimo-shared.mjs","sources":["../../../../projects/valtimo/shared/src/lib/utils/router.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/url.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/global-notification.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/route-params.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/display-type.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/validate-bsn.utils.ts","../../../../projects/valtimo/shared/src/lib/utils/index.ts","../../../../projects/valtimo/shared/src/lib/services/base-api.service.ts","../../../../projects/valtimo/shared/src/lib/models/config.ts","../../../../projects/valtimo/shared/src/lib/models/email-notification-settings.model.ts","../../../../projects/valtimo/shared/src/lib/models/menu-item.model.ts","../../../../projects/valtimo/shared/src/lib/models/menu.config.ts","../../../../projects/valtimo/shared/src/lib/models/security.config.ts","../../../../projects/valtimo/shared/src/lib/models/extension.model.ts","../../../../projects/valtimo/shared/src/lib/models/http-loader.ts","../../../../projects/valtimo/shared/src/lib/models/roles.ts","../../../../projects/valtimo/shared/src/lib/models/user-management.model.ts","../../../../projects/valtimo/shared/src/lib/models/page.ts","../../../../projects/valtimo/shared/src/lib/models/search.model.ts","../../../../projects/valtimo/shared/src/lib/models/versions.model.ts","../../../../projects/valtimo/shared/src/lib/models/user-settings.model.ts","../../../../projects/valtimo/shared/src/lib/models/translation.model.ts","../../../../projects/valtimo/shared/src/lib/models/localization.model.ts","../../../../projects/valtimo/shared/src/lib/models/form-view-model.model.ts","../../../../projects/valtimo/shared/src/lib/models/window.model.ts","../../../../projects/valtimo/shared/src/lib/models/management.model.ts","../../../../projects/valtimo/shared/src/lib/models/tag-color.model.ts","../../../../projects/valtimo/shared/src/lib/models/global-configuration.model.ts","../../../../projects/valtimo/shared/src/lib/models/display-type.model.ts","../../../../projects/valtimo/shared/src/lib/models/modal.model.ts","../../../../projects/valtimo/shared/src/lib/models/condition.model.ts","../../../../projects/valtimo/shared/src/lib/models/index.ts","../../../../projects/valtimo/shared/src/lib/services/config.service.ts","../../../../projects/valtimo/shared/src/lib/services/global-notification.service.ts","../../../../projects/valtimo/shared/src/lib/services/localization.service.ts","../../../../projects/valtimo/shared/src/lib/services/menu-include.service.ts","../../../../projects/valtimo/shared/src/lib/services/user-settings.service.ts","../../../../projects/valtimo/shared/src/lib/constants/versions.ts","../../../../projects/valtimo/shared/src/lib/constants/case-management-tab-token.ts","../../../../projects/valtimo/shared/src/lib/constants/form-view-model-token.ts","../../../../projects/valtimo/shared/src/lib/constants/error.constants.ts","../../../../projects/valtimo/shared/src/lib/constants/case-configuration-extensions-token.ts","../../../../projects/valtimo/shared/src/lib/constants/iko.token.ts","../../../../projects/valtimo/shared/src/lib/constants/index.ts","../../../../projects/valtimo/shared/src/lib/services/environment.service.ts","../../../../projects/valtimo/shared/src/lib/services/draft-version.service.ts","../../../../projects/valtimo/shared/src/lib/services/edit-permissions.service.ts","../../../../projects/valtimo/shared/src/lib/services/index.ts","../../../../projects/valtimo/shared/src/lib/components/global-notification.component.ts","../../../../projects/valtimo/shared/src/lib/extension/extension.component.ts","../../../../projects/valtimo/shared/src/lib/extension/extension.component.html","../../../../projects/valtimo/shared/src/lib/config.module.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-translate.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-keycloak.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/mock-icon.service.ts","../../../../projects/valtimo/shared/src/lib/testing/services/index.ts","../../../../projects/valtimo/shared/src/lib/testing/index.ts","../../../../projects/valtimo/shared/src/lib/translation/custom-multi-translate-http-loader.ts","../../../../projects/valtimo/shared/src/lib/translation/custom-multi-translate-http-loader-factory.ts","../../../../projects/valtimo/shared/src/lib/translation/multi-translate-http-loader-factory.ts","../../../../projects/valtimo/shared/src/lib/translation/index.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/zgw-object-type-component-token.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/zgw-documenten-api-documents-component-token.ts","../../../../projects/valtimo/shared/src/lib/zgw/constants/index.ts","../../../../projects/valtimo/shared/src/lib/zgw/index.ts","../../../../projects/valtimo/shared/src/public-api.ts","../../../../projects/valtimo/shared/src/valtimo-shared.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ExtraOptions} from '@angular/router';\n\nclass RouterUtils {\n public static getRouterExtraOptions(): ExtraOptions {\n return {canceledNavigationResolution: 'computed'};\n }\n}\n\nexport {RouterUtils};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass UrlUtils {\n static formatUrlTrailingSlash(url: string, returnWithTrailingSlash: boolean): string {\n if (url && typeof url === 'string') {\n const urlLastCharacter = url[url.length - 1];\n const urlLastCharacterIsSlash = urlLastCharacter === '/';\n\n if (!returnWithTrailingSlash && urlLastCharacterIsSlash) {\n return url.slice(0, -1);\n } else if (returnWithTrailingSlash && !urlLastCharacterIsSlash) {\n return `${url}/`;\n }\n }\n\n return url;\n }\n\n static formatUrlStartWithSlash(url: string): string {\n if (url && typeof url === 'string' && url.length > 0 && url[0] !== '/') {\n return `/${url}`;\n }\n\n return `${url}`;\n }\n\n static getUrlHost(urlString: string): string {\n let url!: URL;\n\n try {\n url = new URL(urlString);\n } catch (_) {}\n\n return url ? url.host : '';\n }\n}\n\nexport {UrlUtils};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NotificationContent} from 'carbon-components-angular';\n\nexport const DEFAULT_NOTIFICATION_PARAMS = {\n duration: 4000,\n showClose: true,\n};\n\nexport const getNotificationObject = (content: NotificationContent): NotificationContent => ({\n ...DEFAULT_NOTIFICATION_PARAMS,\n ...content,\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CaseManagementParams, ManagementContext} from '../models';\nimport {ActivatedRoute} from '@angular/router';\nimport {combineLatest, distinctUntilChanged, filter, map, Observable, of, switchMap} from 'rxjs';\nimport {isEqual} from 'lodash';\n\nconst getCaseManagementRouteParams = (\n route: ActivatedRoute,\n doFilter = false\n): Observable<CaseManagementParams | undefined> => {\n const rootParams$ = route.params ? route.params : of({});\n const parentParams$ = route.parent?.params ? route.parent.params : of({});\n return combineLatest([rootParams$, parentParams$]).pipe(\n map(([rootParams, parentParams]) => {\n const caseDefinitionKey =\n rootParams['caseDefinitionKey'] || parentParams['caseDefinitionKey'];\n const caseDefinitionVersionTag =\n rootParams['caseDefinitionVersionTag'] || parentParams['caseDefinitionVersionTag'];\n if (caseDefinitionKey && caseDefinitionVersionTag) {\n return {caseDefinitionKey, caseDefinitionVersionTag};\n }\n return null;\n }),\n filter((params): params is CaseManagementParams => (doFilter ? params !== null : true)),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n};\n\nfunction getContextObservable(route: ActivatedRoute): Observable<ManagementContext | null> {\n return route.data.pipe(\n map(data => (data && (data['context'] as ManagementContext)) || null),\n distinctUntilChanged()\n );\n}\n\nfunction getCaseManagementRouteParamsAndContext(\n route: ActivatedRoute\n): Observable<[ManagementContext, CaseManagementParams]> {\n const params$ = getCaseManagementRouteParams(route, true);\n const context$ = getContextObservable(route);\n\n return context$.pipe(\n switchMap(context => {\n if (context === 'case') {\n return combineLatest([of(context), params$]) as Observable<\n [ManagementContext, CaseManagementParams]\n >;\n }\n\n const fallbackParams: CaseManagementParams = {\n caseDefinitionKey: '',\n caseDefinitionVersionTag: '',\n };\n return of([context, fallbackParams] as [ManagementContext, CaseManagementParams]);\n })\n );\n}\n\nexport {getCaseManagementRouteParams, getContextObservable, getCaseManagementRouteParamsAndContext};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeParameters} from '../models';\n\nconst getDisplayTypeParametersView = (displayTypeParameters: DisplayTypeParameters): string => {\n if (displayTypeParameters?.dateFormat) {\n return displayTypeParameters.dateFormat;\n } else if (displayTypeParameters?.tagAmount) {\n return displayTypeParameters.tagAmount.toString();\n } else if (displayTypeParameters?.enum) {\n return Object.keys(displayTypeParameters.enum).reduce((acc, curr) => {\n const keyValuePairString = `${curr}: ${displayTypeParameters.enum?.[curr]}`;\n if (!acc) {\n return `${keyValuePairString}`;\n }\n\n return `${acc}, ${keyValuePairString}`;\n }, '');\n }\n\n return '-';\n};\n\nexport {getDisplayTypeParametersView};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst validateBsn = (value: string): {isValid: boolean; errorKey: string | null} => {\n const baseKey = 'interface.dataValidation.bsnValidator';\n\n if (!value) {\n return {isValid: false, errorKey: `${baseKey}.valueEmpty`};\n }\n\n const trimmed = value.toString().trim();\n\n if (!/^\\d+$/.test(trimmed)) {\n return {isValid: false, errorKey: `${baseKey}.valueOnlyDigits`};\n }\n\n if (trimmed.length < 8 || trimmed.length > 9) {\n return {isValid: false, errorKey: `${baseKey}.valueMinLength`};\n }\n\n if (trimmed.length > 9) {\n return {isValid: false, errorKey: `${baseKey}.valueMaxLength`};\n }\n\n if (/^0+$/.test(trimmed) || /^9+$/.test(trimmed)) {\n return {isValid: false, errorKey: `${baseKey}.valueAllZerosOrNines`};\n }\n\n const digits = trimmed.split('').map(d => parseInt(d, 10));\n let sum = 0;\n const length = digits.length;\n\n for (let i = 0; i < length; i++) {\n const weight = i === length - 1 ? -1 : length - i;\n sum += digits[i] * weight;\n }\n\n if (sum % 11 !== 0) {\n return {isValid: false, errorKey: `${baseKey}.valueElfCheck`};\n }\n\n return {isValid: true, errorKey: null};\n};\n\nexport {validateBsn};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './router.utils';\nexport * from './url.utils';\nexport * from './global-notification.utils';\nexport * from './route-params.utils';\nexport * from './display-type.utils';\nexport * from './validate-bsn.utils';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {UrlUtils} from '../utils';\n\nexport abstract class BaseApiService {\n private readonly _valtimoEndpointUri!: string;\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n this._valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getApiUrl(urlPart: string): string {\n const urlWithStartSlash = UrlUtils.formatUrlStartWithSlash(urlPart);\n const urlFormattedWithTrailingSlash = `${UrlUtils.formatUrlTrailingSlash(this._valtimoEndpointUri, false)}${urlWithStartSlash}`;\n return urlFormattedWithTrailingSlash;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Injector} from '@angular/core';\nimport {Auth} from './security.config';\nimport {MenuConfig} from './menu.config';\nimport {CSPHeaderParams} from 'csp-header';\nimport {FormioOptions} from '@formio/angular';\n\nconst VALTIMO_CONFIG = new InjectionToken<ValtimoConfig>('valtimoConfig');\n\n// eslint-disable-next-line\nconst INITIALIZERS = new InjectionToken<(() => Function)[]>('initializers');\n\ndeclare type Direction = 'ASC' | 'DESC';\n\ninterface DefinitionColumn {\n propertyName: string;\n translationKey: string;\n sortable?: boolean;\n viewType?: string;\n default?: boolean | string;\n enum?: Array<string> | {[key: string]: string};\n title?: string;\n format?: string;\n key?: string;\n tagAmount?: number;\n}\n\ninterface CustomTaskList {\n fields: Array<DefinitionColumn>;\n defaultSortedColumn?: SortState;\n}\n\ninterface CustomLeftSidebar {\n defaultMenuWidth?: number;\n maxMenuWidth?: number;\n minMenuWidth?: number;\n}\n\ninterface Sort {\n name: string;\n direction: Direction;\n}\n\ninterface SortState {\n state: Sort;\n isSorting: boolean;\n}\n\ninterface OverrideFormioOptions extends FormioOptions {\n [key: string]: any;\n}\n\ninterface ValtimoConfigFeatureToggles {\n applicationTitleAsSuffix?: boolean;\n enableHackathonCasesPage?: boolean;\n showUserNameInTopBar?: boolean;\n showPlantATreeButton?: boolean;\n experimentalDmnEditing?: boolean;\n disableCaseCount?: boolean;\n caseListColumn?: boolean;\n enableObjectManagement?: boolean;\n largeLogoMargin?: boolean;\n sortFilesByDate?: boolean;\n returnToLastUrlAfterTokenExpiration?: boolean;\n enableTabManagement?: boolean;\n hideValtimoVersionsForNonAdmins?: boolean;\n useStartEventNameAsStartFormTitle?: boolean;\n allowUserThemeSwitching?: boolean;\n enableCompactModeToggle?: boolean;\n compactModeOnByDefault?: boolean;\n enableUserNameInTopBarToggle?: boolean;\n enableFormViewModel?: boolean;\n enableIntermediateSave?: boolean;\n enableTaskPanel?: boolean;\n enableFormFlowBreadcrumbs?: boolean;\n enablePbacDocumentenApiDocuments?: boolean;\n enableSuppressDocumentError?: boolean;\n enableIkoType?: boolean;\n}\n\ninterface ValtimoConfig {\n // eslint-disable-next-line\n logoSvgBase64?: string;\n darkModeLogoSvgBase64?: string;\n logoPngBase64?: string;\n darkModeLogoPngBase64?: string;\n applicationTitle?: string;\n /**@deprecated Initializers will be removed in the future. */\n initializers?: ((injector: Injector) => () => void)[];\n menu: MenuConfig;\n authentication: Auth;\n production: boolean;\n whitelistedDomains: string[];\n langKey?: Language;\n valtimoApi: {\n endpointUri: string;\n };\n changePasswordUrl?: {\n endpointUri: string;\n };\n swagger: {\n endpointUri: string;\n };\n mockApi: {\n endpointUri: string;\n };\n logger: any;\n definitions: any;\n openZaak: {\n catalogus: string;\n };\n uploadProvider: UploadProvider;\n caseFileSizeUploadLimitMB?: number;\n caseFileUploadAcceptedFiles?: string;\n supportedDocumentFileTypesToViewInBrowser?: string[];\n defaultDefinitionTable: Array<DefinitionColumn>;\n translationResources?: Array<string>;\n featureToggles?: ValtimoConfigFeatureToggles;\n visibleTaskListTabs?: Array<TaskListTab>;\n visibleCaseListTabs?: Array<CaseListTab>;\n customTaskList?: CustomTaskList;\n customLeftSidebar?: CustomLeftSidebar;\n caseObjectTypes?: {\n [definitionNameId: string]: Array<string>;\n };\n overrideFeedbackMenuItemToMailTo?: FeedbackMailTo;\n csp?: CSPHeaderParams;\n formioOptions?: OverrideFormioOptions;\n}\n\ninterface FeedbackMailTo {\n email?: string;\n subjectTranslationKey: string;\n bodyTranslationKey: string;\n}\n\nenum UploadProvider {\n S3,\n /**@deprecated This upload provider will be removed in the future. */\n OPEN_ZAAK,\n DOCUMENTEN_API,\n}\n\nenum TaskListTab {\n MINE = 'mine',\n OPEN = 'open',\n ALL = 'all',\n}\n\nenum CaseListTab {\n MINE = 'MINE',\n OPEN = 'OPEN',\n ALL = 'ALL',\n}\n\nenum Language {\n NL = 'nl',\n EN = 'en',\n}\n\nexport {\n VALTIMO_CONFIG,\n INITIALIZERS,\n Direction,\n DefinitionColumn,\n CustomTaskList,\n CustomLeftSidebar,\n Sort,\n SortState,\n OverrideFormioOptions,\n ValtimoConfigFeatureToggles,\n ValtimoConfig,\n FeedbackMailTo,\n UploadProvider,\n TaskListTab,\n CaseListTab,\n Language,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface EmailNotificationSettings {\n emailNotifications: boolean;\n taskNotifications: boolean;\n emailNotificationOnMonday: boolean;\n emailNotificationOnTuesday: boolean;\n emailNotificationOnWednesday: boolean;\n emailNotificationOnThursday: boolean;\n emailNotificationOnFriday: boolean;\n emailNotificationOnSaturday: boolean;\n emailNotificationOnSunday: boolean;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Observable} from 'rxjs';\n\nenum IncludeFunction {\n ObjectManagementEnabled,\n}\n\ninterface MenuItem {\n title: string;\n sequence: number;\n id?: string;\n link?: string[] | null;\n textClass?: string;\n iconClass?: string;\n children?: MenuItem[];\n roles?: string[];\n show?: boolean;\n count$?: Observable<number>;\n includeFunction?: IncludeFunction;\n}\n\nexport {MenuItem, IncludeFunction};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {MenuItem} from './menu-item.model';\n\nexport interface MenuConfig {\n menuItems: MenuItem[];\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {EmailNotificationSettings} from './email-notification-settings.model';\nimport {Injector} from '@angular/core';\n\nexport interface UserIdentity {\n email: string;\n firstName: string;\n lastName: string;\n roles: Array<string>;\n username?: string;\n id?: string;\n}\n\nexport class ValtimoUserIdentity implements UserIdentity {\n private readonly _email: string;\n private readonly _firstName: string;\n private readonly _lastName: string;\n private readonly _roles: string[];\n private readonly _username?: string;\n private readonly _id?: string;\n\n constructor(\n email: string,\n firstName: string,\n lastName: string,\n roles: Array<string>,\n username?: string,\n id?: string\n ) {\n this._email = email;\n this._firstName = firstName;\n this._lastName = lastName;\n this._roles = roles;\n this._username = username;\n this._id = id;\n }\n\n get email(): string {\n return this._email;\n }\n\n get firstName(): string {\n return this._firstName;\n }\n\n get lastName(): string {\n return this._lastName;\n }\n\n get roles(): string[] {\n return this._roles;\n }\n\n get username(): string | undefined {\n return this._username;\n }\n\n get id(): string | undefined {\n return this._id;\n }\n}\n\nexport interface UserService {\n getUserSubject(): ReplaySubject<UserIdentity>;\n\n logout(): void;\n\n getToken(): Promise<string>;\n\n updateToken?(minValidity: number): Promise<boolean>;\n}\n\nexport interface EmailNotificationService {\n getEmailNotificationSettings(): Observable<EmailNotificationSettings>;\n\n updateEmailNotificationSettings(\n settings: EmailNotificationSettings\n ): Observable<EmailNotificationSettings>;\n}\n\nexport interface AuthProviders {\n guardServiceProvider: any;\n userServiceProvider: any;\n}\n\nexport interface Auth {\n module: any;\n // eslint-disable-next-line\n initializer: (injector: Injector) => Function;\n authProviders: AuthProviders;\n options: any;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\n\nexport interface ExtensionPoint {\n module: string;\n page: string;\n section: string;\n component: any;\n}\n\nexport class ExtensionLoader {\n private readonly componentFactoryResolver: ComponentFactoryResolver = null;\n private componentRef: ComponentRef<any> = null;\n\n constructor(componentFactoryResolver: ComponentFactoryResolver) {\n this.componentFactoryResolver = componentFactoryResolver;\n }\n\n loadExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n extensionPoint.component\n );\n this.componentRef = viewContainerRef.createComponent(componentFactory);\n }\n\n loadAndClearExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n extensionPoint.component\n );\n viewContainerRef.clear();\n return (this.componentRef = viewContainerRef.createComponent(componentFactory));\n }\n}\n\nexport class Extension {\n public readonly _name: string;\n public readonly _extensionPoint: BasicExtensionPoint;\n\n constructor(name: string, extensionPoint: BasicExtensionPoint) {\n this._name = name;\n this._extensionPoint = extensionPoint;\n }\n\n get extensionPoint(): BasicExtensionPoint {\n return this._extensionPoint;\n }\n}\n\nexport class BasicExtensionPoint implements ExtensionPoint {\n private readonly _module: string;\n private readonly _page: string;\n private readonly _section: string;\n private readonly _component: any;\n\n constructor(module: string, page: string, section: string, component: any) {\n this._module = module;\n this._page = page;\n this._section = section;\n this._component = component;\n }\n\n supports(module: string, page: string, section: string): boolean {\n return this._module === module && this._page === page && this._section === section;\n }\n\n get module(): string {\n return this._module;\n }\n\n get page(): string {\n return this._page;\n }\n\n get section(): string {\n return this._section;\n }\n\n get component(): any {\n return this._component;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {HttpClient} from '@angular/common/http';\n\nexport function HttpLoaderFactory(httpClient: HttpClient) {\n return new TranslateHttpLoader(httpClient);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const ROLE_ADMIN = 'ROLE_ADMIN';\nexport const ROLE_USER = 'ROLE_USER';\nexport const ROLE_DEVELOPER = 'ROLE_DEVELOPER';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface User {\n id: string;\n fullName: string;\n firstName: string;\n lastName: string;\n email: string;\n roles: Array<string>;\n langKey: string;\n activated: boolean;\n emailVerified: boolean;\n verified: string;\n status: string;\n}\n\nexport interface NamedUser {\n id: string;\n email: string;\n firstName: string;\n lastName: string;\n label: string;\n userName: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface SortResult {\n sorted: boolean;\n unsorted: boolean;\n}\n\ninterface Pageable {\n sort: SortResult;\n pageSize: number;\n pageNumber: number;\n offset: number;\n unpaged: boolean;\n paged: boolean;\n}\n\ninterface Page<T> {\n content: Array<T>;\n pageable: Pageable;\n last: boolean;\n totalPages: number;\n totalElements: number;\n first: boolean;\n sort: SortResult;\n numberOfElements: number;\n size: number;\n number: number;\n [key: string]: any;\n}\n\nexport {SortResult, Pageable, Page};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SearchFieldDataType = 'text' | 'number' | 'date' | 'datetime' | 'boolean' | 'bsn';\n\ntype SearchFieldFieldType =\n | 'single'\n | 'multiple'\n | 'range'\n | 'single-select-dropdown'\n | 'multi-select-dropdown';\n\ntype SearchFieldMatchType = 'exact' | 'like';\n\ntype SearchFieldBoolean = 'booleanPositive' | 'booleanNegative';\n\ntype BooleanValueSingle = boolean;\n\ntype TextValueSingle = string;\ntype ValueMultiple = Array<\n BooleanValueSingle | TextValueSingle | NumberValueSingle | NumberValueRange\n>;\n\ntype NumberValueSingle = number;\n\ninterface NumberValueRange {\n start: NumberValueSingle;\n end: NumberValueSingle;\n}\n\ntype SearchFieldValue =\n | BooleanValueSingle\n | TextValueSingle\n | ValueMultiple\n | NumberValueSingle\n | NumberValueRange;\n\ninterface SearchField {\n ownerId?: string;\n title?: string;\n key: string;\n path?: string;\n order?: number;\n dataType: SearchFieldDataType;\n fieldType: SearchFieldFieldType;\n matchType?: SearchFieldMatchType;\n dropdownDataProvider?: string;\n uuid?: string;\n}\n\ninterface SearchFieldWithValue extends SearchField {\n value: SearchFieldValue;\n}\n\ninterface SearchFieldValues {\n [searchFieldKey: string]: SearchFieldValue;\n}\n\ninterface SearchFieldColumnView {\n title: string;\n key: string;\n path: string;\n dataType: string;\n fieldType: string;\n}\n\ntype SearchOperator = 'AND' | 'OR';\n\ntype AssigneeFilter = 'OPEN' | 'MINE' | 'ALL';\n\ninterface SearchFilter {\n key: string;\n values: Array<string>;\n multiValue?: boolean;\n}\n\ninterface SearchFilterRange {\n key: string;\n rangeFrom: string;\n rangeTo: string;\n}\n\nexport {\n SearchFieldDataType,\n SearchFieldFieldType,\n SearchFieldMatchType,\n SearchFieldBoolean,\n SearchField,\n SearchFieldValue,\n SearchFieldWithValue,\n SearchFieldValues,\n SearchFieldColumnView,\n SearchOperator,\n SearchFilter,\n SearchFilterRange,\n AssigneeFilter,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Versions {\n frontendLibraries: string;\n}\n\nexport {Versions};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface UserSettings {\n collapsibleWidescreenMenu?: boolean;\n languageCode?: string;\n compactMode?: boolean;\n showUserNameInTopBar?: boolean;\n preferredTheme?: string;\n}\n\nexport {UserSettings};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ITranslationResource {\n prefix: string;\n suffix?: string;\n optional?: boolean;\n}\n\nexport {ITranslationResource};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype LocalizationContent = object;\n\ninterface Localization {\n languageKey: string;\n content: LocalizationContent;\n}\n\ninterface MergedLocalizations {\n [languageKey: string]: LocalizationContent;\n}\n\nexport {Localization, LocalizationContent, MergedLocalizations};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\n\ninterface FormViewModel {\n component: Type<any>;\n}\n\nexport {FormViewModel};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {editor} from 'monaco-editor';\n\ntype MonacoEditor = typeof editor;\n\ninterface ValtimoWindow extends Window {\n monaco?: {\n editor?: MonacoEditor;\n };\n flags?: {\n formioValueResolverSelectorComponentRegistered: boolean;\n };\n}\n\nexport {ValtimoWindow};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ManagementContext = 'case' | 'independent';\n\nexport {ManagementContext};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum TagColor {\n WarmGray = 'WARMGRAY',\n Red = 'RED',\n Magenta = 'MAGENTA',\n Purple = 'PURPLE',\n Blue = 'BLUE',\n Cyan = 'CYAN',\n Teal = 'TEAL',\n Green = 'GREEN',\n Gray = 'GRAY',\n CoolGray = 'COOLGRAY',\n HighContrast = 'HIGHCONTRAST',\n Outline = 'OUTLINE',\n Orange = 'ORANGE',\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface GlobalConfiguration {\n canUpdateGlobalConfiguration: boolean;\n}\n\nexport {GlobalConfiguration};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface DisplayType {\n type: string;\n displayTypeParameters: DisplayTypeParameters;\n}\n\ninterface DisplayTypeParameters {\n enum?: {\n [key: string]: string;\n };\n dateFormat?: string;\n tagAmount?: number;\n}\n\nexport {DisplayTypeParameters, DisplayType};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ModalMode = 'add' | 'edit' | 'delete' | 'duplicate';\n\ntype ModalCloseEvent = 'close' | 'closeAndRefresh';\n\nexport {ModalMode, ModalCloseEvent};\n","enum Operator {\n NOT_EQUAL_TO = '!=',\n EQUAL_TO = '==',\n GREATER_THAN = '>',\n GREATER_THAN_OR_EQUAL_TO = '>=',\n LESS_THAN = '<',\n LESS_THAN_OR_EQUAL_TO = '<=',\n}\n\ninterface Condition {\n path: string;\n operator: string;\n value: string;\n}\n\nexport {Operator, Condition};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './config';\nexport * from './email-notification-settings.model';\nexport * from './menu-item.model';\nexport * from './menu.config';\nexport * from './security.config';\nexport * from './extension.model';\nexport * from './http-loader';\nexport * from './roles';\nexport * from './user-management.model';\nexport * from './page';\nexport * from './search.model';\nexport * from './versions.model';\nexport * from './user-settings.model';\nexport * from './translation.model';\nexport * from './localization.model';\nexport * from './form-view-model.model';\nexport * from './window.model';\nexport * from './management.model';\nexport * from './tag-color.model';\nexport * from './global-configuration.model';\nexport * from './case-management.model';\nexport * from './display-type.model';\nexport * from './modal.model';\nexport * from './condition.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, Inject, Injectable, ViewContainerRef} from '@angular/core';\nimport {\n Extension,\n ExtensionLoader,\n ExtensionPoint,\n VALTIMO_CONFIG,\n ValtimoConfig,\n ValtimoConfigFeatureToggles,\n} from '../models';\nimport {UrlUtils} from '../utils';\nimport {map, Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n private readonly extensionLoader: ExtensionLoader;\n private readonly extensions: Array<Extension> = [];\n private readonly DEFAULT_APPLICATION_TITLE = 'Valtimo';\n\n constructor(\n @Inject(VALTIMO_CONFIG) private valtimoConfig: ValtimoConfig,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {\n this.extensionLoader = new ExtensionLoader(componentFactoryResolver);\n }\n\n public get config(): ValtimoConfig {\n const config = this.valtimoConfig;\n const translationResourcesConfig = config.translationResources;\n\n return {\n ...config,\n initializers: config.initializers || [],\n whitelistedDomains: config.whitelistedDomains.map(domain =>\n UrlUtils.formatUrlTrailingSlash(domain, false)\n ),\n mockApi: {\n ...config.mockApi,\n endpointUri: UrlUtils.formatUrlTrailingSlash(config.mockApi.endpointUri, true),\n },\n swagger: {\n ...config.swagger,\n endpointUri: UrlUtils.formatUrlTrailingSlash(config.swagger.endpointUri, false),\n },\n valtimoApi: {\n ...config.valtimoApi,\n endpointUri: UrlUtils.formatUrlTrailingSlash(config.valtimoApi.endpointUri, true),\n },\n ...(translationResourcesConfig && {\n translationResources: translationResourcesConfig.map(resource =>\n UrlUtils.formatUrlTrailingSlash(resource, true)\n ),\n }),\n applicationTitle: config.applicationTitle || this.DEFAULT_APPLICATION_TITLE,\n };\n }\n\n public get featureToggles(): ValtimoConfig['featureToggles'] {\n return this.config.featureToggles;\n }\n\n public get config$(): Observable<ValtimoConfig> {\n return of(this.config);\n }\n\n public get featureToggles$(): Observable<ValtimoConfig['featureToggles']> {\n return of(this.config.featureToggles);\n }\n\n public get initializers() {\n return this.valtimoConfig?.initializers || [];\n }\n\n public addExtension(extension: Extension) {\n return this.extensions.push(extension);\n }\n\n public getSupportedExtensionPoint(module: string, page: string, section: string) {\n return this.extensions.find(extension =>\n extension.extensionPoint.supports(module, page, section)\n );\n }\n\n public getSupportedExtensionPoints(module: string, page: string, section: string) {\n return this.extensions.filter(extension =>\n extension.extensionPoint.supports(module, page, section)\n );\n }\n\n public loadExtensionPoint(viewContainerRef: ViewContainerRef, extensionPoint: ExtensionPoint) {\n this.extensionLoader.loadExtensionPoint(viewContainerRef, extensionPoint);\n }\n\n public loadAndReturnExtensionPoint(\n viewContainerRef: ViewContainerRef,\n extensionPoint: ExtensionPoint\n ) {\n return this.extensionLoader.loadAndClearExtensionPoint(viewContainerRef, extensionPoint);\n }\n\n public getFeatureToggleObservable(\n featureToggle: keyof ValtimoConfigFeatureToggles\n ): Observable<boolean> {\n return this.featureToggles$.pipe(\n map(featureToggles => !!(featureToggles && featureToggles[featureToggle]))\n );\n }\n\n public getFeatureToggle(featureToggle: keyof ValtimoConfigFeatureToggles): boolean {\n return !!(this.featureToggles && this.featureToggles[featureToggle]);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ComponentRef, EventEmitter, Injectable} from '@angular/core';\nimport {\n ActionableContent,\n ActionableNotification,\n Notification,\n NotificationContent,\n NotificationService,\n Toast,\n ToastContent,\n} from 'carbon-components-angular';\nimport {take} from 'rxjs';\nimport {getNotificationObject} from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalNotificationService {\n private _notificationService: NotificationService | null = null;\n private readonly _notificationQueue: (Notification & {id: string})[] = [];\n\n public setNotificationService(service: NotificationService): void {\n this._notificationService = service;\n }\n\n public getNotificationService(): NotificationService | null {\n return this._notificationService;\n }\n\n public showNotification(\n notificationObj: NotificationContent | ToastContent | ActionableContent,\n notificationComp: typeof Notification = Notification\n ): Notification | null {\n if (!this._notificationService) return null;\n\n return this.handleNotificationRef(\n this._notificationService?.showNotification(\n getNotificationObject(notificationObj),\n notificationComp\n )\n );\n }\n\n public showToast(\n notificationObj: NotificationContent | ToastContent,\n notificationComp: typeof Toast = Toast\n ): Notification | null {\n if (!this._notificationService) return null;\n\n return this.handleNotificationRef(\n this._notificationService?.showToast(getNotificationObject(notificationObj), notificationComp)\n );\n }\n\n public showActionable(\n notificationObj: ActionableContent,\n notificationComp: typeof ActionableNotification = ActionableNotification\n ): Notification | null {\n if (!this._notificationService) return null;\n\n return this.handleNotificationRef(\n this._notificationService?.showActionable(\n getNotificationObject(notificationObj),\n notificationComp\n )\n );\n }\n\n public close(notificationRef: any): void {\n notificationRef.close.emit();\n }\n\n public getSmartTimeout(notificationObj: any): number | null {\n if (!this._notificationService) return null;\n return this._notificationService?.getSmartTimeout(notificationObj);\n }\n\n public getNotificationRefs(): ComponentRef<any>[] | null {\n if (!this._notificationService) return null;\n return this._notificationService?.notificationRefs;\n }\n\n public getOnCloseEmitter(): EventEmitter<any> | null {\n if (!this._notificationService) return null;\n return this._notificationService?.onClose;\n }\n\n public ngOnDestroy(): void {\n this._notificationService?.ngOnDestroy();\n this._notificationQueue.splice(0, this._notificationQueue.length);\n }\n\n private handleNotificationRef(notificationRef: any): Notification | null {\n const notification = {\n ...notificationRef,\n id:\n notificationRef.toastID ??\n notificationRef.notificationID ??\n notificationRef.actionableNotificationID,\n };\n\n if (this._notificationQueue.length > 3) {\n this._notificationQueue.splice(0, 1);\n this.close(notificationRef);\n }\n\n this._notificationQueue.push(notification);\n setTimeout(() => this.removeNotificationInQueue(notification.id), 4000);\n\n notificationRef.close\n .pipe(take(1))\n .subscribe(() => this.removeNotificationInQueue(notification.id));\n\n return notificationRef;\n }\n\n private removeNotificationInQueue(id: string): void {\n const index = this._notificationQueue.findIndex(\n (notification: Notification & {id: string}) => notification.id === id\n );\n if (index === -1) return;\n\n this._notificationQueue.splice(index, 1);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Localization, LocalizationContent, MergedLocalizations} from '../models';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {map, Observable, of} from 'rxjs';\nimport {catchError} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocalizationService {\n private readonly valtimoApiUri!: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this.valtimoApiUri = configService?.config?.valtimoApi?.endpointUri;\n }\n\n public getLocalization(languageKey: string): Observable<LocalizationContent> {\n return this.http\n .get<LocalizationContent>(`${this.valtimoApiUri}v1/localization/${languageKey}`, {\n headers: new HttpHeaders().set('X-Skip-Interceptor', '403'),\n })\n .pipe(catchError(() => of({})));\n }\n\n public getLocalizations(): Observable<Localization[]> {\n return this.http.get<Localization[]>(`${this.valtimoApiUri}v1/localization`);\n }\n\n public getMergedLocalizations(): Observable<MergedLocalizations> {\n return this.getLocalizations().pipe(\n map(res => res.reduce((acc, curr) => ({...acc, [curr.languageKey]: curr.content}), {}))\n );\n }\n\n public updateLocalization(\n languageKey: string,\n updatedLocalizationContent: LocalizationContent\n ): Observable<LocalizationContent> {\n return this.http.put<LocalizationContent>(\n `${this.valtimoApiUri}management/v1/localization/${languageKey}`,\n updatedLocalizationContent\n );\n }\n\n public updateLocalizations(updatedLocalizations: Localization[]): Observable<Localization[]> {\n return this.http.put<Localization[]>(\n `${this.valtimoApiUri}management/v1/localization`,\n updatedLocalizations\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {IncludeFunction, ValtimoConfig} from '../models';\nimport {ConfigService} from './config.service';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuIncludeService {\n private valtimoConfig!: ValtimoConfig;\n\n constructor(private readonly configService: ConfigService) {\n this.valtimoConfig = this.configService.config;\n }\n\n getIncludeFunction(includeFunction: IncludeFunction): Observable<boolean> {\n switch (includeFunction) {\n case IncludeFunction.ObjectManagementEnabled:\n return of(!!this.valtimoConfig?.featureToggles?.enableObjectManagement || true);\n default:\n return of(true);\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {UserSettings} from '../models';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserSettingsService {\n private readonly valtimoApiUri!: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this.valtimoApiUri = configService?.config?.valtimoApi?.endpointUri;\n }\n\n getUserSettings(): Observable<UserSettings> {\n return this.http.get<UserSettings>(`${this.valtimoApiUri}v1/user/settings`);\n }\n\n saveUserSettings(settings: UserSettings): Observable<any> {\n return this.http.put(`${this.valtimoApiUri}v1/user/settings`, settings);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Versions} from '../models';\n\nconst VERSIONS: Versions = {\n frontendLibraries: '13.12.0',\n};\n\nexport {VERSIONS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CaseManagementTabConfig} from '../models';\n\nconst CASE_MANAGEMENT_TAB_TOKEN = new InjectionToken<CaseManagementTabConfig>(\n 'Specify a component to display per configured tab translation key.'\n);\n\nexport {CASE_MANAGEMENT_TAB_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {FormViewModel} from '../models';\n\nconst FORM_VIEW_MODEL_TOKEN = new InjectionToken<FormViewModel>(\n 'Specify the form view model component.'\n);\n\nexport {FORM_VIEW_MODEL_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpHeaders} from '@angular/common/http';\n\nconst InterceptorSkip = 'X-Skip-Interceptor';\nconst InterceptorSkipHeader = new HttpHeaders().set(InterceptorSkip, 'all');\n\nexport {InterceptorSkip, InterceptorSkipHeader};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst CASE_CONFIGURATION_EXTENSIONS_TOKEN = new InjectionToken<Type<any>[]>(\n 'Specify components to display on on the case management general page.'\n);\n\nexport {CASE_CONFIGURATION_EXTENSIONS_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\n\nconst IKO_TOKEN = new InjectionToken<boolean>('IKO is enabled when this token is provided');\n\nexport {IKO_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './versions';\nexport * from './case-management-tab-token';\nexport * from './form-view-model-token';\nexport * from './error.constants';\nexport * from './case-configuration-extensions-token';\nexport * from './iko.token';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable, of} from 'rxjs';\nimport {ConfigService} from './config.service';\nimport {BaseApiService} from './base-api.service';\nimport {GlobalConfiguration} from '../models';\nimport {catchError} from 'rxjs/operators';\nimport {InterceptorSkip} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnvironmentService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public canUpdateGlobalConfiguration(): Observable<boolean> {\n return this.httpClient\n .get<GlobalConfiguration>(this.getApiUrl('management/v1/case-definition/check'), {\n headers: new HttpHeaders().set(InterceptorSkip, '404'),\n })\n .pipe(\n map(response => response.canUpdateGlobalConfiguration),\n catchError(() => of(true))\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {map, Observable, of} from 'rxjs';\nimport {ConfigService} from './config.service';\nimport {BaseApiService} from './base-api.service';\nimport {InterceptorSkip} from '../constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DraftVersionService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public isDraftVersion(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<boolean> {\n if (!caseDefinitionKey || !caseDefinitionVersionTag) {\n return of(false);\n }\n\n return this.httpClient\n .get<any>(\n this.getApiUrl(\n `management/v1/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}`\n ),\n {\n headers: new HttpHeaders().set(InterceptorSkip, '403'),\n }\n )\n .pipe(map(caseDefinition => !caseDefinition.final));\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {BaseApiService} from './base-api.service';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from './config.service';\nimport {combineLatest, map, Observable, of} from 'rxjs';\nimport {EnvironmentService} from './environment.service';\nimport {DraftVersionService} from './draft-version.service';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditPermissionsService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService,\n public readonly environmentService: EnvironmentService,\n public readonly draftVersionService: DraftVersionService\n ) {\n super(httpClient, configService);\n }\n\n public hasEditPermissions(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string\n ): Observable<boolean> {\n return combineLatest([\n this.environmentService.canUpdateGlobalConfiguration(),\n this.draftVersionService.isDraftVersion(caseDefinitionKey, caseDefinitionVersionTag),\n ]).pipe(map(([canUpdate, isDraftVersion]) => canUpdate && isDraftVersion));\n }\n\n public hasPermissionsToEditBasedOnContext(\n caseDefinitionKey: string,\n caseDefinitionVersionTag: string,\n context: string\n ): Observable<boolean> {\n if (context === 'case') {\n return this.hasEditPermissions(caseDefinitionKey, caseDefinitionVersionTag);\n } else if (context === 'independent') {\n return this.environmentService.canUpdateGlobalConfiguration();\n }\n return of(false);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './base-api.service';\nexport * from './config.service';\nexport * from './global-notification.service';\nexport * from './localization.service';\nexport * from './menu-include.service';\nexport * from './user-settings.service';\nexport * from './environment.service';\nexport * from './draft-version.service';\nexport * from './edit-permissions.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, OnInit} from '@angular/core';\nimport {NotificationService} from 'carbon-components-angular';\nimport {GlobalNotificationService} from '../services';\n\n@Component({\n selector: 'valtimo-global-notification',\n template: ``,\n styles: `\n ::ng-deep.cds--toast-notification {\n width: 100%;\n }\n `,\n providers: [NotificationService],\n standalone: true,\n imports: [CommonModule],\n})\nexport class GlobalNotificationComponent implements OnInit {\n constructor(\n private readonly globalNotificationService: GlobalNotificationService,\n private readonly notificationService: NotificationService\n ) {}\n\n public ngOnInit(): void {\n this.globalNotificationService.setNotificationService(this.notificationService);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input, OnInit, ViewChild, ViewContainerRef} from '@angular/core';\nimport {ConfigService} from '../services/config.service';\nimport {Extension, ExtensionLoader, ExtensionPoint} from '../models';\n\n@Component({\n selector: 'valtimo-extension',\n templateUrl: './extension.component.html',\n styleUrls: ['./extension.component.css'],\n standalone: false,\n})\nexport class ExtensionComponent implements OnInit {\n public extensionLoader: ExtensionLoader = null;\n public selectedExtensionPoint: ExtensionPoint;\n public supportedExtensions: Array<Extension>;\n @Input() public module: string;\n @Input() public page: string;\n @Input() public section: string;\n @ViewChild('injectExtension', {read: ViewContainerRef, static: true})\n viewContainerRef: ViewContainerRef;\n\n constructor(private configService: ConfigService) {}\n\n ngOnInit() {\n this.configService\n .getSupportedExtensionPoints(this.module, this.page, this.section)\n .forEach(extension => {\n this.configService.loadExtensionPoint(this.viewContainerRef, extension.extensionPoint);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-template #injectExtension></ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {ConfigService} from './services/config.service';\nimport {VALTIMO_CONFIG, ValtimoConfig} from './models';\nimport {ExtensionComponent} from './extension/extension.component';\n\n@NgModule({\n declarations: [ExtensionComponent],\n imports: [],\n exports: [ExtensionComponent],\n})\nexport class ConfigModule {\n static forRoot(config: ValtimoConfig): ModuleWithProviders<ConfigModule> {\n return {\n ngModule: ConfigModule,\n providers: [\n ConfigService,\n {\n provide: VALTIMO_CONFIG,\n useValue: config,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MockTranslateService {\n public stream(key: string): Observable<any> {\n return of(null);\n }\n\n public instant(key: string): string {\n return '';\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport {KeycloakProfile} from 'keycloak-js';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MockKeycloakService {\n public get keycloakEvents$(): Observable<{type: string}> {\n return of({type: ''});\n }\n\n public isLoggedIn(): Observable<boolean> {\n return of(true);\n }\n\n private readonly MOCK_USER_PROFILE: KeycloakProfile = {\n id: '',\n username: '',\n email: '',\n firstName: '',\n lastName: '',\n enabled: true,\n emailVerified: true,\n totp: true,\n createdTimestamp: 0,\n };\n\n public async loadUserProfile(): Promise<KeycloakProfile> {\n return this.MOCK_USER_PROFILE;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MockIconService {\n public registerAll(value: Array<any>): void {\n return;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './mock-translate.service';\nexport * from './mock-keycloak.service';\nexport * from './mock-icon.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './services';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {catchError, map, switchMap} from 'rxjs/operators';\nimport {combineLatest, forkJoin, Observable, of} from 'rxjs';\nimport {deepmerge} from 'deepmerge-ts';\nimport {ITranslationResource} from '../models';\nimport {TranslateLoader} from '@ngx-translate/core';\nimport {LocalizationService} from '../services/localization.service';\n\nexport class CustomMultiTranslateHttpLoader implements TranslateLoader {\n private readonly _handler: HttpBackend;\n private readonly _httpClient: HttpClient;\n private readonly _resourcesPrefix: Array<string> | ITranslationResource[];\n private readonly _localizationService: LocalizationService;\n constructor(\n _handler: HttpBackend,\n _httpClient: HttpClient,\n _localizationService: LocalizationService,\n _resourcesPrefix: Array<string> | ITranslationResource[]\n ) {\n this._handler = _handler;\n this._httpClient = _httpClient;\n this._resourcesPrefix = _resourcesPrefix;\n this._localizationService = _localizationService;\n }\n getTranslation(lang: string): Observable<any> {\n const requests = this._resourcesPrefix.map(resource => {\n let path;\n if (resource.prefix) path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;\n else path = `${resource}${lang}.json`;\n return new HttpClient(this._handler).get(path).pipe(\n catchError(res => {\n if (!resource.optional) {\n console.group();\n console.error('Something went wrong for the following translation file:', path);\n console.error(res);\n console.groupEnd();\n }\n return of({});\n })\n );\n });\n\n return forkJoin(requests).pipe(\n switchMap(localResourcesResponse =>\n combineLatest([of(localResourcesResponse), this._localizationService.getLocalization(lang)])\n ),\n map(([localResourcesResponse, localizationResponse]) =>\n deepmerge(...[...localResourcesResponse, localizationResponse])\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend, HttpClient} from '@angular/common/http';\nimport {ConfigService} from '../services/config.service';\nimport {CustomMultiTranslateHttpLoader} from './custom-multi-translate-http-loader';\nimport {LocalizationService} from '../services/localization.service';\n\nexport function CustomMultiTranslateHttpLoaderFactory(\n http: HttpBackend,\n httpClient: HttpClient,\n configService: ConfigService,\n localizationService: LocalizationService\n) {\n const translationResources = configService?.config?.translationResources;\n\n return new CustomMultiTranslateHttpLoader(http, httpClient, localizationService, [\n './valtimo-translation/core/',\n ...(translationResources &&\n Array.isArray(translationResources) &&\n translationResources.length > 0\n ? translationResources\n : []),\n ]);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpBackend} from '@angular/common/http';\nimport {MultiTranslateHttpLoader} from 'ngx-translate-multi-http-loader';\nimport {ConfigService} from '../services/config.service';\n\nexport function MultiTranslateHttpLoaderFactory(http: HttpBackend, configService: ConfigService) {\n const translationResources = configService.config.translationResources;\n\n return new MultiTranslateHttpLoader(http, [\n './valtimo-translation/core/',\n ...(translationResources &&\n Array.isArray(translationResources) &&\n translationResources.length > 0\n ? translationResources\n : []),\n ]);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './custom-multi-translate-http-loader';\nexport * from './custom-multi-translate-http-loader-factory';\nexport * from './multi-translate-http-loader-factory';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst ZGW_OBJECT_TYPE_COMPONENT_TOKEN = new InjectionToken<Type<any>>(\n 'Specify a component to display ZGW object types.'\n);\n\nexport {ZGW_OBJECT_TYPE_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken, Type} from '@angular/core';\n\nconst ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN = new InjectionToken<Type<any>>(\n 'Specify a component to display on documents tab when Documenten API is set as the upload provider in the environment file.'\n);\n\nexport {ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './zgw-object-type-component-token';\nexport * from './zgw-documenten-api-documents-component-token';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './constants';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of shared\n */\n\nexport * from './lib/components/global-notification.component';\nexport * from './lib/config.module';\nexport * from './lib/constants';\nexport * from './lib/extension/extension.component';\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/testing';\nexport * from './lib/translation';\nexport * from './lib/utils';\nexport * from './lib/zgw';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ConfigService","i1.ConfigService","i3.EnvironmentService","i4.DraftVersionService","i1.GlobalNotificationService","switchMap","map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@valtimo/shared",
3
3
  "license": "EUPL-1.2",
4
- "version": "13.10.0",
4
+ "version": "13.12.0",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^19.2.8",
7
7
  "@angular/core": "^19.2.8"