@gov-cy/govcy-frontend-renderer 1.28.1 → 1.30.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.
package/README.md CHANGED
@@ -81,62 +81,14 @@ const inputData =
81
81
  ],
82
82
  "footerIcons": [
83
83
  {
84
- "src": {
85
- "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg",
86
- "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg"
87
- },
88
- "alt": {
89
- "en": "Service Standard Verified seal",
90
- "el": "Σφραγίδα Πιστοποίησης Υπηρεσίας"
91
- },
92
- "href": {
93
- "en": "https://dsf.dmrid.gov.cy/2022/11/15/update-my-details/",
94
- "el": "https://dsf.dmrid.gov.cy/2022/11/15/update-my-details/"
95
- },
96
- "style": {
97
- "en": "content: url(https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg) !important;aspect-ratio: auto;height: 53px !important;",
98
- "el": "content: url(https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg) !important;aspect-ratio: auto;height: 53px !important;"
99
- },
100
- "target": "_blank",
101
- "classes": "govcy-mr-3"
84
+ "preset": "dsf-badge",
85
+ "badgeId": "DSF-water-aerators"
102
86
  },
103
87
  {
104
- "src": {
105
- "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/FundedbyEU_NextGeneration_H53-EN.png",
106
- "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/FundedbyEU_NextGeneration_H53-EL.png"
107
- },
108
- "alt": {
109
- "en": "Funded by the EU Next Generation EU",
110
- "el": "Χρηματοδοτείται από την ΕΕ Next Generation EU"
111
- },
112
- "href": {
113
- "en": "https://europa.eu/",
114
- "el": "https://europa.eu/"
115
- },
116
- "title": {
117
- "en": "Go to EU website",
118
- "el": "Μετάβαση στην ιστοσελίδα της ΕΕ"
119
- },
120
- "target": "_blank"
88
+ "preset": "eu-next-generation"
121
89
  },
122
90
  {
123
- "src": {
124
- "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/CYpros%20to%20aurio%20logo%20eng_H53_EN.png",
125
- "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/CYpros%20to%20aurio%20logo%20eng_H53_EL.png"
126
- },
127
- "alt": {
128
- "en": "Cyprus tomorrow, recovery and resilience plan",
129
- "el": "Κύπρος το Αύριο, σχέδιο ανάκαμψης και ανθεντικότητας"
130
- },
131
- "href": {
132
- "en": "http://www.cyprus-tomorrow.gov.cy/",
133
- "el": "http://www.cyprus-tomorrow.gov.cy/"
134
- },
135
- "title": {
136
- "en": "Go to Cyprus Tomorrow website",
137
- "el": "Μετάβαση στην ιστοσελίδα Κύπρος το Αύριο"
138
- },
139
- "target": "_blank"
91
+ "preset": "cyprus-tomorrow"
140
92
  }
141
93
  ],
142
94
  "copyrightText" : {"en":"Republic of Cyprus, 2025", "el":"Κυπριακή Δημοκρατία, 2025"},
@@ -169,10 +121,11 @@ const inputData =
169
121
  "description" : {"en":"Service description", "el":"Περιγραφή υπηρεσίας"},
170
122
  "url" : "https://gov.cy",
171
123
  "manifest": "/manifest.json",
172
- "matomo": {
173
- "url": "//wp.matomo.dits.dmrid.gov.cy/",
174
- "siteId": "1234"
175
- },
124
+ "matomo": {
125
+ "url": "//wp.matomo.dits.dmrid.gov.cy/",
126
+ "siteId": "1234",
127
+ "userId": "already-hashed-stable-id"
128
+ },
176
129
  "cdn" : {
177
130
  "dist" : "https://cdn.jsdelivr.net/gh/gov-cy/govcy-design-system@3.0.0/dist",
178
131
  "cssIntegrity" : "sha384-1zLHWOtnS0hOIz5mVEPZp0UH5gUE6eo0CQcCGA3sF2TyYhHyKOd3Ni8Iy/NjEASU",
@@ -259,62 +212,14 @@ const inputData =
259
212
  ],
