bonnetid-ui 0.0.0 → 0.0.1

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 (105) hide show
  1. package/dist/App.d.ts +1 -1
  2. package/dist/app/assets/{index-B8PCs-AY.css → index-BChLUg01.css} +1 -1
  3. package/dist/app/assets/index-BeH2CXvV.js +1169 -0
  4. package/dist/app/assets/{index.es-BE6LkVtq.js → index.es-Bwf93iys.js} +6 -6
  5. package/dist/app/assets/purify.es-CPrKKeqe.js +3 -0
  6. package/dist/app/index.html +2 -2
  7. package/dist/app/manifest.webmanifest +1 -1
  8. package/dist/app/sw.js +1 -1
  9. package/dist/app/workbox-9c191d2f.js +1 -0
  10. package/dist/components/lobby1/AnnouncementBar.d.ts +1 -1
  11. package/dist/components/lobby1/Carousel.d.ts +1 -1
  12. package/dist/components/lobby1/SmallPrayerTable.d.ts +1 -1
  13. package/dist/components/lobby2/PrayerBoxes.d.ts +1 -1
  14. package/dist/components/lobby3/Countdown.d.ts +4 -3
  15. package/dist/components/lobby3/LobbyTimetable.d.ts +1 -1
  16. package/dist/components/miscellaneous/ButtonSpin.d.ts +1 -1
  17. package/dist/components/miscellaneous/DownloadModal.d.ts +1 -1
  18. package/dist/components/miscellaneous/ErrorFallback.d.ts +2 -2
  19. package/dist/components/miscellaneous/Spin.d.ts +1 -1
  20. package/dist/components/ph1/Instruction.d.ts +1 -1
  21. package/dist/components/ph1/MasjidLogo.d.ts +1 -1
  22. package/dist/components/ph1/MasjidPrayerClock.d.ts +5 -3
  23. package/dist/components/ph1/PrayerClockPH1.d.ts +2 -1
  24. package/dist/components/ph1/TimeTablePH1.d.ts +1 -1
  25. package/dist/components/ph2/PrayerTimeBox.d.ts +1 -1
  26. package/dist/components/ph3/CountdownVisual.d.ts +4 -3
  27. package/dist/components/ph3/DateInfo.d.ts +1 -1
  28. package/dist/components/ph3/DigitalClock.d.ts +1 -1
  29. package/dist/components/ud/DateSelector.d.ts +1 -1
  30. package/dist/components/ud/Header.d.ts +2 -1
  31. package/dist/components/ud/HijriCalendar.d.ts +1 -1
  32. package/dist/components/ud/MasjidSelect.d.ts +1 -1
  33. package/dist/components/ud/PrayerTimetable.d.ts +1 -1
  34. package/dist/components/ud/Time.d.ts +1 -1
  35. package/dist/config/arabic-prayer-names.d.ts +3 -0
  36. package/dist/config/instruction-show-seconds.d.ts +1 -0
  37. package/dist/config/iqamah-window-duration.d.ts +1 -0
  38. package/dist/context/GlobalLanguageProvider.d.ts +1 -0
  39. package/dist/context/MosqueLanguageContext.d.ts +11 -0
  40. package/dist/context/ThemeContext.d.ts +1 -1
  41. package/dist/context/UDContext.d.ts +3 -1
  42. package/dist/context/UDProviderWrapper.d.ts +1 -1
  43. package/dist/database-services/MasjidService.d.ts +1 -1
  44. package/dist/database-services/PrayerTimesService.d.ts +3 -1
  45. package/dist/hooks/useIqamahCheck.d.ts +2 -1
  46. package/dist/hooks/useMasjidInfo.d.ts +2 -0
  47. package/dist/hooks/usePrayerTimes.d.ts +2 -1
  48. package/dist/hooks/usePrayerTimesUD.d.ts +4 -2
  49. package/dist/index.d.ts +1 -25
  50. package/dist/layout-components/lobby1/AnnouncementPart.d.ts +4 -3
  51. package/dist/layout-components/lobby1/ClockAndTime.d.ts +4 -3
  52. package/dist/layout-components/lobby1/TablePart.d.ts +4 -3
  53. package/dist/layout-components/lobby2/PrayerPart.d.ts +4 -3
  54. package/dist/layout-components/lobby3/TimePart.d.ts +1 -1
  55. package/dist/layout-components/ph1/ClockPart.d.ts +5 -3
  56. package/dist/layout-components/ph1/TimeTablePart.d.ts +1 -1
  57. package/dist/layout-components/ph2/ClockAndPrayers.d.ts +4 -3
  58. package/dist/layout-components/ph2/CountdownBox.d.ts +4 -3
  59. package/dist/layout-components/ph2/ExtraInfo.d.ts +1 -1
  60. package/dist/layout-components/ph2/TimeAndDate.d.ts +1 -1
  61. package/dist/layout-components/ph3/DigitalClockPart.d.ts +5 -4
  62. package/dist/layout-components/ph3/TimeTable.d.ts +1 -1
  63. package/dist/lib/index.css +1 -1
  64. package/dist/lib/manifest.webmanifest +1 -0
  65. package/dist/lib/my-ui-library.es.js +24208 -39
  66. package/dist/lib/my-ui-library.umd.js +53 -324
  67. package/dist/lib/registerSW.js +1 -0
  68. package/dist/lib/sw.js +1 -0
  69. package/dist/lib/workbox-9c191d2f.js +1 -0
  70. package/dist/pages/IqamahScreen.d.ts +1 -1
  71. package/dist/pages/Lobby1.d.ts +1 -1
  72. package/dist/pages/Lobby2.d.ts +1 -1
  73. package/dist/pages/Lobby3.d.ts +1 -1
  74. package/dist/pages/NotFound.d.ts +1 -1
  75. package/dist/pages/PH1.d.ts +1 -1
  76. package/dist/pages/PH2.d.ts +1 -1
  77. package/dist/pages/PH3.d.ts +4 -1
  78. package/dist/pages/ud/DownloadTimetable.d.ts +1 -1
  79. package/dist/pages/ud/Events.d.ts +1 -1
  80. package/dist/pages/ud/UD1.d.ts +1 -1
  81. package/dist/pages/ud/UD2.d.ts +1 -1
  82. package/dist/pages/ud/UD3.d.ts +1 -1
  83. package/dist/pages/ud/ViewTimetable.d.ts +1 -1
  84. package/dist/renderer/lobby/LobbyLayoutRenderer.d.ts +2 -1
  85. package/dist/renderer/lobby/LobbyRenderer.d.ts +1 -1
  86. package/dist/renderer/prayer-hall/PrayerHallLayoutRenderer.d.ts +2 -1
  87. package/dist/renderer/prayer-hall/PrayerHallRenderer.d.ts +1 -1
  88. package/dist/renderer/user-display/UDLayoutRenderer.d.ts +2 -1
  89. package/dist/renderer/user-display/UDRenderer.d.ts +1 -1
  90. package/dist/routes/AppRoutes.d.ts +1 -1
  91. package/dist/types/types.d.ts +6 -0
  92. package/dist/utils/CustomInput.d.ts +1 -1
  93. package/dist/utils/countdown.d.ts +8 -2
  94. package/dist/utils/idb/prayerTimesDB.d.ts +2 -1
  95. package/dist/utils/idb/udPrayerTimesDB.d.ts +2 -1
  96. package/dist/utils/prayertimeHelpers.d.ts +4 -0
  97. package/dist/utils/timeHelpers.d.ts +2 -0
  98. package/package.json +3 -1
  99. package/dist/app/assets/index-CQIIfC-Z.js +0 -345
  100. package/dist/app/assets/purify.es-B9ZVCkUG.js +0 -2
  101. package/dist/app/workbox-1ef09536.js +0 -1
  102. package/dist/lib/html2canvas.esm-dgT_1dIT.js +0 -4871
  103. package/dist/lib/index-BL2PYeMT.js +0 -32882
  104. package/dist/lib/index.es-DFW-PnlO.js +0 -6656
  105. package/dist/lib/purify.es-BpFm6ZGf.js +0 -553
