@adminiumjs/app-clinic 1.0.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.
Files changed (36) hide show
  1. package/customer/assets/App-DdIi94eM.js +1 -0
  2. package/customer/assets/embed-D9WnNWH8.js +1 -0
  3. package/customer/assets/icons-D7ArAIOl.js +1 -0
  4. package/customer/assets/index-CQI0fglh.css +1 -0
  5. package/customer/assets/index-re5HI07A.js +2 -0
  6. package/customer/assets/react-Ck9fDrdd.js +9 -0
  7. package/customer/assets/store-D7cmlyqr.js +1 -0
  8. package/customer/assets/surface-nav-6BkCPZCf.js +1 -0
  9. package/customer/assets/urlSync-DEafH1yc.js +1 -0
  10. package/customer/favicon.svg +18 -0
  11. package/customer/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  12. package/customer/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  13. package/customer/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  14. package/customer/fonts/manrope-latin-wght-normal.woff2 +0 -0
  15. package/customer/index.html +20 -0
  16. package/customer/surface.json +45 -0
  17. package/manifest.json +501 -0
  18. package/package.json +11 -0
  19. package/staff/assets/App-ijJtS1to.js +1 -0
  20. package/staff/assets/calendar-B59f3S_A.js +1 -0
  21. package/staff/assets/embed-D9WnNWH8.js +1 -0
  22. package/staff/assets/icons-BU1Aax3i.js +1 -0
  23. package/staff/assets/index-CqPaHjl7.js +8 -0
  24. package/staff/assets/index-DXzmd8KH.css +1 -0
  25. package/staff/assets/react-3MWIyadV.js +9 -0
  26. package/staff/assets/registry-EirlpZlW.js +1 -0
  27. package/staff/assets/store-D_4Keuh8.js +1 -0
  28. package/staff/assets/surface-nav-6BkCPZCf.js +1 -0
  29. package/staff/assets/urlSync-DqVGf0-x.js +1 -0
  30. package/staff/favicon.svg +18 -0
  31. package/staff/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  32. package/staff/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  33. package/staff/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  34. package/staff/fonts/manrope-latin-wght-normal.woff2 +0 -0
  35. package/staff/index.html +20 -0
  36. package/staff/surface.json +107 -0