260
213
  "footerIcons": [
261
214
  {
262
- "src": {
263
- "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg",
264
- "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg"
265
- },
266
- "alt": {
267
- "en": "Service Standard Verified seal",
268
- "el": "Σφραγίδα Πιστοποίησης Υπηρεσίας"
269
- },
270
- "href": {
271
- "en": "https://dsf.dmrid.gov.cy/2022/11/15/update-my-details/",
272
- "el": "https://dsf.dmrid.gov.cy/2022/11/15/update-my-details/"
273
- },
274
- "style": {
275
- "en": "content: url(https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg) !important;aspect-ratio: auto;height: 53px !important;",
276
- "el": "content: url(https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/seals/ssv-certificate-verification-info.svg) !important;aspect-ratio: auto;height: 53px !important;"
277
- },
278
- "target": "_blank",
279
- "classes": "govcy-mr-3"
215
+ "preset": "dsf-badge",
216
+ "badgeId": "DSF-water-aerators"
280
217
  },
281
218
  {
282
- "src": {
283
- "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/FundedbyEU_NextGeneration_H53-EN.png",
284
- "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/FundedbyEU_NextGeneration_H53-EL.png"
285
- },
286
- "alt": {
287
- "en": "Funded by the EU Next Generation EU",
288
- "el": "Χρηματοδοτείται από την ΕΕ Next Generation EU"
289
- },
290
- "href": {
291
- "en": "https://europa.eu/",
292
- "el": "https://europa.eu/"
293
- },
294
- "title": {
295
- "en": "Go to EU website",
296
- "el": "Μετάβαση στην ιστοσελίδα της ΕΕ"
297
- },
298
- "target": "_blank"
219
+ "preset": "eu-next-generation"
299
220
  },
300
221
  {
301
- "src": {
302
- "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/CYpros%20to%20aurio%20logo%20eng_H53_EN.png",
303
- "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/CYpros%20to%20aurio%20logo%20eng_H53_EL.png"
304
- },
305
- "alt": {
306
- "en": "Cyprus tomorrow, recovery and resilience plan",
307
- "el": "Κύπρος το Αύριο, σχέδιο ανάκαμψης και ανθεντικότητας"
308
- },
309
- "href": {
310
- "en": "http://www.cyprus-tomorrow.gov.cy/",
311
- "el": "http://www.cyprus-tomorrow.gov.cy/"
312
- },
313
- "title": {
314
- "en": "Go to Cyprus Tomorrow website",
315
- "el": "Μετάβαση στην ιστοσελίδα Κύπρος το Αύριο"
316
- },
317
- "target": "_blank"
222
+ "preset": "cyprus-tomorrow"
318
223
  }
319
224
  ],
320
225
  "copyrightText" : {"en":"Republic of Cyprus, 2025", "el":"Κυπριακή Δημοκρατία, 2025"},
@@ -347,10 +252,11 @@ const inputData =
347
252
  "description" : {"en":"Service description", "el":"Περιγραφή υπηρεσίας"},
348
253
  "url" : "https://gov.cy",
349
254
  "manifest": "manifest.json",