@@ -0,0 +1,3 @@
1
+ /*! @license DOMPurify 3.4.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.10/LICENSE */function we(n,o){(o==null||o>n.length)&&(o=n.length);for(var s=0,l=Array(o);s<o;s++)l[s]=n[s];return l}function On(n){if(Array.isArray(n))return n}function Rn(n,o){var s=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(s!=null){var l,u,m,R,rt=[],w=!0,it=!1;try{if(m=(s=s.call(n)).next,o!==0)for(;!(w=(l=m.call(s)).done)&&(rt.push(l.value),rt.length!==o);w=!0);}catch(It){it=!0,u=It}finally{try{if(!w&&s.return!=null&&(R=s.return(),Object(R)!==R))return}finally{if(it)throw u}}return rt}}function Nn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function In(n,o){return On(n)||Rn(n,o)||Dn(n,o)||Nn()}function Dn(n,o){if(n){if(typeof n=="string")return we(n,o);var s={}.toString.call(n).slice(8,-1);return s==="Object"&&n.constructor&&(s=n.constructor.name),s==="Map"||s==="Set"?Array.from(n):s==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?we(n,o):void 0}}const Ye=Object.entries,Me=Object.setPrototypeOf,Ln=Object.isFrozen,wn=Object.getPrototypeOf,Mn=Object.getOwnPropertyDescriptor;let b=Object.freeze,O=Object.seal,ot=Object.create,je=typeof Reflect<"u"&&Reflect,Qt=je.apply,te=je.construct;b||(b=function(o){return o});O||(O=function(o){return o});Qt||(Qt=function(o,s){for(var l=arguments.length,u=new Array(l>2?l-2:0),m=2;m<l;m++)u[m-2]=arguments[m];return o.apply(s,u)});te||(te=function(o){for(var s=arguments.length,l=new Array(s>1?s-1:0),u=1;u<s;u++)l[u-1]=arguments[u];return new o(...l)});const mt=E(Array.prototype.forEach),Cn=E(Array.prototype.lastIndexOf),Ce=E(Array.prototype.pop),nt=E(Array.prototype.push),Pn=E(Array.prototype.splice),Y=Array.isArray,_t=E(String.prototype.toLowerCase),Vt=E(String.prototype.toString),Pe=E(String.prototype.match),dt=E(String.prototype.replace),xe=E(String.prototype.indexOf),xn=E(String.prototype.trim),kn=E(Number.prototype.toString),vn=E(Boolean.prototype.toString),ke=typeof BigInt>"u"?null:E(BigInt.prototype.toString),ve=typeof Symbol>"u"?null:E(Symbol.prototype.toString),D=E(Object.prototype.hasOwnProperty),Tt=E(Object.prototype.toString),S=E(RegExp.prototype.test),q=Un(TypeError);function E(n){return function(o){o instanceof RegExp&&(o.lastIndex=0);for(var s=arguments.length,l=new Array(s>1?s-1:0),u=1;u<s;u++)l[u-1]=arguments[u];return Qt(n,o,l)}}function Un(n){return function(){for(var o=arguments.length,s=new Array(o),l=0;l<o;l++)s[l]=arguments[l];return te(n,s)}}function f(n,o){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_t;if(Me&&Me(n,null),!Y(o))return n;let l=o.length;for(;l--;){let u=o[l];if(typeof u=="string"){const m=s(u);m!==u&&(Ln(o)||(o[l]=m),u=m)}n[u]=!0}return n}function Fn(n){for(let o=0;o<n.length;o++)D(n,o)||(n[o]=null);return n}function I(n){const o=ot(null);for(const l of Ye(n)){var s=In(l,2);const u=s[0],m=s[1];D(n,u)&&(Y(m)?o[u]=Fn(m):m&&typeof m=="object"&&m.constructor===Object?o[u]=I(m):o[u]=m)}return o}function zn(n){switch(typeof n){case"string":return n;case"number":return kn(n);case"boolean":return vn(n);case"bigint":return ke?ke(n):"0";case"symbol":return ve?ve(n):"Symbol()";case"undefined":return Tt(n);case"function":case"object":{if(n===null)return Tt(n);const o=n,s=U(o,"toString");if(typeof s=="function"){const l=s(o);return typeof l=="string"?l:Tt(l)}return Tt(n)}default:return Tt(n)}}function U(n,o){for(;n!==null;){const l=Mn(n,o);if(l){if(l.get)return E(l.get);if(typeof l.value=="function")return E(l.value)}n=wn(n)}function s(){return null}return s}function Hn(n){try{return S(n,""),!0}catch{return!1}}const Ue=b(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),qt=b(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Kt=b(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Gn=b(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Zt=b(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Bn=b(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Fe=b(["#text"]),ze=b(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Jt=b(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),He=b(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Nt=b(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Wn=O(/{{[\w\W]*|^[\w\W]*}}/g),Yn=O(/<%[\w\W]*|^[\w\W]*%>/g),jn=O(/\${[\w\W]*/g),$n=O(/^data-[\-\w.\u00B7-\uFFFF]+$/),Xn=O(/^aria-[\-\w]+$/),Ge=O(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Vn=O(/^(?:\w+script|data):/i),qn=O(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Kn=O(/^html$/i),Zn=O(/^[a-z][.\w]*(-[.\w]+)+$/i),Be=O(/<[/\w!]/g),Jn=O(/<[/\w]/g),Qn=O(/<\/no(script|embed|frames)/i),to=O(/\/>/i),v={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},eo=function(){return typeof window>"u"?null:window},no=function(o,s){if(typeof o!="object"||typeof o.createPolicy!="function")return null;let l=null;const u="data-tt-policy-suffix";s&&s.hasAttribute(u)&&(l=s.getAttribute(u));const m="dompurify"+(l?"#"+l:"");try{return o.createPolicy(m,{createHTML(R){return R},createScriptURL(R){return R}})}catch{return console.warn("TrustedTypes policy "+m+" could not be created."),null}},We=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},W=function(o,s,l,u){return D(o,s)&&Y(o[s])?f(u.base?I(u.base):{},o[s],u.transform):l};function $e(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:eo();const o=i=>$e(i);if(o.version="3.4.10",o.removed=[],!n||!n.document||n.document.nodeType!==v.document||!n.Element)return o.isSupported=!1,o;let s=n.document;const l=s,u=l.currentScript;n.DocumentFragment;const m=n.HTMLTemplateElement,R=n.Node,rt=n.Element,w=n.NodeFilter,it=n.NamedNodeMap;it===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;const It=n.DOMParser,ht=n.trustedTypes,j=rt.prototype,Xe=U(j,"cloneNode"),ee=U(j,"remove"),Ve=U(j,"nextSibling"),at=U(j,"childNodes"),st=U(j,"parentNode"),ne=U(j,"shadowRoot"),Dt=U(j,"attributes"),M=R&&R.prototype?U(R.prototype,"nodeType"):null,z=R&&R.prototype?U(R.prototype,"nodeName"):null;if(typeof m=="function"){const i=s.createElement("template");i.content&&i.content.ownerDocument&&(s=i.content.ownerDocument)}let L,$="",Lt,oe=!1,lt=0;const re=function(){if(lt>0)throw q('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},K=function(t){re(),lt++;try{return L.createHTML(t)}finally{lt--}},qe=function(t){re(),lt++;try{return L.createScriptURL(t)}finally{lt--}},Ke=function(){return oe||(Lt=no(ht,u),oe=!0),Lt},gt=s,wt=gt.implementation,ie=gt.createNodeIterator,Ze=gt.createDocumentFragment,Je=gt.getElementsByTagName,Qe=l.importNode;let A=We();o.isSupported=typeof Ye=="function"&&typeof st=="function"&&wt&&wt.createHTMLDocument!==void 0;const tn=Wn,en=Yn,nn=jn,on=$n,rn=Xn,an=Vn,ae=qn,sn=Zn;let se=Ge,_=null;const Mt=f({},[...Ue,...qt,...Kt,...Zt,...Fe]);let h=null;const Ct=f({},[...ze,...Jt,...He,...Nt]);let d=Object.seal(ot(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ct=null,le=null;const H=Object.seal(ot(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let ce=!0,Pt=!0,ue=!1,fe=!0,G=!1,ut=!0,X=!1,xt=!1,kt=!1,Z=!1,Et=!1,At=!1,pe=!0,me=!1;const de="user-content-";let vt=!0,Ut=!1,J={},x=null;const Ft=f({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Te=null;const _e=f({},["audio","video","img","source","image","track"]);let zt=null;const he=f({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),yt="http://www.w3.org/1998/Math/MathML",St="http://www.w3.org/2000/svg",k="http://www.w3.org/1999/xhtml";let Q=k,Ht=!1,Gt=null;const ln=f({},[yt,St,k],Vt),ge=b(["mi","mo","mn","ms","mtext"]);let Bt=f({},ge);const Ee=b(["annotation-xml"]);let Wt=f({},Ee);const cn=f({},["title","style","font","a","script"]);let ft=null;const un=["application/xhtml+xml","text/html"],fn="text/html";let T=null,tt=null;const pn=s.createElement("form"),Ae=function(t){return t instanceof RegExp||t instanceof Function},Yt=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(tt&&tt===t)return;(!t||typeof t!="object")&&(t={}),t=I(t),ft=un.indexOf(t.PARSER_MEDIA_TYPE)===-1?fn:t.PARSER_MEDIA_TYPE,T=ft==="application/xhtml+xml"?Vt:_t,_=W(t,"ALLOWED_TAGS",Mt,{transform:T}),h=W(t,"ALLOWED_ATTR",Ct,{transform:T}),Gt=W(t,"ALLOWED_NAMESPACES",ln,{transform:Vt}),zt=W(t,"ADD_URI_SAFE_ATTR",he,{transform:T,base:he}),Te=W(t,"ADD_DATA_URI_TAGS",_e,{transform:T,base:_e}),x=W(t,"FORBID_CONTENTS",Ft,{transform:T}),ct=W(t,"FORBID_TAGS",I({}),{transform:T}),le=W(t,"FORBID_ATTR",I({}),{transform:T}),J=D(t,"USE_PROFILES")?t.USE_PROFILES&&typeof t.USE_PROFILES=="object"?I(t.USE_PROFILES):t.USE_PROFILES:!1,ce=t.ALLOW_ARIA_ATTR!==!1,Pt=t.ALLOW_DATA_ATTR!==!1,ue=t.ALLOW_UNKNOWN_PROTOCOLS||!1,fe=t.ALLOW_SELF_CLOSE_IN_ATTR!==!1,G=t.SAFE_FOR_TEMPLATES||!1,ut=t.SAFE_FOR_XML!==!1,X=t.WHOLE_DOCUMENT||!1,Z=t.RETURN_DOM||!1,Et=t.RETURN_DOM_FRAGMENT||!1,At=t.RETURN_TRUSTED_TYPE||!1,kt=t.FORCE_BODY||!1,pe=t.SANITIZE_DOM!==!1,me=t.SANITIZE_NAMED_PROPS||!1,vt=t.KEEP_CONTENT!==!1,Ut=t.IN_PLACE||!1,se=Hn(t.ALLOWED_URI_REGEXP)?t.ALLOWED_URI_REGEXP:Ge,Q=typeof t.NAMESPACE=="string"?t.NAMESPACE:k,Bt=D(t,"MATHML_TEXT_INTEGRATION_POINTS")&&t.MATHML_TEXT_INTEGRATION_POINTS&&typeof t.MATHML_TEXT_INTEGRATION_POINTS=="object"?I(t.MATHML_TEXT_INTEGRATION_POINTS):f({},ge),Wt=D(t,"HTML_INTEGRATION_POINTS")&&t.HTML_INTEGRATION_POINTS&&typeof t.HTML_INTEGRATION_POINTS=="object"?I(t.HTML_INTEGRATION_POINTS):f({},Ee);const e=D(t,"CUSTOM_ELEMENT_HANDLING")&&t.CUSTOM_ELEMENT_HANDLING&&typeof t.CUSTOM_ELEMENT_HANDLING=="object"?I(t.CUSTOM_ELEMENT_HANDLING):ot(null);if(d=ot(null),D(e,"tagNameCheck")&&Ae(e.tagNameCheck)&&(d.tagNameCheck=e.tagNameCheck),D(e,"attributeNameCheck")&&Ae(e.attributeNameCheck)&&(d.attributeNameCheck=e.attributeNameCheck),D(e,"allowCustomizedBuiltInElements")&&typeof e.allowCustomizedBuiltInElements=="boolean"&&(d.allowCustomizedBuiltInElements=e.allowCustomizedBuiltInElements),O(d),G&&(Pt=!1),Et&&(Z=!0),J&&(_=f({},Fe),h=ot(null),J.html===!0&&(f(_,Ue),f(h,ze)),J.svg===!0&&(f(_,qt),f(h,Jt),f(h,Nt)),J.svgFilters===!0&&(f(_,Kt),f(h,Jt),f(h,Nt)),J.mathMl===!0&&(f(_,Zt),f(h,He),f(h,Nt))),H.tagCheck=null,H.attributeCheck=null,D(t,"ADD_TAGS")&&(typeof t.ADD_TAGS=="function"?H.tagCheck=t.ADD_TAGS:Y(t.ADD_TAGS)&&(_===Mt&&(_=I(_)),f(_,t.ADD_TAGS,T))),D(t,"ADD_ATTR")&&(typeof t.ADD_ATTR=="function"?H.attributeCheck=t.ADD_ATTR:Y(t.ADD_ATTR)&&(h===Ct&&(h=I(h)),f(h,t.ADD_ATTR,T))),D(t,"ADD_URI_SAFE_ATTR")&&Y(t.ADD_URI_SAFE_ATTR)&&f(zt,t.ADD_URI_SAFE_ATTR,T),D(t,"FORBID_CONTENTS")&&Y(t.FORBID_CONTENTS)&&(x===Ft&&(x=I(x)),f(x,t.FORBID_CONTENTS,T)),D(t,"ADD_FORBID_CONTENTS")&&Y(t.ADD_FORBID_CONTENTS)&&(x===Ft&&(x=I(x)),f(x,t.ADD_FORBID_CONTENTS,T)),vt&&(_["#text"]=!0),X&&f(_,["html","head","body"]),_.table&&(f(_,["tbody"]),delete ct.tbody),t.TRUSTED_TYPES_POLICY){if(typeof t.TRUSTED_TYPES_POLICY.createHTML!="function")throw q('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof t.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw q('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const r=L;L=t.TRUSTED_TYPES_POLICY;try{$=K("")}catch(a){throw L=r,a}}else t.TRUSTED_TYPES_POLICY===null?(L=void 0,$=""):(L===void 0&&(L=Ke()),L&&typeof $=="string"&&($=K("")));(A.uponSanitizeElement.length>0||A.uponSanitizeAttribute.length>0)&&_===Mt&&(_=I(_)),A.uponSanitizeAttribute.length>0&&h===Ct&&(h=I(h)),b&&b(t),tt=t},ye=f({},[...qt,...Kt,...Gn]),Se=f({},[...Zt,...Bn]),mn=function(t,e,r){return e.namespaceURI===k?t==="svg":e.namespaceURI===yt?t==="svg"&&(r==="annotation-xml"||Bt[r]):!!ye[t]},dn=function(t,e,r){return e.namespaceURI===k?t==="math":e.namespaceURI===St?t==="math"&&Wt[r]:!!Se[t]},Tn=function(t,e,r){return e.namespaceURI===St&&!Wt[r]||e.namespaceURI===yt&&!Bt[r]?!1:!Se[t]&&(cn[t]||!ye[t])},_n=function(t){let e=st(t);(!e||!e.tagName)&&(e={namespaceURI:Q,tagName:"template"});const r=_t(t.tagName),a=_t(e.tagName);return Gt[t.namespaceURI]?t.namespaceURI===St?mn(r,e,a):t.namespaceURI===yt?dn(r,e,a):t.namespaceURI===k?Tn(r,e,a):!!(ft==="application/xhtml+xml"&&Gt[t.namespaceURI]):!1},B=function(t){nt(o.removed,{element:t});try{st(t).removeChild(t)}catch{if(ee(t),!st(t))throw q("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},be=function(t){const e=at(t);if(e){const a=[];mt(e,c=>{nt(a,c)}),mt(a,c=>{try{ee(c)}catch{}})}const r=Dt(t);if(r)for(let a=r.length-1;a>=0;--a){const c=r[a],p=c&&c.name;if(typeof p=="string")try{t.removeAttribute(p)}catch{}}},V=function(t,e){try{nt(o.removed,{attribute:e.getAttributeNode(t),from:e})}catch{nt(o.removed,{attribute:null,from:e})}if(e.removeAttribute(t),t==="is")if(Z||Et)try{B(e)}catch{}else try{e.setAttribute(t,"")}catch{}},hn=function(t){const e=Dt(t);if(e)for(let r=e.length-1;r>=0;--r){const a=e[r],c=a&&a.name;if(!(typeof c!="string"||h[T(c)]))try{t.removeAttribute(c)}catch{}}},gn=function(t){const e=[t];for(;e.length>0;){const r=e.pop();(M?M(r):r.nodeType)===v.element&&hn(r);const c=at(r);if(c)for(let p=c.length-1;p>=0;--p)e.push(c[p])}},Oe=function(t){let e=null,r=null;if(kt)t="<remove></remove>"+t;else{const p=Pe(t,/^[\r\n\t ]+/);r=p&&p[0]}ft==="application/xhtml+xml"&&Q===k&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const a=L?K(t):t;if(Q===k)try{e=new It().parseFromString(a,ft)}catch{}if(!e||!e.documentElement){e=wt.createDocument(Q,"template",null);try{e.documentElement.innerHTML=Ht?$:a}catch{}}const c=e.body||e.documentElement;return t&&r&&c.insertBefore(s.createTextNode(r),c.childNodes[0]||null),Q===k?Je.call(e,X?"html":"body")[0]:X?e.documentElement:c},Re=function(t){return ie.call(t.ownerDocument||t,t,w.SHOW_ELEMENT|w.SHOW_COMMENT|w.SHOW_TEXT|w.SHOW_PROCESSING_INSTRUCTION|w.SHOW_CDATA_SECTION,null)},bt=function(t){return t=dt(t,tn," "),t=dt(t,en," "),t=dt(t,nn," "),t},jt=function(t){var e;t.normalize();const r=ie.call(t.ownerDocument||t,t,w.SHOW_TEXT|w.SHOW_COMMENT|w.SHOW_CDATA_SECTION|w.SHOW_PROCESSING_INSTRUCTION,null);let a=r.nextNode();for(;a;)a.data=bt(a.data),a=r.nextNode();const c=(e=t.querySelectorAll)===null||e===void 0?void 0:e.call(t,"template");c&&mt(c,p=>{et(p.content)&&jt(p.content)})},Ot=function(t){const e=z?z(t):null;return typeof e!="string"||T(e)!=="form"?!1:typeof t.nodeName!="string"||typeof t.textContent!="string"||typeof t.removeChild!="function"||t.attributes!==Dt(t)||typeof t.removeAttribute!="function"||typeof t.setAttribute!="function"||typeof t.namespaceURI!="string"||typeof t.insertBefore!="function"||typeof t.hasChildNodes!="function"||t.nodeType!==M(t)||t.childNodes!==at(t)},et=function(t){if(!M||typeof t!="object"||t===null)return!1;try{return M(t)===v.documentFragment}catch{return!1}},pt=function(t){if(!M||typeof t!="object"||t===null)return!1;try{return typeof M(t)=="number"}catch{return!1}};function F(i,t,e){i.length!==0&&mt(i,r=>{r.call(o,t,e,tt)})}const En=function(t,e){return!!(ut&&t.hasChildNodes()&&!pt(t.firstElementChild)&&S(Be,t.textContent)&&S(Be,t.innerHTML)||ut&&t.namespaceURI===k&&e==="style"&&pt(t.firstElementChild)||t.nodeType===v.processingInstruction||ut&&t.nodeType===v.comment&&S(Jn,t.data))},An=function(t,e){if(!ct[e]&&De(e)&&(d.tagNameCheck instanceof RegExp&&S(d.tagNameCheck,e)||d.tagNameCheck instanceof Function&&d.tagNameCheck(e)))return!1;if(vt&&!x[e]){const r=st(t),a=at(t);if(a&&r){const c=a.length;for(let p=c-1;p>=0;--p){const y=Ut?a[p]:Xe(a[p],!0);r.insertBefore(y,Ve(t))}}}return B(t),!0},Ne=function(t){if(F(A.beforeSanitizeElements,t,null),Ot(t))return B(t),!0;const e=T(z?z(t):t.nodeName);if(F(A.uponSanitizeElement,t,{tagName:e,allowedTags:_}),En(t,e))return B(t),!0;if(ct[e]||!(H.tagCheck instanceof Function&&H.tagCheck(e))&&!_[e])return An(t,e);if((M?M(t):t.nodeType)===v.element&&!_n(t)||(e==="noscript"||e==="noembed"||e==="noframes")&&S(Qn,t.innerHTML))return B(t),!0;if(G&&t.nodeType===v.text){const a=bt(t.textContent);t.textContent!==a&&(nt(o.removed,{element:t.cloneNode()}),t.textContent=a)}return F(A.afterSanitizeElements,t,null),!1},Ie=function(t,e,r){if(le[e]||pe&&(e==="id"||e==="name")&&(r in s||r in pn))return!1;const a=h[e]||H.attributeCheck instanceof Function&&H.attributeCheck(e,t);if(!(Pt&&S(on,e))){if(!(ce&&S(rn,e))){if(a){if(!zt[e]){if(!S(se,dt(r,ae,""))){if(!((e==="src"||e==="xlink:href"||e==="href")&&t!=="script"&&xe(r,"data:")===0&&Te[t])){if(!(ue&&!S(an,dt(r,ae,"")))){if(r)return!1}}}}}else if(!(De(t)&&(d.tagNameCheck instanceof RegExp&&S(d.tagNameCheck,t)||d.tagNameCheck instanceof Function&&d.tagNameCheck(t))&&(d.attributeNameCheck instanceof RegExp&&S(d.attributeNameCheck,e)||d.attributeNameCheck instanceof Function&&d.attributeNameCheck(e,t))||e==="is"&&d.allowCustomizedBuiltInElements&&(d.tagNameCheck instanceof RegExp&&S(d.tagNameCheck,r)||d.tagNameCheck instanceof Function&&d.tagNameCheck(r))))return!1}}return!0},yn=f({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),De=function(t){return!yn[_t(t)]&&S(sn,t)},Sn=function(t,e,r,a){if(L&&typeof ht=="object"&&typeof ht.getAttributeType=="function"&&!r)switch(ht.getAttributeType(t,e)){case"TrustedHTML":return K(a);case"TrustedScriptURL":return qe(a)}return a},bn=function(t,e,r,a){try{r?t.setAttributeNS(r,e,a):t.setAttribute(e,a),Ot(t)?B(t):Ce(o.removed)}catch{V(e,t)}},Le=function(t){F(A.beforeSanitizeAttributes,t,null);const e=t.attributes;if(!e||Ot(t))return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:h,forceKeepAttr:void 0};let a=e.length;const c=T(t.nodeName);for(;a--;){const p=e[a],y=p.name,g=p.namespaceURI,C=p.value,P=T(y),Xt=C;let N=y==="value"?Xt:xn(Xt);if(r.attrName=P,r.attrValue=N,r.keepAttr=!0,r.forceKeepAttr=void 0,F(A.uponSanitizeAttribute,t,r),N=r.attrValue,me&&(P==="id"||P==="name")&&xe(N,de)!==0&&(V(y,t),N=de+N),ut&&S(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,N)){V(y,t);continue}if(P==="attributename"&&Pe(N,"href")){V(y,t);continue}if(!r.forceKeepAttr){if(!r.keepAttr){V(y,t);continue}if(!fe&&S(to,N)){V(y,t);continue}if(G&&(N=bt(N)),!Ie(c,P,N)){V(y,t);continue}N=Sn(c,P,g,N),N!==Xt&&bn(t,y,g,N)}}F(A.afterSanitizeAttributes,t,null)},Rt=function(t){let e=null;const r=Re(t);for(F(A.beforeSanitizeShadowDOM,t,null);e=r.nextNode();)if(F(A.uponSanitizeShadowNode,e,null),Ne(e),Le(e),et(e.content)&&Rt(e.content),(M?M(e):e.nodeType)===v.element){const c=ne(e);et(c)&&($t(c),Rt(c))}F(A.afterSanitizeShadowDOM,t,null)},$t=function(t){const e=[{node:t,shadow:null}];for(;e.length>0;){const r=e.pop();if(r.shadow){Rt(r.shadow);continue}const a=r.node,p=(M?M(a):a.nodeType)===v.element,y=at(a);if(y)for(let g=y.length-1;g>=0;--g)e.push({node:y[g],shadow:null});if(p){const g=z?z(a):null;if(typeof g=="string"&&T(g)==="template"){const C=a.content;et(C)&&e.push({node:C,shadow:null})}}if(p){const g=ne(a);et(g)&&e.push({node:null,shadow:g},{node:g,shadow:null})}}};return o.sanitize=function(i){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},e=null,r=null,a=null,c=null;if(Ht=!i,Ht&&(i="<!-->"),typeof i!="string"&&!pt(i)&&(i=zn(i),typeof i!="string"))throw q("dirty is not a string, aborting");if(!o.isSupported)return i;xt||Yt(t),o.removed=[];const p=Ut&&typeof i!="string"&&pt(i);if(p){const C=z?z(i):i.nodeName;if(typeof C=="string"){const P=T(C);if(!_[P]||ct[P])throw q("root node is forbidden and cannot be sanitized in-place")}if(Ot(i))throw q("root node is clobbered and cannot be sanitized in-place");try{$t(i)}catch(P){throw be(i),P}}else if(pt(i))e=Oe("<!---->"),r=e.ownerDocument.importNode(i,!0),r.nodeType===v.element&&r.nodeName==="BODY"||r.nodeName==="HTML"?e=r:e.appendChild(r),$t(r);else{if(!Z&&!G&&!X&&i.indexOf("<")===-1)return L&&At?K(i):i;if(e=Oe(i),!e)return Z?null:At?$:""}e&&kt&&B(e.firstChild);const y=Re(p?i:e);try{for(;a=y.nextNode();)Ne(a),Le(a),et(a.content)&&Rt(a.content)}catch(C){throw p&&be(i),C}if(p)return mt(o.removed,C=>{C.element&&gn(C.element)}),G&&jt(i),i;if(Z){if(G&&jt(e),Et)for(c=Ze.call(e.ownerDocument);e.firstChild;)c.appendChild(e.firstChild);else c=e;return(h.shadowroot||h.shadowrootmode)&&(c=Qe.call(l,c,!0)),c}let g=X?e.outerHTML:e.innerHTML;return X&&_["!doctype"]&&e.ownerDocument&&e.ownerDocument.doctype&&e.ownerDocument.doctype.name&&S(Kn,e.ownerDocument.doctype.name)&&(g="<!DOCTYPE "+e.ownerDocument.doctype.name+`>
3
+ `+g),G&&(g=bt(g)),L&&At?K(g):g},o.setConfig=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Yt(i),xt=!0},o.clearConfig=function(){tt=null,xt=!1,L=Lt,$=""},o.isValidAttribute=function(i,t,e){tt||Yt({});const r=T(i),a=T(t);return Ie(r,a,e)},o.addHook=function(i,t){typeof t=="function"&&nt(A[i],t)},o.removeHook=function(i,t){if(t!==void 0){const e=Cn(A[i],t);return e===-1?void 0:Pn(A[i],e,1)[0]}return Ce(A[i])},o.removeHooks=function(i){A[i]=[]},o.removeAllHooks=function(){A=We()},o}var oo=$e();export{oo as default};
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Bønnetid</title>
8
- <script type="module" crossorigin src="/assets/index-CQIIfC-Z.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-B8PCs-AY.css">
8
+ <script type="module" crossorigin src="/assets/index-BeH2CXvV.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-BChLUg01.css">
10
10
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -1 +1 @@
1
- {"name":"bonnetid-ui","short_name":"bonnetid-ui","description":"This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.","start_url":"/","display":"standalone","background_color":"#ffffff","theme_color":"#42b883","lang":"en","scope":"/"}
1
+ {"name":"Prayer Display","short_name":"Prayer","description":"This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.","start_url":"/","display":"standalone","background_color":"#ffffff","theme_color":"#0a0a0a","lang":"en","scope":"/","icons":[{"src":"pwa-192x192.png","sizes":"192x192","type":"image/png"},{"src":"pwa-512x512.png","sizes":"512x512","type":"image/png"},{"src":"pwa-512x512.png","sizes":"512x512","type":"image/png","purpose":"any maskable"}]}
package/dist/app/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let l={};const o=e=>i(e,t),u={module:{uri:t},exports:l,require:o};s[t]=Promise.all(n.map(e=>u[e]||o(e))).then(e=>(r(...e),l))}}define(["./workbox-1ef09536"],function(e){"use strict";self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"32082c1b3bfd58a54d63a1acc67db005"},{url:"assets/purify.es-B9ZVCkUG.js",revision:null},{url:"assets/index.es-BE6LkVtq.js",revision:null},{url:"assets/index-CQIIfC-Z.js",revision:null},{url:"assets/index-B8PCs-AY.css",revision:null},{url:"assets/html2canvas.esm-QH1iLAAe.js",revision:null},{url:"manifest.webmanifest",revision:"2fbefa9e4ccfe8a9c589d7052623a58f"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
1
+ if(!self.define){let e,i={};const s=(s,r)=>(s=new URL(s+".js",r).href,i[s]||new Promise(i=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=i,document.head.appendChild(e)}else e=s,importScripts(s),i()}).then(()=>{let e=i[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e}));self.define=(r,n)=>{const a=e||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let d={};const l=e=>s(e,a),f={module:{uri:a},exports:d,require:l};i[a]=Promise.all(r.map(e=>f[e]||l(e))).then(e=>(n(...e),d))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"7d840ffbb6359f26d759571d3822cf65"},{url:"media/AD 1.png",revision:"6acb9daf1c138366c87297a4b0cc6114"},{url:"img/quran img.png",revision:"3ba37bf8818fb76e482c29ff0764281a"},{url:"img/masjid_ph2.png",revision:"5bf4c35e0c593103e429a0aa8c80ba7a"},{url:"img/masjid-select.png",revision:"a3cdbe6972fdb48acc8881642774927c"},{url:"img/IRN-logo.png",revision:"76dab13949f152d87add0e4116e2e78e"},{url:"img/ud/bg3.png",revision:"f7344dd809f5855a46d4dbeb0eafc878"},{url:"img/ud/bg2.png",revision:"97d54338c142a23be2954c5caed1be8c"},{url:"img/ud/bg1.png",revision:"53a1a1124378f681765f362aa2e45f9a"},{url:"img/light/ph1_light.png",revision:"7b2451725d2e808a14dafee11602bbcd"},{url:"img/light/masjid_ph3.png",revision:"e3af18ca44f87ba5928e0ff1ef579b08"},{url:"img/light/masjid_ph1.png",revision:"cf167c1e7456cd408904e0f0bd711ff9"},{url:"img/light/bg_ph3.png",revision:"202f520218e2536447d6c8841e42fcc5"},{url:"img/light/bg_ph1.png",revision:"01c8ad1e4f71dc48655cfab05ae0e135"},{url:"img/dark/masjid_ph3.png",revision:"adeae731b0762ecf2ea08e075682146e"},{url:"img/dark/masjid_ph1.png",revision:"a60a8886bdfef8b26e8e56e5b13480c3"},{url:"img/dark/bg_ph3.png",revision:"ae15679c2c828c07563116f73944a0b2"},{url:"img/dark/bg_ph1.png",revision:"9488d01f556572432b38fa821b809557"},{url:"assets/purify.es-CPrKKeqe.js",revision:null},{url:"assets/index.es-Bwf93iys.js",revision:null},{url:"assets/index-BeH2CXvV.js",revision:null},{url:"assets/index-BChLUg01.css",revision:null},{url:"assets/html2canvas.esm-QH1iLAAe.js",revision:null},{url:"manifest.webmanifest",revision:"e20112691baef2e33cfae51ad5faeb4b"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
@@ -0,0 +1 @@
1
+ define(["exports"],function(t){"use strict";try{self["workbox:core:7.4.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:7.4.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch(async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n})),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new i(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)o=new r(t,e,n);else if("function"==typeof t)o=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter(t=>t&&t.length>0).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:7.4.0"]&&_()}catch(t){}function p(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class g{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let R;async function m(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=function(){if(void 0===R){const t=new Response("");if("body"in t)try{new Response(t.body),R=!0}catch(t){R=!1}R=!1}return R}()?i.body:await i.blob();return new Response(o,r)}function v(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class q{constructor(){this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}}const U=new Set;try{self["workbox:strategies:7.4.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class b{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new q,this.R=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise(t=>setTimeout(t,i)));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.q(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=v(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===v(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of U)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.R.push(t),t}async doneWaiting(){for(;this.R.length;){const t=this.R.splice(0),e=(await Promise.allSettled(t)).find(t=>"rejected"===t.status);if(e)throw e.reason}}destroy(){this.p.resolve(null)}async q(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class C{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new b(this,{event:e,request:s,params:n}),r=this.U(i,s,e);return[r,this.L(r,i,s,e)]}async U(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this._(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async L(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}class E extends C{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this.C=!1!==t.fallbackToNetwork,this.plugins.push(E.copyRedirectedCacheableResponsesPlugin)}async _(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.O(t,e):await this.N(t,e))}async N(t,e){let n;const i=e.params||{};if(!this.C)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?r||s:void 0})),s&&o&&"no-cors"!==t.mode&&(this.P(),await e.cachePut(t,n.clone()))}return n}async O(t,e){this.P();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}P(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==E.copyRedirectedCacheableResponsesPlugin&&(n===E.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(E.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}E.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},E.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await m(t):t};class O{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.j=new Map,this.k=new Map,this.K=new Map,this.l=new E({cacheName:f(t),plugins:[...e,new g({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.T||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.T=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=p(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.j.has(i)&&this.j.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.j.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.K.has(t)&&this.K.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.K.set(t,n.integrity)}if(this.j.set(i,t),this.k.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,async()=>{const e=new y;this.strategy.plugins.push(e);for(const[e,s]of this.j){const n=this.K.get(s),i=this.k.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}})}activate(t){return d(t,async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.j.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this.j}getCachedURLs(){return[...this.j.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.j.get(e.href)}getIntegrityForCacheKey(t){return this.K.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let x;const N=()=>(x||(x=new O),x);class P extends i{constructor(t,e){super(({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}},t.strategy)}}t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super(t=>this.W(t),t),this.M=e,this.S=s}W({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.S)if(t.test(s))return!1;return!!this.M.some(t=>t.test(s))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter(s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t);return await Promise.all(s.map(t=>self.caches.delete(t))),s})(e).then(t=>{}))})},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.createHandlerBoundToURL=function(t){return N().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){N().precache(t)}(t),function(t){const e=N();h(new P(e,t))}(e)},t.registerRoute=h});
@@ -1,2 +1,2 @@
1
- declare const AnnouncementBar: () => import("react/jsx-runtime").JSX.Element;
1
+ declare const AnnouncementBar: () => import("react").JSX.Element;
2
2
  export default AnnouncementBar;
@@ -6,4 +6,4 @@ export default function Carousel({ orgNr, color1 }: {
6
6
  orgNr?: string;
7
7
  nr: number;
8
8
  color1: string;
9
- }): import("react/jsx-runtime").JSX.Element | undefined;
9
+ }): import("react").JSX.Element | undefined;
@@ -9,5 +9,5 @@ declare const SmallPrayerTable: ({ prayerTimes, extraInfo, prayerTimesColor, ext
9
9
  [key: string]: string;
10
10
  };
11
11
  isDefault: boolean;
12
- }) => import("react/jsx-runtime").JSX.Element;
12
+ }) => import("react").JSX.Element;
13
13
  export default SmallPrayerTable;
@@ -10,5 +10,5 @@ declare const PrayerBoxes: ({ prayerTimes, extraInfo, prayerTimesColor, extraInf
10
10
  };
11
11
  isDefault: boolean;
12
12
  isPreview?: boolean;
13
- }) => import("react/jsx-runtime").JSX.Element;
13
+ }) => import("react").JSX.Element;
14
14
  export default PrayerBoxes;
@@ -1,9 +1,10 @@
1
- import { PrayerTime } from "../../types/types";
2
- declare const Countdown: ({ nr, prayerTimes, color, bg, isDefault }: {
1
+ import { PrayerTime, ExtraInfoTimes } from "../../types/types";
2
+ declare const Countdown: ({ nr, prayerTimes, extraInfo, color, bg, isDefault }: {
3
3
  nr: number;
4
4
  prayerTimes: PrayerTime[];
5
+ extraInfo: ExtraInfoTimes[];
5
6
  color: string;
6
7
  bg: string;
7
8
  isDefault: boolean;
8
- }) => import("react/jsx-runtime").JSX.Element | null;
9
+ }) => import("react").JSX.Element | null;
9
10
  export default Countdown;
@@ -5,5 +5,5 @@ declare const LobbyTimetable: ({ prayerTimes, extraInfo, headingColor, contentCo
5
5
  headingColor: string;
6
6
  contentColor: string;
7
7
  tableColor: string;
8
- }) => import("react/jsx-runtime").JSX.Element;
8
+ }) => import("react").JSX.Element;
9
9
  export default LobbyTimetable;
@@ -1,2 +1,2 @@
1
- declare const ButtonSpin: () => import("react/jsx-runtime").JSX.Element;
1
+ declare const ButtonSpin: () => import("react").JSX.Element;
2
2
  export default ButtonSpin;
@@ -4,5 +4,5 @@ interface DownloadModalProps {
4
4
  onCancel: () => void;
5
5
  downloading: boolean;
6
6
  }
7
- declare const DownloadModal: ({ onCSV, onPDF, onCancel, downloading }: DownloadModalProps) => import("react/jsx-runtime").JSX.Element;
7
+ declare const DownloadModal: ({ onCSV, onPDF, onCancel, downloading }: DownloadModalProps) => import("react").JSX.Element;
8
8
  export default DownloadModal;
@@ -1,3 +1,3 @@
1
- import { ReactElement } from 'react';
2
- import { FallbackProps } from 'react-error-boundary';
1
+ import type { ReactElement } from 'react';
2
+ import type { FallbackProps } from 'react-error-boundary';
3
3
  export declare function ErrorFallback({ error, resetErrorBoundary }: FallbackProps): ReactElement;
@@ -1,4 +1,4 @@
1
1
  declare const Spin: ({ classNames }: {
2
2
  classNames?: string;
3
- }) => import("react/jsx-runtime").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
4
  export default Spin;
@@ -1 +1 @@
1
- export declare const Instruction: () => import("react/jsx-runtime").JSX.Element;
1
+ export declare const Instruction: () => import("react").JSX.Element;
@@ -5,5 +5,5 @@ declare const MasjidLogo: ({ nr, textColor, orgNr, isLobby, date, isDefault }: {
5
5
  isLobby?: boolean;
6
6
  date?: string;
7
7
  isDefault?: boolean;
8
- }) => import("react/jsx-runtime").JSX.Element;
8
+ }) => import("react").JSX.Element;
9
9
  export default MasjidLogo;
@@ -1,8 +1,10 @@
1
- import { SimplePrayerTimes } from "../../types/types";
2
- declare const MasjidPrayerClock: ({ width, height, prayerTimes, theme }: {
1
+ import React from "react";
2
+ import { AsrInfo, SimplePrayerTimes } from "../../types/types";
3
+ declare const MasjidPrayerClock: ({ width, height, prayerTimes, asrInfo, theme }: {
3
4
  width?: number;
4
5
  height?: number;
5
6
  prayerTimes: SimplePrayerTimes;
7
+ asrInfo: AsrInfo;
6
8
  theme: 1 | 2;
7
- }) => import("react/jsx-runtime").JSX.Element;
9
+ }) => React.JSX.Element;
8
10
  export default MasjidPrayerClock;
@@ -1,5 +1,6 @@
1
+ import React from "react";
1
2
  declare const PrayerClock: ({ width, height }: {
2
3
  width?: number;
3
4
  height?: number;
4
- }) => import("react/jsx-runtime").JSX.Element;
5
+ }) => React.JSX.Element;
5
6
  export default PrayerClock;
@@ -9,4 +9,4 @@ export default function TimeTablePH1({ prayerTimes, extraInfo, prayerTimesColor,
9
9
  [key: string]: string;
10
10
  };
11
11
  isDefault: boolean;
12
- }): import("react/jsx-runtime").JSX.Element;
12
+ }): import("react").JSX.Element;
@@ -11,5 +11,5 @@ declare const PrayerTimeBox: ({ name, arabic, adhan, iqamah, tomorrow, isNext, i
11
11
  bg?: string;
12
12
  isDefault: boolean;
13
13
  isPreview?: boolean;
14
- }) => import("react/jsx-runtime").JSX.Element;
14
+ }) => import("react").JSX.Element;
15
15
  export default PrayerTimeBox;
@@ -1,6 +1,7 @@
1
- import { PrayerTime } from "../../types/types";
2
- declare const CountdownVisual: ({ prayerTimes, color, }: {
1
+ import { ExtraInfoTimes, PrayerTime } from "../../types/types";
2
+ declare const CountdownVisual: ({ prayerTimes, extraInfo, color, }: {
3
3
  prayerTimes: PrayerTime[];
4
+ extraInfo: ExtraInfoTimes[];
4
5
  color: string;
5
- }) => import("react/jsx-runtime").JSX.Element | null;
6
+ }) => import("react").JSX.Element | null;
6
7
  export default CountdownVisual;
@@ -3,5 +3,5 @@ type DateInfoProps = {
3
3
  color: string;
4
4
  isLobby?: boolean;
5
5
  };
6
- declare const DateInfo: ({ date, color, isLobby }: DateInfoProps) => import("react/jsx-runtime").JSX.Element;
6
+ declare const DateInfo: ({ date, color, isLobby }: DateInfoProps) => import("react").JSX.Element;
7
7
  export default DateInfo;
@@ -1,5 +1,5 @@
1
1
  declare const DigitalClock: ({ isLobby, color }: {
2
2
  isLobby?: boolean;
3
3
  color?: string;
4
- }) => import("react/jsx-runtime").JSX.Element;
4
+ }) => import("react").JSX.Element;
5
5
  export default DigitalClock;
@@ -1,4 +1,4 @@
1
1
  export default function DateSelector({ nr, isHome }: {
2
2
  nr: number;
3
3
  isHome?: boolean;
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react").JSX.Element;
@@ -1,4 +1,5 @@
1
+ import React from "react";
1
2
  declare const Header: ({ isHome }: {
2
3
  isHome?: boolean;
3
- }) => import("react/jsx-runtime").JSX.Element;
4
+ }) => React.JSX.Element;
4
5
  export default Header;
@@ -5,5 +5,5 @@ interface FullHijriCalendarProps {
5
5
  initialDate?: Date;
6
6
  onDateSelect?: (date: Date, hijriObj?: HijriDateObj) => void;
7
7
  }
8
- declare const FullHijriCalendar: ({ tn, showDate, initialDate, onDateSelect }: FullHijriCalendarProps) => import("react/jsx-runtime").JSX.Element;
8
+ declare const FullHijriCalendar: ({ tn, showDate, initialDate, onDateSelect }: FullHijriCalendarProps) => import("react").JSX.Element;
9
9
  export default FullHijriCalendar;
@@ -1,4 +1,4 @@
1
1
  declare const MasjidSelect: ({ isHome }: {
2
2
  isHome?: boolean;
3
- }) => import("react/jsx-runtime").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
4
  export default MasjidSelect;
@@ -1,4 +1,4 @@
1
1
  declare const PrayerTimetable: ({ isView }: {
2
2
  isView: boolean;
3
- }) => import("react/jsx-runtime").JSX.Element;
3
+ }) => import("react").JSX.Element;
4
4
  export default PrayerTimetable;
@@ -2,5 +2,5 @@
2
2
  * Time Component
3
3
  * Displays a digital clock showing the current hour and minute (HH:MM), updating every second.
4
4
  */
5
- declare const Time: () => import("react/jsx-runtime").JSX.Element;
5
+ declare const Time: () => import("react").JSX.Element;
6
6
  export default Time;
@@ -0,0 +1,3 @@
1
+ export declare const ARABIC_NAMES: {
2
+ [key: string]: string;
3
+ };
@@ -0,0 +1 @@
1
+ export declare const INSTRUCTION_SHOW_BEFORE = 60;
@@ -0,0 +1 @@
1
+ export declare const IQAMAH_WINDOW_SECONDS = 120;
@@ -0,0 +1 @@
1
+ export default function GlobalLanguageProvider(): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ interface MosqueLanguageContextType {
2
+ language: string;
3
+ loading: boolean;
4
+ }
5
+ interface Props {
6
+ mosqueId?: string;
7
+ children: React.ReactNode;
8
+ }
9
+ export declare function MosqueLanguageProvider({ mosqueId, children, }: Props): import("react").JSX.Element;
10
+ export declare const useMosqueLanguageContext: () => MosqueLanguageContextType;
11
+ export {};
@@ -10,7 +10,7 @@ interface ThemeContextType {
10
10
  */
11
11
  export declare const ThemeProvider: ({ children }: {
12
12
  children: any;
13
- }) => import("react/jsx-runtime").JSX.Element;
13
+ }) => import("react").JSX.Element;
14
14
  /**
15
15
  * useDarkMode
16
16
  * - Returns { darkMode, setDarkMode }
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { HijriDateObj } from "../database-services/HijriServices";
3
- import { Event, ExtraInfoTimes, PrayerTime, PrayerTimesUD, SimplePrayerTimes } from "../types/types";
3
+ import { AsrInfo, Event, ExtraInfoTimes, PrayerTime, PrayerTimesUD, SimplePrayerTimes } from "../types/types";
4
4
  import { ColorScheme } from "../hooks/useColorScheme";
5
5
  type MosqueOption = {
6
6
  value: string;
@@ -28,6 +28,7 @@ interface UDContextProps {
28
28
  prayerTimes: SimplePrayerTimes;
29
29
  prayerTimesWithSunrise: PrayerTime[] | PrayerTimesUD[];
30
30
  extraInfo: ExtraInfoTimes[];
31
+ asrInfo: AsrInfo;
31
32
  prayerTimesReady: boolean;
32
33
  periodType: PeriodType;
33
34
  setPeriodType: (type: PeriodType) => void;
@@ -43,6 +44,7 @@ interface UDContextProps {
43
44
  lon: number | null;
44
45
  hijriMonthNames: string[];
45
46
  }
47
+ export declare const UDContext: React.Context<UDContextProps | null>;
46
48
  export declare const useUDContext: () => UDContextProps;
47
49
  export declare const UDProviderWithRouteParams: React.FC<{
48
50
  children: React.ReactNode;
@@ -1,2 +1,2 @@
1
- declare const UDProviderWrapper: () => import("react/jsx-runtime").JSX.Element;
1
+ declare const UDProviderWrapper: () => import("react").JSX.Element;
2
2
  export default UDProviderWrapper;
@@ -1,4 +1,4 @@
1
- export declare const fetchMosqueInfo: (org_nr: string) => Promise<any | null>;
1
+ export declare const fetchMosqueInfo: (org_nr?: string, locationId?: string) => Promise<any | null>;
2
2
  export declare const fetchMosquesInALocation: (locationISO: string) => Promise<any[] | null>;
3
3
  export declare const formatMosque: (org_nr: string) => Promise<{
4
4
  value: string;
@@ -1,9 +1,11 @@
1
- import { PrayerTime, ExtraInfoTimes, PrayerTimesUD, prayerTimes } from '../types/types';
1
+ import { PrayerTime, ExtraInfoTimes, PrayerTimesUD, prayerTimes, AsrInfo } from '../types/types';
2
2
  export declare function fetchPrayerTimesFromSupabase(org_nr: string, date: string, asrMethod?: number, prayerMethod?: number): Promise<{
3
3
  prayerTimes: PrayerTime[];
4
4
  extraInfo: ExtraInfoTimes[];
5
+ asrInfo: AsrInfo;
5
6
  }>;
6
7
  export declare const fetchPrayerTimesForALocation: (locationIso: string, date: string, asrMethod: number, prayerMethod: number) => Promise<{
7
8
  prayerTimes: PrayerTimesUD[];
9
+ asrInfo: AsrInfo;
8
10
  }>;
9
11
  export declare const getPrayerTimesInADateRange: (locationIso: string, from: string, to: string, asrMethod: number, prayerMethod: number) => Promise<prayerTimes[]>;
@@ -1,8 +1,9 @@
1
+ import { ExtraInfoTimes } from "../types/types";
1
2
  interface PrayerTime {
2
3
  iqamah?: string;
3
4
  name: string;
4
5
  }
5
- declare function useIqamahCheck(prayerTimes: PrayerTime[]): {
6
+ declare function useIqamahCheck(prayerTimes: PrayerTime[], extraInfo: ExtraInfoTimes[]): {
6
7
  iqamahDuration: number | null;
7
8
  currentPrayer: {
8
9
  iqamah?: string;
@@ -2,7 +2,9 @@ export declare function useMasjidInfo(org_nr?: string): {
2
2
  masjidName: string;
3
3
  masjidLogo: string;
4
4
  masjidAddress: string;
5
+ masjidWebsite: string;
5
6
  masjidPostName: string;
7
+ contactName: string;
6
8
  masjidContact: string;
7
9
  masjidEmail: string;
8
10
  masjidInfo: string;
@@ -1,6 +1,7 @@
1
- import { ExtraInfoTimes, PrayerTime } from '../types/types';
1
+ import { AsrInfo, ExtraInfoTimes, PrayerTime } from '../types/types';
2
2
  export declare function usePrayerTimes(org_nr: string | undefined, date: string): {
3
3
  prayerTimes: PrayerTime[];
4
4
  extraInfo: ExtraInfoTimes[];
5
+ asrInfo: AsrInfo;
5
6
  loading: boolean;
6
7
  };
@@ -1,17 +1,19 @@
1
- import { PrayerTime, ExtraInfoTimes, PrayerTimesUD, SimplePrayerTimes } from "../types/types";
1
+ import { PrayerTime, ExtraInfoTimes, PrayerTimesUD, SimplePrayerTimes, AsrInfo } from "../types/types";
2
2
  type UsePrayerTimesParams = {
3
3
  locationId: string;
4
4
  org_nr: string | null;
5
5
  date: Date;
6
6
  asrMethod: number;
7
7
  prayerMethod: number;
8
+ methodsLoaded: boolean;
8
9
  };
9
10
  type UsePrayerTimesResult = {
10
11
  prayerTimes: SimplePrayerTimes;
11
12
  prayerTimesWithSunrise: PrayerTime[] | PrayerTimesUD[];
12
13
  extraInfo: ExtraInfoTimes[];
14
+ asrInfo: AsrInfo;
13
15
  ready: boolean;
14
16
  isOnline: boolean;
15
17
  };
16
- export declare function usePrayerTimesUD({ locationId, org_nr, date, asrMethod, prayerMethod }: UsePrayerTimesParams): UsePrayerTimesResult;
18
+ export declare function usePrayerTimesUD({ locationId, org_nr, date, asrMethod, prayerMethod, methodsLoaded }: UsePrayerTimesParams): UsePrayerTimesResult;
17
19
  export {};
package/dist/index.d.ts CHANGED
@@ -1,29 +1,6 @@
1
1
  import './index.css';
2
2
  export { default as MasjidLogo } from './components/ph1/MasjidLogo';
3
- export { default as MasjidPrayerClock } from './components/ph1/MasjidPrayerClock';
4
- export { default as PrayerClockPH1 } from './components/ph1/PrayerClockPH1';
5
- export { default as TimeTablePH1 } from './components/ph1/TimeTablePH1';
6
- export { default as PrayerTimeBox } from './components/ph2/PrayerTimeBox';
7
- export { default as AnnouncementBar } from './components/lobby1/AnnouncementBar';
8
3
  export { default as Carousel } from './components/lobby1/Carousel';
9
- export { default as SmallPrayerTable } from './components/lobby1/SmallPrayerTable';
10
- export { default as Countdown } from './components/lobby3/Countdown';
11
- export { default as CreatePrayerTimetableCard } from './components/ud/CreatePrayerTimetableCard';
12
- export { default as DateSelector } from './components/ud/DateSelector';
13
- export { default as EventCard } from './components/ud/EventCard';
14
- export { default as Header } from './components/ud/Header';
15
- export { default as HijriCalendar } from './components/ud/HijriCalendar';
16
- export { default as ListEvents } from './components/ud/ListEvents';
17
- export { default as MasjidSelect } from './components/ud/MasjidSelect';
18
- export { default as PrayerTable } from './components/ud/PrayerTable';
19
- export { default as PrayerTableTab } from './components/ud/PrayerTableTab';
20
- export { default as PrayerTimetable } from './components/ud/PrayerTimetable';
21
- export { default as Time } from './components/ud/Time';
22
- export { default as ButtonSpin } from './components/miscellaneous/ButtonSpin';
23
- export { default as DownloadModal } from './components/miscellaneous/DownloadModal';
24
- export { default as FullscreenToggleButton } from './components/miscellaneous/FullscreenToggleButton';
25
- export { default as Spin } from './components/miscellaneous/Spin';
26
- export { default as Toast } from './components/miscellaneous/Toast';
27
4
  export { default as ClockPart } from './layout-components/ph1/ClockPart';
28
5
  export { default as TimeTablePart } from './layout-components/ph1/TimeTablePart';
29
6
  export { default as ClockAndPrayers } from './layout-components/ph2/ClockAndPrayers';
@@ -32,8 +9,7 @@ export { default as ExtraInfo } from './layout-components/ph2/ExtraInfo';
32
9
  export { default as TimeAndDate } from './layout-components/ph2/TimeAndDate';
33
10
  export { default as DigitalClockPart } from './layout-components/ph3/DigitalClockPart';
34
11
  export { default as TimeTable } from './layout-components/ph3/TimeTable';
35
- export { default as ClockAndTime } from './layout-components/lobby1/ClockAndTime';
12
+ export { default as AnnouncementPart } from './layout-components/lobby1/AnnouncementPart';
36
13
  export { default as TablePart } from './layout-components/lobby1/TablePart';
37
14
  export { default as PrayerPart } from './layout-components/lobby2/PrayerPart';
38
15
  export { default as TimePart } from './layout-components/lobby3/TimePart';
39
- export { useDarkMode } from './context/ThemeContext';
@@ -1,10 +1,11 @@
1
- import { PrayerTime } from "../../types/types";
2
- declare const AnnouncementPart: ({ nr, prayerTimes, prayerTimesColor, isDefault }: {
1
+ import { ExtraInfoTimes, PrayerTime } from "../../types/types";
2
+ declare const AnnouncementPart: ({ nr, prayerTimes, extraInfo, prayerTimesColor, isDefault }: {
3
3
  nr: number;
4
4
  prayerTimes: PrayerTime[];
5
+ extraInfo: ExtraInfoTimes[];
5
6
  prayerTimesColor: {
6
7
  [key: string]: string;
7
8
  };
8
9
  isDefault: boolean;
9
- }) => import("react/jsx-runtime").JSX.Element;
10
+ }) => import("react").JSX.Element;
10
11
  export default AnnouncementPart;
@@ -1,9 +1,10 @@
1
- import { PrayerTime } from "../../types/types";
2
- declare const ClockAndTime: ({ nr, prayerTimes, date, color, reverse }: {
1
+ import { AsrInfo, PrayerTime } from "../../types/types";
2
+ declare const ClockAndTime: ({ nr, prayerTimes, asrInfo, date, color, reverse }: {
3
3
  nr: number;
4
4
  prayerTimes: PrayerTime[];
5
+ asrInfo: AsrInfo;
5
6
  date: string;
6
7
  color: string;
7
8
  reverse?: boolean;
8
- }) => import("react/jsx-runtime").JSX.Element;
9
+ }) => import("react").JSX.Element;
9
10
  export default ClockAndTime;