@@ -0,0 +1 @@
1
+ import{a as u}from"./icons-BU1Aax3i.js";import{j as e,r as P}from"./index-CqPaHjl7.js";import{r as U,Y as H,D as p,e as G,f as V,a as Z,A as $,M as T,w as Y,b as _,c as Q}from"./calendar-B59f3S_A.js";import"./react-3MWIyadV.js";const k={"en-US":{"addon.holiday-calendars.line":"Checked public-holiday day-sets for a handful of countries, carried inside the add-on. Choose a country and a year, look at the days, and import them.","addon.holiday-calendars.what":"This gives the business a checked list of public holidays for the countries it works in, so leave balances and closed days come off one calendar instead of somebody typing dates in twice a year. Nothing is fetched from anywhere: the day-sets are data inside the add-on.","addon.holiday-calendars.disconnect.goes":"The country picker and the import button go, and so does the panel they sit in.","addon.holiday-calendars.disconnect.stays":"Every day already imported stays exactly where it is, and so does every day written in here by hand. The list belongs to the business; this add-on only helps fill it.","addon.holiday-calendars.noCompany":"Holiday Calendars connects to no outside company. It needs no account anywhere, it calls nothing, and every day it knows about is already in the add-on.","addon.holiday-calendars.act.1":"{when} · a year of holidays imported","addon.holiday-calendars.act.2":"{when} · a day of the business's own written in","addon.holiday-calendars.setting.days":"Days the business is closed","addon.holiday-calendars.setting.daysHint":"Edited in this add-on's own panel below, where the days can be looked at before they are taken.","addon.holiday-calendars.area.us":"United States","addon.holiday-calendars.area.de":"Germany","addon.holiday-calendars.area.fr":"France","addon.holiday-calendars.area.fr-alsace-moselle":"France — Alsace-Moselle","addon.holiday-calendars.area.cz":"Czechia","addon.holiday-calendars.area.dk":"Denmark","addon.holiday-calendars.area.cn":"China","addon.holiday-calendars.area.tw":"Taiwan","addon.holiday-calendars.area.eg":"Egypt","addon.holiday-calendars.note.us":"The eleven federal holidays. Individual states add their own, and many employers close on days that are not on this list.","addon.holiday-calendars.note.de":"The nine days that are holidays in every German state. Ten of the sixteen states add more, several of them differing from one town to the next, and none of those are here.","addon.holiday-calendars.note.fr":"The eleven days named in the labour code, as they stand across most of the country.","addon.holiday-calendars.note.fr-alsace-moselle":"The eleven national days, and the two more kept in Bas-Rhin, Haut-Rhin and Moselle: Good Friday, and 26 December.","addon.holiday-calendars.note.cz":"The state holidays and the other holidays, thirteen in all, as the act lists them.","addon.holiday-calendars.note.dk":"The ten Danish church holidays. Great Prayer Day is not among them — it stopped being one in 2024. Christmas Eve and New Year's Eve are ordinary working days in law, whatever a workplace does about them.","addon.holiday-calendars.from.us":"Taken from the federal holiday statute, weekday rules and all.","addon.holiday-calendars.from.de":"Taken from the sixteen state holiday acts, reduced to the days common to every one of them.","addon.holiday-calendars.from.fr":"Taken from article L3133-1 of the labour code.","addon.holiday-calendars.from.fr-alsace-moselle":"Taken from the labour code, and from the local law that keeps two further days in the three départements.","addon.holiday-calendars.from.cz":"Taken from the Czech act on state holidays and other holidays.","addon.holiday-calendars.from.dk":"Taken from the Danish church holidays, as they stand after the 2024 change.","addon.holiday-calendars.announced.title":"Countries with no set here","addon.holiday-calendars.announced.lead":"These countries have no calendar anybody can work out in advance. Their governments announce one, year by year. A guessed list would look exactly like a checked one once it was on a rota, so there is none.","addon.holiday-calendars.announced.cn":"The State Council publishes each year's arrangement in the autumn, together with the weekends that are worked to bridge the breaks.","addon.holiday-calendars.announced.tw":"The calendar is published a year at a time, with its make-up days and its shifted weekends.","addon.holiday-calendars.announced.eg":"Islamic dates follow the moon and are settled by sighting, and several national days are moved to the nearest Thursday by decree each year.","addon.holiday-calendars.pick.area":"Country or area","addon.holiday-calendars.pick.year":"Year","addon.holiday-calendars.pick.preview":"{count} days","addon.holiday-calendars.pick.import":"Import this year","addon.holiday-calendars.pick.reviewed":"Last checked {date}.","addon.holiday-calendars.pick.noSubstitutes":"Where a day falls at the weekend nothing extra is added. Whether the business moves the day off is the business's decision, not the state's.","addon.holiday-calendars.held.title":"Days the business is closed","addon.holiday-calendars.held.none":"Nothing yet. Choose a country and a year above, look at what would arrive, and take it.","addon.holiday-calendars.held.own":"Written in here","addon.holiday-calendars.held.remove":"Remove","addon.holiday-calendars.held.removeSet":"Remove this year","addon.holiday-calendars.refuse.title":"Some of these days are already written in by hand","addon.holiday-calendars.refuse.body":"Nothing was taken. Each day below falls on a date somebody here has already written down, and this add-on will not decide which of the two names a rota should show. Remove the hand-written one and import again, or keep it and leave this year out.","addon.holiday-calendars.refuse.row":"{date} — written in here: {yours} · in this set: {theirs}","addon.holiday-calendars.done.added":"{count} days taken.","addon.holiday-calendars.done.replaced":"{count} days taken, over the top of what this year held before. Nothing written in by hand was touched.","addon.holiday-calendars.own.title":"A day of the business's own","addon.holiday-calendars.own.note":"A business closes for reasons no country decrees — a stocktake, a move, a training afternoon. Days written in here sit beside the imported ones, and no import ever removes them.","addon.holiday-calendars.own.date":"Date","addon.holiday-calendars.own.name":"What to call it","addon.holiday-calendars.own.add":"Write it in","addon.holiday-calendars.own.badDate":"That is not a date on the calendar.","addon.holiday-calendars.own.badName":"Give the day a name, so whoever reads the rota knows why it is shut.","addon.holiday-calendars.own.duplicate":"A day of the business's own is already written in on that date.","addon.holiday-calendars.maint.owner":"the Adminium add-ons maintainers","addon.holiday-calendars.maint.line":"Kept by {owner}. Last read through on {last}; the next yearly read is due {next}.","addon.holiday-calendars.maint.corrections":"A date wrong? Open an issue on the add-ons repository and it will be put right."},"de-DE":{"addon.holiday-calendars.line":"Geprüfte Feiertagslisten für einige Länder, direkt im Add-on mitgeliefert. Land und Jahr auswählen, die Tage ansehen, übernehmen.","addon.holiday-calendars.what":"Damit hat der Betrieb eine geprüfte Liste der gesetzlichen Feiertage der Länder, in denen er arbeitet — Urlaubskonten und Schließtage kommen aus demselben Kalender, statt zweimal jährlich von Hand eingetippt zu werden. Es wird nichts abgerufen: die Tage liegen als Daten im Add-on.","addon.holiday-calendars.disconnect.goes":"Die Länderauswahl und die Übernahme-Schaltfläche verschwinden, und mit ihnen die Seite, auf der sie stehen.","addon.holiday-calendars.disconnect.stays":"Jeder bereits übernommene Tag bleibt genau da, wo er ist, ebenso jeder von Hand eingetragene. Die Liste gehört dem Betrieb; das Add-on hilft nur beim Füllen.","addon.holiday-calendars.noCompany":"Holiday Calendars verbindet sich mit keinem fremden Unternehmen. Es braucht nirgends ein Konto, es ruft nichts auf, und jeder Tag, den es kennt, steckt bereits im Add-on.","addon.holiday-calendars.act.1":"{when} · ein Jahr Feiertage übernommen","addon.holiday-calendars.act.2":"{when} · einen eigenen Tag des Betriebs eingetragen","addon.holiday-calendars.setting.days":"Tage, an denen der Betrieb zu ist","addon.holiday-calendars.setting.daysHint":"Wird unten im eigenen Bereich des Add-ons gepflegt, wo sich die Tage vor der Übernahme ansehen lassen.","addon.holiday-calendars.area.us":"Vereinigte Staaten","addon.holiday-calendars.area.de":"Deutschland","addon.holiday-calendars.area.fr":"Frankreich","addon.holiday-calendars.area.fr-alsace-moselle":"Frankreich — Elsass-Mosel","addon.holiday-calendars.area.cz":"Tschechien","addon.holiday-calendars.area.dk":"Dänemark","addon.holiday-calendars.area.cn":"China","addon.holiday-calendars.area.tw":"Taiwan","addon.holiday-calendars.area.eg":"Ägypten","addon.holiday-calendars.note.us":"Die elf bundesweiten Feiertage. Einzelne Bundesstaaten haben eigene, und viele Arbeitgeber schließen an Tagen, die hier nicht stehen.","addon.holiday-calendars.note.de":"Die neun Tage, die in jedem Bundesland Feiertag sind. Zehn der sechzehn Länder haben weitere, manche davon von Ort zu Ort verschieden, und keiner davon steht hier.","addon.holiday-calendars.note.fr":"Die elf im Arbeitsgesetzbuch genannten Tage, so wie sie im größten Teil des Landes gelten.","addon.holiday-calendars.note.fr-alsace-moselle":"Die elf landesweiten Tage und die zwei weiteren, die im Elsass und im Departement Mosel gelten: Karfreitag und der 26. Dezember.","addon.holiday-calendars.note.cz":"Die staatlichen und die übrigen Feiertage, dreizehn an der Zahl, so wie das Gesetz sie aufzählt.","addon.holiday-calendars.note.dk":"Die zehn dänischen kirchlichen Feiertage. Der große Bettag gehört nicht dazu — er ist seit 2024 keiner mehr. Heiligabend und Silvester sind rechtlich gewöhnliche Arbeitstage, was auch immer ein Betrieb daraus macht.","addon.holiday-calendars.from.us":"Aus dem Bundesfeiertagsgesetz übernommen, samt seiner Wochentagsregeln.","addon.holiday-calendars.from.de":"Aus den sechzehn Feiertagsgesetzen der Länder übernommen, zusammengezogen auf die Tage, die in allen gelten.","addon.holiday-calendars.from.fr":"Aus Artikel L3133-1 des französischen Arbeitsgesetzbuchs übernommen.","addon.holiday-calendars.from.fr-alsace-moselle":"Aus dem Arbeitsgesetzbuch übernommen und aus dem örtlichen Recht, das in den drei Departements zwei weitere Tage erhält.","addon.holiday-calendars.from.cz":"Aus dem tschechischen Gesetz über die staatlichen und die übrigen Feiertage übernommen.","addon.holiday-calendars.from.dk":"Aus den dänischen kirchlichen Feiertagen übernommen, so wie sie nach der Änderung von 2024 gelten.","addon.holiday-calendars.announced.title":"Länder ohne Liste","addon.holiday-calendars.announced.lead":"Diese Länder haben keinen Kalender, den sich jemand im Voraus ausrechnen könnte. Ihre Regierungen geben ihn Jahr für Jahr bekannt. Eine geratene Liste sähe auf der Schichtliste genauso aus wie eine geprüfte, also gibt es keine.","addon.holiday-calendars.announced.cn":"Der Staatsrat gibt die Regelung des kommenden Jahres im Herbst bekannt, samt der Wochenenden, an denen zum Ausgleich gearbeitet wird.","addon.holiday-calendars.announced.tw":"Der Kalender erscheint jahrweise, mit seinen Ersatztagen und seinen verschobenen Wochenenden.","addon.holiday-calendars.announced.eg":"Die islamischen Termine richten sich nach dem Mond und werden durch Sichtung festgestellt, und mehrere staatliche Tage werden jedes Jahr per Erlass auf den nächsten Donnerstag gelegt.","addon.holiday-calendars.pick.area":"Land oder Gebiet","addon.holiday-calendars.pick.year":"Jahr","addon.holiday-calendars.pick.preview":"{count} Tage","addon.holiday-calendars.pick.import":"Dieses Jahr übernehmen","addon.holiday-calendars.pick.reviewed":"Zuletzt geprüft am {date}.","addon.holiday-calendars.pick.noSubstitutes":"Fällt ein Tag auf ein Wochenende, kommt nichts hinzu. Ob der Betrieb den freien Tag verschiebt, entscheidet der Betrieb und nicht der Staat.","addon.holiday-calendars.held.title":"Tage, an denen der Betrieb zu ist","addon.holiday-calendars.held.none":"Noch nichts. Wählen Sie oben Land und Jahr, sehen Sie sich an, was käme, und übernehmen Sie es.","addon.holiday-calendars.held.own":"Hier eingetragen","addon.holiday-calendars.held.remove":"Entfernen","addon.holiday-calendars.held.removeSet":"Dieses Jahr entfernen","addon.holiday-calendars.refuse.title":"Einige dieser Tage stehen schon von Hand in der Liste","addon.holiday-calendars.refuse.body":"Es wurde nichts übernommen. Jeder Tag unten fällt auf ein Datum, das hier jemand bereits eingetragen hat, und dieses Add-on entscheidet nicht, welcher der beiden Namen auf der Schichtliste stehen soll. Entfernen Sie den handschriftlichen Eintrag und übernehmen Sie erneut, oder behalten Sie ihn und lassen Sie dieses Jahr aus.","addon.holiday-calendars.refuse.row":"{date} — hier eingetragen: {yours} · in dieser Liste: {theirs}","addon.holiday-calendars.done.added":"{count} Tage übernommen.","addon.holiday-calendars.done.replaced":"{count} Tage übernommen, über das gelegt, was dieses Jahr vorher enthielt. An den von Hand eingetragenen Tagen wurde nichts angerührt.","addon.holiday-calendars.own.title":"Ein eigener Tag des Betriebs","addon.holiday-calendars.own.note":"Ein Betrieb schließt aus Gründen, die kein Staat verordnet — Inventur, Umzug, ein Schulungsnachmittag. Hier eingetragene Tage stehen neben den übernommenen, und keine Übernahme entfernt sie je.","addon.holiday-calendars.own.date":"Datum","addon.holiday-calendars.own.name":"Wie er heißen soll","addon.holiday-calendars.own.add":"Eintragen","addon.holiday-calendars.own.badDate":"Dieses Datum gibt es im Kalender nicht.","addon.holiday-calendars.own.badName":"Geben Sie dem Tag einen Namen, damit auf der Schichtliste steht, warum zu ist.","addon.holiday-calendars.own.duplicate":"An diesem Datum steht bereits ein eigener Tag des Betriebs.","addon.holiday-calendars.maint.owner":"die Add-on-Betreuer von Adminium","addon.holiday-calendars.maint.line":"Betreut durch {owner}. Zuletzt durchgesehen am {last}; die nächste jährliche Durchsicht steht am {next} an.","addon.holiday-calendars.maint.corrections":"Ein Datum falsch? Melden Sie es im Add-on-Repository, dann wird es berichtigt."},"fr-FR":{"addon.holiday-calendars.line":"Des listes de jours fériés vérifiées, pour quelques pays, embarquées dans l'add-on. Choisissez un pays et une année, regardez les jours, reprenez-les.","addon.holiday-calendars.what":"L'établissement dispose ainsi d'une liste vérifiée des jours fériés des pays où il travaille : les soldes de congés et les jours de fermeture sortent du même calendrier au lieu d'être saisis à la main deux fois par an. Rien n'est téléchargé : les jours sont des données à l'intérieur de l'add-on.","addon.holiday-calendars.disconnect.goes":"Le sélecteur de pays et le bouton de reprise disparaissent, ainsi que le panneau qui les porte.","addon.holiday-calendars.disconnect.stays":"Chaque jour déjà repris reste exactement où il est, et chaque jour saisi ici à la main aussi. La liste appartient à l'établissement ; l'add-on aide seulement à la remplir.","addon.holiday-calendars.noCompany":"Holiday Calendars ne se connecte à aucune société extérieure. Il n'a besoin d'aucun compte nulle part, il n'appelle rien, et chaque jour qu'il connaît est déjà dans l'add-on.","addon.holiday-calendars.act.1":"{when} · une année de jours fériés reprise","addon.holiday-calendars.act.2":"{when} · un jour à nous saisi","addon.holiday-calendars.setting.days":"Jours de fermeture de l'établissement","addon.holiday-calendars.setting.daysHint":"Se règle plus bas, dans le panneau de l'add-on, où les jours se regardent avant d'être repris.","addon.holiday-calendars.area.us":"États-Unis","addon.holiday-calendars.area.de":"Allemagne","addon.holiday-calendars.area.fr":"France","addon.holiday-calendars.area.fr-alsace-moselle":"France — Alsace-Moselle","addon.holiday-calendars.area.cz":"Tchéquie","addon.holiday-calendars.area.dk":"Danemark","addon.holiday-calendars.area.cn":"Chine","addon.holiday-calendars.area.tw":"Taïwan","addon.holiday-calendars.area.eg":"Égypte","addon.holiday-calendars.note.us":"Les onze jours fériés fédéraux. Chaque État en ajoute, et beaucoup d'employeurs ferment des jours qui ne figurent pas ici.","addon.holiday-calendars.note.de":"Les neuf jours fériés dans chacun des Länder allemands. Dix des seize en ajoutent, certains variant d'une commune à l'autre, et aucun de ceux-là n'est ici.","addon.holiday-calendars.note.fr":"Les onze jours nommés par le code du travail, tels qu'ils valent dans la plus grande partie du pays.","addon.holiday-calendars.note.fr-alsace-moselle":"Les onze jours nationaux, et les deux de plus conservés en Bas-Rhin, Haut-Rhin et Moselle : le Vendredi saint et le 26 décembre.","addon.holiday-calendars.note.cz":"Les fêtes d'État et les autres fêtes, treize en tout, telles que la loi les énumère.","addon.holiday-calendars.note.dk":"Les dix fêtes religieuses danoises. Le grand jour de prière n'en fait pas partie : il a cessé d'en être une en 2024. Le 24 et le 31 décembre sont des jours ouvrables au regard de la loi, quoi qu'en fasse un établissement.","addon.holiday-calendars.from.us":"Repris de la loi fédérale sur les jours fériés, règles de jour de semaine comprises.","addon.holiday-calendars.from.de":"Repris des seize lois régionales sur les jours fériés, ramenées aux jours communs à toutes.","addon.holiday-calendars.from.fr":"Repris de l'article L3133-1 du code du travail.","addon.holiday-calendars.from.fr-alsace-moselle":"Repris du code du travail et du droit local qui conserve deux jours de plus dans les trois départements.","addon.holiday-calendars.from.cz":"Repris de la loi tchèque sur les fêtes d'État et les autres fêtes.","addon.holiday-calendars.from.dk":"Repris des fêtes religieuses danoises, telles qu'elles valent après la modification de 2024.","addon.holiday-calendars.announced.title":"Pays sans liste ici","addon.holiday-calendars.announced.lead":"Ces pays n'ont pas de calendrier calculable à l'avance. Leurs gouvernements l'annoncent, année après année. Une liste devinée aurait, sur un tableau de service, exactement l'air d'une liste vérifiée : il n'y en a donc aucune.","addon.holiday-calendars.announced.cn":"Le Conseil des affaires de l'État publie à l'automne le calendrier de l'année suivante, avec les week-ends travaillés qui servent à relier les congés.","addon.holiday-calendars.announced.tw":"Le calendrier paraît année par année, avec ses jours de rattrapage et ses week-ends déplacés.","addon.holiday-calendars.announced.eg":"Les dates islamiques suivent la lune et sont arrêtées par observation, et plusieurs journées nationales changent de date chaque année, par décret, afin de tomber un jeudi.","addon.holiday-calendars.pick.area":"Pays ou territoire","addon.holiday-calendars.pick.year":"Année","addon.holiday-calendars.pick.preview":"{count} jours","addon.holiday-calendars.pick.import":"Reprendre cette année","addon.holiday-calendars.pick.reviewed":"Dernière vérification le {date}.","addon.holiday-calendars.pick.noSubstitutes":"Quand un jour tombe le week-end, rien n'est ajouté. Décaler le jour chômé, c'est à l'établissement d'en décider, pas à l'État.","addon.holiday-calendars.held.title":"Jours de fermeture de l'établissement","addon.holiday-calendars.held.none":"Rien pour l'instant. Choisissez un pays et une année ci-dessus, regardez ce qui arriverait, et reprenez-le.","addon.holiday-calendars.held.own":"Saisi ici","addon.holiday-calendars.held.remove":"Retirer","addon.holiday-calendars.held.removeSet":"Retirer cette année","addon.holiday-calendars.refuse.title":"Certains de ces jours sont déjà saisis à la main","addon.holiday-calendars.refuse.body":"Rien n'a été repris. Chacun des jours ci-dessous tombe à une date que quelqu'un a déjà saisie ici, et cet add-on ne décide pas lequel des deux noms doit figurer sur le tableau de service. Retirez la saisie manuelle et reprenez, ou gardez-la et laissez cette année de côté.","addon.holiday-calendars.refuse.row":"{date} — saisi ici : {yours} · dans cette liste : {theirs}","addon.holiday-calendars.done.added":"{count} jours repris.","addon.holiday-calendars.done.replaced":"{count} jours repris, par-dessus ce que cette année contenait. Rien de ce qui avait été saisi à la main n'a été touché.","addon.holiday-calendars.own.title":"Un jour à vous","addon.holiday-calendars.own.note":"Un établissement ferme pour des raisons qu'aucun État ne décrète — un inventaire, un déménagement, un après-midi de formation. Les jours saisis ici voisinent avec ceux qui ont été repris, et aucune reprise ne les enlève.","addon.holiday-calendars.own.date":"Date","addon.holiday-calendars.own.name":"Comment l'appeler","addon.holiday-calendars.own.add":"Saisir","addon.holiday-calendars.own.badDate":"Cette date n'existe pas au calendrier.","addon.holiday-calendars.own.badName":"Donnez un nom au jour, pour que le tableau de service dise pourquoi c'est fermé.","addon.holiday-calendars.own.duplicate":"Un jour à vous est déjà saisi à cette date.","addon.holiday-calendars.maint.owner":"les mainteneurs des add-ons Adminium","addon.holiday-calendars.maint.line":"Tenu à jour par {owner}. Dernière relecture le {last} ; la relecture annuelle suivante est attendue le {next}.","addon.holiday-calendars.maint.corrections":"Une date fausse ? Signalez-la sur le dépôt des add-ons, elle sera corrigée."},"cs-CZ":{"addon.holiday-calendars.line":"Ověřené seznamy státních svátků několika zemí, uložené přímo v add-onu. Vyberte zemi a rok, podívejte se na dny a převezměte je.","addon.holiday-calendars.what":"Podnik tak má ověřený seznam svátků zemí, kde pracuje: zůstatky dovolené i zavírací dny vycházejí z jednoho kalendáře, místo aby je někdo dvakrát ročně přepisoval ručně. Nic se nestahuje — dny jsou uložené jako data uvnitř add-onu.","addon.holiday-calendars.disconnect.goes":"Výběr země i tlačítko převzetí zmizí a s nimi i panel, na kterém stojí.","addon.holiday-calendars.disconnect.stays":"Každý už převzatý den zůstává přesně tam, kde je, a stejně tak každý den zapsaný zde ručně. Seznam patří podniku; add-on jen pomáhá ho naplnit.","addon.holiday-calendars.noCompany":"Holiday Calendars se nepřipojuje k žádné cizí firmě. Nikde nepotřebuje účet, nic nevolá a každý den, který zná, už je uvnitř add-onu.","addon.holiday-calendars.act.1":"{when} · převzat rok svátků","addon.holiday-calendars.act.2":"{when} · zapsán vlastní den podniku","addon.holiday-calendars.setting.days":"Dny, kdy má podnik zavřeno","addon.holiday-calendars.setting.daysHint":"Nastavuje se níže, ve vlastním panelu add-onu, kde si dny lze před převzetím ověřit.","addon.holiday-calendars.area.us":"Spojené státy americké","addon.holiday-calendars.area.de":"Německo","addon.holiday-calendars.area.fr":"Francie","addon.holiday-calendars.area.fr-alsace-moselle":"Francie — Alsasko a Mosela","addon.holiday-calendars.area.cz":"Česko","addon.holiday-calendars.area.dk":"Dánsko","addon.holiday-calendars.area.cn":"Čína","addon.holiday-calendars.area.tw":"Tchaj-wan","addon.holiday-calendars.area.eg":"Egypt","addon.holiday-calendars.note.us":"Jedenáct federálních svátků. Jednotlivé státy mají vlastní a mnoho zaměstnavatelů zavírá i ve dnech, které tu nejsou.","addon.holiday-calendars.note.de":"Devět dnů, které jsou svátkem v každé německé spolkové zemi. Deset ze šestnácti zemí má další, některé se liší obec od obce, a žádný z nich tu není.","addon.holiday-calendars.note.fr":"Jedenáct dnů uvedených ve francouzském zákoníku práce, tak jak platí ve většině země.","addon.holiday-calendars.note.fr-alsace-moselle":"Jedenáct celostátních dnů a dva další, které zůstávají v departementech Dolní Rýn, Horní Rýn a Mosela: Velký pátek a druhý svátek vánoční.","addon.holiday-calendars.note.cz":"Státní svátky a ostatní svátky, třináct celkem, tak jak je zákon vyjmenovává.","addon.holiday-calendars.note.dk":"Deset dánských církevních svátků. Velký modlitební den mezi ně nepatří — přestal jím být v roce 2024. Štědrý večer a Silvestr jsou podle zákona běžné pracovní dny, ať s nimi podnik naloží jakkoli.","addon.holiday-calendars.from.us":"Převzato z federálního zákona o svátcích, včetně jeho pravidel o dnech v týdnu.","addon.holiday-calendars.from.de":"Převzato ze šestnácti zemských zákonů o svátcích, zúženo na dny společné všem.","addon.holiday-calendars.from.fr":"Převzato z článku L3133-1 francouzského zákoníku práce.","addon.holiday-calendars.from.fr-alsace-moselle":"Převzato ze zákoníku práce a z místního práva, které ve třech departementech zachovává dva dny navíc.","addon.holiday-calendars.from.cz":"Převzato z českého zákona o státních svátcích a ostatních svátcích.","addon.holiday-calendars.from.dk":"Převzato z dánských církevních svátků, tak jak platí po změně z roku 2024.","addon.holiday-calendars.announced.title":"Země, ke kterým tu seznam není","addon.holiday-calendars.announced.lead":"Tyto země nemají kalendář, který by šlo dopředu spočítat. Jejich vlády ho vyhlašují rok po roce. Uhodnutý seznam by na rozpisu směn vypadal úplně stejně jako ověřený, a tak tu žádný není.","addon.holiday-calendars.announced.cn":"Státní rada vyhlašuje uspořádání příštího roku na podzim, včetně víkendů, které se odpracují, aby volno drželo pohromadě.","addon.holiday-calendars.announced.tw":"Kalendář vychází vždy na jeden rok, s náhradními dny a s přesunutými víkendy.","addon.holiday-calendars.announced.eg":"Islámské termíny se řídí měsícem a určují se pozorováním, a několik státních dnů se každý rok výnosem přesouvá na nejbližší čtvrtek.","addon.holiday-calendars.pick.area":"Země nebo oblast","addon.holiday-calendars.pick.year":"Rok","addon.holiday-calendars.pick.preview":"{count} dnů","addon.holiday-calendars.pick.import":"Převzít tento rok","addon.holiday-calendars.pick.reviewed":"Naposledy ověřeno {date}.","addon.holiday-calendars.pick.noSubstitutes":"Padne-li den na víkend, nic dalšího se nepřidává. Zda podnik volno přesune, rozhoduje podnik, ne stát.","addon.holiday-calendars.held.title":"Dny, kdy má podnik zavřeno","addon.holiday-calendars.held.none":"Zatím nic. Vyberte nahoře zemi a rok, podívejte se, co by přišlo, a převezměte to.","addon.holiday-calendars.held.own":"Zapsáno zde","addon.holiday-calendars.held.remove":"Odebrat","addon.holiday-calendars.held.removeSet":"Odebrat tento rok","addon.holiday-calendars.refuse.title":"Některé z těchto dnů už jsou zapsané ručně","addon.holiday-calendars.refuse.body":"Nic se nepřevzalo. Každý den níže padá na datum, které tu už někdo zapsal, a add-on nerozhoduje, který ze dvou názvů má stát v rozpisu směn. Odeberte ruční zápis a převezměte znovu, nebo si ho nechte a tento rok vynechte.","addon.holiday-calendars.refuse.row":"{date} — zapsáno zde: {yours} · v tomto seznamu: {theirs}","addon.holiday-calendars.done.added":"Převzato {count} dnů.","addon.holiday-calendars.done.replaced":"Převzato {count} dnů, přes to, co tento rok obsahoval dřív. Ručně zapsaných dnů se to nedotklo.","addon.holiday-calendars.own.title":"Vlastní den podniku","addon.holiday-calendars.own.note":"Podnik zavírá z důvodů, které žádný stát nenařizuje — inventura, stěhování, odpoledne školení. Dny zapsané zde stojí vedle převzatých a žádné převzetí je neodstraní.","addon.holiday-calendars.own.date":"Datum","addon.holiday-calendars.own.name":"Jak se bude jmenovat","addon.holiday-calendars.own.add":"Zapsat","addon.holiday-calendars.own.badDate":"Takové datum v kalendáři není.","addon.holiday-calendars.own.badName":"Pojmenujte den, ať je v rozpisu směn vidět, kvůli čemu je zavřeno.","addon.holiday-calendars.own.duplicate":"K tomuto datu už je vlastní den podniku zapsaný.","addon.holiday-calendars.maint.owner":"správci add-onů Adminium","addon.holiday-calendars.maint.line":"Udržuje {owner}. Naposledy zkontrolováno {last}; další roční kontrola má být {next}.","addon.holiday-calendars.maint.corrections":"Špatné datum? Založte hlášení v repozitáři add-onů a bude opraveno."},"da-DK":{"addon.holiday-calendars.line":"Kontrollerede helligdagslister for en håndfuld lande, lagt ind i selve tilføjelsen. Vælg land og år, se dagene efter, og hent dem ind.","addon.holiday-calendars.what":"Virksomheden får en kontrolleret liste over helligdage i de lande, det arbejder i, så ferieregnskab og lukkedage kommer fra den samme kalender i stedet for at blive tastet ind i hånden to gange om året. Der hentes intet udefra: dagene ligger som data inde i tilføjelsen.","addon.holiday-calendars.disconnect.goes":"Landevælgeren og knappen, der henter dagene ind, forsvinder, og det gør panelet, de sidder i, også.","addon.holiday-calendars.disconnect.stays":"Hver dag, der allerede er hentet ind, bliver præcis, hvor den er, og det samme gør hver dag, nogen selv har skrevet ind. Listen tilhører virksomheden; tilføjelsen hjælper kun med at fylde den.","addon.holiday-calendars.noCompany":"Holiday Calendars forbinder sig ikke til noget udefrakommende firma. Den skal ikke bruge en konto nogen steder, den kalder ingenting, og hver dag, den kender, ligger allerede inde i tilføjelsen.","addon.holiday-calendars.act.1":"{when} · et år med helligdage hentet ind","addon.holiday-calendars.act.2":"{when} · en af virksomhedens egne dage skrevet ind","addon.holiday-calendars.setting.days":"Dage hvor virksomheden holder lukket","addon.holiday-calendars.setting.daysHint":"Rettes nedenfor i tilføjelsens eget panel, hvor dagene kan ses efter, før de hentes ind.","addon.holiday-calendars.area.us":"USA","addon.holiday-calendars.area.de":"Tyskland","addon.holiday-calendars.area.fr":"Frankrig","addon.holiday-calendars.area.fr-alsace-moselle":"Frankrig — Alsace-Moselle","addon.holiday-calendars.area.cz":"Tjekkiet","addon.holiday-calendars.area.dk":"Danmark","addon.holiday-calendars.area.cn":"Kina","addon.holiday-calendars.area.tw":"Taiwan","addon.holiday-calendars.area.eg":"Egypten","addon.holiday-calendars.note.us":"De elleve føderale helligdage. De enkelte delstater har deres egne, og mange arbejdsgivere lukker på dage, der ikke står her.","addon.holiday-calendars.note.de":"De ni dage, der er helligdag i hver eneste tyske delstat. Ti af de seksten har flere, nogle af dem forskellige fra by til by, og ingen af dem står her.","addon.holiday-calendars.note.fr":"De elleve dage, den franske arbejdslov nævner, sådan som de gælder i størstedelen af landet.","addon.holiday-calendars.note.fr-alsace-moselle":"De elleve landsdækkende dage og de to yderligere, der er bevaret i Bas-Rhin, Haut-Rhin og Moselle: langfredag og den 26. december.","addon.holiday-calendars.note.cz":"Statshelligdagene og de øvrige helligdage, tretten i alt, sådan som loven remser dem op.","addon.holiday-calendars.note.dk":"De ti danske helligdage. Store bededag er ikke iblandt dem — den holdt op med at være helligdag i 2024. Juleaftensdag og nytårsaftensdag er efter loven almindelige arbejdsdage, uanset hvad en virksomhed gør ved det.","addon.holiday-calendars.from.us":"Hentet fra den føderale helligdagslov, ugedagsreglerne med.","addon.holiday-calendars.from.de":"Hentet fra de seksten delstaters helligdagslove, skåret ned til de dage, der gælder i dem alle.","addon.holiday-calendars.from.fr":"Hentet fra artikel L3133-1 i den franske arbejdslov.","addon.holiday-calendars.from.fr-alsace-moselle":"Hentet fra arbejdsloven og fra den lokale ret, der bevarer to dage mere i de tre departementer.","addon.holiday-calendars.from.cz":"Hentet fra den tjekkiske lov om statshelligdage og øvrige helligdage.","addon.holiday-calendars.from.dk":"Hentet fra de danske helligdage, sådan som de ser ud efter ændringen i 2024.","addon.holiday-calendars.announced.title":"Lande uden liste her","addon.holiday-calendars.announced.lead":"De her lande har ingen kalender, nogen kan regne ud på forhånd. Deres regeringer melder den ud år for år. En gættet liste ville se nøjagtig ud som en kontrolleret, når den først stod på en vagtseddel, så der er ingen.","addon.holiday-calendars.announced.cn":"Statsrådet melder næste års ordning ud om efteråret, sammen med de weekender, der arbejdes for at binde fridagene sammen.","addon.holiday-calendars.announced.tw":"Kalenderen udkommer et år ad gangen, med sine erstatningsdage og sine flyttede weekender.","addon.holiday-calendars.announced.eg":"De islamiske datoer følger månen og fastslås ved observation, og flere nationale dage flyttes hvert år ved dekret til den nærmeste torsdag.","addon.holiday-calendars.pick.area":"Land eller område","addon.holiday-calendars.pick.year":"År","addon.holiday-calendars.pick.preview":"{count} dage","addon.holiday-calendars.pick.import":"Hent dette år ind","addon.holiday-calendars.pick.reviewed":"Sidst kontrolleret den {date}.","addon.holiday-calendars.pick.noSubstitutes":"Falder en dag i en weekend, lægges der ikke noget oveni. Om virksomheden rykker fridagen, er virksomhedens afgørelse og ikke statens.","addon.holiday-calendars.held.title":"Dage hvor virksomheden holder lukket","addon.holiday-calendars.held.none":"Ingenting endnu. Vælg land og år ovenfor, se hvad der ville komme, og hent det ind.","addon.holiday-calendars.held.own":"Skrevet ind her","addon.holiday-calendars.held.remove":"Fjern","addon.holiday-calendars.held.removeSet":"Fjern dette år","addon.holiday-calendars.refuse.title":"Nogle af dagene står allerede skrevet ind i hånden","addon.holiday-calendars.refuse.body":"Der blev ikke hentet noget ind. Hver dag nedenfor falder på en dato, nogen her allerede har skrevet ind, og tilføjelsen afgør ikke, hvilket af de to navne der skal stå på vagtsedlen. Fjern det håndskrevne og hent ind igen, eller behold det og lad året være.","addon.holiday-calendars.refuse.row":"{date} — skrevet ind her: {yours} · i denne liste: {theirs}","addon.holiday-calendars.done.added":"{count} dage hentet ind.","addon.holiday-calendars.done.replaced":"{count} dage hentet ind, hen over det, året indeholdt før. Der blev ikke rørt ved noget, der var skrevet ind i hånden.","addon.holiday-calendars.own.title":"En af virksomhedens egne dage","addon.holiday-calendars.own.note":"En virksomhed lukker af grunde, ingen stat bestemmer — status, en flytning, en eftermiddag med oplæring. Dage, der skrives ind her, står ved siden af de hentede, og ingen hentning fjerner dem.","addon.holiday-calendars.own.date":"Dato","addon.holiday-calendars.own.name":"Hvad den skal hedde","addon.holiday-calendars.own.add":"Skriv den ind","addon.holiday-calendars.own.badDate":"Den dato findes ikke i kalenderen.","addon.holiday-calendars.own.badName":"Giv dagen et navn, så vagtsedlen siger, hvorfor der er lukket.","addon.holiday-calendars.own.duplicate":"Der står allerede en af virksomhedens egne dage på den dato.","addon.holiday-calendars.maint.owner":"de folk, der passer Adminiums tilføjelser","addon.holiday-calendars.maint.line":"Passet af {owner}. Sidst læst igennem den {last}; den næste årlige gennemlæsning skal ske den {next}.","addon.holiday-calendars.maint.corrections":"En forkert dato? Opret en sag i tilføjelsernes arkiv, så bliver den rettet."},"zh-CN":{"addon.holiday-calendars.line":"少数几个国家的法定假日清单,经过核对,直接随附在此加载项里。选好国家和年份,看一眼这些日子,再取用。","addon.holiday-calendars.what":"这样,单位就有一份经过核对的假日清单,覆盖它开展业务的国家:休假余额和停业日都取自同一份日历,不必每年手工录入两次。全程不向外获取任何东西——这些日子就是加载项里的数据。","addon.holiday-calendars.disconnect.goes":"国家选择器和取用按钮会消失,承载它们的面板也一并消失。","addon.holiday-calendars.disconnect.stays":"已经取用的每一天都留在原处,手工写入的每一天也一样。这份清单属于单位;加载项只是帮忙把它填起来。","addon.holiday-calendars.noCompany":"Holiday Calendars 不与任何外部公司相连。它在任何地方都不需要账户,不发出任何调用,它知道的每一天都已经在加载项里。","addon.holiday-calendars.act.1":"{when} · 取用了一年的假日","addon.holiday-calendars.act.2":"{when} · 写入了单位自己的一天","addon.holiday-calendars.setting.days":"单位停业的日子","addon.holiday-calendars.setting.daysHint":"在下方加载项自己的面板里维护,取用之前可以先把日子看清楚。","addon.holiday-calendars.area.us":"美国","addon.holiday-calendars.area.de":"德国","addon.holiday-calendars.area.fr":"法国","addon.holiday-calendars.area.fr-alsace-moselle":"法国 — 阿尔萨斯-摩泽尔","addon.holiday-calendars.area.cz":"捷克","addon.holiday-calendars.area.dk":"丹麦","addon.holiday-calendars.area.cn":"中国","addon.holiday-calendars.area.tw":"台湾","addon.holiday-calendars.area.eg":"埃及","addon.holiday-calendars.note.us":"十一个联邦假日。各州另有自己的假日,许多雇主停业的日子也不在这份清单上。","addon.holiday-calendars.note.de":"在德国每一个联邦州都放假的九天。十六个州里有十个另有假日,其中几个还因城镇而异,那些都不在这里。","addon.holiday-calendars.note.fr":"法国劳动法典列出的十一天,按其在全国大部分地区的适用情况。","addon.holiday-calendars.note.fr-alsace-moselle":"十一个全国性的日子,加上下莱茵、上莱茵和摩泽尔三省保留的另外两天:耶稣受难日和十二月二十六日。","addon.holiday-calendars.note.cz":"国家节日与其他节日,共十三天,按法律列举的次序。","addon.holiday-calendars.note.dk":"丹麦的十个教会假日。大祈祷日不在其中——它从二〇二四年起不再是假日。平安夜和除夕在法律上是普通工作日,无论单位怎么安排。","addon.holiday-calendars.from.us":"取自联邦假日法律,连同其中关于星期几的规则。","addon.holiday-calendars.from.de":"取自十六个州的假日法律,收窄为各州共有的日子。","addon.holiday-calendars.from.fr":"取自法国劳动法典第 L3133-1 条。","addon.holiday-calendars.from.fr-alsace-moselle":"取自劳动法典,以及在那三个省保留另外两天的地方法。","addon.holiday-calendars.from.cz":"取自捷克关于国家节日与其他节日的法律。","addon.holiday-calendars.from.dk":"取自丹麦教会假日,按二〇二四年修改后的情况。","addon.holiday-calendars.announced.title":"此处没有清单的国家","addon.holiday-calendars.announced.lead":"这些国家的假日无法事先推算。它们的政府一年一年地公布。猜出来的清单一旦排进班表,看起来和核对过的一模一样,所以这里一份也没有。","addon.holiday-calendars.announced.cn":"国务院在秋天公布次年的放假安排,其中还包括为连休而调休上班的周末。","addon.holiday-calendars.announced.tw":"日历一年一发布,带着补假的日子和调整过的周末。","addon.holiday-calendars.announced.eg":"伊斯兰教的日期依月相而定,须经观月确认;另有几个国家纪念日每年由法令挪到最近的星期四。","addon.holiday-calendars.pick.area":"国家或地区","addon.holiday-calendars.pick.year":"年份","addon.holiday-calendars.pick.preview":"{count} 天","addon.holiday-calendars.pick.import":"取用这一年","addon.holiday-calendars.pick.reviewed":"最近一次核对:{date}。","addon.holiday-calendars.pick.noSubstitutes":"假日碰上周末时,这里不会另外补一天。要不要把休息日挪开,由单位决定,不由国家决定。","addon.holiday-calendars.held.title":"单位停业的日子","addon.holiday-calendars.held.none":"还没有。在上面选好国家和年份,看看会来些什么,再取用。","addon.holiday-calendars.held.own":"在这里写入","addon.holiday-calendars.held.remove":"移除","addon.holiday-calendars.held.removeSet":"移除这一年","addon.holiday-calendars.refuse.title":"其中有几天已经手工写入过了","addon.holiday-calendars.refuse.body":"什么也没有取用。下面每一天所落的日期,这里已经有人写过了,而这个加载项不会替你决定班表上该显示哪一个名字。删掉手写的那条再取用一次,或者留着它、这一年就先不取。","addon.holiday-calendars.refuse.row":"{date} — 这里写的是:{yours} · 这份清单里是:{theirs}","addon.holiday-calendars.done.added":"取用了 {count} 天。","addon.holiday-calendars.done.replaced":"取用了 {count} 天,覆盖了这一年原先的内容。手工写入的日子一个也没有动。","addon.holiday-calendars.own.title":"单位自己的一天","addon.holiday-calendars.own.note":"单位停业的理由不都由国家规定——盘点、搬迁、一个下午的培训。在这里写入的日子与取用来的并列,任何一次取用都不会把它们删掉。","addon.holiday-calendars.own.date":"日期","addon.holiday-calendars.own.name":"叫什么名字","addon.holiday-calendars.own.add":"写入","addon.holiday-calendars.own.badDate":"日历上没有这一天。","addon.holiday-calendars.own.badName":"给这一天起个名字,让看班表的人知道为什么关门。","addon.holiday-calendars.own.duplicate":"那一天已经写入过单位自己的日子了。","addon.holiday-calendars.maint.owner":"Adminium 加载项的维护者","addon.holiday-calendars.maint.line":"由{owner}维护。最近一次通读:{last};下一次年度通读应在 {next}。","addon.holiday-calendars.maint.corrections":"日期有误?在加载项仓库里提一个问题,它会被改正。"},"zh-TW":{"addon.holiday-calendars.line":"少數幾個國家的國定假日清單,經過核對,直接隨附在這個外掛裡。選好國家和年份,看一眼這些日子,再取用。","addon.holiday-calendars.what":"這樣,單位就有一份核對過的假日清單,涵蓋它營業的國家:休假餘額和停業日都取自同一份日曆,不必每年手動輸入兩次。全程不向外取得任何東西——這些日子就是外掛裡的資料。","addon.holiday-calendars.disconnect.goes":"國家選擇器和取用按鈕會消失,承載它們的面板也一併消失。","addon.holiday-calendars.disconnect.stays":"已經取用的每一天都留在原處,手動寫入的每一天也一樣。這份清單屬於單位;外掛只是幫忙把它填起來。","addon.holiday-calendars.noCompany":"Holiday Calendars 不與任何外部公司相連。它在任何地方都不需要帳號,不發出任何呼叫,它知道的每一天都已經在外掛裡。","addon.holiday-calendars.act.1":"{when} · 取用了一年的假日","addon.holiday-calendars.act.2":"{when} · 寫入了單位自己的一天","addon.holiday-calendars.setting.days":"單位停業的日子","addon.holiday-calendars.setting.daysHint":"在下方外掛自己的面板裡維護,取用之前可以先把日子看清楚。","addon.holiday-calendars.area.us":"美國","addon.holiday-calendars.area.de":"德國","addon.holiday-calendars.area.fr":"法國","addon.holiday-calendars.area.fr-alsace-moselle":"法國 — 亞爾薩斯-摩澤爾","addon.holiday-calendars.area.cz":"捷克","addon.holiday-calendars.area.dk":"丹麥","addon.holiday-calendars.area.cn":"中國","addon.holiday-calendars.area.tw":"臺灣","addon.holiday-calendars.area.eg":"埃及","addon.holiday-calendars.note.us":"十一個聯邦假日。各州另有自己的假日,許多雇主停業的日子也不在這份清單上。","addon.holiday-calendars.note.de":"在德國每一個聯邦邦都放假的九天。十六個邦裡有十個另有假日,其中幾個還因城鎮而異,那些都不在這裡。","addon.holiday-calendars.note.fr":"法國勞動法典列出的十一天,依其在全國大部分地區的適用情形。","addon.holiday-calendars.note.fr-alsace-moselle":"十一個全國性的日子,加上下萊茵、上萊茵和摩澤爾三省保留的另外兩天:耶穌受難日和十二月二十六日。","addon.holiday-calendars.note.cz":"國定節日與其他節日,共十三天,依法律列舉的次序。","addon.holiday-calendars.note.dk":"丹麥的十個教會假日。大祈禱日不在其中——它從二〇二四年起不再是假日。平安夜和除夕在法律上是普通工作日,無論單位怎麼安排。","addon.holiday-calendars.from.us":"取自聯邦假日法律,連同其中關於星期幾的規則。","addon.holiday-calendars.from.de":"取自十六個邦的假日法律,收窄為各邦共有的日子。","addon.holiday-calendars.from.fr":"取自法國勞動法典第 L3133-1 條。","addon.holiday-calendars.from.fr-alsace-moselle":"取自勞動法典,以及在那三個省保留另外兩天的地方法。","addon.holiday-calendars.from.cz":"取自捷克關於國定節日與其他節日的法律。","addon.holiday-calendars.from.dk":"取自丹麥教會假日,依二〇二四年修改後的情形。","addon.holiday-calendars.announced.title":"此處沒有清單的國家","addon.holiday-calendars.announced.lead":"這些國家的假日無法事先推算。它們的政府一年一年地公布。猜出來的清單一旦排進班表,看起來和核對過的一模一樣,所以這裡一份也沒有。","addon.holiday-calendars.announced.cn":"國務院在秋天公布次年的放假安排,其中還包括為連假而調整上班的週末。","addon.holiday-calendars.announced.tw":"行事曆一年發布一次,帶著補假的日子和調整過的週末。","addon.holiday-calendars.announced.eg":"伊斯蘭教的日期依月相而定,須經觀月確認;另有幾個國家紀念日每年由法令挪到最近的星期四。","addon.holiday-calendars.pick.area":"國家或地區","addon.holiday-calendars.pick.year":"年份","addon.holiday-calendars.pick.preview":"{count} 天","addon.holiday-calendars.pick.import":"取用這一年","addon.holiday-calendars.pick.reviewed":"最近一次核對:{date}。","addon.holiday-calendars.pick.noSubstitutes":"假日碰上週末時,這裡不會另外補一天。要不要把休息日挪開,由單位決定,不由國家決定。","addon.holiday-calendars.held.title":"單位停業的日子","addon.holiday-calendars.held.none":"還沒有。在上面選好國家和年份,看看會來些什麼,再取用。","addon.holiday-calendars.held.own":"在這裡寫入","addon.holiday-calendars.held.remove":"移除","addon.holiday-calendars.held.removeSet":"移除這一年","addon.holiday-calendars.refuse.title":"其中有幾天已經手動寫入過了","addon.holiday-calendars.refuse.body":"什麼也沒有取用。下面每一天所落的日期,這裡已經有人寫過了,而這個外掛不會替你決定班表上該顯示哪一個名字。刪掉手寫的那條再取用一次,或者留著它、這一年就先不取。","addon.holiday-calendars.refuse.row":"{date} — 這裡寫的是:{yours} · 這份清單裡是:{theirs}","addon.holiday-calendars.done.added":"取用了 {count} 天。","addon.holiday-calendars.done.replaced":"取用了 {count} 天,覆蓋了這一年原先的內容。手動寫入的日子一個也沒有動。","addon.holiday-calendars.own.title":"單位自己的一天","addon.holiday-calendars.own.note":"單位停業的理由不都由國家規定——盤點、搬遷、一個下午的訓練。在這裡寫入的日子與取用來的並列,任何一次取用都不會把它們刪掉。","addon.holiday-calendars.own.date":"日期","addon.holiday-calendars.own.name":"叫什麼名字","addon.holiday-calendars.own.add":"寫入","addon.holiday-calendars.own.badDate":"日曆上沒有這一天。","addon.holiday-calendars.own.badName":"給這一天取個名字,讓看班表的人知道為什麼關門。","addon.holiday-calendars.own.duplicate":"那一天已經寫入過單位自己的日子了。","addon.holiday-calendars.maint.owner":"Adminium 外掛的維護者","addon.holiday-calendars.maint.line":"由{owner}維護。最近一次通讀:{last};下一次年度通讀應在 {next}。","addon.holiday-calendars.maint.corrections":"日期有誤?在外掛的儲存庫裡提一個問題,它會被改正。"},"ar-EG":{"addon.holiday-calendars.line":"قوائم عطلات رسمية مُراجَعة لعدد قليل من البلدان، محمولة داخل الإضافة نفسها. اختر بلدًا وسنة، وانظر إلى الأيام، ثم خذها.","addon.holiday-calendars.what":"بهذا يصير لدى المنشأة قائمة مُراجَعة بالعطلات الرسمية في البلدان التي يعمل فيها، فتخرج أرصدة الإجازات وأيام الغلق من التقويم نفسه بدل أن يكتبها أحد بيده مرتين في السنة. ولا يُجلَب شيء من الخارج: الأيام بيانات داخل الإضافة.","addon.holiday-calendars.disconnect.goes":"يختفي مُنتقي البلد وزر الأخذ، وتختفي معهما اللوحة التي يقفان عليها.","addon.holiday-calendars.disconnect.stays":"كل يوم سبق أخذه يبقى في مكانه تمامًا، وكذلك كل يوم كُتب هنا باليد. القائمة ملك المنشأة؛ والإضافة تساعد على ملئها فحسب.","addon.holiday-calendars.noCompany":"لا تتصل Holiday Calendars بأي شركة خارجية. لا تحتاج إلى حساب في أي مكان، ولا تستدعي شيئًا، وكل يوم تعرفه موجود أصلًا داخل الإضافة.","addon.holiday-calendars.act.1":"{when} · أُخذت سنة من العطلات","addon.holiday-calendars.act.2":"{when} · كُتب يوم خاص بالمنشأة","addon.holiday-calendars.setting.days":"الأيام التي تغلق فيها المنشأة","addon.holiday-calendars.setting.daysHint":"يُضبط في لوحة الإضافة نفسها بالأسفل، حيث يمكن النظر إلى الأيام قبل أخذها.","addon.holiday-calendars.area.us":"الولايات المتحدة","addon.holiday-calendars.area.de":"ألمانيا","addon.holiday-calendars.area.fr":"فرنسا","addon.holiday-calendars.area.fr-alsace-moselle":"فرنسا — الألزاس والموزيل","addon.holiday-calendars.area.cz":"التشيك","addon.holiday-calendars.area.dk":"الدنمارك","addon.holiday-calendars.area.cn":"الصين","addon.holiday-calendars.area.tw":"تايوان","addon.holiday-calendars.area.eg":"مصر","addon.holiday-calendars.note.us":"العطلات الاتحادية الإحدى عشرة. ولكل ولاية عطلاتها، وكثير من أصحاب العمل يغلقون في أيام ليست في هذه القائمة.","addon.holiday-calendars.note.de":"الأيام التسعة التي تُعَد عطلة في كل ولاية ألمانية. وعشر من الولايات الست عشرة تضيف أيامًا أخرى، بعضها يختلف من بلدة إلى بلدة، ولا شيء منها هنا.","addon.holiday-calendars.note.fr":"الأيام الأحد عشر التي يسميها قانون العمل الفرنسي، كما تسري في معظم أنحاء البلاد.","addon.holiday-calendars.note.fr-alsace-moselle":"الأيام الأحد عشر الوطنية، ويومان آخران محفوظان في الراين الأدنى والراين الأعلى والموزيل: الجمعة العظيمة، والسادس والعشرون من ديسمبر.","addon.holiday-calendars.note.cz":"أعياد الدولة والأعياد الأخرى، ثلاثة عشر في المجموع، كما يعددها القانون.","addon.holiday-calendars.note.dk":"أعياد الكنيسة الدنماركية العشرة. ويوم الصلاة الكبير ليس منها — إذ لم يعد عطلة منذ عام ٢٠٢٤. أما ليلة عيد الميلاد وليلة رأس السنة فيومان عاديان في نظر القانون، مهما فعلت المنشأة بهما.","addon.holiday-calendars.from.us":"مأخوذة من قانون العطلات الاتحادي، بقواعده الخاصة بأيام الأسبوع.","addon.holiday-calendars.from.de":"مأخوذة من قوانين العطلات في الولايات الست عشرة، مختصرةً إلى الأيام المشتركة بينها جميعًا.","addon.holiday-calendars.from.fr":"مأخوذة من المادة L3133-1 من قانون العمل الفرنسي.","addon.holiday-calendars.from.fr-alsace-moselle":"مأخوذة من قانون العمل، ومن القانون المحلي الذي يحفظ يومين إضافيين في المحافظات الثلاث.","addon.holiday-calendars.from.cz":"مأخوذة من القانون التشيكي الخاص بأعياد الدولة والأعياد الأخرى.","addon.holiday-calendars.from.dk":"مأخوذة من أعياد الكنيسة الدنماركية، كما صارت بعد تعديل عام ٢٠٢٤.","addon.holiday-calendars.announced.title":"بلدان بلا قائمة هنا","addon.holiday-calendars.announced.lead":"هذه البلدان ليس لها تقويم يستطيع أحد حسابه مقدمًا. حكوماتها تعلنه سنة بعد سنة. والقائمة المُخمَّنة تبدو على جدول المناوبات مثل المُراجَعة تمامًا، فلا توجد هنا قائمة أصلًا.","addon.holiday-calendars.announced.cn":"يعلن مجلس الدولة ترتيب السنة التالية في الخريف، ومعه أيام نهاية الأسبوع التي يُعمَل فيها لوصل الإجازات.","addon.holiday-calendars.announced.tw":"يصدر التقويم سنةً سنة، بأيام التعويض وبنهايات الأسبوع المنقولة.","addon.holiday-calendars.announced.eg":"المواعيد الهجرية تتبع القمر وتُثبَت بالرؤية، وعدة أعياد قومية تُنقَل كل سنة بقرار إلى أقرب خميس.","addon.holiday-calendars.pick.area":"البلد أو المنطقة","addon.holiday-calendars.pick.year":"السنة","addon.holiday-calendars.pick.preview":"{count} يومًا","addon.holiday-calendars.pick.import":"خذ هذه السنة","addon.holiday-calendars.pick.reviewed":"آخر مراجعة في {date}.","addon.holiday-calendars.pick.noSubstitutes":"إذا وقع يوم في نهاية الأسبوع فلا يُضاف شيء. وتحريك يوم الراحة قرار المنشأة، لا قرار الدولة.","addon.holiday-calendars.held.title":"الأيام التي تغلق فيها المنشأة","addon.holiday-calendars.held.none":"لا شيء بعد. اختر بلدًا وسنة بالأعلى، وانظر ما الذي سيأتي، ثم خذه.","addon.holiday-calendars.held.own":"مكتوب هنا","addon.holiday-calendars.held.remove":"احذفه","addon.holiday-calendars.held.removeSet":"احذف هذه السنة","addon.holiday-calendars.refuse.title":"بعض هذه الأيام مكتوب هنا باليد من قبل","addon.holiday-calendars.refuse.body":"لم يُؤخَذ شيء. كل يوم بالأسفل يقع في تاريخ سبق أن كتبه أحد هنا، وهذه الإضافة لا تقرر أي الاسمين ينبغي أن يظهر على جدول المناوبات. احذف المكتوب باليد وخذ السنة من جديد، أو أبقِه واترك هذه السنة.","addon.holiday-calendars.refuse.row":"{date} — المكتوب هنا: {yours} · وفي هذه القائمة: {theirs}","addon.holiday-calendars.done.added":"أُخذ {count} يومًا.","addon.holiday-calendars.done.replaced":"أُخذ {count} يومًا، فوق ما كانت هذه السنة تحمله قبلًا. ولم يُمَس شيء مما كُتب باليد.","addon.holiday-calendars.own.title":"يوم خاص بالمنشأة","addon.holiday-calendars.own.note":"تغلق المنشأة لأسباب لا تقررها دولة — جرد، أو انتقال، أو ظهر تدريب. والأيام المكتوبة هنا تقف بجوار المأخوذة، ولا يزيلها أي أخذ.","addon.holiday-calendars.own.date":"التاريخ","addon.holiday-calendars.own.name":"بأي اسم يُسمَّى","addon.holiday-calendars.own.add":"اكتبه","addon.holiday-calendars.own.badDate":"ليس هذا تاريخًا في التقويم.","addon.holiday-calendars.own.badName":"سَمِّ اليوم، ليعرف قارئ جدول المناوبات سبب الغلق.","addon.holiday-calendars.own.duplicate":"يوجد في هذا التاريخ يوم خاص بالمنشأة مكتوب من قبل.","addon.holiday-calendars.maint.owner":"القائمون على إضافات Adminium","addon.holiday-calendars.maint.line":"يتولاها {owner}. آخر قراءة في {last}؛ والقراءة السنوية التالية مستحقة في {next}.","addon.holiday-calendars.maint.corrections":"تاريخ خاطئ؟ افتح بلاغًا في مستودع الإضافات وسيُصحَّح."}},v="en-US";function X(d){return d!==null&&d in k}function ee(d){if(X(d))return d;if(d===null||d.length===0)return v;const a=d.toLowerCase();if(a.startsWith("zh"))return/hant|tw|hk|mo/.test(a)?"zh-TW":"zh-CN";const r=a.split("-")[0];return Object.keys(k).find(c=>c.toLowerCase().split("-")[0]===r)??v}function ae(){return typeof document>"u"?v:ee(document.documentElement.getAttribute("lang"))}function de(d){if(typeof MutationObserver>"u")return()=>{};const a=new MutationObserver(d);return a.observe(document.documentElement,{attributeFilter:["lang"]}),()=>a.disconnect()}function ne(d,a,r){const o=k[d][a]??k[v][a]??a;if(r===void 0)return o;const c=new Intl.NumberFormat(d);return o.replace(/\{(\w+)\}/g,(y,l)=>{if(!(l in r))return y;const i=r[l];return typeof i=="number"?c.format(i):String(i)})}function q(){return u.useSyncExternalStore(de,ae,()=>v)}function I(){const d=q();return u.useCallback((a,r)=>ne(d,a,r),[d])}function oe(d,a){return new Intl.NumberFormat(d,{useGrouping:!1}).format(a)}function O(){const d=q();return{year:a=>oe(d,a),day:(a,r)=>{const[o,c,y]=a.split("-").map(i=>Number.parseInt(i,10)),l=new Date(Date.UTC(o,c-1,y));return new Intl.DateTimeFormat(d,{timeZone:"UTC",...r??{weekday:"short",day:"numeric",month:"short"}}).format(l)}}}const re="var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)";function L({children:d,style:a}){return e.jsx("span",{style:{fontFamily:re,fontVariantNumeric:"tabular-nums",direction:"ltr",unicodeBidi:"isolate",whiteSpace:"nowrap",...a},children:d})}function K({children:d,style:a}){return e.jsx("span",{dir:"auto",style:{unicodeBidi:"isolate",...a},children:d})}function f({children:d,tone:a,style:r}){return e.jsx("div",{style:{border:a===void 0?"1px solid var(--border)":`1.5px solid var(--${a})`,background:"var(--surface)",borderRadius:14,padding:"15px 16px",...r},children:d})}function C({children:d,tone:a}){return e.jsx("div",{style:{fontSize:13.5,fontWeight:800,color:a===void 0?"var(--fg)":`var(--${a})`},children:d})}function le({children:d}){return e.jsx("div",{style:{fontSize:12.5,fontWeight:700,color:"var(--fg-muted)",marginBlockEnd:8},children:d})}function h({children:d,style:a}){return e.jsx("p",{style:{margin:0,fontSize:11.5,lineHeight:1.55,color:"var(--fg-subtle)",...a},children:d})}function x({tone:d="neutral",children:a}){const r=d==="neutral"?"var(--fg-muted)":`var(--${d})`,o=d==="neutral"?"var(--surface-3)":`var(--${d}-soft)`;return e.jsx("span",{style:{fontSize:11,fontWeight:700,color:r,background:o,padding:"3px 9px",borderRadius:99,lineHeight:1.45,minInlineSize:0,overflowWrap:"anywhere"},children:a})}function B({children:d,onClick:a,variant:r="accent",disabled:o=!1,style:c}){const y={display:"inline-flex",alignItems:"center",justifyContent:"center",gap:8,borderRadius:11,padding:"10px 15px",fontSize:13,fontWeight:800,cursor:o?"not-allowed":"pointer",opacity:o?.55:1},l=r==="ghost"?{border:"1px solid var(--border-strong)",background:"var(--surface)",color:"var(--fg)"}:{border:0,background:"var(--accent)",color:"var(--accent-fg)"};return e.jsx("button",{type:"button",onClick:a,disabled:o,style:{...y,...l,...c},children:d})}function F({children:d,onClick:a}){return e.jsx("button",{type:"button",onClick:a,style:{border:0,background:"transparent",color:"var(--fg-muted)",fontSize:11.5,fontWeight:700,cursor:"pointer",padding:"2px 4px",textDecoration:"underline"},children:d})}function b({label:d,children:a}){return e.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,minInlineSize:0,flex:"1 1 160px"},children:[e.jsx("span",{style:{fontSize:12,fontWeight:700,color:"var(--fg-muted)"},children:d}),a]})}const j={border:"1px solid var(--border-strong)",borderRadius:10,background:"var(--surface-2)",padding:"9px 11px",fontSize:13,color:"var(--fg)",inlineSize:"100%",minInlineSize:0};function se({children:d}){return e.jsx("p",{style:{margin:0,fontSize:11.5,lineHeight:1.5,color:"var(--fg-subtle)"},children:d})}const z=d=>`${d.country}|${d.region??""}`;function ie({payload:d}){const a=I(),r=O(),o=U(d.settings),[c,y]=u.useState(z(p[0])),[l,i]=u.useState(H[0]),[s,t]=u.useState({kind:"none"}),[g,E]=u.useState(""),[N,R]=u.useState(""),m=p.find(n=>z(n)===c)??p[0],S=u.useMemo(()=>G(m,l),[m,l]),w=n=>{d.patch(Y(n))},W=()=>{const n=_(o,m,l);if(!n.ok){t({kind:"refused",collisions:n.collisions});return}w(n.days),t({kind:"done",added:n.added,replaced:n.replaced})},M=()=>{const n=Q(o,g,N);if(!n.ok){t({kind:"badOwnDay",why:n.why});return}w(n.days),E(""),R(""),t({kind:"none"})};return e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[e.jsx(te,{held:o,onForgetSet:(n,D,J)=>{w(Z(o,n,D,J)),t({kind:"none"})},onForgetOwn:n=>{w(V(o,n)),t({kind:"none"})}}),e.jsxs(f,{children:[e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:12,marginBlockEnd:12},children:[e.jsx(b,{label:a("addon.holiday-calendars.pick.area"),children:e.jsx("select",{value:c,onChange:n=>{y(n.target.value),t({kind:"none"})},style:j,children:p.map(n=>e.jsx("option",{value:z(n),children:a(n.labelKey)},z(n)))})}),e.jsx(b,{label:a("addon.holiday-calendars.pick.year"),children:e.jsx("select",{value:String(l),onChange:n=>{i(Number.parseInt(n.target.value,10)),t({kind:"none"})},style:j,children:H.map(n=>e.jsx("option",{value:String(n),children:r.year(n)},n))})})]}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBlockEnd:8},children:[e.jsx(x,{tone:"info",children:a("addon.holiday-calendars.pick.preview",{count:S.length})}),e.jsx(h,{style:{fontSize:11},children:a("addon.holiday-calendars.pick.reviewed",{date:r.day(m.derivation.reviewedOn,{day:"numeric",month:"long",year:"numeric"})})})]}),e.jsx("div",{style:{border:"1px solid var(--border)",borderRadius:11,overflow:"hidden",marginBlockEnd:10},children:S.map((n,D)=>e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,padding:"7px 11px",background:"var(--surface-2)",borderBlockEnd:D===S.length-1?"0":"1px solid var(--border)"},children:[e.jsx(K,{style:{fontSize:12.5},children:n.name}),e.jsx(L,{style:{fontSize:11.5,color:"var(--fg-muted)"},children:r.day(n.date,{day:"numeric",month:"short"})})]},n.date))}),e.jsx(h,{children:a(m.noteKey)}),e.jsx(h,{style:{marginBlockStart:5},children:a(m.derivation.statedIn)}),e.jsx(h,{style:{marginBlockStart:5},children:a("addon.holiday-calendars.pick.noSubstitutes")}),e.jsx("div",{style:{marginBlockStart:12},children:e.jsx(B,{onClick:W,children:a("addon.holiday-calendars.pick.import")})})]}),s.kind==="refused"&&e.jsxs(f,{tone:"danger",children:[e.jsx(C,{tone:"danger",children:a("addon.holiday-calendars.refuse.title")}),e.jsx(h,{style:{fontSize:12.5,color:"var(--fg-muted)",marginBlockStart:6},children:a("addon.holiday-calendars.refuse.body")}),e.jsx("ul",{style:{margin:"10px 0 0",paddingInlineStart:18},children:s.collisions.map(n=>e.jsx("li",{style:{fontSize:12,marginBlockEnd:4},children:a("addon.holiday-calendars.refuse.row",{date:r.day(n.date,{day:"numeric",month:"long"}),yours:n.yours,theirs:n.theirs})},n.date))})]}),s.kind==="done"&&e.jsx(f,{tone:"pos",children:e.jsx(h,{style:{fontSize:12.5,color:"var(--fg)"},children:s.replaced>0?a("addon.holiday-calendars.done.replaced",{count:s.added}):a("addon.holiday-calendars.done.added",{count:s.added})})}),e.jsxs(f,{children:[e.jsx(C,{children:a("addon.holiday-calendars.own.title")}),e.jsx(h,{style:{marginBlockStart:6,marginBlockEnd:10},children:a("addon.holiday-calendars.own.note")}),e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:10,alignItems:"flex-end"},children:[e.jsx(b,{label:a("addon.holiday-calendars.own.date"),children:e.jsx("input",{type:"date",value:g,onChange:n=>E(n.target.value),style:j})}),e.jsx(b,{label:a("addon.holiday-calendars.own.name"),children:e.jsx("input",{type:"text",value:N,onChange:n=>R(n.target.value),style:j})}),e.jsx(B,{variant:"ghost",onClick:M,children:a("addon.holiday-calendars.own.add")})]}),s.kind==="badOwnDay"&&e.jsx(h,{style:{color:"var(--danger)",marginBlockStart:8},children:a(s.why==="date"?"addon.holiday-calendars.own.badDate":s.why==="name"?"addon.holiday-calendars.own.badName":"addon.holiday-calendars.own.duplicate")})]}),e.jsxs(f,{children:[e.jsx(C,{children:a("addon.holiday-calendars.announced.title")}),e.jsx(h,{style:{marginBlockStart:6},children:a("addon.holiday-calendars.announced.lead")}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:7,marginBlockStart:10},children:$.map(n=>e.jsxs("div",{style:{display:"flex",gap:9,alignItems:"flex-start"},children:[e.jsx(x,{children:a(n.labelKey)}),e.jsx(h,{style:{flex:"1 1 0",minInlineSize:0},children:a(n.whyKey)})]},n.country))})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[e.jsx(h,{children:a("addon.holiday-calendars.maint.line",{owner:a(T.ownerKey),last:r.day(T.lastReviewed,{day:"numeric",month:"long",year:"numeric"}),next:r.day(T.nextReview,{day:"numeric",month:"long",year:"numeric"})})}),e.jsx(h,{children:a("addon.holiday-calendars.maint.corrections")}),e.jsx(se,{children:a("addon.holiday-calendars.noCompany")})]})]})}function te({held:d,onForgetSet:a,onForgetOwn:r}){const o=I(),c=O(),y=u.useMemo(()=>{const l=new Map,i=[];for(const s of d){if(s.from===void 0){i.push(s);continue}const t=`${s.from.country}|${s.from.region??""}|${s.from.year}`,g=l.get(t);g===void 0?l.set(t,{...s.from,days:[s]}):g.days.push(s)}return{sets:[...l.entries()],own:i}},[d]);return e.jsxs("div",{children:[e.jsx(le,{children:o("addon.holiday-calendars.held.title")}),d.length===0?e.jsx(h,{children:o("addon.holiday-calendars.held.none")}):e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[y.sets.map(([l,i])=>{const s=p.find(t=>t.country===i.country&&(t.region??"")===(i.region??""));return e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:9,flexWrap:"wrap",border:"1px solid var(--border)",borderRadius:11,padding:"9px 11px",background:"var(--surface-2)"},children:[e.jsx("span",{style:{fontSize:12.5,fontWeight:700},children:s===void 0?i.country:o(s.labelKey)}),e.jsx(L,{style:{fontSize:12,color:"var(--fg-muted)"},children:c.year(i.year)}),e.jsx(x,{children:o("addon.holiday-calendars.pick.preview",{count:i.days.length})}),e.jsx("span",{style:{marginInlineStart:"auto"},children:e.jsx(F,{onClick:()=>a(i.country,i.region,i.year),children:o("addon.holiday-calendars.held.removeSet")})})]},l)}),y.own.map(l=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:9,flexWrap:"wrap",border:"1px dashed var(--border-strong)",borderRadius:11,padding:"9px 11px"},children:[e.jsx(x,{tone:"warn",children:o("addon.holiday-calendars.held.own")}),e.jsx(K,{style:{fontSize:12.5},children:l.name}),e.jsx(L,{style:{fontSize:11.5,color:"var(--fg-muted)"},children:c.day(l.date,{day:"numeric",month:"short",year:"numeric"})}),e.jsx("span",{style:{marginInlineStart:"auto"},children:e.jsx(F,{onClick:()=>r(l.date),children:o("addon.holiday-calendars.held.remove")})})]},`own-${l.date}`))]})]})}function ce(){return{key:"holiday-calendars",name:"Holiday Calendars",shortName:"Holidays",lineKey:"addon.holiday-calendars.line",whatKey:"addon.holiday-calendars.what",monogram:"CAL",category:"data",connect:"none",permissions:[],settings:[],defaultSettings:{days:[]},messages:k,disconnect:{goesKey:"addon.holiday-calendars.disconnect.goes",staysKey:"addon.holiday-calendars.disconnect.stays"},activity:[{minutesAgo:46,messageKey:"addon.holiday-calendars.act.1"},{minutesAgo:2920,messageKey:"addon.holiday-calendars.act.2"}],namesCompany:!1,noCompanyKeys:["addon.holiday-calendars.noCompany"],fills:[{slot:"settings.add-on.panel",order:10,render:d=>u.createElement(ie,{payload:d})}]}}const A=[ce()];for(const d of A)d.messages!==void 0&&P(d.key,d.messages);function ge(){return[...A]}A.map(d=>d.key);export{ge as demoAddOns};
@@ -0,0 +1 @@
1
+ import{s as b,a as X}from"./icons-BU1Aax3i.js";import{a as J,b as i,m as Z,l as ee,S as ne,A as te,c as d,N as $,d as g}from"./index-CqPaHjl7.js";import{n as oe}from"./calendar-B59f3S_A.js";const N=n=>{let t;const e=new Set,o=(u,k)=>{const h=typeof u=="function"?u(t):u;if(!Object.is(h,t)){const z=t;t=k??(typeof h!="object"||h===null)?h:Object.assign({},t,h),e.forEach(G=>G(t,z))}},a=()=>t,l={setState:o,getState:a,getInitialState:()=>c,subscribe:u=>(e.add(u),()=>e.delete(u))},c=t=n(o,a,l);return l},ae=(n=>n?N(n):N),re=n=>n;function se(n,t=re){const e=b.useSyncExternalStore(n.subscribe,b.useCallback(()=>t(n.getState()),[n,t]),b.useCallback(()=>t(n.getInitialState()),[n,t]));return b.useDebugValue(e),e}const L=n=>{const t=ae(n),e=o=>se(t,o);return Object.assign(e,t),e},le=(n=>n?L(n):L),ie=[{addOn:"holiday-calendars",days:oe}];function ce(n,t,e){const o=[];for(const a of n)if(t.has(a.addOn))for(const r of a.days(e[a.addOn]))o.push({date:r.date,reason:r.name,clinician:null,from:a.addOn});return o}function We(n,t,e){return n.filter(o=>!t.has(o.addOn)).map(o=>({addOn:o.addOn,days:o.days(e[o.addOn]).length})).filter(o=>o.days>0)}function ue(n,t){return[...n,...t].sort((e,o)=>e.date!==o.date?e.date<o.date?-1:1:e.from===null!=(o.from===null)?e.from===null?-1:1:e.reason<o.reason?-1:e.reason>o.reason?1:0)}const de={"artwork.sources":"multi","checkout.delivery.methods":"multi","order.dispatch.panel":"single","order.dispatch.actions":"multi","settings.add-on.panel":"per-add-on","nav.add-on.routes":"multi","product.options.personalize":"single","cart.line.preview":"multi","product.admin.panel":"multi","order.line.actions":"multi","record.editor.panel":"multi","record.actions":"multi"};function M(n){const t=[...n].sort((o,a)=>o.key.localeCompare(a.key)),e=new Map(t.map(o=>[o.key,o]));return{all:t,byKey:o=>e.get(o),fillsFor(o,a,r){const s=t.filter(l=>a.has(l.key)).filter(l=>r===void 0||l.key===r).flatMap(l=>l.fills.filter(c=>c.slot===o).map(c=>({addOn:l.key,fill:c}))).sort((l,c)=>l.fill.order-c.fill.order||l.addOn.localeCompare(c.addOn));return de[o]==="single"?s.slice(0,1):s}}}function fe(n){return Object.fromEntries(n.map(t=>[t.key,{...t.defaultSettings??{}}]))}function B(n,t){for(const e of n)e.applySettings?.(t[e.key]??{})}M([]);const S=510,A=1050,pe=750,me=795,he=15,ye=20,ke=40,be=15,ge=1440,we=["checked_in","roomed","with_clinician","ready"];function p(n){const[t,e,o]=n.split("-").map(Number);return new Date(t,e-1,o,0,0,0,0)}function Y(n){const t=e=>String(e).padStart(2,"0");return`${n.getFullYear()}-${t(n.getMonth()+1)}-${t(n.getDate())}`}function P(n,t){const e=p(n);return e.setDate(e.getDate()+t),Y(e)}function m(n,t){return Math.round((p(n).getTime()-p(t).getTime())/864e5)}function K(n,t){return n.filter(e=>e.date===t).sort((e,o)=>e.from===null!=(o.from===null)?e.from===null?-1:1:e.reason<o.reason?-1:e.reason>o.reason?1:0)}function Oe(n,t){return K(n,t).find(e=>e.clinician===null)??null}function xe(n,t){const e=p(n).getDay();return e<1||e>5?!1:Oe(t,n)===null}function D(n){const t=(n%1440+1440)%1440,e=o=>String(o).padStart(2,"0");return`${e(Math.floor(t/60))}:${e(t%60)}`}function R(n,t){return n.find(e=>e.id===t)??n[0]}function je(n,t){return n.start+R(t,n.type).minutes}function f(n,t){return m(n.date,t.date)*1440+n.start-t.minutes}function Se(n){return n!=="cancelled"}function ve(n,t,e){return n.filter(o=>o.clinician===t&&o.date===e&&Se(o.status)).sort((o,a)=>o.start-a.start)}function U(n,t){return n.checkedInAt===null?0:Math.max(0,m(t.date,n.date)*1440+t.minutes-n.checkedInAt)}function Ye(n){return n>ke?"danger":n>ye?"warn":"ok"}function q(n){return n==="checked_in"||n==="roomed"||n==="with_clinician"||n==="ready"}function Ke(n,t){const e={checked_in:[],roomed:[],with_clinician:[],ready:[]};for(const o of n)o.date===t.date&&q(o.status)&&e[o.status].push(o);for(const o of we)e[o].sort((a,r)=>U(r,t)-U(a,t));return e}function De(n){switch(n){case"booked":return"checked_in";case"checked_in":return"roomed";case"roomed":return"with_clinician";case"with_clinician":return"ready";case"ready":return"done";default:return n}}function qe(n,t){return n.filter(e=>e.date===t.date&&e.status==="booked"&&t.minutes-e.start>be).sort((e,o)=>e.start-o.start)}function Ve(n,t){return Math.max(0,t.minutes-n.start)}function Qe(n,t){const e=p(n),o=p(t);let a=o.getFullYear()-e.getFullYear();return(o.getMonth()<e.getMonth()||o.getMonth()===e.getMonth()&&o.getDate()<e.getDate())&&(a-=1),a}function He(n,t,e){const o=n.filter(s=>s.patient===t),a=o.filter(s=>(s.status==="booked"||q(s.status))&&f(s,e)>0).sort((s,l)=>f(s,e)-f(l,e)),r=o.filter(s=>!a.includes(s)).sort((s,l)=>f(l,e)-f(s,e));return{upcoming:a,past:r}}function ze(n,t,e){return n.filter(a=>a.patient===t&&(a.status==="done"||a.status==="ready")).filter(a=>f(a,e)<=0).sort((a,r)=>f(r,e)-f(a,e))[0]??null}function Ie(n,t){return f(n,t)<ge}function Te(n,t){return t.filter(e=>e.charge===n.id).reduce((e,o)=>e+o.amount,0)}function T(n,t){return n.amount-Te(n,t)}function Ge(n,t,e){return n.map(o=>({charge:o,balance:T(o,t),ageDays:m(e.date,o.raised)})).filter(o=>o.balance>0).sort((o,a)=>a.ageDays-o.ageDays||o.charge.id.localeCompare(a.charge.id))}function Xe(n,t){return n.reduce((e,o)=>e+Math.max(0,T(o,t)),0)}function Je(n,t){return n.filter(e=>e.date===t).reduce((e,o)=>e+o.amount,0)}function _e(n){const e=(p(n).getDay()+6)%7;return P(n,-e)}function Ze(n,t){const e=_e(t.date);return n.filter(o=>o.status==="no_show"&&m(o.date,e)>=0&&m(t.date,o.date)>=0)}function Ce(n,t,e){const o=T(n,t);return!Number.isFinite(e)||e<=0?{ok:!1,reason:"nonpositive",max:o}:e>o?{ok:!1,reason:"overpay",max:o}:{ok:!0,amount:e,remaining:o-e}}function en(n,t){const e=(()=>{const a=p(t.date);return Y(new Date(a.getFullYear(),a.getMonth()+1,0))})(),o=[];for(const a of n){if(a.recallWeeks===null||a.status!=="done"&&a.status!=="ready")continue;const r=P(a.date,a.recallWeeks*7),s=m(t.date,r);s<0&&m(r,e)>0||o.push({patient:a.patient,appt:a.id,reason:a.reason,weeks:a.recallWeeks,due:r,overdueDays:s,overdue:s>0})}return o.sort((a,r)=>r.overdueDays-a.overdueDays||a.patient.localeCompare(r.patient))}function nn(n,t,e,o){return t.map(a=>({clinician:a,appts:ve(n,a.id,e),awayFor:K(o,e).find(r=>r.clinician===a.id)?.reason??null}))}function tn(){const n=[];for(let t=S;t<A;t+=he)n.push(t);return n}function on(n){return n>=pe&&n<me}function an(n,t){return t!==n.date||n.minutes<S||n.minutes>A?null:(n.minutes-S)/(A-S)}function rn(n,t){return n.filter(e=>e.date===t.date&&(e.status==="done"||e.status==="ready")).length}const V={booked:"chrome.status.booked",checked_in:"chrome.status.checked_in",roomed:"chrome.status.roomed",with_clinician:"chrome.status.with_clinician",ready:"chrome.status.ready",done:"chrome.status.done",no_show:"chrome.status.no_show",cancelled:"chrome.status.cancelled"};function sn(n){return i(V[n])}function Me(n){return J(n,n)}function w(n){return Z(Math.round(n),"GBP")}function ln(n){return D(n)}function cn(n,t){return`${D(n)} – ${D(t)}`}function un(n){if(n<60)return i("chrome.mins",{count:n},n);const t=Math.floor(n/60),e=n%60;return e===0?i("chrome.hrs",{count:t},t):`${i("chrome.hrs",{count:t},t)} ${i("chrome.mins",{count:e},e)}`}function F(n,t){return new Intl.DateTimeFormat(ee(),t).format(p(n))}function Ae(n){return F(n,{day:"numeric",month:"short"})}function Re(n){return F(n,{day:"numeric",month:"long",year:"numeric"})}function dn(n){return F(n,{weekday:"long",day:"numeric",month:"long",year:"numeric"})}function fn(n,t){const e=m(t,n);return e===0?i("chrome.rel.today"):e===1?i("chrome.rel.yesterday"):e===-1?i("chrome.rel.tomorrow"):e>1&&e<=14?i("chrome.rel.daysAgo",{count:e},e):e<-1&&e>=-14?i("chrome.rel.inDays",{count:-e},-e):Ae(n)}function pn(n){return i("chrome.days",{count:n},n)}function mn(n){return i("waiting.chip",{count:n},n)}function hn(n){const t=n.trim().split(/\s+/).filter(Boolean);return t.length===0?"?":t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function Ee(n){let t=(n||"#0369a1").replace("#","");t.length===3&&(t=t.split("").map(o=>o+o).join(""));const e=Number.parseInt(t,16);return[e>>16&255,e>>8&255,e&255]}function _(n,t){const[e,o,a]=Ee(n);return`rgba(${e},${o},${a},${t})`}function yn(n,t,e="150deg"){const o=t?"radial-gradient(120% 84% at 50% 0%, rgba(255,255,255,.07), transparent 56%)":"radial-gradient(120% 84% at 50% 0%, rgba(255,255,255,.6), transparent 58%)",a=`radial-gradient(58% 46% at 72% 88%, ${_(n,t?.3:.2)}, transparent 72%)`,r=`linear-gradient(${e}, ${_(n,t?.34:.22)}, ${_(n,t?.12:.07)})`;return`${o}, ${a}, ${r}`}const W="clinic-desk-theme",E=d.visitTypes(),Q=d.clinicians(),I=d.patients();d.now();const Pe=te,Fe=ne;function $e(n){return Q.find(t=>t.id===n)??null}function H(n){return I.find(t=>t.id===n)??null}function y(n,t){return H(n)?.name??t??n}function C(n){return{type:"routine",clinician:"any",day:n.date,start:null,slotClinician:null,returning:!0,mobile:"",dob:"",name:"",email:"",matched:null,lookupMissed:!1,reason:"",deskNote:""}}let x=0,O=0;function j(n){return n==="clinic"?"daysheet":"find"}const v=le((n,t)=>({view:"find",persona:"patient",theme:"light",navOpen:!1,dockOpen:!0,overlayOpen:!1,now:d.now(),appts:d.appointments(),charges:d.charges(),payments:d.payments(),closures:d.closures(),walkIns:{},registry:M([]),enabled:new Set,credentialled:new Set,addOnSettings:{},draft:C(d.now()),confirmedRef:null,confirmedPaid:!1,refSeq:$,lookupMobile:"",lookupDob:"",lookedUp:null,lookupMissed:!1,sheetDay:d.now().date,patientQuery:"",openPatientId:null,prefill:null,panelRef:null,cancelRef:null,payChargeId:null,cardFor:null,toasts:[],go:e=>{n({view:e,navOpen:!1,overlayOpen:!1,panelRef:null,openPatientId:null}),window.scrollTo({top:0,behavior:"auto"})},setPersona:e=>{n({persona:e,view:j(e),navOpen:!1,panelRef:null,overlayOpen:!1}),window.scrollTo({top:0,behavior:"auto"})},initTheme:()=>{let e=null;try{e=localStorage.getItem(W)}catch{}const o=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-color-scheme: dark)").matches,a=e==="dark"||e==="light"?e:o?"dark":"light";document.documentElement.setAttribute("data-theme",a),n({theme:a})},setHostTheme:e=>{t().theme!==e&&(document.documentElement.setAttribute("data-theme",e),n({theme:e}))},toggleTheme:()=>{const e=t().theme==="dark"?"light":"dark";document.documentElement.setAttribute("data-theme",e);try{localStorage.setItem(W,e)}catch{}n({theme:e})},setNavOpen:e=>n({navOpen:e,overlayOpen:e}),setDockOpen:e=>n({dockOpen:e}),advanceClock:()=>{const{now:e}=t(),o=e.minutes+15,a=o>=1440?{date:P(e.date,1),minutes:o-1440}:{date:e.date,minutes:o};n({now:a}),t().toast(i("chrome.toast.clock",{time:D(a.minutes)}),"info")},setDraft:e=>{const o=t().draft,a=e.type!==void 0||e.clinician!==void 0||e.day!==void 0;n({draft:{...o,...e,...a?{start:null,slotClinician:null}:{}}})},pickSlot:(e,o)=>n({draft:{...t().draft,start:o,slotClinician:e}}),lookupDraft:()=>{const{draft:e}=t(),o=e.mobile.replace(/\D/g,""),a=o.length>0&&e.dob.length>0?I.find(r=>r.mobile.replace(/\D/g,"")===o&&r.dob===e.dob):void 0;n({draft:{...e,matched:a?.id??null,lookupMissed:a===void 0}})},fillDemoLookup:()=>n({draft:{...t().draft,mobile:g.mobile,dob:g.dob,matched:null,lookupMissed:!1}}),book:()=>{const{draft:e,appts:o,refSeq:a,walkIns:r}=t();if(e.start===null||e.slotClinician===null)return;const s=`RH-${a}`,l=e.matched??`walkin-${a}`,c=e.reason.trim(),u={id:s,patient:l,clinician:e.slotClinician,type:e.type,date:e.day,start:e.start,status:"booked",checkedInAt:null,reason:c.length>0?c:R(E,e.type).label,deskNote:e.deskNote.trim().length>0?e.deskNote.trim():null,recallWeeks:null};n({appts:[...o,u],refSeq:a+1,confirmedRef:s,confirmedPaid:!1,view:"confirm",walkIns:e.matched===null&&e.name.trim().length>0?{...r,[l]:e.name.trim()}:r,lookupMobile:e.mobile,lookupDob:e.dob,lookedUp:e.matched,lookupMissed:!1}),window.scrollTo({top:0,behavior:"auto"}),t().toast(i("chrome.toast.booked",{ref:s}),"pos")},setLookup:e=>n({lookupMobile:e.mobile??t().lookupMobile,lookupDob:e.dob??t().lookupDob,lookupMissed:!1}),runLookup:()=>{const{lookupMobile:e,lookupDob:o}=t(),a=e.replace(/\D/g,""),r=a.length>0&&o.length>0?I.find(s=>s.mobile.replace(/\D/g,"")===a&&s.dob===o):void 0;n({lookedUp:r?.id??null,lookupMissed:r===void 0})},fillDemoMyVisits:()=>n({lookupMobile:g.mobile,lookupDob:g.dob,lookupMissed:!1}),clearLookup:()=>n({lookedUp:null,lookupMobile:"",lookupDob:"",lookupMissed:!1}),setSheetDay:e=>n({sheetDay:e,panelRef:null,overlayOpen:!1}),setPatientQuery:e=>n({patientQuery:e}),openPatient:e=>{n({openPatientId:e,view:"patients",navOpen:!1,panelRef:null,overlayOpen:!1}),window.scrollTo({top:0,behavior:"auto"})},closePatient:()=>{n({openPatientId:null}),window.scrollTo({top:0,behavior:"auto"})},bookThemIn:(e,o)=>{n({prefill:{patient:e,reason:o},view:"daysheet",sheetDay:t().now.date,navOpen:!1,overlayOpen:!1}),window.scrollTo({top:0,behavior:"auto"}),t().toast(i("chrome.toast.prefilled",{name:y(e,t().walkIns[e]??null)}),"info")},clearPrefill:()=>n({prefill:null}),registerAddOns:e=>{const o={...fe(e),...t().addOnSettings};n({registry:M(e),addOnSettings:o}),B(e,o)},toggleAddOn:e=>{t().enabled.has(e)?t().disconnectAddOn(e):t().connectAddOn(e)},connectAddOn:e=>n(o=>{const a=new Set(o.enabled);return a.add(e),{enabled:a}}),disconnectAddOn:e=>n(o=>{const a=new Set(o.enabled);a.delete(e);const r=new Set(o.credentialled);return r.delete(e),{enabled:a,credentialled:r}}),patchAddOnSettings:(e,o)=>{const a={...t().addOnSettings,[e]:{...t().addOnSettings[e]??{},...o}};n({addOnSettings:a}),B(t().registry.all,a)},addClosure:(e,o,a)=>{const r=o.trim();return e.length===0||r.length===0||t().closures.some(s=>s.date===e&&s.clinician===a)?!1:(n({closures:[...t().closures,{date:e,reason:r,clinician:a,from:null}]}),t().toast(i("chrome.toast.closureAdded",{date:Re(e)}),"pos"),!0)},removeClosure:(e,o)=>n(a=>({closures:a.closures.filter(r=>!(r.from===null&&r.date===e&&r.reason===o))})),openPanel:e=>n({panelRef:e,overlayOpen:e!==null}),advanceVisit:e=>{const{appts:o,now:a}=t(),r=o.find(c=>c.id===e);if(!r)return;const s=De(r.status);if(s===r.status)return;n({appts:o.map(c=>c.id===e?{...c,status:s,checkedInAt:s==="checked_in"?a.minutes:c.checkedInAt}:c)});const l=y(r.patient,t().walkIns[r.patient]??null);t().toast(s==="done"?i("chrome.toast.left",{name:l}):i("chrome.toast.advanced",{name:l,status:i(V[s])}),"pos")},checkIn:e=>{const{appts:o,now:a}=t(),r=o.find(s=>s.id===e);r&&(n({appts:o.map(s=>s.id===e?{...s,status:"checked_in",checkedInAt:a.minutes}:s),panelRef:null,overlayOpen:!1}),t().toast(i("chrome.toast.checkedIn",{name:y(r.patient,t().walkIns[r.patient]??null)}),"pos"))},markNoShow:e=>{const{appts:o}=t(),a=o.find(r=>r.id===e);a&&(n({appts:o.map(r=>r.id===e?{...r,status:"no_show"}:r),panelRef:null,overlayOpen:!1}),t().toast(i("chrome.toast.noShow",{name:y(a.patient,t().walkIns[a.patient]??null)}),"danger"))},askCancel:e=>n({cancelRef:e,overlayOpen:e!==null}),confirmCancel:()=>{const{appts:e,cancelRef:o,now:a}=t();if(o===null)return;const r=e.find(l=>l.id===o);if(!r)return;const s=Ie(r,a);n({appts:e.map(l=>l.id===o?{...l,status:"cancelled",lateCancel:s}:l),cancelRef:null,panelRef:null,overlayOpen:!1}),t().toast(s?i("chrome.toast.lateCancelled",{ref:o}):i("chrome.toast.cancelled",{ref:o}),s?"danger":"info")},reschedule:e=>{const{appts:o,now:a}=t(),r=o.find(s=>s.id===e);r&&(n({draft:{...C(a),type:r.type,clinician:r.clinician,day:a.date,returning:!0,matched:r.patient,reason:Me(r.reason)},view:"find",overlayOpen:!1}),window.scrollTo({top:0,behavior:"auto"}),t().toast(i("chrome.toast.reschedule",{name:y(r.patient,t().walkIns[r.patient]??null)}),"info"))},openCard:e=>n({cardFor:e,overlayOpen:e!==null}),payCard:()=>{const{cardFor:e,charges:o,payments:a,confirmedRef:r,appts:s}=t();if(e===null)return;if(e==="booking"){const u=s.find(h=>h.id===r),k=u?R(E,u.type).fee:0;n({cardFor:null,overlayOpen:!1,confirmedPaid:!0}),t().toast(i("chrome.toast.paid",{amount:w(k)}),"pos");return}const l=o.find(u=>u.id===e);if(!l)return n({cardFor:null,overlayOpen:!1});const c=T(l,a);O+=1,n({payments:[...a,{id:`new-p${O}`,charge:l.id,amount:c,method:"card",date:t().now.date}],cardFor:null,overlayOpen:!1}),t().toast(i("chrome.toast.paid",{amount:w(c)}),"pos")},payAtDesk:()=>{n({confirmedPaid:!1}),t().toast(i("chrome.toast.atdesk"),"info")},openPayPopover:e=>n({payChargeId:e}),recordPayment:(e,o,a)=>{const{charges:r,payments:s,now:l}=t(),c=r.find(k=>k.id===e);if(!c)return;const u=Ce(c,s,o);if(!u.ok){t().toast(u.reason==="overpay"?i("pay.overpay",{amount:w(u.max)}):i("pay.nonpositive"),"danger");return}O+=1,n({payments:[...s,{id:`new-p${O}`,charge:e,amount:u.amount,method:a,date:l.date}],payChargeId:null}),t().toast(i("chrome.toast.payment",{amount:w(u.amount),name:y(c.patient,t().walkIns[c.patient]??null)}),"pos")},toast:(e,o="info")=>{x+=1;const a=x;n({toasts:[...t().toasts,{id:a,text:e,tone:o}]}),window.setTimeout(()=>t().dismissToast(a),3600)},dismissToast:e=>n({toasts:t().toasts.filter(o=>o.id!==e)}),escape:()=>{const e=t();if(e.cardFor!==null)return n({cardFor:null,overlayOpen:!1});if(e.cancelRef!==null)return n({cancelRef:null,overlayOpen:!1});if(e.payChargeId!==null)return n({payChargeId:null});if(e.panelRef!==null)return n({panelRef:null,overlayOpen:!1});if(e.navOpen)return n({navOpen:!1,overlayOpen:!1})},reset:()=>{const e=d.now();n({now:e,appts:d.appointments(),charges:d.charges(),payments:d.payments(),closures:d.closures(),walkIns:{},draft:C(e),confirmedRef:null,confirmedPaid:!1,refSeq:$,lookupMobile:"",lookupDob:"",lookedUp:null,lookupMissed:!1,sheetDay:e.date,patientQuery:"",openPatientId:null,prefill:null,panelRef:null,cancelRef:null,payChargeId:null,cardFor:null,overlayOpen:!1,view:j(t().persona)}),window.scrollTo({top:0,behavior:"auto"}),t().toast(i("chrome.toast.reset"),"info")}}));function Ne(){const n=v(o=>o.closures),t=v(o=>o.enabled),e=v(o=>o.addOnSettings);return X.useMemo(()=>ue(n,ce(ie,t,e)),[n,t,e])}const kn=Object.freeze(Object.defineProperty({__proto__:null,CLINICIANS:Q,DESK_STAFF:Fe,PATIENTS:I,PRACTICE_ADDRESS:Pe,VISIT_TYPES:E,clinicianById:$e,patientById:H,patientName:y,useClosures:Ne,useStore:v},Symbol.toStringTag,{value:"Module"}));export{Ye as $,fn as A,Ke as B,Q as C,Fe as D,qe as E,Ve as F,Ne as G,Oe as H,nn as I,tn as J,an as K,dn as L,P as M,rn as N,xe as O,Pe as P,we as Q,on as R,S,he as T,Ae as U,E as V,H as W,He as X,T as Y,U as Z,mn as _,sn as a,We as a0,ie as a1,kn as a2,q as b,$e as c,un as d,je as e,Ie as f,Re as g,ln as h,hn as i,I as j,Qe as k,Me as l,w as m,De as n,Ge as o,y as p,Je as q,en as r,cn as s,yn as t,v as u,R as v,Xe as w,Ze as x,pn as y,ze as z};
@@ -0,0 +1 @@
1
+ const e="clinic",i=[{id:"daysheet",path:"daysheet",view:"daysheet",side:"staff",icon:"calendar-days",labelKey:"chrome.nav.daysheet"},{id:"waiting",path:"waiting",view:"waiting",side:"staff",icon:"users",labelKey:"chrome.nav.waiting"},{id:"patients",path:"patients",view:"patients",side:"staff",icon:"stethoscope",labelKey:"chrome.nav.patients"},{id:"accounts",path:"accounts",view:"accounts",side:"staff",icon:"receipt-text",labelKey:"chrome.nav.accounts"},{id:"recalls",path:"recalls",view:"recalls",side:"staff",icon:"calendar-plus",labelKey:"chrome.nav.recalls"},{id:"settings",path:"settings",view:"settings",side:"staff",icon:"sliders-horizontal",labelKey:"chrome.nav.settings"},{id:"book",path:"",view:"find",side:"customer",labelKey:"chrome.nav.book"},{id:"myvisits",path:"my-visits",view:"myvisits",side:"customer",labelKey:"chrome.nav.myvisits"}];export{e as APP_KEY,i as SURFACE_NAV};
@@ -0,0 +1 @@
1
+ function f(n,e){const t=e.endsWith("/")?e:`${e}/`;if(t!=="/"&&(n===t.slice(0,-1)||n.startsWith(t)))return t;const r=h(t,n);return r!==null?r:"/"}function h(n,e){const t=n.split("/").filter(l=>l!=="");if(t.length!==3||t[0]!=="apps")return null;const[,r,s]=t,a=e.split("/").filter(l=>l!=="");if(a.length<4)return null;const[c,u,o,i]=a;return c!=="apps"||u!==r||i!==s||o===void 0||o==="staff"||o==="customer"?null:`/apps/${r}/${o}/${s}/`}function p(n,e){return n.startsWith(e)?n.slice(e.length).replace(/^\/+|\/+$/g,""):""}function d(n,e){let t=null;for(const r of n)r.path!==e&&!e.startsWith(`${r.path}/`)||(t===null||r.path.length>t.path.length)&&(t=r);return t}function w(n,e){return n.find(t=>t.view===e)?.path??null}function $(n){const e=n.nav.filter(i=>n.side===null||i.side===n.side),t=f(window.location.pathname,"/apps/clinic/staff/");let r=null,s=!0;const a=i=>{r=i;const l=`${t}${i}${window.location.search}`;l!==`${window.location.pathname}${window.location.search}`&&window.history.replaceState(window.history.state,"",l)},c=i=>{const l=d(e,i);l!==null&&(a(l.path),n.go(l.view))},u=()=>{if(!s)return;const i=w(e,n.current());i===null||i===r||(a(i),n.onPath?.(i))},o=p(window.location.pathname,t);return c(o),{applyPath:c,reflect:u,base:t,path:()=>r??o,detach:()=>{s=!1}}}export{$ as attachUrlSync,d as entryForPath,h as instanceBase,w as pathForView,p as pathUnderBase,f as surfaceBase};
@@ -0,0 +1,18 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
2
+ <rect width="32" height="32" rx="8" fill="#0369a1" />
3
+ <path
4
+ d="M9 12.5h14M9 12.5v10.5a1.5 1.5 0 0 0 1.5 1.5h11a1.5 1.5 0 0 0 1.5-1.5V12.5M12 9.5v3M20 9.5v3"
5
+ fill="none"
6
+ stroke="#ffffff"
7
+ stroke-width="2"
8
+ stroke-linecap="round"
9
+ stroke-linejoin="round"
10
+ />
11
+ <path
12
+ d="M16 15.5v5M13.5 18h5"
13
+ fill="none"
14
+ stroke="#ffffff"
15
+ stroke-width="2"
16
+ stroke-linecap="round"
17
+ />
18
+ </svg>
@@ -0,0 +1,20 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/apps/clinic/staff/favicon.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <meta
8
+ name="description"
9
+ content="Clinic Desk — a demo appointment desk shipped with Adminium."
10
+ />
11
+ <title>Clinic Desk</title>
12
+ <script type="module" crossorigin src="/apps/clinic/staff/assets/index-CqPaHjl7.js"></script>
13
+ <link rel="modulepreload" crossorigin href="/apps/clinic/staff/assets/icons-BU1Aax3i.js">
14
+ <link rel="modulepreload" crossorigin href="/apps/clinic/staff/assets/react-3MWIyadV.js">
15
+ <link rel="stylesheet" crossorigin href="/apps/clinic/staff/assets/index-DXzmd8KH.css">
16
+ </head>
17
+ <body>
18
+ <div id="root"></div>
19
+ </body>
20
+ </html>
@@ -0,0 +1,107 @@
1
+ {
2
+ "v": 1,
3
+ "appKey": "clinic",
4
+ "side": "staff",
5
+ "appLabels": {
6
+ "en-US": "Rowan Health",
7
+ "de-DE": "Rowan Health",
8
+ "fr-FR": "Rowan Health",
9
+ "cs-CZ": "Rowan Health",
10
+ "da-DK": "Rowan Health",
11
+ "zh-CN": "Rowan Health",
12
+ "zh-TW": "Rowan Health",
13
+ "ar-EG": "Rowan Health"
14
+ },
15
+ "nav": [
16
+ {
17
+ "id": "daysheet",
18
+ "path": "daysheet",
19
+ "icon": "calendar-days",
20
+ "labels": {
21
+ "en-US": "Day sheet",
22
+ "de-DE": "Tagesliste",
23
+ "fr-FR": "Feuille du jour",
24
+ "cs-CZ": "Denní přehled",
25
+ "da-DK": "Dagsoversigt",
26
+ "zh-CN": "今日日程",
27
+ "zh-TW": "今日行程",
28
+ "ar-EG": "جدول اليوم"
29
+ }
30
+ },
31
+ {
32
+ "id": "waiting",
33
+ "path": "waiting",
34
+ "icon": "users",
35
+ "labels": {
36
+ "en-US": "Waiting room",
37
+ "de-DE": "Wartezimmer",
38
+ "fr-FR": "Salle d’attente",
39
+ "cs-CZ": "Čekárna",
40
+ "da-DK": "Venteværelse",
41
+ "zh-CN": "候诊区",
42
+ "zh-TW": "候診區",
43
+ "ar-EG": "غرفة الانتظار"
44
+ }
45
+ },
46
+ {
47
+ "id": "patients",
48
+ "path": "patients",
49
+ "icon": "stethoscope",
50
+ "labels": {
51
+ "en-US": "Patients",
52
+ "de-DE": "Patienten",
53
+ "fr-FR": "Patients",
54
+ "cs-CZ": "Pacienti",
55
+ "da-DK": "Patienter",
56
+ "zh-CN": "患者",
57
+ "zh-TW": "病患",
58
+ "ar-EG": "المرضى"
59
+ }
60
+ },
61
+ {
62
+ "id": "accounts",
63
+ "path": "accounts",
64
+ "icon": "receipt-text",
65
+ "labels": {
66
+ "en-US": "Accounts",
67
+ "de-DE": "Konten",
68
+ "fr-FR": "Comptes",
69
+ "cs-CZ": "Účty",
70
+ "da-DK": "Konti",
71
+ "zh-CN": "账户",
72
+ "zh-TW": "帳戶",
73
+ "ar-EG": "الحسابات"
74
+ }
75
+ },
76
+ {
77
+ "id": "recalls",
78
+ "path": "recalls",
79
+ "icon": "calendar-plus",
80
+ "labels": {
81
+ "en-US": "Recalls",
82
+ "de-DE": "Kontrolltermine",
83
+ "fr-FR": "Rappels",
84
+ "cs-CZ": "Kontroly",
85
+ "da-DK": "Indkaldelser",
86
+ "zh-CN": "复诊提醒",
87
+ "zh-TW": "回診提醒",
88
+ "ar-EG": "المتابعات"
89
+ }
90
+ },
91
+ {
92
+ "id": "settings",
93
+ "path": "settings",
94
+ "icon": "sliders-horizontal",
95
+ "labels": {
96
+ "en-US": "Practice settings",
97
+ "de-DE": "Praxiseinstellungen",
98
+ "fr-FR": "Réglages du cabinet",
99
+ "cs-CZ": "Nastavení ordinace",
100
+ "da-DK": "Klinikkens indstillinger",
101
+ "zh-CN": "诊所设置",
102
+ "zh-TW": "診所設定",
103
+ "ar-EG": "إعدادات العيادة"
104
+ }
105
+ }
106
+ ]
107
+ }