350
- "matomo": {
351
- "url": "//wp.matomo.dits.dmrid.gov.cy/",
352
- "siteId": "1234"
353
- },
255
+ "matomo": {
256
+ "url": "//wp.matomo.dits.dmrid.gov.cy/",
257
+ "siteId": "1234",
258
+ "userId": "already-hashed-stable-id"
259
+ },
354
260
  "cdn" : {
355
261
  "dist" : "https://cdn.jsdelivr.net/gh/gov-cy/govcy-design-system@3.0.0/dist",
356
262
  "cssIntegrity" : "sha384-1zLHWOtnS0hOIz5mVEPZp0UH5gUE6eo0CQcCGA3sF2TyYhHyKOd3Ni8Iy/NjEASU",
@@ -483,7 +389,47 @@ The `inputData` object has the following structure:
483
389
  - **site.lang**: the language of the site. It is used both in the `<html lang` attribute and to define the default language to be used by the individual design elements defined in the template.
484
390
  - **site.languages**: the languages in the language menu.
485
391
  - **site.footerLinks**: the links of the footer.
486
- - **site.footerIcons**: the icons with links of the footer.
392
+ - **site.footerIcons**: the icons with links of the footer. It supports custom image link objects with `src`, `alt` and `href`, or predefined presets:
393
+
394
+ ```json
395
+ "footerIcons": [
396
+ {
397
+ "preset": "dsf-badge",
398
+ "badgeId": "DSF-water-aerators"
399
+ },
400
+ {
401
+ "preset": "eu-next-generation"
402
+ },
403
+ {
404
+ "preset": "cyprus-tomorrow"
405
+ },
406
+ {
407
+ "src": {
408
+ "en": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/dsf-components.png",
409
+ "el": "https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/dsf-components.png"
410
+ },
411
+ "alt": {
412
+ "en": "DSF components",
413
+ "el": "DSF components"
414
+ },
415
+ "href": {
416
+ "en": "https://gov-cy.github.io/govcy-design-system-docs/",
417
+ "el": "https://gov-cy.github.io/govcy-design-system-docs/"
418
+ },
419
+ "title": {
420
+ "en": "Go to the Unified Design System website",
421
+ "el": "Go to the Unified Design System website"
422
+ },
423
+ "style": {
424
+ "en": "content: url(https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/dsf-components.png) !important;aspect-ratio: auto;height: 53px !important;",
425
+ "el": "content: url(https://cdn.jsdelivr.net/gh/gov-cy/govdesign@main/dsf-components.png) !important;aspect-ratio: auto;height: 53px !important;"
426
+ },
427
+ "target": "_blank",
428
+ "classes": "govcy-mr-3"
429
+ }
430
+ ]
431
+ ```
432
+
487
433
  - **site.copyrightText**: the text of the copyright in the footer, including the year.
488
434
  - **site.menu**: the menu label (optional).
489
435
  - **site.navigation**: the header navigation structure (optional). See [Navigation explained](#navigation-explained).
@@ -492,7 +438,7 @@ The `inputData` object has the following structure:
492
438
  - **site.description**: the description of the site. It is used in the `<meta name="description"`, `<meta property="og:description"` and `<meta property="twitter:description"` tags of the head.
493
439
  - **site.url**: the URL of the site. It is used in the `<meta property="og:url"` and `<meta property="twitter:url"` tags of the head.
494
440
  - **site.manifest**: the manifest of the site. It is used to add the manifest location to the page.
495
- - **site.matomo**: the matomo data. It is used to add the Matomo code to the page. If you don't want to use Matomo tracking, you can remove this value. Use `site.matomo.url` to define the URL of the Matomo server and `site.matomo.siteId` to define the site ID to be tracked.
441
+ - **site.matomo**: the matomo data. It is used to add the Matomo code to the page. If you don't want to use Matomo tracking, you can remove this value. Use `site.matomo.url` to define the URL of the Matomo server and `site.matomo.siteId` to define the site ID to be tracked. Use `site.matomo.userId` only for authenticated users, when the consuming application can provide a stable unique identifier that has already been pseudonymized, for example a SHA-256/base64 or HMAC-SHA256 value based on an internal ID. Do not pass personally identifiable information such as email, full name or username. If the user is not authenticated, omit `site.matomo.userId`.
496
442
  - **site.cdn.dist**: the CDN of the site. It is used to define the URL of the CDN used for the CSS and JS files. If you need to change the version of the CDN, you can do it by changing this value (in this case you will need to change the `site.cdn.cssIntegrity` and `site.cdn.jsIntegrity` values as well)
497
443
  - **site.cdn.cssIntegrity**: the integrity of the CSS file. It is used to define the integrity of the CSS file. If you need to change the version of the CDN, you will need to change this value. https://www.srihash.org/ can help you generate the integrity value.
498
444
  - **site.cdn.jsIntegrity**: the integrity of the JS file. It is used to define the integrity of the JS file. If you need to change the version of the CDN, you will need to change this value. https://www.srihash.org/ can help you generate the integrity value.
@@ -769,4 +715,4 @@ The package is released under the [MIT License](https://opensource.org/licenses/
769
715
 
770
716
  ## Contact
771
717
 
772
- If you have any questions or feedback, please feel free to reach out to us at [dsf-admin@dits.dmrid.gov.cy](mailto:dsf-admin@dits.dmrid.gov.cy)
718
+ If you have any questions or feedback, please feel free to reach out to us at [dsf-admin@dits.dmrid.gov.cy](mailto:dsf-admin@dits.dmrid.gov.cy)
@@ -167,7 +167,7 @@ frame.set("key", l_key);
167
167
  frame.set("lang", l_lang);
168
168
  frame.set("isHTML", l_isHTML);
169
169
  var t_22 = "";var t_23;
170
- t_23 = {"empty_text": {"en": "","el": ""},"backLink_back": {"el": "Πίσω","en": "Back"},"common_or": {"el": "Ή","en": "Or"},"common_and": {"el": "Και","en": "And"},"common_entry": {"en": "Entry","el": "Καταχώρηση"},"common_entries": {"en": "Entries","el": "Καταχωρήσεις"},"dateInput_dayLabel": {"el": "Μέρα","en": "Day"},"dateInput_monthLabel": {"el": "Μήνας","en": "Month"},"dateInput_yearLabel": {"el": "Χρόνος","en": "Year"},"dateInput_monthValue1": {"en": "January","el": "Ιανουάριος"},"dateInput_monthValue2": {"en": "February","el": "Φεβρουάριος"},"dateInput_monthValue3": {"en": "March","el": "Μάρτιος"},"dateInput_monthValue4": {"en": "April","el": "Απρίλιος"},"dateInput_monthValue5": {"en": "May","el": "Μάϊος"},"dateInput_monthValue6": {"en": "June","el": "Ιούνιος"},"dateInput_monthValue7": {"en": "July","el": "Ιούλιος"},"dateInput_monthValue8": {"en": "August","el": "Αύγουστος"},"dateInput_monthValue9": {"en": "September","el": "Σεπτέμβριος"},"dateInput_monthValue10": {"en": "October","el": "Οκτώβριος"},"dateInput_monthValue11": {"en": "November","el": "Νοέμβριος"},"dateInput_monthValue12": {"en": "December","el": "Δεκέμβριος"},"errorMessage_hiddenError": {"en": "Error","el": "Σφάλμα"},"errorSummary_header": {"en": "There is a problem","el": "Υπάρχει πρόβλημα"},"header_menu": {"en": "Menu","el": "Μενού"},"header_mainMenuAria": {"en": "Main menu","el": "Κύριο μενού"},"fileView_view": {"en": "View","el": "Προβολή"},"fileView_delete": {"en": "Delete","el": "Διαγραφή"},"progressList_completedLabel": {"en": "Completed","el": "Ολοκληρώθηκε"},"progressList_notCompletedLabel": {"en": "Not completed","el": "Δεν ολοκληρώθηκε"},"progressList_stepLabel": {"en": "Step","el": "Βήμα"},"progressList_ofLabel": {"en": "of","el": "από"},"radios_conditionalLabel": {"en": "This option expands and has more questions,","el": "Αυτή η επιλογή επεκτείνεται και έχει περισσότερες ερωτήσεις,"},"stepByStepStatic_step": {"en": "Step","el": "Βήμα"},"share_share": {"en": "Share","el": "Share (κοινή χρήση)"},"share_sms": {"en": "SMS","el": "SMS"},"share_email": {"en": "Email","el": "Email"},"share_preview": {"en": "Notification content","el": "Περιεχόμενο ειδοποίησης"},"share_copy": {"en": "Copy","el": "Αντιγραφή"},"share_copySuccess": {"en": "Copied","el": "Αντιγράφηκε"},"taskList_withStatus": {"en": "with status ","el": "με κατάσταση "},"textArea_charRemaining": {"en": "You have <span></span> characters remaining","el": "Έχετε <span></span> χαρακτήρες που απομένουν"},"textArea_charExceeding": {"en": "You have entered <span></span> characters more","el": "Έχετε περάσει <span></span> χαρακτήρες περισσότερους"},"textArea_wordRemaining": {"en": "You have <span></span> words remaining","el": "Έχετε <span></span> λέξεις που απομένουν"},"textArea_wordsExceeding": {"en": "You have entered <span></span> words more","el": "Έχετε περάσει <span></span> λέξεις περισσότερες"},"userName_signOut": {"en": "Sign out","el": "Αποσύνδεση"},"userName_fromUser": {"en": "from user","el": "από το χρήστη"},"warning": {"en": "Warning","el": "Προσοχή"}};
170
+ t_23 = {"empty_text": {"en": "","el": ""},"backLink_back": {"el": "Πίσω","en": "Back"},"common_or": {"el": "Ή","en": "Or"},"common_and": {"el": "Και","en": "And"},"common_entry": {"en": "Entry","el": "Καταχώρηση"},"common_entries": {"en": "Entries","el": "Καταχωρήσεις"},"dateInput_dayLabel": {"el": "Μέρα","en": "Day"},"dateInput_monthLabel": {"el": "Μήνας","en": "Month"},"dateInput_yearLabel": {"el": "Χρόνος","en": "Year"},"dateInput_monthValue1": {"en": "January","el": "Ιανουάριος"},"dateInput_monthValue2": {"en": "February","el": "Φεβρουάριος"},"dateInput_monthValue3": {"en": "March","el": "Μάρτιος"},"dateInput_monthValue4": {"en": "April","el": "Απρίλιος"},"dateInput_monthValue5": {"en": "May","el": "Μάϊος"},"dateInput_monthValue6": {"en": "June","el": "Ιούνιος"},"dateInput_monthValue7": {"en": "July","el": "Ιούλιος"},"dateInput_monthValue8": {"en": "August","el": "Αύγουστος"},"dateInput_monthValue9": {"en": "September","el": "Σεπτέμβριος"},"dateInput_monthValue10": {"en": "October","el": "Οκτώβριος"},"dateInput_monthValue11": {"en": "November","el": "Νοέμβριος"},"dateInput_monthValue12": {"en": "December","el": "Δεκέμβριος"},"errorMessage_hiddenError": {"en": "Error","el": "Σφάλμα"},"errorSummary_header": {"en": "There is a problem","el": "Υπάρχει πρόβλημα"},"footerIcon_cyprusTomorrow_alt": {"en": "Cyprus tomorrow, recovery and resilience plan","el": "Κύπρος το Αύριο, σχέδιο ανάκαμψης και ανθεκτικότητας"},"footerIcon_cyprusTomorrow_title": {"en": "Go to Cyprus Tomorrow website","el": "Μετάβαση στην ιστοσελίδα Κύπρος το Αύριο"},"footerIcon_euNextGeneration_alt": {"en": "Funded by the EU Next Generation EU","el": "Χρηματοδοτείται από την ΕΕ Next Generation EU"},"footerIcon_euNextGeneration_title": {"en": "Go to EU website","el": "Μετάβαση στην ιστοσελίδα της ΕΕ"},"header_menu": {"en": "Menu","el": "Μενού"},"header_mainMenuAria": {"en": "Main menu","el": "Κύριο μενού"},"fileView_view": {"en": "View","el": "Προβολή"},"fileView_delete": {"en": "Delete","el": "Διαγραφή"},"progressList_completedLabel": {"en": "Completed","el": "Ολοκληρώθηκε"},"progressList_notCompletedLabel": {"en": "Not completed","el": "Δεν ολοκληρώθηκε"},"progressList_stepLabel": {"en": "Step","el": "Βήμα"},"progressList_ofLabel": {"en": "of","el": "από"},"radios_conditionalLabel": {"en": "This option expands and has more questions,","el": "Αυτή η επιλογή επεκτείνεται και έχει περισσότερες ερωτήσεις,"},"stepByStepStatic_step": {"en": "Step","el": "Βήμα"},"share_share": {"en": "Share","el": "Share (κοινή χρήση)"},"share_sms": {"en": "SMS","el": "SMS"},"share_email": {"en": "Email","el": "Email"},"share_preview": {"en": "Notification content","el": "Περιεχόμενο ειδοποίησης"},"share_copy": {"en": "Copy","el": "Αντιγραφή"},"share_copySuccess": {"en": "Copied","el": "Αντιγράφηκε"},"taskList_withStatus": {"en": "with status ","el": "με κατάσταση "},"textArea_charRemaining": {"en": "You have <span></span> characters remaining","el": "Έχετε <span></span> χαρακτήρες που απομένουν"},"textArea_charExceeding": {"en": "You have entered <span></span> characters more","el": "Έχετε περάσει <span></span> χαρακτήρες περισσότερους"},"textArea_wordRemaining": {"en": "You have <span></span> words remaining","el": "Έχετε <span></span> λέξεις που απομένουν"},"textArea_wordsExceeding": {"en": "You have entered <span></span> words more","el": "Έχετε περάσει <span></span> λέξεις περισσότερες"},"userName_signOut": {"en": "Sign out","el": "Αποσύνδεση"},"userName_fromUser": {"en": "from user","el": "από το χρήστη"},"warning": {"en": "Warning","el": "Προσοχή"}};
171
171
  frame.set("govcyContent", t_23, true);
172
172
  if(frame.topLevel) {
173
173
  context.setVariable("govcyContent", t_23);