@a.nemreen/dga-ui 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/fesm2022/a.nemreen-dga-ui-cookies.mjs +2 -2
- package/fesm2022/a.nemreen-dga-ui-date-picker.mjs +2 -2
- package/fesm2022/a.nemreen-dga-ui-header.mjs +119 -3
- package/fesm2022/a.nemreen-dga-ui.mjs +319 -277
- package/package.json +1 -1
- package/types/a.nemreen-dga-ui-date-picker.d.ts +2 -3
- package/types/a.nemreen-dga-ui-header.d.ts +34 -2
- package/types/a.nemreen-dga-ui.d.ts +112 -39
package/README.md
CHANGED
|
@@ -54,6 +54,8 @@ Sources live under `src/lib/<domain>/<component>/`. Place new work in the matchi
|
|
|
54
54
|
|
|
55
55
|
Import from the public package surface — do not deep-import `src/lib/...` paths.
|
|
56
56
|
|
|
57
|
+
New `dga-*` custom elements must also be listed in `@a.nemreen/dga-tokens` `styles/host-compat.css` (`:is(...)`) so host-app `*` / `a` resets cannot flatten them.
|
|
58
|
+
|
|
57
59
|
### Secondary entry points
|
|
58
60
|
|
|
59
61
|
Heavier shell pieces ship as separate FESMs so the primary bundle stays lean:
|
|
@@ -73,6 +75,8 @@ Accessibility tools live in a separate package — [`@a.nemreen/a11y`](https://w
|
|
|
73
75
|
@import '@a.nemreen/dga-tokens/styles.css';
|
|
74
76
|
```
|
|
75
77
|
|
|
78
|
+
Keep existing app resets (`* { margin: 0; padding: 0 }`, `a { color: var(--color-mainColor) }`). Tokens ship unlayered `host-compat.css` (last in `styles.css`) so DGA components win those globals. New `dga-*` tags must be added to that `:is()` list. Optional: wrap leftover host CSS in `@layer base` so *your* Tailwind utilities also win — see the tokens README.
|
|
79
|
+
|
|
76
80
|
Load Arabic Google Fonts (IBM Plex default; see `@a.nemreen/dga-tokens` README / `DgaFontService`).
|
|
77
81
|
|
|
78
82
|
Scan library sources so Tailwind keeps component utilities (path may vary):
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as s from"@angular/core";import{inject as y,DestroyRef as S,ElementRef as L,input as o,booleanAttribute as c,output as m,signal as b,computed as u,ChangeDetectionStrategy as P,Component as q}from"@angular/core";import{dgaIsArabic as z,dgaCx as p,dgaSafeHref as D,DgaButton as h,DgaIcon as v,DgaIconBadge as k,DgaLink as x,DgaSwitch as N}from"@a.nemreen/dga-ui";const f="cookieConsent",w=365,I=["_ga","_gid","_gat","_fbp","_fbc"],M={necessary:["security_storage"],essential:["security_storage"],functional:["functionality_storage"],functionality:["functionality_storage"],preferences:["personalization_storage"],personalization:["personalization_storage"],analytics:["analytics_storage"],statistics:["analytics_storage"],marketing:["ad_storage","ad_user_data","ad_personalization"],advertising:["ad_storage","ad_user_data","ad_personalization"],ads:["ad_storage","ad_user_data","ad_personalization"]};class n{destroyRef=y(S);hostRef=y(L);portalHome=null;compact=o(!1,{...ngDevMode?{debugName:"compact"}:{},transform:c});position=o("bottom",...ngDevMode?[{debugName:"position"}]:[]);align=o("",...ngDevMode?[{debugName:"align"}]:[]);delayMs=o(6e3,...ngDevMode?[{debugName:"delayMs"}]:[]);autoShow=o(!0,{...ngDevMode?{debugName:"autoShow"}:{},transform:c});dismissible=o(!0,{...ngDevMode?{debugName:"dismissible"}:{},transform:c});showDecline=o(!0,{...ngDevMode?{debugName:"showDecline"}:{},transform:c});showLinks=o(!0,{...ngDevMode?{debugName:"showLinks"}:{},transform:c});showCustomize=o(!0,{...ngDevMode?{debugName:"showCustomize"}:{},transform:c});overlay=o(!1,{...ngDevMode?{debugName:"overlay"}:{},transform:c});blocking=o(!1,{...ngDevMode?{debugName:"blocking"}:{},transform:c});overlayClose=o(!0,{...ngDevMode?{debugName:"overlayClose"}:{},transform:c});termsHref=o("/terms-and-conditions",...ngDevMode?[{debugName:"termsHref"}]:[]);privacyHref=o("/privacy-policy",...ngDevMode?[{debugName:"privacyHref"}]:[]);cookiePolicyHref=o("",...ngDevMode?[{debugName:"cookiePolicyHref"}]:[]);termsLabel=o("",...ngDevMode?[{debugName:"termsLabel"}]:[]);privacyLabel=o("",...ngDevMode?[{debugName:"privacyLabel"}]:[]);cookiePolicyLabel=o("",...ngDevMode?[{debugName:"cookiePolicyLabel"}]:[]);title=o("",...ngDevMode?[{debugName:"title"}]:[]);description=o("",...ngDevMode?[{debugName:"description"}]:[]);acceptLabel=o("",...ngDevMode?[{debugName:"acceptLabel"}]:[]);declineLabel=o("",...ngDevMode?[{debugName:"declineLabel"}]:[]);customizeLabel=o("",...ngDevMode?[{debugName:"customizeLabel"}]:[]);saveLabel=o("",...ngDevMode?[{debugName:"saveLabel"}]:[]);icon=o("cookie",...ngDevMode?[{debugName:"icon"}]:[]);gaTrackingIds=o("",...ngDevMode?[{debugName:"gaTrackingIds"}]:[]);consentDays=o(w,...ngDevMode?[{debugName:"consentDays"}]:[]);consentCookieName=o(f,...ngDevMode?[{debugName:"consentCookieName"}]:[]);analyticsCookieNames=o(I,...ngDevMode?[{debugName:"analyticsCookieNames"}]:[]);categories=o([],...ngDevMode?[{debugName:"categories"}]:[]);accepted=m();declined=m();closed=m();decided=m();preferencesChange=m();decision=m();visible=b(!1,...ngDevMode?[{debugName:"visible"}]:[]);mounted=b(!1,...ngDevMode?[{debugName:"mounted"}]:[]);customizing=b(!1,...ngDevMode?[{debugName:"customizing"}]:[]);draftPrefs=b({},...ngDevMode?[{debugName:"draftPrefs"}]:[]);seq=Math.random().toString(36).slice(2,8);titleId=`dga-cookies-title-${this.seq}`;bodyId=`dga-cookies-body-${this.seq}`;openTimer=null;closeTimer=null;copy=u(()=>{const e=z();return{title:e?"ملفات تعريف الارتباط":"Cookies",body:e?"يستخدم هذا الموقع ملفات تعريف الارتباط لضمان سهولة الاستخدام وتقديم تجربة تصفح محسّنة. بمتابعتك للتصفح فإنك تقرّ وتوافق على استخدامها.":"This website uses cookies to ensure ease of use and provide an enhanced browsing experience. By continuing to browse this site, you acknowledge and accept the use of cookies.",terms:e?"الشروط والأحكام":"Terms & Conditions",privacy:e?"سياسة الخصوصية":"Privacy Policy",cookiePolicy:e?"سياسة ملفات الارتباط":"Cookie Policy",accept:e?"قبول":"Accept",acceptAll:e?"قبول الكل":"Accept All",decline:e?"رفض غير الضروري":"Reject Non-Essential",customize:e?"تخصيص":"Customize",save:e?"حفظ التفضيلات":"Save Preferences",categories:e?"فئات ملفات الارتباط":"Cookie categories",policies:e?"سياسات الموقع":"Site policies",close:e?"إغلاق":"Close"}},...ngDevMode?[{debugName:"copy"}]:[]);resolvedCategories=u(()=>[...this.categories()??[]],...ngDevMode?[{debugName:"resolvedCategories"}]:[]);resolvedLinks=u(()=>{const e=this.copy(),t=[],a=this.termsHref();a&&t.push({href:a,label:this.termsLabel()||e.terms});const i=this.privacyHref();i&&t.push({href:i,label:this.privacyLabel()||e.privacy});const r=this.cookiePolicyHref();return r&&t.push({href:r,label:this.cookiePolicyLabel()||e.cookiePolicy}),t},...ngDevMode?[{debugName:"resolvedLinks"}]:[]);actionsClasses=u(()=>p("mt-2xl grid w-full shrink-0 gap-md",this.showDecline()?"grid-cols-1 sm:grid-cols-2":"grid-cols-1"),...ngDevMode?[{debugName:"actionsClasses"}]:[]);placement=u(()=>T(this.position(),this.align()),...ngDevMode?[{debugName:"placement"}]:[]);hasOverlay=u(()=>this.overlay()||this.blocking(),...ngDevMode?[{debugName:"hasOverlay"}]:[]);panelClasses=u(()=>{const e=this.compact(),{edge:t,align:a}=this.placement(),i="fixed z-urgent flex max-h-[min(100dvh-2rem,42rem)] flex-col overflow-hidden border border-border bg-elevated p-3xl shadow-xl backdrop-blur-md supports-[backdrop-filter]:bg-elevated/95";if(!e)return t==="top"?p(i,"inset-x-0 top-0 w-full rounded-b-2xl sm:inset-x-xl sm:top-xl sm:mx-auto sm:w-[min(100%-2rem,42rem)] sm:rounded-2xl"):p(i,"inset-x-0 bottom-0 w-full rounded-t-2xl sm:inset-x-xl sm:bottom-xl sm:mx-auto sm:w-[min(100%-2rem,42rem)] sm:rounded-2xl");const r="w-[min(100%-2rem,26rem)] rounded-2xl sm:w-[min(100%-2rem,28rem)]",d=t==="top"?"top-xl sm:top-3xl":"bottom-xl sm:bottom-3xl";return a==="start"?p(i,r,d,"start-xl sm:start-3xl"):a==="end"?p(i,r,d,"end-xl sm:end-3xl"):p(i,r,d,"inset-x-xl mx-auto sm:inset-x-auto sm:start-1/2 sm:-translate-x-1/2 rtl:sm:translate-x-1/2")},...ngDevMode?[{debugName:"panelClasses"}]:[]);constructor(){this.destroyRef.onDestroy(()=>{this.clearTimer(),this.clearCloseTimer(),this.restorePortal()})}ngOnInit(){const e=this.readStored();if(e.consent){C(e.consent,e.preferences,this.trackingIds(),this.analyticsCookieNames());return}if(!this.autoShow())return;const t=this.delayMs();t<=0||(this.openTimer=setTimeout(()=>this.show(),t))}hasCategories(){return this.resolvedCategories().length>0}hasLinks(){return this.resolvedLinks().length>0}show(){this.clearTimer(),this.clearCloseTimer(),this.customizing.set(!1),this.draftPrefs.set(this.buildDefaultPrefs(this.readStored().preferences)),this.ensureBodyPortal(),this.mounted.set(!0),requestAnimationFrame(()=>this.visible.set(!0))}dismiss(){this.hidePanel(()=>this.closed.emit())}onOverlayClick(){!this.overlayClose()||!this.dismissible()||this.dismiss()}openCustomize(){this.draftPrefs.set(this.buildDefaultPrefs(this.readStored().preferences)),this.customizing.set(!0)}onCategoryToggle(e,t){this.resolvedCategories().find(i=>i.id===e)?.required||this.draftPrefs.update(i=>({...i,[e]:t}))}accept(){const e=this.buildAllPrefs(!0);this.commit("accepted",e)}decline(){const e=this.buildAllPrefs(!1);this.commit("declined",e)}savePreferences(){const e={...this.draftPrefs()};for(const i of this.resolvedCategories())i.required&&(e[i.id]=!0);const a=this.resolvedCategories().some(i=>!i.required&&e[i.id]===!0)?"custom":"declined";this.commit(a,e)}commit(e,t){n.writeConsent(e,t,{name:this.consentCookieName(),days:this.consentDays(),hasCategories:this.hasCategories()}),C(e,t,this.trackingIds(),this.analyticsCookieNames()),this.hidePanel(()=>{e==="accepted"&&this.accepted.emit(),e==="declined"&&this.declined.emit(),this.decided.emit(e),this.preferencesChange.emit(t),this.decision.emit({consent:e,preferences:t})})}buildDefaultPrefs(e){const t={};for(const a of this.resolvedCategories())a.required?t[a.id]=!0:e&&a.id in e?t[a.id]=!!e[a.id]:t[a.id]=!!a.defaultEnabled;return t}buildAllPrefs(e){const t={};for(const a of this.resolvedCategories())t[a.id]=a.required?!0:e;return t}readStored(){return n.parseStored(n.get(this.consentCookieName()))}hidePanel(e){this.visible.set(!1),this.clearCloseTimer();const a=typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)").matches?0:200;this.closeTimer=setTimeout(()=>{this.mounted.set(!1),this.customizing.set(!1),this.closeTimer=null,e?.()},a)}trackingIds(){const e=this.gaTrackingIds();return Array.isArray(e)?[...e].filter(Boolean):String(e??"").split(",").map(a=>a.trim()).filter(Boolean)}ensureBodyPortal(){if(typeof document>"u")return;const e=this.hostRef.nativeElement;e.parentElement!==document.body&&(this.portalHome=e.parentNode,document.body.appendChild(e))}restorePortal(){const e=this.hostRef.nativeElement;if(!this.portalHome||e.parentNode===this.portalHome){this.portalHome=null;return}try{this.portalHome.appendChild(e)}catch{}this.portalHome=null}clearTimer(){this.openTimer!==null&&(clearTimeout(this.openTimer),this.openTimer=null)}clearCloseTimer(){this.closeTimer!==null&&(clearTimeout(this.closeTimer),this.closeTimer=null)}static getConsent(e=f){return n.parseStored(n.get(e)).consent}static getPreferences(e=f){return n.parseStored(n.get(e)).preferences}static setConsent(e,t){n.writeConsent(e,t?.preferences??null,{name:t?.name??f,days:t?.days??w,hasCategories:!!t?.preferences})}static clearConsent(e=f){n.delete(e)}static parseStored(e){if(!e)return{consent:null,preferences:null};if(e==="accepted"||e==="declined"||e==="custom")return{consent:e,preferences:null};try{const t=JSON.parse(e);if(t&&typeof t=="object"&&!Array.isArray(t)){if(t.status==="accepted"||t.status==="declined"||t.status==="custom")return{consent:t.status,preferences:t.preferences??null};const a={};for(const[i,r]of Object.entries(t))typeof r=="boolean"&&(a[i]=r);if(Object.keys(a).length)return{consent:"custom",preferences:a}}}catch{}return{consent:null,preferences:null}}static writeConsent(e,t,a){if(a.hasCategories&&t){n.set(a.name,JSON.stringify({status:e,preferences:t}),a.days);return}n.set(a.name,e==="custom"?"accepted":e,a.days)}static get(e){if(typeof document>"u")try{return localStorage.getItem(`dga_${e}`)}catch{return null}if(location.protocol==="file:")try{return localStorage.getItem(`dga_${e}`)}catch{return null}const t=document.cookie.match(new RegExp(`(?:^|; )${R(e)}=([^;]*)`));return t?decodeURIComponent(t[1]):null}static set(e,t,a=30){if(typeof document>"u"||location.protocol==="file:"){try{localStorage.setItem(`dga_${e}`,t)}catch{}return}const i=Math.max(0,Math.floor(a*86400));document.cookie=`${e}=${encodeURIComponent(t)}; path=/; max-age=${i}; SameSite=Lax`}static delete(e){if(typeof document>"u"||location.protocol==="file:"){try{localStorage.removeItem(`dga_${e}`)}catch{}return}document.cookie=`${e}=; path=/; max-age=0; SameSite=Lax`,document.cookie=`${e}=; path=/; max-age=0; domain=${location.hostname}; SameSite=Lax`}safeHref(e){return D(e)}static ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.0.7",ngImport:s,type:n,deps:[],target:s.ɵɵFactoryTarget.Component});static ɵcmp=s.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.0.7",type:n,isStandalone:!0,selector:"dga-cookies",inputs:{compact:{classPropertyName:"compact",publicName:"compact",isSignal:!0,isRequired:!1,transformFunction:null},position:{classPropertyName:"position",publicName:"position",isSignal:!0,isRequired:!1,transformFunction:null},align:{classPropertyName:"align",publicName:"align",isSignal:!0,isRequired:!1,transformFunction:null},delayMs:{classPropertyName:"delayMs",publicName:"delayMs",isSignal:!0,isRequired:!1,transformFunction:null},autoShow:{classPropertyName:"autoShow",publicName:"autoShow",isSignal:!0,isRequired:!1,transformFunction:null},dismissible:{classPropertyName:"dismissible",publicName:"dismissible",isSignal:!0,isRequired:!1,transformFunction:null},showDecline:{classPropertyName:"showDecline",publicName:"showDecline",isSignal:!0,isRequired:!1,transformFunction:null},showLinks:{classPropertyName:"showLinks",publicName:"showLinks",isSignal:!0,isRequired:!1,transformFunction:null},showCustomize:{classPropertyName:"showCustomize",publicName:"showCustomize",isSignal:!0,isRequired:!1,transformFunction:null},overlay:{classPropertyName:"overlay",publicName:"overlay",isSignal:!0,isRequired:!1,transformFunction:null},blocking:{classPropertyName:"blocking",publicName:"blocking",isSignal:!0,isRequired:!1,transformFunction:null},overlayClose:{classPropertyName:"overlayClose",publicName:"overlayClose",isSignal:!0,isRequired:!1,transformFunction:null},termsHref:{classPropertyName:"termsHref",publicName:"termsHref",isSignal:!0,isRequired:!1,transformFunction:null},privacyHref:{classPropertyName:"privacyHref",publicName:"privacyHref",isSignal:!0,isRequired:!1,transformFunction:null},cookiePolicyHref:{classPropertyName:"cookiePolicyHref",publicName:"cookiePolicyHref",isSignal:!0,isRequired:!1,transformFunction:null},termsLabel:{classPropertyName:"termsLabel",publicName:"termsLabel",isSignal:!0,isRequired:!1,transformFunction:null},privacyLabel:{classPropertyName:"privacyLabel",publicName:"privacyLabel",isSignal:!0,isRequired:!1,transformFunction:null},cookiePolicyLabel:{classPropertyName:"cookiePolicyLabel",publicName:"cookiePolicyLabel",isSignal:!0,isRequired:!1,transformFunction:null},title:{classPropertyName:"title",publicName:"title",isSignal:!0,isRequired:!1,transformFunction:null},description:{classPropertyName:"description",publicName:"description",isSignal:!0,isRequired:!1,transformFunction:null},acceptLabel:{classPropertyName:"acceptLabel",publicName:"acceptLabel",isSignal:!0,isRequired:!1,transformFunction:null},declineLabel:{classPropertyName:"declineLabel",publicName:"declineLabel",isSignal:!0,isRequired:!1,transformFunction:null},customizeLabel:{classPropertyName:"customizeLabel",publicName:"customizeLabel",isSignal:!0,isRequired:!1,transformFunction:null},saveLabel:{classPropertyName:"saveLabel",publicName:"saveLabel",isSignal:!0,isRequired:!1,transformFunction:null},icon:{classPropertyName:"icon",publicName:"icon",isSignal:!0,isRequired:!1,transformFunction:null},gaTrackingIds:{classPropertyName:"gaTrackingIds",publicName:"gaTrackingIds",isSignal:!0,isRequired:!1,transformFunction:null},consentDays:{classPropertyName:"consentDays",publicName:"consentDays",isSignal:!0,isRequired:!1,transformFunction:null},consentCookieName:{classPropertyName:"consentCookieName",publicName:"consentCookieName",isSignal:!0,isRequired:!1,transformFunction:null},analyticsCookieNames:{classPropertyName:"analyticsCookieNames",publicName:"analyticsCookieNames",isSignal:!0,isRequired:!1,transformFunction:null},categories:{classPropertyName:"categories",publicName:"categories",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{accepted:"accepted",declined:"declined",closed:"closed",decided:"decided",preferencesChange:"preferencesChange",decision:"decision"},host:{properties:{"attr.data-compact":"compact() || null","attr.data-overlay":"hasOverlay() || null"},classAttribute:"contents"},ngImport:s,template:`
|
|
1
|
+
import*as s from"@angular/core";import{inject as y,DestroyRef as S,ElementRef as L,input as o,booleanAttribute as c,output as m,signal as b,computed as u,ChangeDetectionStrategy as P,Component as q}from"@angular/core";import{dgaIsArabic as z,dgaCx as p,dgaSafeHref as D,DgaButton as h,DgaIcon as v,DgaIconBadge as k,DgaLink as x,DgaSwitch as N}from"@a.nemreen/dga-ui";const f="cookieConsent",w=365,I=["_ga","_gid","_gat","_fbp","_fbc"],M={necessary:["security_storage"],essential:["security_storage"],functional:["functionality_storage"],functionality:["functionality_storage"],preferences:["personalization_storage"],personalization:["personalization_storage"],analytics:["analytics_storage"],statistics:["analytics_storage"],marketing:["ad_storage","ad_user_data","ad_personalization"],advertising:["ad_storage","ad_user_data","ad_personalization"],ads:["ad_storage","ad_user_data","ad_personalization"]};class n{destroyRef=y(S);hostRef=y(L);portalHome=null;compact=o(!1,{...ngDevMode?{debugName:"compact"}:{},transform:c});position=o("bottom",...ngDevMode?[{debugName:"position"}]:[]);align=o("",...ngDevMode?[{debugName:"align"}]:[]);delayMs=o(6e3,...ngDevMode?[{debugName:"delayMs"}]:[]);autoShow=o(!0,{...ngDevMode?{debugName:"autoShow"}:{},transform:c});dismissible=o(!0,{...ngDevMode?{debugName:"dismissible"}:{},transform:c});showDecline=o(!0,{...ngDevMode?{debugName:"showDecline"}:{},transform:c});showLinks=o(!0,{...ngDevMode?{debugName:"showLinks"}:{},transform:c});showCustomize=o(!0,{...ngDevMode?{debugName:"showCustomize"}:{},transform:c});overlay=o(!1,{...ngDevMode?{debugName:"overlay"}:{},transform:c});blocking=o(!1,{...ngDevMode?{debugName:"blocking"}:{},transform:c});overlayClose=o(!0,{...ngDevMode?{debugName:"overlayClose"}:{},transform:c});termsHref=o("/terms-and-conditions",...ngDevMode?[{debugName:"termsHref"}]:[]);privacyHref=o("/privacy-policy",...ngDevMode?[{debugName:"privacyHref"}]:[]);cookiePolicyHref=o("",...ngDevMode?[{debugName:"cookiePolicyHref"}]:[]);termsLabel=o("",...ngDevMode?[{debugName:"termsLabel"}]:[]);privacyLabel=o("",...ngDevMode?[{debugName:"privacyLabel"}]:[]);cookiePolicyLabel=o("",...ngDevMode?[{debugName:"cookiePolicyLabel"}]:[]);title=o("",...ngDevMode?[{debugName:"title"}]:[]);description=o("",...ngDevMode?[{debugName:"description"}]:[]);acceptLabel=o("",...ngDevMode?[{debugName:"acceptLabel"}]:[]);declineLabel=o("",...ngDevMode?[{debugName:"declineLabel"}]:[]);customizeLabel=o("",...ngDevMode?[{debugName:"customizeLabel"}]:[]);saveLabel=o("",...ngDevMode?[{debugName:"saveLabel"}]:[]);icon=o("cookie",...ngDevMode?[{debugName:"icon"}]:[]);gaTrackingIds=o("",...ngDevMode?[{debugName:"gaTrackingIds"}]:[]);consentDays=o(w,...ngDevMode?[{debugName:"consentDays"}]:[]);consentCookieName=o(f,...ngDevMode?[{debugName:"consentCookieName"}]:[]);analyticsCookieNames=o(I,...ngDevMode?[{debugName:"analyticsCookieNames"}]:[]);categories=o([],...ngDevMode?[{debugName:"categories"}]:[]);accepted=m();declined=m();closed=m();decided=m();preferencesChange=m();decision=m();visible=b(!1,...ngDevMode?[{debugName:"visible"}]:[]);mounted=b(!1,...ngDevMode?[{debugName:"mounted"}]:[]);customizing=b(!1,...ngDevMode?[{debugName:"customizing"}]:[]);draftPrefs=b({},...ngDevMode?[{debugName:"draftPrefs"}]:[]);seq=Math.random().toString(36).slice(2,8);titleId=`dga-cookies-title-${this.seq}`;bodyId=`dga-cookies-body-${this.seq}`;openTimer=null;closeTimer=null;copy=u(()=>{const e=z();return{title:e?"ملفات تعريف الارتباط":"Cookies",body:e?"يستخدم هذا الموقع ملفات تعريف الارتباط لضمان سهولة الاستخدام وتقديم تجربة تصفح محسّنة. بمتابعتك للتصفح فإنك تقرّ وتوافق على استخدامها.":"This website uses cookies to ensure ease of use and provide an enhanced browsing experience. By continuing to browse this site, you acknowledge and accept the use of cookies.",terms:e?"الشروط والأحكام":"Terms & Conditions",privacy:e?"سياسة الخصوصية":"Privacy Policy",cookiePolicy:e?"سياسة ملفات الارتباط":"Cookie Policy",accept:e?"قبول":"Accept",acceptAll:e?"قبول الكل":"Accept All",decline:e?"رفض غير الضروري":"Reject Non-Essential",customize:e?"تخصيص":"Customize",save:e?"حفظ التفضيلات":"Save Preferences",categories:e?"فئات ملفات الارتباط":"Cookie categories",policies:e?"سياسات الموقع":"Site policies",close:e?"إغلاق":"Close"}},...ngDevMode?[{debugName:"copy"}]:[]);resolvedCategories=u(()=>[...this.categories()??[]],...ngDevMode?[{debugName:"resolvedCategories"}]:[]);resolvedLinks=u(()=>{const e=this.copy(),t=[],a=this.termsHref();a&&t.push({href:a,label:this.termsLabel()||e.terms});const i=this.privacyHref();i&&t.push({href:i,label:this.privacyLabel()||e.privacy});const r=this.cookiePolicyHref();return r&&t.push({href:r,label:this.cookiePolicyLabel()||e.cookiePolicy}),t},...ngDevMode?[{debugName:"resolvedLinks"}]:[]);actionsClasses=u(()=>p("mt-2xl grid w-full shrink-0 gap-md",this.showDecline()?"grid-cols-1 sm:grid-cols-2":"grid-cols-1"),...ngDevMode?[{debugName:"actionsClasses"}]:[]);placement=u(()=>T(this.position(),this.align()),...ngDevMode?[{debugName:"placement"}]:[]);hasOverlay=u(()=>this.overlay()||this.blocking(),...ngDevMode?[{debugName:"hasOverlay"}]:[]);panelClasses=u(()=>{const e=this.compact(),{edge:t,align:a}=this.placement(),i="fixed z-urgent flex max-h-[min(100dvh-2rem,42rem)] flex-col overflow-hidden border border-border bg-elevated p-3xl shadow-xl backdrop-blur-md supports-[backdrop-filter]:bg-elevated/95";if(!e)return t==="top"?p(i,"inset-x-0 top-0 w-full rounded-b-2xl sm:inset-x-xl sm:top-xl sm:mx-auto sm:w-[min(100%-2rem,42rem)] sm:rounded-2xl"):p(i,"inset-x-0 bottom-0 w-full rounded-t-2xl sm:inset-x-xl sm:bottom-xl sm:mx-auto sm:w-[min(100%-2rem,42rem)] sm:rounded-2xl");const r="w-[min(100%-2rem,26rem)] rounded-2xl sm:w-[min(100%-2rem,28rem)]",d=t==="top"?"top-xl sm:top-3xl":"bottom-xl sm:bottom-3xl";return a==="start"?p(i,r,d,"start-xl sm:start-3xl"):a==="end"?p(i,r,d,"end-xl sm:end-3xl"):p(i,r,d,"inset-x-xl mx-auto sm:inset-x-auto sm:start-1/2 sm:-translate-x-1/2 rtl:sm:translate-x-1/2")},...ngDevMode?[{debugName:"panelClasses"}]:[]);constructor(){this.destroyRef.onDestroy(()=>{this.clearTimer(),this.clearCloseTimer(),this.restorePortal()})}ngOnInit(){const e=this.readStored();if(e.consent){C(e.consent,e.preferences,this.trackingIds(),this.analyticsCookieNames());return}if(!this.autoShow())return;const t=this.delayMs();t<=0||(this.openTimer=setTimeout(()=>this.show(),t))}hasCategories(){return this.resolvedCategories().length>0}hasLinks(){return this.resolvedLinks().length>0}show(){this.clearTimer(),this.clearCloseTimer(),this.customizing.set(!1),this.draftPrefs.set(this.buildDefaultPrefs(this.readStored().preferences)),this.ensureBodyPortal(),this.mounted.set(!0),requestAnimationFrame(()=>this.visible.set(!0))}dismiss(){this.hidePanel(()=>this.closed.emit())}onOverlayClick(){!this.overlayClose()||!this.dismissible()||this.dismiss()}openCustomize(){this.draftPrefs.set(this.buildDefaultPrefs(this.readStored().preferences)),this.customizing.set(!0)}onCategoryToggle(e,t){this.resolvedCategories().find(i=>i.id===e)?.required||this.draftPrefs.update(i=>({...i,[e]:t}))}accept(){const e=this.buildAllPrefs(!0);this.commit("accepted",e)}decline(){const e=this.buildAllPrefs(!1);this.commit("declined",e)}savePreferences(){const e={...this.draftPrefs()};for(const i of this.resolvedCategories())i.required&&(e[i.id]=!0);const a=this.resolvedCategories().some(i=>!i.required&&e[i.id]===!0)?"custom":"declined";this.commit(a,e)}commit(e,t){n.writeConsent(e,t,{name:this.consentCookieName(),days:this.consentDays(),hasCategories:this.hasCategories()}),C(e,t,this.trackingIds(),this.analyticsCookieNames()),this.hidePanel(()=>{e==="accepted"&&this.accepted.emit(),e==="declined"&&this.declined.emit(),this.decided.emit(e),this.preferencesChange.emit(t),this.decision.emit({consent:e,preferences:t})})}buildDefaultPrefs(e){const t={};for(const a of this.resolvedCategories())a.required?t[a.id]=!0:e&&a.id in e?t[a.id]=!!e[a.id]:t[a.id]=!!a.defaultEnabled;return t}buildAllPrefs(e){const t={};for(const a of this.resolvedCategories())t[a.id]=a.required?!0:e;return t}readStored(){return n.parseStored(n.get(this.consentCookieName()))}hidePanel(e){this.visible.set(!1),this.clearCloseTimer();const a=typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)").matches?0:200;this.closeTimer=setTimeout(()=>{this.mounted.set(!1),this.customizing.set(!1),this.closeTimer=null,e?.()},a)}trackingIds(){const e=this.gaTrackingIds();return Array.isArray(e)?[...e].filter(Boolean):String(e??"").split(",").map(a=>a.trim()).filter(Boolean)}ensureBodyPortal(){if(typeof document>"u")return;const e=this.hostRef.nativeElement;e.parentElement!==document.body&&(this.portalHome=e.parentNode,document.body.appendChild(e))}restorePortal(){const e=this.hostRef.nativeElement;if(!this.portalHome||e.parentNode===this.portalHome){this.portalHome=null;return}try{this.portalHome.appendChild(e)}catch{}this.portalHome=null}clearTimer(){this.openTimer!==null&&(clearTimeout(this.openTimer),this.openTimer=null)}clearCloseTimer(){this.closeTimer!==null&&(clearTimeout(this.closeTimer),this.closeTimer=null)}static getConsent(e=f){return n.parseStored(n.get(e)).consent}static getPreferences(e=f){return n.parseStored(n.get(e)).preferences}static setConsent(e,t){n.writeConsent(e,t?.preferences??null,{name:t?.name??f,days:t?.days??w,hasCategories:!!t?.preferences})}static clearConsent(e=f){n.delete(e)}static parseStored(e){if(!e)return{consent:null,preferences:null};if(e==="accepted"||e==="declined"||e==="custom")return{consent:e,preferences:null};try{const t=JSON.parse(e);if(t&&typeof t=="object"&&!Array.isArray(t)){if(t.status==="accepted"||t.status==="declined"||t.status==="custom")return{consent:t.status,preferences:t.preferences??null};const a={};for(const[i,r]of Object.entries(t))typeof r=="boolean"&&(a[i]=r);if(Object.keys(a).length)return{consent:"custom",preferences:a}}}catch{}return{consent:null,preferences:null}}static writeConsent(e,t,a){if(a.hasCategories&&t){n.set(a.name,JSON.stringify({status:e,preferences:t}),a.days);return}n.set(a.name,e==="custom"?"accepted":e,a.days)}static get(e){if(typeof document>"u")try{return localStorage.getItem(`dga_${e}`)}catch{return null}if(location.protocol==="file:")try{return localStorage.getItem(`dga_${e}`)}catch{return null}const t=document.cookie.match(new RegExp(`(?:^|; )${R(e)}=([^;]*)`));return t?decodeURIComponent(t[1]):null}static set(e,t,a=30){if(typeof document>"u"||location.protocol==="file:"){try{localStorage.setItem(`dga_${e}`,t)}catch{}return}const i=Math.max(0,Math.floor(a*86400));document.cookie=`${e}=${encodeURIComponent(t)}; path=/; max-age=${i}; SameSite=Lax`}static delete(e){if(typeof document>"u"||location.protocol==="file:"){try{localStorage.removeItem(`dga_${e}`)}catch{}return}document.cookie=`${e}=; path=/; max-age=0; SameSite=Lax`,document.cookie=`${e}=; path=/; max-age=0; domain=${location.hostname}; SameSite=Lax`}safeHref(e){return D(e)}static ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:s,type:n,deps:[],target:s.ɵɵFactoryTarget.Component});static ɵcmp=s.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.5",type:n,isStandalone:!0,selector:"dga-cookies",inputs:{compact:{classPropertyName:"compact",publicName:"compact",isSignal:!0,isRequired:!1,transformFunction:null},position:{classPropertyName:"position",publicName:"position",isSignal:!0,isRequired:!1,transformFunction:null},align:{classPropertyName:"align",publicName:"align",isSignal:!0,isRequired:!1,transformFunction:null},delayMs:{classPropertyName:"delayMs",publicName:"delayMs",isSignal:!0,isRequired:!1,transformFunction:null},autoShow:{classPropertyName:"autoShow",publicName:"autoShow",isSignal:!0,isRequired:!1,transformFunction:null},dismissible:{classPropertyName:"dismissible",publicName:"dismissible",isSignal:!0,isRequired:!1,transformFunction:null},showDecline:{classPropertyName:"showDecline",publicName:"showDecline",isSignal:!0,isRequired:!1,transformFunction:null},showLinks:{classPropertyName:"showLinks",publicName:"showLinks",isSignal:!0,isRequired:!1,transformFunction:null},showCustomize:{classPropertyName:"showCustomize",publicName:"showCustomize",isSignal:!0,isRequired:!1,transformFunction:null},overlay:{classPropertyName:"overlay",publicName:"overlay",isSignal:!0,isRequired:!1,transformFunction:null},blocking:{classPropertyName:"blocking",publicName:"blocking",isSignal:!0,isRequired:!1,transformFunction:null},overlayClose:{classPropertyName:"overlayClose",publicName:"overlayClose",isSignal:!0,isRequired:!1,transformFunction:null},termsHref:{classPropertyName:"termsHref",publicName:"termsHref",isSignal:!0,isRequired:!1,transformFunction:null},privacyHref:{classPropertyName:"privacyHref",publicName:"privacyHref",isSignal:!0,isRequired:!1,transformFunction:null},cookiePolicyHref:{classPropertyName:"cookiePolicyHref",publicName:"cookiePolicyHref",isSignal:!0,isRequired:!1,transformFunction:null},termsLabel:{classPropertyName:"termsLabel",publicName:"termsLabel",isSignal:!0,isRequired:!1,transformFunction:null},privacyLabel:{classPropertyName:"privacyLabel",publicName:"privacyLabel",isSignal:!0,isRequired:!1,transformFunction:null},cookiePolicyLabel:{classPropertyName:"cookiePolicyLabel",publicName:"cookiePolicyLabel",isSignal:!0,isRequired:!1,transformFunction:null},title:{classPropertyName:"title",publicName:"title",isSignal:!0,isRequired:!1,transformFunction:null},description:{classPropertyName:"description",publicName:"description",isSignal:!0,isRequired:!1,transformFunction:null},acceptLabel:{classPropertyName:"acceptLabel",publicName:"acceptLabel",isSignal:!0,isRequired:!1,transformFunction:null},declineLabel:{classPropertyName:"declineLabel",publicName:"declineLabel",isSignal:!0,isRequired:!1,transformFunction:null},customizeLabel:{classPropertyName:"customizeLabel",publicName:"customizeLabel",isSignal:!0,isRequired:!1,transformFunction:null},saveLabel:{classPropertyName:"saveLabel",publicName:"saveLabel",isSignal:!0,isRequired:!1,transformFunction:null},icon:{classPropertyName:"icon",publicName:"icon",isSignal:!0,isRequired:!1,transformFunction:null},gaTrackingIds:{classPropertyName:"gaTrackingIds",publicName:"gaTrackingIds",isSignal:!0,isRequired:!1,transformFunction:null},consentDays:{classPropertyName:"consentDays",publicName:"consentDays",isSignal:!0,isRequired:!1,transformFunction:null},consentCookieName:{classPropertyName:"consentCookieName",publicName:"consentCookieName",isSignal:!0,isRequired:!1,transformFunction:null},analyticsCookieNames:{classPropertyName:"analyticsCookieNames",publicName:"analyticsCookieNames",isSignal:!0,isRequired:!1,transformFunction:null},categories:{classPropertyName:"categories",publicName:"categories",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{accepted:"accepted",declined:"declined",closed:"closed",decided:"decided",preferencesChange:"preferencesChange",decision:"decision"},host:{properties:{"attr.data-compact":"compact() || null","attr.data-overlay":"hasOverlay() || null"},classAttribute:"contents"},ngImport:s,template:`
|
|
2
2
|
@if (mounted()) {
|
|
3
3
|
@if (hasOverlay()) {
|
|
4
4
|
<div
|
|
@@ -149,7 +149,7 @@ import*as s from"@angular/core";import{inject as y,DestroyRef as S,ElementRef as
|
|
|
149
149
|
</div>
|
|
150
150
|
</div>
|
|
151
151
|
}
|
|
152
|
-
`,isInline:!0,styles:["@keyframes dga-cookie-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dga-cookie-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}.dga-cookies-panel--open{animation:dga-cookie-in .32s cubic-bezier(.22,1,.36,1) both}.dga-cookies-panel--closing{animation:dga-cookie-out .2s ease-in both;pointer-events:none}.dga-cookies-body{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--dga-border-default, #d0d5dd) 70%,transparent) transparent}.dga-cookies-body::-webkit-scrollbar{width:4px}.dga-cookies-body::-webkit-scrollbar-thumb{border-radius:999px;background:color-mix(in srgb,var(--dga-border-default, #d0d5dd) 70%,transparent)}@media(prefers-reduced-motion:reduce){.dga-cookies-panel--open,.dga-cookies-panel--closing{animation:none!important}}\n"],dependencies:[{kind:"directive",type:h,selector:"button[dgaButton], a[dgaButton]",inputs:["variant","size","iconOnly","cooldownMs","loading","dgaButtonClass"]},{kind:"component",type:v,selector:"dga-icon",inputs:["name","glyph","size","tone","label"]},{kind:"component",type:k,selector:"dga-icon-badge",inputs:["size","appearance"]},{kind:"directive",type:x,selector:"a[dgaLink]",inputs:["variant","dropdown"]},{kind:"component",type:N,selector:"dga-switch",inputs:["checked","size","label","disabled"],outputs:["checkedChange","changed"]}],changeDetection:s.ChangeDetectionStrategy.OnPush})}s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.
|
|
152
|
+
`,isInline:!0,styles:["@keyframes dga-cookie-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dga-cookie-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}.dga-cookies-panel--open{animation:dga-cookie-in .32s cubic-bezier(.22,1,.36,1) both}.dga-cookies-panel--closing{animation:dga-cookie-out .2s ease-in both;pointer-events:none}.dga-cookies-body{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--dga-border-default, #d0d5dd) 70%,transparent) transparent}.dga-cookies-body::-webkit-scrollbar{width:4px}.dga-cookies-body::-webkit-scrollbar-thumb{border-radius:999px;background:color-mix(in srgb,var(--dga-border-default, #d0d5dd) 70%,transparent)}@media(prefers-reduced-motion:reduce){.dga-cookies-panel--open,.dga-cookies-panel--closing{animation:none!important}}\n"],dependencies:[{kind:"directive",type:h,selector:"button[dgaButton], a[dgaButton]",inputs:["variant","size","iconOnly","cooldownMs","loading","dgaButtonClass"]},{kind:"component",type:v,selector:"dga-icon",inputs:["name","glyph","size","tone","label"]},{kind:"component",type:k,selector:"dga-icon-badge",inputs:["size","appearance"]},{kind:"directive",type:x,selector:"a[dgaLink]",inputs:["variant","dropdown"]},{kind:"component",type:N,selector:"dga-switch",inputs:["checked","size","label","disabled"],outputs:["checkedChange","changed"]}],changeDetection:s.ChangeDetectionStrategy.OnPush})}s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:s,type:n,decorators:[{type:q,args:[{selector:"dga-cookies",standalone:!0,imports:[h,v,k,x,N],template:`
|
|
153
153
|
@if (mounted()) {
|
|
154
154
|
@if (hasOverlay()) {
|
|
155
155
|
<div
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as i from"@angular/core";import{inject as $,ElementRef as ee,DestroyRef as ae,input as c,linkedSignal as te,model as T,booleanAttribute as S,signal as _,computed as p,output as z,effect as A,HostListener as q,ChangeDetectionStrategy as re,ViewEncapsulation as de,Component as ie}from"@angular/core";import{NgStyle as B}from"@angular/common";import{dgaFormStatusFromInvalid as ne,DgaFormControl as O,DgaIcon as j,dgaProvideValueAccessor as U}from"@a.nemreen/dga-ui";const H={ar:["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],en:["Muharram","Safar","Rabi I","Rabi II","Jumada I","Jumada II","Rajab","Sha'ban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"]},J={ar:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],en:["January","February","March","April","May","June","July","August","September","October","November","December"]},G={ar:["أحد","إثن","ثلا","أرب","خمي","جمع","سبت"],en:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},se=new Intl.DateTimeFormat("en-US-u-ca-islamic-umalqura",{day:"numeric",month:"numeric",year:"numeric",timeZone:"UTC"});function W(d){return d<10?`0${d}`:String(d)}function w(d){return new Date(Date.UTC(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()))}function L(d,e){return parseInt(d.find(t=>t.type===e)?.value??"0",10)}function g(d,e){const t=w(d);if(e==="hijri"){const a=se.formatToParts(t);return{year:L(a,"year"),month:L(a,"month"),day:L(a,"day")}}return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate()}}function v(d,e){const{year:t,month:a,day:r}=d;if(e==="gregorian")return new Date(Date.UTC(t,a-1,r));let s=Date.UTC(Math.max(622,Math.floor(t*.97+579)-3),0,1),l=Date.UTC(Math.floor(t*.97+579)+3,11,31);for(;s<=l;){const n=s+Math.floor((l-s)/2),o=new Date(n),h=g(o,"hijri"),b=h.year!==t?h.year-t:h.month!==a?h.month-a:h.day-r;if(b===0)return w(o);b<0?s=n+864e5:l=n-864e5}return w(new Date(s))}function C(d,e,t){if(t==="gregorian")return new Date(Date.UTC(d,e,0)).getUTCDate();for(let a=30;a>=29;a--){const r=v({year:d,month:e,day:a},"hijri"),s=g(r,"hijri");if(s.year===d&&s.month===e&&s.day===a)return a}return 29}function R(d,e,t){let a=d.year,r=d.month+e;for(;r>12;)r-=12,a+=1;for(;r<1;)r+=12,a-=1;const s=C(a,r,t);return{year:a,month:r,day:Math.min(d.day,s)}}function K(d){const e=/D{1,2}/.test(d),t=/M{1,2}/.test(d);return e?"day":t?"month":"year"}function D(d,e,t){const a=g(d,t);return e.replace(/YYYY|YY|MM|M|DD|D/g,r=>{switch(r){case"YYYY":return String(a.year);case"YY":return String(a.year).slice(-2);case"MM":return W(a.month);case"M":return String(a.month);case"DD":return W(a.day);case"D":return String(a.day);default:return r}})}function V(d,e,t){const a=d.trim();if(!a)return null;const r=/(YYYY|YY|MM|M|DD|D)/g;if(![...e.matchAll(r)].map(f=>f[1]).length)return null;let l="",n=0;for(const f of e.matchAll(r)){l+=Q(e.slice(n,f.index));const k=f[1];k==="YYYY"?l+="(?<YYYY>\\d{4})":k==="YY"?l+="(?<YY>\\d{2})":k==="MM"||k==="DD"?l+=`(?<${k}>\\d{2})`:l+=`(?<${k}>\\d{1,2})`,n=(f.index??0)+k.length}l+=Q(e.slice(n));const o=new RegExp(`^${l}$`).exec(a);if(!o?.groups)return null;let b=g(new Date,t).year;if(o.groups.YYYY)b=parseInt(o.groups.YYYY,10);else if(o.groups.YY){const f=parseInt(o.groups.YY,10);b=f>=70?1900+f:2e3+f}let u=1;(o.groups.MM||o.groups.M)&&(u=parseInt(o.groups.MM??o.groups.M,10));let m=1;if((o.groups.DD||o.groups.D)&&(m=parseInt(o.groups.DD??o.groups.D,10)),u<1||u>12||m<1||m>31)return null;const Y=v({year:b,month:u,day:m},t),P=g(Y,t);return P.year!==b||P.month!==u||P.day!==m?null:Y}function Q(d){return d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(d,e,t="gregorian"){if(!d||!e)return!1;const a=g(d,t),r=g(e,t);return a.year===r.year&&a.month===r.month&&a.day===r.day}function y(d,e,t="gregorian"){if(!d&&!e)return 0;if(!d)return-1;if(!e)return 1;const a=g(d,t),r=g(e,t);return a.year!==r.year?a.year-r.year:a.month!==r.month?a.month-r.month:a.day-r.day}function F(d,e,t,a="gregorian"){let r=w(d);return e&&y(r,e,a)<0&&(r=w(e)),t&&y(r,t,a)>0&&(r=w(t)),r}function E(d,e){return d==="hijri"?H[e]:J[e]}function Z(d,e,t){return v({year:d,month:e,day:1},t).getUTCDay()}function N(){const d=new Date;return new Date(Date.UTC(d.getFullYear(),d.getMonth(),d.getDate()))}function I(d,e,t){return d==null||d===""?null:d instanceof Date?w(d):V(String(d),e,t)}const le={ar:{today:"اليوم",clear:"مسح",close:"إغلاق",save:"حفظ",prev:"السابق",next:"التالي",calendar:"فتح التقويم",clearInput:"مسح التاريخ",month:"الشهر",year:"السنة",placeholder:"يوم/شهر/سنة",rangeStart:"تاريخ البداية",rangeEnd:"تاريخ النهاية"},en:{today:"Today",clear:"Clear",close:"Close",save:"Save",prev:"Previous",next:"Next",calendar:"Open calendar",clearInput:"Clear date",month:"Month",year:"Year",placeholder:"DD/MM/YYYY",rangeStart:"Start date",rangeEnd:"End date"}};let oe=0;class x{host=$(ee);destroyRef=$(ae);inputId=`dga-date-picker-${++oe}`;panelId=`${this.inputId}-panel`;valueInput=c("",{...ngDevMode?{debugName:"valueInput"}:{},alias:"value"});value=te(this.valueInput,...ngDevMode?[{debugName:"value"}]:[]);startValue=T("",...ngDevMode?[{debugName:"startValue"}]:[]);endValue=T("",...ngDevMode?[{debugName:"endValue"}]:[]);onChange=()=>{};onTouched=()=>{};calendar=c("gregorian",...ngDevMode?[{debugName:"calendar"}]:[]);range=c(!1,{...ngDevMode?{debugName:"range"}:{},transform:S});format=c("DD/MM/YYYY",...ngDevMode?[{debugName:"format"}]:[]);mode=c(null,...ngDevMode?[{debugName:"mode"}]:[]);locale=c("ar",...ngDevMode?[{debugName:"locale"}]:[]);minDate=c(null,...ngDevMode?[{debugName:"minDate"}]:[]);maxDate=c(null,...ngDevMode?[{debugName:"maxDate"}]:[]);yearBefore=c(40,...ngDevMode?[{debugName:"yearBefore"}]:[]);yearAfter=c(5,...ngDevMode?[{debugName:"yearAfter"}]:[]);placeholder=c("",...ngDevMode?[{debugName:"placeholder"}]:[]);controlId=c("",...ngDevMode?[{debugName:"controlId"}]:[]);name=c("",...ngDevMode?[{debugName:"name"}]:[]);size=c("md",...ngDevMode?[{debugName:"size"}]:[]);disabledInput=c(!1,{...ngDevMode?{debugName:"disabledInput"}:{},alias:"disabled",transform:S});cvaDisabled=_(!1,...ngDevMode?[{debugName:"cvaDisabled"}]:[]);disabled=p(()=>this.disabledInput()||this.cvaDisabled(),...ngDevMode?[{debugName:"disabled"}]:[]);required=c(!1,{...ngDevMode?{debugName:"required"}:{},transform:S});clearable=c(!1,{...ngDevMode?{debugName:"clearable"}:{},transform:S});editable=c(!0,{...ngDevMode?{debugName:"editable"}:{},transform:S});invalid=c(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:S});status=c("default",...ngDevMode?[{debugName:"status"}]:[]);rangeSeparator=c(" - ",...ngDevMode?[{debugName:"rangeSeparator"}]:[]);todayLabel=c("",...ngDevMode?[{debugName:"todayLabel"}]:[]);clearLabel=c("",...ngDevMode?[{debugName:"clearLabel"}]:[]);closeLabel=c("",...ngDevMode?[{debugName:"closeLabel"}]:[]);saveLabel=c("",...ngDevMode?[{debugName:"saveLabel"}]:[]);ariaLabel=c("",...ngDevMode?[{debugName:"ariaLabel"}]:[]);resolvedTodayLabel=p(()=>this.todayLabel()||this.labels().today,...ngDevMode?[{debugName:"resolvedTodayLabel"}]:[]);resolvedClearLabel=p(()=>this.clearLabel()||this.labels().clear,...ngDevMode?[{debugName:"resolvedClearLabel"}]:[]);resolvedCloseLabel=p(()=>this.closeLabel()||this.labels().close,...ngDevMode?[{debugName:"resolvedCloseLabel"}]:[]);resolvedSaveLabel=p(()=>this.saveLabel()||this.labels().save,...ngDevMode?[{debugName:"resolvedSaveLabel"}]:[]);valueChange=z();rangeChange=z();open=_(!1,...ngDevMode?[{debugName:"open"}]:[]);panelStyle=_({},...ngDevMode?[{debugName:"panelStyle"}]:[]);panelView=_("day",...ngDevMode?[{debugName:"panelView"}]:[]);viewParts=_(this.initialViewParts(),...ngDevMode?[{debugName:"viewParts"}]:[]);draftStart=_(null,...ngDevMode?[{debugName:"draftStart"}]:[]);draftEnd=_(null,...ngDevMode?[{debugName:"draftEnd"}]:[]);rangePickPhase=_("start",...ngDevMode?[{debugName:"rangePickPhase"}]:[]);typedValue=_(null,...ngDevMode?[{debugName:"typedValue"}]:[]);effectiveStatus=p(()=>this.status()!=="default"?this.status():ne(this.invalid()),...ngDevMode?[{debugName:"effectiveStatus"}]:[]);panelMode=p(()=>this.mode()??K(this.format()),...ngDevMode?[{debugName:"panelMode"}]:[]);labels=p(()=>le[this.locale()],...ngDevMode?[{debugName:"labels"}]:[]);resolvedPlaceholder=p(()=>this.placeholder()||this.labels().placeholder,...ngDevMode?[{debugName:"resolvedPlaceholder"}]:[]);weekdays=p(()=>G[this.locale()],...ngDevMode?[{debugName:"weekdays"}]:[]);minBound=p(()=>I(this.minDate(),this.format(),this.calendar()),...ngDevMode?[{debugName:"minBound"}]:[]);maxBound=p(()=>I(this.maxDate(),this.format(),this.calendar()),...ngDevMode?[{debugName:"maxBound"}]:[]);displayValue=p(()=>{const e=this.typedValue();if(e!==null)return e;if(this.range()){const t=this.startValue()||this.parseRangeFromValue().start,a=this.endValue()||this.parseRangeFromValue().end;return t&&a?`${t}${this.rangeSeparator()}${a}`:t||a||this.value()}return this.value()},...ngDevMode?[{debugName:"displayValue"}]:[]);viewYear=p(()=>this.viewParts().year,...ngDevMode?[{debugName:"viewYear"}]:[]);viewMonth=p(()=>this.viewParts().month,...ngDevMode?[{debugName:"viewMonth"}]:[]);monthOptions=p(()=>{const e=E(this.calendar(),this.locale()),t=this.viewYear(),a=this.draftAnchorParts();return e.map((r,s)=>{const l=s+1,n=this.isMonthDisabled(t,l);return{value:l,label:r,selected:a?.month===l&&a?.year===t,disabled:n}})},...ngDevMode?[{debugName:"monthOptions"}]:[]);yearOptions=p(()=>{const e=this.viewParts(),t=this.draftAnchorParts(),a=g(N(),this.calendar()).year,r=a-this.yearBefore(),s=a+this.yearAfter(),l=[];for(let n=r;n<=s;n+=1)l.push({value:n,selected:t?.year===n,disabled:this.isYearDisabled(n)});return l.some(n=>n.value===e.year)||(l.unshift({value:e.year,selected:t?.year===e.year,disabled:this.isYearDisabled(e.year)}),l.sort((n,o)=>n.value-o.value)),l},...ngDevMode?[{debugName:"yearOptions"}]:[]);dayCells=p(()=>{if(this.panelView()!=="day")return[];const e=this.viewYear(),t=this.viewMonth(),a=this.calendar(),r=C(e,t,a),s=Z(e,t,a),l=N(),n=this.draftStart(),o=this.draftEnd(),h=o??n,b=[];for(let u=0;u<s;u+=1)b.push({key:`e-${u}`,empty:!0});for(let u=1;u<=r;u+=1){const m=v({year:e,month:t,day:u},a),Y=this.isDateDisabled(m),P=n&&M(m,n,a)||o&&M(m,o,a),f=this.range()&&n&&h&&y(m,n,a)>=0&&y(m,h,a)<=0,k=this.range()&&n&&M(m,n,a),X=this.range()&&h&&M(m,h,a);b.push({key:`${e}-${t}-${u}`,empty:!1,day:u,today:M(m,l,a),selected:!!P,inRange:!!f,rangeStart:!!k,rangeEnd:!!X,disabled:Y,label:D(m,this.format(),a)})}return b},...ngDevMode?[{debugName:"dayCells"}]:[]);constructor(){A(()=>{this.syncDraftFromModels()}),A(()=>{const e=this.panelMode();this.open()&&this.panelView.set(e)}),this.destroyRef.onDestroy(()=>{this.open.set(!1)})}onDocumentClick(e){if(!this.open())return;const t=e.target;t&&this.host.nativeElement.contains(t)||this.closePanel(!1)}onEscape(){this.open()&&this.closePanel(!1)}onReposition(){this.open()&&this.repositionPanel()}monthLabel(e){return E(this.calendar(),this.locale())[e-1]??String(e)}togglePanel(){if(!this.disabled()){if(this.open()){this.closePanel(!1);return}this.openPanel()}}openPanel(){this.syncDraftFromModels(),this.panelView.set(this.panelMode());const e=this.draftStart()??this.minBound()??N();this.viewParts.set(g(e,this.calendar())),this.repositionPanel(),this.open.set(!0),requestAnimationFrame(()=>this.repositionPanel())}closePanel(e=!1){e&&this.syncDraftFromModels(),this.open.set(!1),this.panelStyle.set({}),this.rangePickPhase.set("start")}repositionPanel(){if(typeof document>"u")return;const t=(this.host.nativeElement.querySelector("dga-form-control")??this.host.nativeElement).getBoundingClientRect(),a=4,r=340,s=window.innerHeight-t.bottom,l=s<r&&t.top>s,n=document.documentElement.dir==="rtl";this.panelStyle.set({position:"fixed",zIndex:"var(--z-index-dropdown)",...l?{bottom:`${Math.round(window.innerHeight-t.top+a)}px`,top:"auto"}:{top:`${Math.round(t.bottom+a)}px`,bottom:"auto"},...n?{right:`${Math.round(window.innerWidth-t.right)}px`,left:"auto"}:{left:`${Math.round(t.left)}px`,right:"auto"}})}navigate(e){const t=this.panelView(),a=this.viewParts();if(t==="year"){this.viewParts.set({...a,year:a.year+e*12});return}if(t==="month"){this.viewParts.set({...a,year:a.year+e});return}this.viewParts.set(R(a,e,this.calendar()))}setPanelView(e){this.panelView.set(e)}selectDay(e){const t={year:this.viewYear(),month:this.viewMonth(),day:e},a=v(t,this.calendar());this.isDateDisabled(a)||this.applyDraftDate(a)}selectMonth(e){if(this.isMonthDisabled(this.viewYear(),e))return;const t=R({year:this.viewYear(),month:e,day:1},0,this.calendar());if(this.viewParts.set(t),this.panelMode()==="month"){this.applyDraftDate(v(t,this.calendar()));return}this.panelView.set("day")}selectYear(e){if(this.isYearDisabled(e))return;const t={...this.viewParts(),year:e};if(this.viewParts.set(t),this.panelMode()==="year"){const a=v({year:e,month:1,day:1},this.calendar());this.applyDraftDate(a);return}this.panelView.set(this.panelMode()==="month"?"month":"day")}goToday(){const e=F(N(),this.minBound(),this.maxBound(),this.calendar());this.viewParts.set(g(e,this.calendar())),this.applyDraftDate(e)}clearDraft(){this.draftStart.set(null),this.draftEnd.set(null),this.rangePickPhase.set("start")}clearAll(){this.draftStart.set(null),this.draftEnd.set(null),this.typedValue.set(null),this.emitValues("","",""),this.closePanel()}save(){const e=this.calendar(),t=this.format();if(this.range()){const a=this.draftStart(),r=this.draftEnd()??a;if(!a){this.closePanel();return}const s=D(a,t,e),l=r?D(r,t,e):s,n=`${s}${this.rangeSeparator()}${l}`;this.emitValues(n,s,l)}else{const a=this.draftStart();if(!a)this.emitValues("","","");else{const r=D(a,t,e);this.emitValues(r,r,"")}}this.typedValue.set(null),this.closePanel()}onInput(e){this.editable()&&this.typedValue.set(e)}onInputBlur(){this.onTouched();const e=this.typedValue();if(e===null)return;if(this.typedValue.set(null),!e.trim()){this.clearAll();return}if(this.range()){const[a,r]=e.split(this.rangeSeparator()),s=V(a?.trim()??"",this.format(),this.calendar()),l=V(r?.trim()??"",this.format(),this.calendar());if(s&&l){const n=y(s,l,this.calendar())<=0?{start:s,end:l}:{start:l,end:s},o=D(n.start,this.format(),this.calendar()),h=D(n.end,this.format(),this.calendar());this.emitValues(`${o}${this.rangeSeparator()}${h}`,o,h)}else if(s){const n=D(s,this.format(),this.calendar());this.emitValues(n,n,"")}return}const t=V(e.trim(),this.format(),this.calendar());if(t){const a=D(t,this.format(),this.calendar());this.emitValues(a,a,"")}}onInputKeydown(e){(e.key==="ArrowDown"||e.key==="Enter")&&(this.open()||(e.preventDefault(),this.openPanel())),e.key==="Escape"&&this.open()&&(e.preventDefault(),this.closePanel(!1))}applyDraftDate(e){const t=F(e,this.minBound(),this.maxBound(),this.calendar());if(!this.range()){this.draftStart.set(t),this.draftEnd.set(null);return}if(this.rangePickPhase()==="start"||!this.draftStart()){this.draftStart.set(t),this.draftEnd.set(null),this.rangePickPhase.set("end");return}const a=this.draftStart();y(t,a,this.calendar())<0?(this.draftStart.set(t),this.draftEnd.set(a)):this.draftEnd.set(t),this.rangePickPhase.set("start")}draftAnchorParts(){const e=this.draftEnd()??this.draftStart();return e?g(e,this.calendar()):null}syncDraftFromModels(){const e=this.calendar(),t=this.format();if(this.range()){const r=this.parseRangeFromValue(),s=I(this.startValue()||r.start,t,e),l=I(this.endValue()||r.end,t,e);this.draftStart.set(s),this.draftEnd.set(l),s&&this.viewParts.set(g(s,e));return}const a=I(this.value(),t,e);this.draftStart.set(a),this.draftEnd.set(null),a&&this.viewParts.set(g(a,e))}parseRangeFromValue(){const e=this.value();if(!e)return{start:"",end:""};const t=this.rangeSeparator(),a=e.indexOf(t);return a===-1?{start:e,end:""}:{start:e.slice(0,a).trim(),end:e.slice(a+t.length).trim()}}emitValues(e,t,a){this.value.set(e),this.startValue.set(t),this.endValue.set(a),this.valueChange.emit(e),this.rangeChange.emit({start:t,end:a}),this.range()||this.onChange(e)}writeValue(e){this.value.set(e??"")}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.cvaDisabled.set(e)}isDateDisabled(e){const t=this.minBound(),a=this.maxBound();return!!(t&&y(e,t,this.calendar())<0||a&&y(e,a,this.calendar())>0)}isMonthDisabled(e,t){const a=this.calendar(),r=v({year:e,month:t,day:1},a),s=C(e,t,a),l=v({year:e,month:t,day:s},a),n=this.minBound(),o=this.maxBound();return!!(n&&y(l,n,a)<0||o&&y(r,o,a)>0)}isYearDisabled(e){const t=this.calendar();for(let a=1;a<=12;a+=1)if(!this.isMonthDisabled(e,a))return!1;return!0}initialViewParts(){return g(N(),"gregorian")}static ɵfac=i.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.0.7",ngImport:i,type:x,deps:[],target:i.ɵɵFactoryTarget.Component});static ɵcmp=i.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.0.7",type:x,isStandalone:!0,selector:"dga-date-picker",inputs:{valueInput:{classPropertyName:"valueInput",publicName:"value",isSignal:!0,isRequired:!1,transformFunction:null},startValue:{classPropertyName:"startValue",publicName:"startValue",isSignal:!0,isRequired:!1,transformFunction:null},endValue:{classPropertyName:"endValue",publicName:"endValue",isSignal:!0,isRequired:!1,transformFunction:null},calendar:{classPropertyName:"calendar",publicName:"calendar",isSignal:!0,isRequired:!1,transformFunction:null},range:{classPropertyName:"range",publicName:"range",isSignal:!0,isRequired:!1,transformFunction:null},format:{classPropertyName:"format",publicName:"format",isSignal:!0,isRequired:!1,transformFunction:null},mode:{classPropertyName:"mode",publicName:"mode",isSignal:!0,isRequired:!1,transformFunction:null},locale:{classPropertyName:"locale",publicName:"locale",isSignal:!0,isRequired:!1,transformFunction:null},minDate:{classPropertyName:"minDate",publicName:"minDate",isSignal:!0,isRequired:!1,transformFunction:null},maxDate:{classPropertyName:"maxDate",publicName:"maxDate",isSignal:!0,isRequired:!1,transformFunction:null},yearBefore:{classPropertyName:"yearBefore",publicName:"yearBefore",isSignal:!0,isRequired:!1,transformFunction:null},yearAfter:{classPropertyName:"yearAfter",publicName:"yearAfter",isSignal:!0,isRequired:!1,transformFunction:null},placeholder:{classPropertyName:"placeholder",publicName:"placeholder",isSignal:!0,isRequired:!1,transformFunction:null},controlId:{classPropertyName:"controlId",publicName:"controlId",isSignal:!0,isRequired:!1,transformFunction:null},name:{classPropertyName:"name",publicName:"name",isSignal:!0,isRequired:!1,transformFunction:null},size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},disabledInput:{classPropertyName:"disabledInput",publicName:"disabled",isSignal:!0,isRequired:!1,transformFunction:null},required:{classPropertyName:"required",publicName:"required",isSignal:!0,isRequired:!1,transformFunction:null},clearable:{classPropertyName:"clearable",publicName:"clearable",isSignal:!0,isRequired:!1,transformFunction:null},editable:{classPropertyName:"editable",publicName:"editable",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null},status:{classPropertyName:"status",publicName:"status",isSignal:!0,isRequired:!1,transformFunction:null},rangeSeparator:{classPropertyName:"rangeSeparator",publicName:"rangeSeparator",isSignal:!0,isRequired:!1,transformFunction:null},todayLabel:{classPropertyName:"todayLabel",publicName:"todayLabel",isSignal:!0,isRequired:!1,transformFunction:null},clearLabel:{classPropertyName:"clearLabel",publicName:"clearLabel",isSignal:!0,isRequired:!1,transformFunction:null},closeLabel:{classPropertyName:"closeLabel",publicName:"closeLabel",isSignal:!0,isRequired:!1,transformFunction:null},saveLabel:{classPropertyName:"saveLabel",publicName:"saveLabel",isSignal:!0,isRequired:!1,transformFunction:null},ariaLabel:{classPropertyName:"ariaLabel",publicName:"ariaLabel",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{startValue:"startValueChange",endValue:"endValueChange",valueChange:"valueChange",rangeChange:"rangeChange"},host:{listeners:{"document:click":"onDocumentClick($event)","document:keydown.escape":"onEscape()","window:resize":"onReposition()","window:scroll":"onReposition()"},classAttribute:"dga-date-picker-host"},providers:[U(x)],ngImport:i,template:`
|
|
1
|
+
import*as i from"@angular/core";import{inject as $,ElementRef as ee,DestroyRef as ae,input as c,linkedSignal as te,model as T,booleanAttribute as S,signal as _,computed as p,output as z,effect as A,HostListener as q,ChangeDetectionStrategy as re,ViewEncapsulation as de,Component as ie}from"@angular/core";import{NgStyle as B}from"@angular/common";import{dgaFormStatusFromInvalid as ne,DgaFormControl as O,DgaIcon as j,dgaProvideValueAccessor as U}from"@a.nemreen/dga-ui";const H={ar:["محرم","صفر","ربيع الأول","ربيع الثاني","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],en:["Muharram","Safar","Rabi I","Rabi II","Jumada I","Jumada II","Rajab","Sha'ban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"]},J={ar:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],en:["January","February","March","April","May","June","July","August","September","October","November","December"]},G={ar:["أحد","إثن","ثلا","أرب","خمي","جمع","سبت"],en:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},se=new Intl.DateTimeFormat("en-US-u-ca-islamic-umalqura",{day:"numeric",month:"numeric",year:"numeric",timeZone:"UTC"});function W(d){return d<10?`0${d}`:String(d)}function w(d){return new Date(Date.UTC(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()))}function L(d,e){return parseInt(d.find(t=>t.type===e)?.value??"0",10)}function g(d,e){const t=w(d);if(e==="hijri"){const a=se.formatToParts(t);return{year:L(a,"year"),month:L(a,"month"),day:L(a,"day")}}return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate()}}function v(d,e){const{year:t,month:a,day:r}=d;if(e==="gregorian")return new Date(Date.UTC(t,a-1,r));let s=Date.UTC(Math.max(622,Math.floor(t*.97+579)-3),0,1),l=Date.UTC(Math.floor(t*.97+579)+3,11,31);for(;s<=l;){const n=s+Math.floor((l-s)/2),o=new Date(n),h=g(o,"hijri"),b=h.year!==t?h.year-t:h.month!==a?h.month-a:h.day-r;if(b===0)return w(o);b<0?s=n+864e5:l=n-864e5}return w(new Date(s))}function C(d,e,t){if(t==="gregorian")return new Date(Date.UTC(d,e,0)).getUTCDate();for(let a=30;a>=29;a--){const r=v({year:d,month:e,day:a},"hijri"),s=g(r,"hijri");if(s.year===d&&s.month===e&&s.day===a)return a}return 29}function R(d,e,t){let a=d.year,r=d.month+e;for(;r>12;)r-=12,a+=1;for(;r<1;)r+=12,a-=1;const s=C(a,r,t);return{year:a,month:r,day:Math.min(d.day,s)}}function K(d){const e=/D{1,2}/.test(d),t=/M{1,2}/.test(d);return e?"day":t?"month":"year"}function D(d,e,t){const a=g(d,t);return e.replace(/YYYY|YY|MM|M|DD|D/g,r=>{switch(r){case"YYYY":return String(a.year);case"YY":return String(a.year).slice(-2);case"MM":return W(a.month);case"M":return String(a.month);case"DD":return W(a.day);case"D":return String(a.day);default:return r}})}function V(d,e,t){const a=d.trim();if(!a)return null;const r=/(YYYY|YY|MM|M|DD|D)/g;if(![...e.matchAll(r)].map(f=>f[1]).length)return null;let l="",n=0;for(const f of e.matchAll(r)){l+=Q(e.slice(n,f.index));const k=f[1];k==="YYYY"?l+="(?<YYYY>\\d{4})":k==="YY"?l+="(?<YY>\\d{2})":k==="MM"||k==="DD"?l+=`(?<${k}>\\d{2})`:l+=`(?<${k}>\\d{1,2})`,n=(f.index??0)+k.length}l+=Q(e.slice(n));const o=new RegExp(`^${l}$`).exec(a);if(!o?.groups)return null;let b=g(new Date,t).year;if(o.groups.YYYY)b=parseInt(o.groups.YYYY,10);else if(o.groups.YY){const f=parseInt(o.groups.YY,10);b=f>=70?1900+f:2e3+f}let u=1;(o.groups.MM||o.groups.M)&&(u=parseInt(o.groups.MM??o.groups.M,10));let m=1;if((o.groups.DD||o.groups.D)&&(m=parseInt(o.groups.DD??o.groups.D,10)),u<1||u>12||m<1||m>31)return null;const Y=v({year:b,month:u,day:m},t),P=g(Y,t);return P.year!==b||P.month!==u||P.day!==m?null:Y}function Q(d){return d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(d,e,t="gregorian"){if(!d||!e)return!1;const a=g(d,t),r=g(e,t);return a.year===r.year&&a.month===r.month&&a.day===r.day}function y(d,e,t="gregorian"){if(!d&&!e)return 0;if(!d)return-1;if(!e)return 1;const a=g(d,t),r=g(e,t);return a.year!==r.year?a.year-r.year:a.month!==r.month?a.month-r.month:a.day-r.day}function F(d,e,t,a="gregorian"){let r=w(d);return e&&y(r,e,a)<0&&(r=w(e)),t&&y(r,t,a)>0&&(r=w(t)),r}function E(d,e){const t=e==="ar"?"ar":"en";return d==="hijri"?H[t]:J[t]}function Z(d,e,t){return v({year:d,month:e,day:1},t).getUTCDay()}function N(){const d=new Date;return new Date(Date.UTC(d.getFullYear(),d.getMonth(),d.getDate()))}function I(d,e,t){return d==null||d===""?null:d instanceof Date?w(d):V(String(d),e,t)}const le={ar:{today:"اليوم",clear:"مسح",close:"إغلاق",save:"حفظ",prev:"السابق",next:"التالي",calendar:"فتح التقويم",clearInput:"مسح التاريخ",month:"الشهر",year:"السنة",placeholder:"يوم/شهر/سنة",rangeStart:"تاريخ البداية",rangeEnd:"تاريخ النهاية"},en:{today:"Today",clear:"Clear",close:"Close",save:"Save",prev:"Previous",next:"Next",calendar:"Open calendar",clearInput:"Clear date",month:"Month",year:"Year",placeholder:"DD/MM/YYYY",rangeStart:"Start date",rangeEnd:"End date"}};let oe=0;class x{host=$(ee);destroyRef=$(ae);inputId=`dga-date-picker-${++oe}`;panelId=`${this.inputId}-panel`;valueInput=c("",{...ngDevMode?{debugName:"valueInput"}:{},alias:"value"});value=te(this.valueInput,...ngDevMode?[{debugName:"value"}]:[]);startValue=T("",...ngDevMode?[{debugName:"startValue"}]:[]);endValue=T("",...ngDevMode?[{debugName:"endValue"}]:[]);onChange=()=>{};onTouched=()=>{};calendar=c("gregorian",...ngDevMode?[{debugName:"calendar"}]:[]);range=c(!1,{...ngDevMode?{debugName:"range"}:{},transform:S});format=c("DD/MM/YYYY",...ngDevMode?[{debugName:"format"}]:[]);mode=c(null,...ngDevMode?[{debugName:"mode"}]:[]);locale=c("ar",...ngDevMode?[{debugName:"locale"}]:[]);minDate=c(null,...ngDevMode?[{debugName:"minDate"}]:[]);maxDate=c(null,...ngDevMode?[{debugName:"maxDate"}]:[]);yearBefore=c(40,...ngDevMode?[{debugName:"yearBefore"}]:[]);yearAfter=c(5,...ngDevMode?[{debugName:"yearAfter"}]:[]);placeholder=c("",...ngDevMode?[{debugName:"placeholder"}]:[]);controlId=c("",...ngDevMode?[{debugName:"controlId"}]:[]);name=c("",...ngDevMode?[{debugName:"name"}]:[]);size=c("md",...ngDevMode?[{debugName:"size"}]:[]);disabledInput=c(!1,{...ngDevMode?{debugName:"disabledInput"}:{},alias:"disabled",transform:S});cvaDisabled=_(!1,...ngDevMode?[{debugName:"cvaDisabled"}]:[]);disabled=p(()=>this.disabledInput()||this.cvaDisabled(),...ngDevMode?[{debugName:"disabled"}]:[]);required=c(!1,{...ngDevMode?{debugName:"required"}:{},transform:S});clearable=c(!1,{...ngDevMode?{debugName:"clearable"}:{},transform:S});editable=c(!0,{...ngDevMode?{debugName:"editable"}:{},transform:S});invalid=c(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:S});status=c("default",...ngDevMode?[{debugName:"status"}]:[]);rangeSeparator=c(" - ",...ngDevMode?[{debugName:"rangeSeparator"}]:[]);todayLabel=c("",...ngDevMode?[{debugName:"todayLabel"}]:[]);clearLabel=c("",...ngDevMode?[{debugName:"clearLabel"}]:[]);closeLabel=c("",...ngDevMode?[{debugName:"closeLabel"}]:[]);saveLabel=c("",...ngDevMode?[{debugName:"saveLabel"}]:[]);ariaLabel=c("",...ngDevMode?[{debugName:"ariaLabel"}]:[]);resolvedTodayLabel=p(()=>this.todayLabel()||this.labels().today,...ngDevMode?[{debugName:"resolvedTodayLabel"}]:[]);resolvedClearLabel=p(()=>this.clearLabel()||this.labels().clear,...ngDevMode?[{debugName:"resolvedClearLabel"}]:[]);resolvedCloseLabel=p(()=>this.closeLabel()||this.labels().close,...ngDevMode?[{debugName:"resolvedCloseLabel"}]:[]);resolvedSaveLabel=p(()=>this.saveLabel()||this.labels().save,...ngDevMode?[{debugName:"resolvedSaveLabel"}]:[]);valueChange=z();rangeChange=z();open=_(!1,...ngDevMode?[{debugName:"open"}]:[]);panelStyle=_({},...ngDevMode?[{debugName:"panelStyle"}]:[]);panelView=_("day",...ngDevMode?[{debugName:"panelView"}]:[]);viewParts=_(this.initialViewParts(),...ngDevMode?[{debugName:"viewParts"}]:[]);draftStart=_(null,...ngDevMode?[{debugName:"draftStart"}]:[]);draftEnd=_(null,...ngDevMode?[{debugName:"draftEnd"}]:[]);rangePickPhase=_("start",...ngDevMode?[{debugName:"rangePickPhase"}]:[]);typedValue=_(null,...ngDevMode?[{debugName:"typedValue"}]:[]);effectiveStatus=p(()=>this.status()!=="default"?this.status():ne(this.invalid()),...ngDevMode?[{debugName:"effectiveStatus"}]:[]);panelMode=p(()=>this.mode()??K(this.format()),...ngDevMode?[{debugName:"panelMode"}]:[]);labels=p(()=>{const e=this.locale()==="ar"?"ar":"en";return le[e]},...ngDevMode?[{debugName:"labels"}]:[]);resolvedPlaceholder=p(()=>this.placeholder()||this.labels().placeholder,...ngDevMode?[{debugName:"resolvedPlaceholder"}]:[]);weekdays=p(()=>{const e=this.locale()==="ar"?"ar":"en";return G[e]},...ngDevMode?[{debugName:"weekdays"}]:[]);minBound=p(()=>I(this.minDate(),this.format(),this.calendar()),...ngDevMode?[{debugName:"minBound"}]:[]);maxBound=p(()=>I(this.maxDate(),this.format(),this.calendar()),...ngDevMode?[{debugName:"maxBound"}]:[]);displayValue=p(()=>{const e=this.typedValue();if(e!==null)return e;if(this.range()){const t=this.startValue()||this.parseRangeFromValue().start,a=this.endValue()||this.parseRangeFromValue().end;return t&&a?`${t}${this.rangeSeparator()}${a}`:t||a||this.value()}return this.value()},...ngDevMode?[{debugName:"displayValue"}]:[]);viewYear=p(()=>this.viewParts().year,...ngDevMode?[{debugName:"viewYear"}]:[]);viewMonth=p(()=>this.viewParts().month,...ngDevMode?[{debugName:"viewMonth"}]:[]);monthOptions=p(()=>{const e=E(this.calendar(),this.locale()),t=this.viewYear(),a=this.draftAnchorParts();return e.map((r,s)=>{const l=s+1,n=this.isMonthDisabled(t,l);return{value:l,label:r,selected:a?.month===l&&a?.year===t,disabled:n}})},...ngDevMode?[{debugName:"monthOptions"}]:[]);yearOptions=p(()=>{const e=this.viewParts(),t=this.draftAnchorParts(),a=g(N(),this.calendar()).year,r=a-this.yearBefore(),s=a+this.yearAfter(),l=[];for(let n=r;n<=s;n+=1)l.push({value:n,selected:t?.year===n,disabled:this.isYearDisabled(n)});return l.some(n=>n.value===e.year)||(l.unshift({value:e.year,selected:t?.year===e.year,disabled:this.isYearDisabled(e.year)}),l.sort((n,o)=>n.value-o.value)),l},...ngDevMode?[{debugName:"yearOptions"}]:[]);dayCells=p(()=>{if(this.panelView()!=="day")return[];const e=this.viewYear(),t=this.viewMonth(),a=this.calendar(),r=C(e,t,a),s=Z(e,t,a),l=N(),n=this.draftStart(),o=this.draftEnd(),h=o??n,b=[];for(let u=0;u<s;u+=1)b.push({key:`e-${u}`,empty:!0});for(let u=1;u<=r;u+=1){const m=v({year:e,month:t,day:u},a),Y=this.isDateDisabled(m),P=n&&M(m,n,a)||o&&M(m,o,a),f=this.range()&&n&&h&&y(m,n,a)>=0&&y(m,h,a)<=0,k=this.range()&&n&&M(m,n,a),X=this.range()&&h&&M(m,h,a);b.push({key:`${e}-${t}-${u}`,empty:!1,day:u,today:M(m,l,a),selected:!!P,inRange:!!f,rangeStart:!!k,rangeEnd:!!X,disabled:Y,label:D(m,this.format(),a)})}return b},...ngDevMode?[{debugName:"dayCells"}]:[]);constructor(){A(()=>{this.syncDraftFromModels()}),A(()=>{const e=this.panelMode();this.open()&&this.panelView.set(e)}),this.destroyRef.onDestroy(()=>{this.open.set(!1)})}onDocumentClick(e){if(!this.open())return;const t=e.target;t&&this.host.nativeElement.contains(t)||this.closePanel(!1)}onEscape(){this.open()&&this.closePanel(!1)}onReposition(){this.open()&&this.repositionPanel()}monthLabel(e){return E(this.calendar(),this.locale())[e-1]??String(e)}togglePanel(){if(!this.disabled()){if(this.open()){this.closePanel(!1);return}this.openPanel()}}openPanel(){this.syncDraftFromModels(),this.panelView.set(this.panelMode());const e=this.draftStart()??this.minBound()??N();this.viewParts.set(g(e,this.calendar())),this.repositionPanel(),this.open.set(!0),requestAnimationFrame(()=>this.repositionPanel())}closePanel(e=!1){e&&this.syncDraftFromModels(),this.open.set(!1),this.panelStyle.set({}),this.rangePickPhase.set("start")}repositionPanel(){if(typeof document>"u")return;const t=(this.host.nativeElement.querySelector("dga-form-control")??this.host.nativeElement).getBoundingClientRect(),a=4,r=340,s=window.innerHeight-t.bottom,l=s<r&&t.top>s,n=document.documentElement.dir==="rtl";this.panelStyle.set({position:"fixed",zIndex:"var(--z-index-dropdown)",...l?{bottom:`${Math.round(window.innerHeight-t.top+a)}px`,top:"auto"}:{top:`${Math.round(t.bottom+a)}px`,bottom:"auto"},...n?{right:`${Math.round(window.innerWidth-t.right)}px`,left:"auto"}:{left:`${Math.round(t.left)}px`,right:"auto"}})}navigate(e){const t=this.panelView(),a=this.viewParts();if(t==="year"){this.viewParts.set({...a,year:a.year+e*12});return}if(t==="month"){this.viewParts.set({...a,year:a.year+e});return}this.viewParts.set(R(a,e,this.calendar()))}setPanelView(e){this.panelView.set(e)}selectDay(e){const t={year:this.viewYear(),month:this.viewMonth(),day:e},a=v(t,this.calendar());this.isDateDisabled(a)||this.applyDraftDate(a)}selectMonth(e){if(this.isMonthDisabled(this.viewYear(),e))return;const t=R({year:this.viewYear(),month:e,day:1},0,this.calendar());if(this.viewParts.set(t),this.panelMode()==="month"){this.applyDraftDate(v(t,this.calendar()));return}this.panelView.set("day")}selectYear(e){if(this.isYearDisabled(e))return;const t={...this.viewParts(),year:e};if(this.viewParts.set(t),this.panelMode()==="year"){const a=v({year:e,month:1,day:1},this.calendar());this.applyDraftDate(a);return}this.panelView.set(this.panelMode()==="month"?"month":"day")}goToday(){const e=F(N(),this.minBound(),this.maxBound(),this.calendar());this.viewParts.set(g(e,this.calendar())),this.applyDraftDate(e)}clearDraft(){this.draftStart.set(null),this.draftEnd.set(null),this.rangePickPhase.set("start")}clearAll(){this.draftStart.set(null),this.draftEnd.set(null),this.typedValue.set(null),this.emitValues("","",""),this.closePanel()}save(){const e=this.calendar(),t=this.format();if(this.range()){const a=this.draftStart(),r=this.draftEnd()??a;if(!a){this.closePanel();return}const s=D(a,t,e),l=r?D(r,t,e):s,n=`${s}${this.rangeSeparator()}${l}`;this.emitValues(n,s,l)}else{const a=this.draftStart();if(!a)this.emitValues("","","");else{const r=D(a,t,e);this.emitValues(r,r,"")}}this.typedValue.set(null),this.closePanel()}onInput(e){this.editable()&&this.typedValue.set(e)}onInputBlur(){this.onTouched();const e=this.typedValue();if(e===null)return;if(this.typedValue.set(null),!e.trim()){this.clearAll();return}if(this.range()){const[a,r]=e.split(this.rangeSeparator()),s=V(a?.trim()??"",this.format(),this.calendar()),l=V(r?.trim()??"",this.format(),this.calendar());if(s&&l){const n=y(s,l,this.calendar())<=0?{start:s,end:l}:{start:l,end:s},o=D(n.start,this.format(),this.calendar()),h=D(n.end,this.format(),this.calendar());this.emitValues(`${o}${this.rangeSeparator()}${h}`,o,h)}else if(s){const n=D(s,this.format(),this.calendar());this.emitValues(n,n,"")}return}const t=V(e.trim(),this.format(),this.calendar());if(t){const a=D(t,this.format(),this.calendar());this.emitValues(a,a,"")}}onInputKeydown(e){(e.key==="ArrowDown"||e.key==="Enter")&&(this.open()||(e.preventDefault(),this.openPanel())),e.key==="Escape"&&this.open()&&(e.preventDefault(),this.closePanel(!1))}applyDraftDate(e){const t=F(e,this.minBound(),this.maxBound(),this.calendar());if(!this.range()){this.draftStart.set(t),this.draftEnd.set(null);return}if(this.rangePickPhase()==="start"||!this.draftStart()){this.draftStart.set(t),this.draftEnd.set(null),this.rangePickPhase.set("end");return}const a=this.draftStart();y(t,a,this.calendar())<0?(this.draftStart.set(t),this.draftEnd.set(a)):this.draftEnd.set(t),this.rangePickPhase.set("start")}draftAnchorParts(){const e=this.draftEnd()??this.draftStart();return e?g(e,this.calendar()):null}syncDraftFromModels(){const e=this.calendar(),t=this.format();if(this.range()){const r=this.parseRangeFromValue(),s=I(this.startValue()||r.start,t,e),l=I(this.endValue()||r.end,t,e);this.draftStart.set(s),this.draftEnd.set(l),s&&this.viewParts.set(g(s,e));return}const a=I(this.value(),t,e);this.draftStart.set(a),this.draftEnd.set(null),a&&this.viewParts.set(g(a,e))}parseRangeFromValue(){const e=this.value();if(!e)return{start:"",end:""};const t=this.rangeSeparator(),a=e.indexOf(t);return a===-1?{start:e,end:""}:{start:e.slice(0,a).trim(),end:e.slice(a+t.length).trim()}}emitValues(e,t,a){this.value.set(e),this.startValue.set(t),this.endValue.set(a),this.valueChange.emit(e),this.rangeChange.emit({start:t,end:a}),this.range()||this.onChange(e)}writeValue(e){this.value.set(e??"")}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.cvaDisabled.set(e)}isDateDisabled(e){const t=this.minBound(),a=this.maxBound();return!!(t&&y(e,t,this.calendar())<0||a&&y(e,a,this.calendar())>0)}isMonthDisabled(e,t){const a=this.calendar(),r=v({year:e,month:t,day:1},a),s=C(e,t,a),l=v({year:e,month:t,day:s},a),n=this.minBound(),o=this.maxBound();return!!(n&&y(l,n,a)<0||o&&y(r,o,a)>0)}isYearDisabled(e){const t=this.calendar();for(let a=1;a<=12;a+=1)if(!this.isMonthDisabled(e,a))return!1;return!0}initialViewParts(){return g(N(),"gregorian")}static ɵfac=i.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:i,type:x,deps:[],target:i.ɵɵFactoryTarget.Component});static ɵcmp=i.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.5",type:x,isStandalone:!0,selector:"dga-date-picker",inputs:{valueInput:{classPropertyName:"valueInput",publicName:"value",isSignal:!0,isRequired:!1,transformFunction:null},startValue:{classPropertyName:"startValue",publicName:"startValue",isSignal:!0,isRequired:!1,transformFunction:null},endValue:{classPropertyName:"endValue",publicName:"endValue",isSignal:!0,isRequired:!1,transformFunction:null},calendar:{classPropertyName:"calendar",publicName:"calendar",isSignal:!0,isRequired:!1,transformFunction:null},range:{classPropertyName:"range",publicName:"range",isSignal:!0,isRequired:!1,transformFunction:null},format:{classPropertyName:"format",publicName:"format",isSignal:!0,isRequired:!1,transformFunction:null},mode:{classPropertyName:"mode",publicName:"mode",isSignal:!0,isRequired:!1,transformFunction:null},locale:{classPropertyName:"locale",publicName:"locale",isSignal:!0,isRequired:!1,transformFunction:null},minDate:{classPropertyName:"minDate",publicName:"minDate",isSignal:!0,isRequired:!1,transformFunction:null},maxDate:{classPropertyName:"maxDate",publicName:"maxDate",isSignal:!0,isRequired:!1,transformFunction:null},yearBefore:{classPropertyName:"yearBefore",publicName:"yearBefore",isSignal:!0,isRequired:!1,transformFunction:null},yearAfter:{classPropertyName:"yearAfter",publicName:"yearAfter",isSignal:!0,isRequired:!1,transformFunction:null},placeholder:{classPropertyName:"placeholder",publicName:"placeholder",isSignal:!0,isRequired:!1,transformFunction:null},controlId:{classPropertyName:"controlId",publicName:"controlId",isSignal:!0,isRequired:!1,transformFunction:null},name:{classPropertyName:"name",publicName:"name",isSignal:!0,isRequired:!1,transformFunction:null},size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},disabledInput:{classPropertyName:"disabledInput",publicName:"disabled",isSignal:!0,isRequired:!1,transformFunction:null},required:{classPropertyName:"required",publicName:"required",isSignal:!0,isRequired:!1,transformFunction:null},clearable:{classPropertyName:"clearable",publicName:"clearable",isSignal:!0,isRequired:!1,transformFunction:null},editable:{classPropertyName:"editable",publicName:"editable",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null},status:{classPropertyName:"status",publicName:"status",isSignal:!0,isRequired:!1,transformFunction:null},rangeSeparator:{classPropertyName:"rangeSeparator",publicName:"rangeSeparator",isSignal:!0,isRequired:!1,transformFunction:null},todayLabel:{classPropertyName:"todayLabel",publicName:"todayLabel",isSignal:!0,isRequired:!1,transformFunction:null},clearLabel:{classPropertyName:"clearLabel",publicName:"clearLabel",isSignal:!0,isRequired:!1,transformFunction:null},closeLabel:{classPropertyName:"closeLabel",publicName:"closeLabel",isSignal:!0,isRequired:!1,transformFunction:null},saveLabel:{classPropertyName:"saveLabel",publicName:"saveLabel",isSignal:!0,isRequired:!1,transformFunction:null},ariaLabel:{classPropertyName:"ariaLabel",publicName:"ariaLabel",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{startValue:"startValueChange",endValue:"endValueChange",valueChange:"valueChange",rangeChange:"rangeChange"},host:{listeners:{"document:click":"onDocumentClick($event)","document:keydown.escape":"onEscape()","window:resize":"onReposition()","window:scroll":"onReposition()"},classAttribute:"dga-date-picker-host"},providers:[U(x)],ngImport:i,template:`
|
|
2
2
|
<div
|
|
3
3
|
class="dga-date-picker"
|
|
4
4
|
[class.dga-date-picker--open]="open()"
|
|
@@ -190,7 +190,7 @@ import*as i from"@angular/core";import{inject as $,ElementRef as ee,DestroyRef a
|
|
|
190
190
|
</div>
|
|
191
191
|
}
|
|
192
192
|
</div>
|
|
193
|
-
`,isInline:!0,styles:[".dga-date-picker{position:relative;display:block;width:100%;--dga-date-picker-primary: var(--dga-bg-primary, var(--dga-color-primary-600, #0b6b4f));--dga-date-picker-primary-faint: var(--dga-bg-primary-faint, color-mix(in srgb, var(--dga-date-picker-primary) 12%, transparent));--dga-date-picker-border: var(--dga-border-neutral, var(--dga-color-neutral-300, #d1d5db));--dga-date-picker-surface: var(--dga-bg-elevated, var(--dga-bg-card, var(--dga-bg-default, #fff)));--dga-date-picker-muted: var(--dga-text-muted, #6b7280);--dga-date-picker-fg: var(--dga-text-default, #111827);--dga-date-picker-radius: var(--dga-radius-md, 8px);--dga-date-picker-shadow: var(--dga-shadow-lg, 0 10px 24px rgb(0 0 0 / 12%));color-scheme:inherit}.dga-date-picker__input{flex:1 1 auto;min-width:0;border:0;background:transparent;color:inherit;font:inherit;outline:none;padding:0}.dga-date-picker__input::placeholder{color:var(--dga-date-picker-muted)}.dga-date-picker__input:disabled{cursor:not-allowed}.dga-date-picker__toggle,.dga-date-picker__clear{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;border:0;background:transparent;color:var(--dga-date-picker-muted);cursor:pointer;padding:0;min-width:1.75rem;min-height:1.75rem;border-radius:var(--dga-radius-sm, 4px);transition:color .16s ease,background-color .16s ease}.dga-date-picker__toggle:hover:not(:disabled),.dga-date-picker__clear:hover:not(:disabled){color:var(--dga-date-picker-fg);background:var(--dga-date-picker-primary-faint)}.dga-date-picker__toggle:disabled{cursor:not-allowed;opacity:.5}.dga-date-picker__panel{position:fixed;z-index:var(--z-index-dropdown);min-width:min(20rem,calc(100vw - 1rem));width:max-content;max-width:min(22rem,calc(100vw - 1rem));max-height:min(28rem,calc(100vh - 1rem));overflow:auto;padding:var(--dga-space-md, 12px);border:1px solid var(--dga-date-picker-border);border-radius:var(--dga-date-picker-radius);background:var(--dga-date-picker-surface);color:var(--dga-date-picker-fg);box-shadow:var(--dga-date-picker-shadow)}.dga-date-picker__header{display:flex;align-items:center;justify-content:space-between;gap:var(--dga-space-sm, 8px);margin-bottom:var(--dga-space-md, 12px)}.dga-date-picker__selects{display:flex;flex:1;align-items:center;justify-content:center;gap:var(--dga-space-xs, 4px);min-width:0}.dga-date-picker__select-btn{border:0;background:transparent;color:var(--dga-date-picker-fg);font:inherit;font-weight:600;cursor:pointer;padding:var(--dga-space-xs, 4px) var(--dga-space-sm, 8px);border-radius:var(--dga-radius-sm, 4px)}.dga-date-picker__select-btn:hover{background:var(--dga-date-picker-primary-faint);color:var(--dga-date-picker-primary)}.dga-date-picker__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:999px;background:transparent;color:var(--dga-date-picker-fg);font-size:1.25rem;line-height:1;cursor:pointer}.dga-date-picker__nav:hover{background:var(--dga-date-picker-primary-faint);color:var(--dga-date-picker-primary)}.dga-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--dga-space-xs, 4px)}.dga-date-picker__weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--dga-date-picker-muted);padding-block:2px}.dga-date-picker__grid{display:grid;gap:2px}.dga-date-picker__grid--days{grid-template-columns:repeat(7,1fr)}.dga-date-picker__grid--months{grid-template-columns:repeat(3,1fr)}.dga-date-picker__grid--years{grid-template-columns:repeat(4,1fr);max-height:14rem;overflow:auto}.dga-date-picker__day{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin-inline:auto;border:1px solid transparent;border-radius:999px;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.dga-date-picker__day--empty{pointer-events:none}.dga-date-picker__day--today{border-color:var(--dga-date-picker-primary)}.dga-date-picker__day--selected,.dga-date-picker__day--range-start,.dga-date-picker__day--range-end{background:var(--dga-date-picker-primary);color:var(--dga-text-on-color, #fff);border-color:var(--dga-date-picker-primary)}.dga-date-picker__day--in-range:not(.dga-date-picker__day--selected){background:var(--dga-date-picker-primary-faint);border-radius:0}.dga-date-picker__day--range-start:not(.dga-date-picker__day--range-end){border-start-start-radius:999px;border-end-start-radius:999px}.dga-date-picker__day--range-end:not(.dga-date-picker__day--range-start){border-start-end-radius:999px;border-end-end-radius:999px}.dga-date-picker__day:hover:not(:disabled):not(.dga-date-picker__day--selected){background:var(--dga-date-picker-primary-faint)}.dga-date-picker__day--disabled,.dga-date-picker__month--disabled,.dga-date-picker__year--disabled{opacity:.35;cursor:not-allowed}.dga-date-picker__month,.dga-date-picker__year{border:1px solid transparent;border-radius:var(--dga-radius-sm, 4px);background:transparent;color:inherit;font:inherit;padding:var(--dga-space-sm, 8px);cursor:pointer;text-align:center}.dga-date-picker__month--selected,.dga-date-picker__year--selected{background:var(--dga-date-picker-primary);color:var(--dga-text-on-color, #fff)}.dga-date-picker__month:hover:not(:disabled):not(.dga-date-picker__month--selected),.dga-date-picker__year:hover:not(:disabled):not(.dga-date-picker__year--selected){background:var(--dga-date-picker-primary-faint)}.dga-date-picker__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--dga-space-xs, 4px);margin-top:var(--dga-space-md, 12px);padding-top:var(--dga-space-md, 12px);border-top:1px solid var(--dga-date-picker-border)}.dga-date-picker__btn{border:1px solid transparent;border-radius:var(--dga-radius-sm, 4px);background:transparent;font:inherit;font-weight:600;padding:var(--dga-space-xs, 4px) var(--dga-space-md, 12px);cursor:pointer;min-height:2rem}.dga-date-picker__btn--ghost{color:var(--dga-date-picker-fg);border-color:var(--dga-date-picker-border)}.dga-date-picker__btn--ghost:hover{background:var(--dga-date-picker-primary-faint);border-color:var(--dga-date-picker-primary);color:var(--dga-date-picker-primary)}.dga-date-picker__btn--primary{background:var(--dga-date-picker-primary);color:var(--dga-text-on-color, #fff)}.dga-date-picker__btn--primary:hover{filter:brightness(1.05)}.dga-date-picker[data-locale=ar] .dga-date-picker__panel{direction:rtl}.dga-date-picker[data-size=sm] .dga-date-picker__day{width:2rem;height:2rem;font-size:.8125rem}.dga-date-picker[data-size=lg] .dga-date-picker__day{width:2.5rem;height:2.5rem}\n"],dependencies:[{kind:"component",type:O,selector:"dga-form-control",inputs:["size","status","disabled","filled","startIcon","endIcon"]},{kind:"component",type:j,selector:"dga-icon",inputs:["name","glyph","size","tone","label"]},{kind:"directive",type:B,selector:"[ngStyle]",inputs:["ngStyle"]}],changeDetection:i.ChangeDetectionStrategy.OnPush,encapsulation:i.ViewEncapsulation.None})}i.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.
|
|
193
|
+
`,isInline:!0,styles:[".dga-date-picker{position:relative;display:block;width:100%;--dga-date-picker-primary: var(--dga-bg-primary, var(--dga-color-primary-600, #0b6b4f));--dga-date-picker-primary-faint: var(--dga-bg-primary-faint, color-mix(in srgb, var(--dga-date-picker-primary) 12%, transparent));--dga-date-picker-border: var(--dga-border-neutral, var(--dga-color-neutral-300, #d1d5db));--dga-date-picker-surface: var(--dga-bg-elevated, var(--dga-bg-card, var(--dga-bg-default, #fff)));--dga-date-picker-muted: var(--dga-text-muted, #6b7280);--dga-date-picker-fg: var(--dga-text-default, #111827);--dga-date-picker-radius: var(--dga-radius-md, 8px);--dga-date-picker-shadow: var(--dga-shadow-lg, 0 10px 24px rgb(0 0 0 / 12%));color-scheme:inherit}.dga-date-picker__input{flex:1 1 auto;min-width:0;border:0;background:transparent;color:inherit;font:inherit;outline:none;padding:0}.dga-date-picker__input::placeholder{color:var(--dga-date-picker-muted)}.dga-date-picker__input:disabled{cursor:not-allowed}.dga-date-picker__toggle,.dga-date-picker__clear{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;border:0;background:transparent;color:var(--dga-date-picker-muted);cursor:pointer;padding:0;min-width:1.75rem;min-height:1.75rem;border-radius:var(--dga-radius-sm, 4px);transition:color .16s ease,background-color .16s ease}.dga-date-picker__toggle:hover:not(:disabled),.dga-date-picker__clear:hover:not(:disabled){color:var(--dga-date-picker-fg);background:var(--dga-date-picker-primary-faint)}.dga-date-picker__toggle:disabled{cursor:not-allowed;opacity:.5}.dga-date-picker__panel{position:fixed;z-index:var(--z-index-dropdown);min-width:min(20rem,calc(100vw - 1rem));width:max-content;max-width:min(22rem,calc(100vw - 1rem));max-height:min(28rem,calc(100vh - 1rem));overflow:auto;padding:var(--dga-space-md, 12px);border:1px solid var(--dga-date-picker-border);border-radius:var(--dga-date-picker-radius);background:var(--dga-date-picker-surface);color:var(--dga-date-picker-fg);box-shadow:var(--dga-date-picker-shadow)}.dga-date-picker__header{display:flex;align-items:center;justify-content:space-between;gap:var(--dga-space-sm, 8px);margin-bottom:var(--dga-space-md, 12px)}.dga-date-picker__selects{display:flex;flex:1;align-items:center;justify-content:center;gap:var(--dga-space-xs, 4px);min-width:0}.dga-date-picker__select-btn{border:0;background:transparent;color:var(--dga-date-picker-fg);font:inherit;font-weight:600;cursor:pointer;padding:var(--dga-space-xs, 4px) var(--dga-space-sm, 8px);border-radius:var(--dga-radius-sm, 4px)}.dga-date-picker__select-btn:hover{background:var(--dga-date-picker-primary-faint);color:var(--dga-date-picker-primary)}.dga-date-picker__nav{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:999px;background:transparent;color:var(--dga-date-picker-fg);font-size:1.25rem;line-height:1;cursor:pointer}.dga-date-picker__nav:hover{background:var(--dga-date-picker-primary-faint);color:var(--dga-date-picker-primary)}.dga-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--dga-space-xs, 4px)}.dga-date-picker__weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--dga-date-picker-muted);padding-block:2px}.dga-date-picker__grid{display:grid;gap:2px}.dga-date-picker__grid--days{grid-template-columns:repeat(7,1fr)}.dga-date-picker__grid--months{grid-template-columns:repeat(3,1fr)}.dga-date-picker__grid--years{grid-template-columns:repeat(4,1fr);max-height:14rem;overflow:auto}.dga-date-picker__day{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin-inline:auto;border:1px solid transparent;border-radius:999px;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.dga-date-picker__day--empty{pointer-events:none}.dga-date-picker__day--today{border-color:var(--dga-date-picker-primary)}.dga-date-picker__day--selected,.dga-date-picker__day--range-start,.dga-date-picker__day--range-end{background:var(--dga-date-picker-primary);color:var(--dga-text-on-color, #fff);border-color:var(--dga-date-picker-primary)}.dga-date-picker__day--in-range:not(.dga-date-picker__day--selected){background:var(--dga-date-picker-primary-faint);border-radius:0}.dga-date-picker__day--range-start:not(.dga-date-picker__day--range-end){border-start-start-radius:999px;border-end-start-radius:999px}.dga-date-picker__day--range-end:not(.dga-date-picker__day--range-start){border-start-end-radius:999px;border-end-end-radius:999px}.dga-date-picker__day:hover:not(:disabled):not(.dga-date-picker__day--selected){background:var(--dga-date-picker-primary-faint)}.dga-date-picker__day--disabled,.dga-date-picker__month--disabled,.dga-date-picker__year--disabled{opacity:.35;cursor:not-allowed}.dga-date-picker__month,.dga-date-picker__year{border:1px solid transparent;border-radius:var(--dga-radius-sm, 4px);background:transparent;color:inherit;font:inherit;padding:var(--dga-space-sm, 8px);cursor:pointer;text-align:center}.dga-date-picker__month--selected,.dga-date-picker__year--selected{background:var(--dga-date-picker-primary);color:var(--dga-text-on-color, #fff)}.dga-date-picker__month:hover:not(:disabled):not(.dga-date-picker__month--selected),.dga-date-picker__year:hover:not(:disabled):not(.dga-date-picker__year--selected){background:var(--dga-date-picker-primary-faint)}.dga-date-picker__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--dga-space-xs, 4px);margin-top:var(--dga-space-md, 12px);padding-top:var(--dga-space-md, 12px);border-top:1px solid var(--dga-date-picker-border)}.dga-date-picker__btn{border:1px solid transparent;border-radius:var(--dga-radius-sm, 4px);background:transparent;font:inherit;font-weight:600;padding:var(--dga-space-xs, 4px) var(--dga-space-md, 12px);cursor:pointer;min-height:2rem}.dga-date-picker__btn--ghost{color:var(--dga-date-picker-fg);border-color:var(--dga-date-picker-border)}.dga-date-picker__btn--ghost:hover{background:var(--dga-date-picker-primary-faint);border-color:var(--dga-date-picker-primary);color:var(--dga-date-picker-primary)}.dga-date-picker__btn--primary{background:var(--dga-date-picker-primary);color:var(--dga-text-on-color, #fff)}.dga-date-picker__btn--primary:hover{filter:brightness(1.05)}.dga-date-picker[data-locale=ar] .dga-date-picker__panel{direction:rtl}.dga-date-picker[data-size=sm] .dga-date-picker__day{width:2rem;height:2rem;font-size:.8125rem}.dga-date-picker[data-size=lg] .dga-date-picker__day{width:2.5rem;height:2.5rem}\n"],dependencies:[{kind:"component",type:O,selector:"dga-form-control",inputs:["size","status","disabled","filled","startIcon","endIcon"]},{kind:"component",type:j,selector:"dga-icon",inputs:["name","glyph","size","tone","label"]},{kind:"directive",type:B,selector:"[ngStyle]",inputs:["ngStyle"]}],changeDetection:i.ChangeDetectionStrategy.OnPush,encapsulation:i.ViewEncapsulation.None})}i.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:i,type:x,decorators:[{type:ie,args:[{selector:"dga-date-picker",standalone:!0,imports:[O,j,B],encapsulation:de.None,template:`
|
|
194
194
|
<div
|
|
195
195
|
class="dga-date-picker"
|
|
196
196
|
[class.dga-date-picker--open]="open()"
|