@a.nemreen/dga-ui 0.3.0 → 0.3.2
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 +18 -6
- package/fesm2022/a.nemreen-dga-ui-cookies.mjs +305 -0
- package/fesm2022/a.nemreen-dga-ui-date-picker.mjs +387 -0
- package/fesm2022/a.nemreen-dga-ui-header.mjs +2483 -0
- package/fesm2022/a.nemreen-dga-ui.mjs +1734 -4578
- package/package.json +20 -4
- package/types/a.nemreen-dga-ui-cookies.d.ts +201 -0
- package/types/a.nemreen-dga-ui-date-picker.d.ts +207 -0
- package/types/a.nemreen-dga-ui-header.d.ts +367 -0
- package/types/a.nemreen-dga-ui.d.ts +679 -1012
|
@@ -0,0 +1,387 @@
|
|
|
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:["\u0645\u062D\u0631\u0645","\u0635\u0641\u0631","\u0631\u0628\u064A\u0639 \u0627\u0644\u0623\u0648\u0644","\u0631\u0628\u064A\u0639 \u0627\u0644\u062B\u0627\u0646\u064A","\u062C\u0645\u0627\u062F\u0649 \u0627\u0644\u0623\u0648\u0644\u0649","\u062C\u0645\u0627\u062F\u0649 \u0627\u0644\u0622\u062E\u0631\u0629","\u0631\u062C\u0628","\u0634\u0639\u0628\u0627\u0646","\u0631\u0645\u0636\u0627\u0646","\u0634\u0648\u0627\u0644","\u0630\u0648 \u0627\u0644\u0642\u0639\u062F\u0629","\u0630\u0648 \u0627\u0644\u062D\u062C\u0629"],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:["\u064A\u0646\u0627\u064A\u0631","\u0641\u0628\u0631\u0627\u064A\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064A\u0644","\u0645\u0627\u064A\u0648","\u064A\u0648\u0646\u064A\u0648","\u064A\u0648\u0644\u064A\u0648","\u0623\u063A\u0633\u0637\u0633","\u0633\u0628\u062A\u0645\u0628\u0631","\u0623\u0643\u062A\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062F\u064A\u0633\u0645\u0628\u0631"],en:["January","February","March","April","May","June","July","August","September","October","November","December"]},G={ar:["\u0623\u062D\u062F","\u0625\u062B\u0646","\u062B\u0644\u0627","\u0623\u0631\u0628","\u062E\u0645\u064A","\u062C\u0645\u0639","\u0633\u0628\u062A"],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:"\u0627\u0644\u064A\u0648\u0645",clear:"\u0645\u0633\u062D",close:"\u0625\u063A\u0644\u0627\u0642",save:"\u062D\u0641\u0638",prev:"\u0627\u0644\u0633\u0627\u0628\u0642",next:"\u0627\u0644\u062A\u0627\u0644\u064A",calendar:"\u0641\u062A\u062D \u0627\u0644\u062A\u0642\u0648\u064A\u0645",clearInput:"\u0645\u0633\u062D \u0627\u0644\u062A\u0627\u0631\u064A\u062E",month:"\u0627\u0644\u0634\u0647\u0631",year:"\u0627\u0644\u0633\u0646\u0629",placeholder:"\u064A\u0648\u0645/\u0634\u0647\u0631/\u0633\u0646\u0629",rangeStart:"\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u0628\u062F\u0627\u064A\u0629",rangeEnd:"\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u0646\u0647\u0627\u064A\u0629"},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 \u0275fac=i.\u0275\u0275ngDeclareFactory({minVersion:"12.0.0",version:"22.0.7",ngImport:i,type:x,deps:[],target:i.\u0275\u0275FactoryTarget.Component});static \u0275cmp=i.\u0275\u0275ngDeclareComponent({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:`
|
|
2
|
+
<div
|
|
3
|
+
class="dga-date-picker"
|
|
4
|
+
[class.dga-date-picker--open]="open()"
|
|
5
|
+
[class.dga-date-picker--disabled]="disabled()"
|
|
6
|
+
[class.dga-date-picker--range]="range()"
|
|
7
|
+
[attr.data-size]="size()"
|
|
8
|
+
[attr.data-locale]="locale()"
|
|
9
|
+
[attr.data-calendar]="calendar()"
|
|
10
|
+
>
|
|
11
|
+
<dga-form-control
|
|
12
|
+
[size]="size()"
|
|
13
|
+
[status]="effectiveStatus()"
|
|
14
|
+
[disabled]="disabled()"
|
|
15
|
+
[filled]="!!displayValue()"
|
|
16
|
+
>
|
|
17
|
+
<input
|
|
18
|
+
#inputEl
|
|
19
|
+
type="text"
|
|
20
|
+
class="dga-date-picker__input"
|
|
21
|
+
[id]="controlId() || inputId"
|
|
22
|
+
[name]="name() || null"
|
|
23
|
+
[attr.placeholder]="resolvedPlaceholder()"
|
|
24
|
+
[attr.aria-label]="ariaLabel() || null"
|
|
25
|
+
[attr.aria-expanded]="open()"
|
|
26
|
+
[attr.aria-haspopup]="'dialog'"
|
|
27
|
+
[attr.aria-controls]="open() ? panelId : null"
|
|
28
|
+
[attr.aria-invalid]="invalid() || effectiveStatus() === 'error' || null"
|
|
29
|
+
[attr.aria-required]="required() || null"
|
|
30
|
+
[disabled]="disabled()"
|
|
31
|
+
[readonly]="!editable()"
|
|
32
|
+
[value]="displayValue()"
|
|
33
|
+
(input)="onInput($any($event.target).value)"
|
|
34
|
+
(keydown)="onInputKeydown($event)"
|
|
35
|
+
(blur)="onInputBlur()"
|
|
36
|
+
/>
|
|
37
|
+
@if (clearable() && displayValue() && !disabled()) {
|
|
38
|
+
<button
|
|
39
|
+
type="button"
|
|
40
|
+
class="dga-date-picker__clear"
|
|
41
|
+
[attr.aria-label]="labels().clearInput"
|
|
42
|
+
(mousedown)="$event.preventDefault()"
|
|
43
|
+
(click)="clearAll()"
|
|
44
|
+
>
|
|
45
|
+
\xD7
|
|
46
|
+
</button>
|
|
47
|
+
}
|
|
48
|
+
<button
|
|
49
|
+
type="button"
|
|
50
|
+
class="dga-date-picker__toggle"
|
|
51
|
+
[attr.aria-label]="labels().calendar"
|
|
52
|
+
[disabled]="disabled()"
|
|
53
|
+
(mousedown)="$event.preventDefault()"
|
|
54
|
+
(click)="togglePanel()"
|
|
55
|
+
>
|
|
56
|
+
<dga-icon name="calendar" size="sm" />
|
|
57
|
+
</button>
|
|
58
|
+
</dga-form-control>
|
|
59
|
+
|
|
60
|
+
@if (open()) {
|
|
61
|
+
<div
|
|
62
|
+
#panelEl
|
|
63
|
+
[id]="panelId"
|
|
64
|
+
class="dga-date-picker__panel"
|
|
65
|
+
role="dialog"
|
|
66
|
+
[attr.aria-label]="labels().calendar"
|
|
67
|
+
[ngStyle]="panelStyle()"
|
|
68
|
+
(mousedown)="$event.preventDefault()"
|
|
69
|
+
>
|
|
70
|
+
<div class="dga-date-picker__header">
|
|
71
|
+
<button
|
|
72
|
+
type="button"
|
|
73
|
+
class="dga-date-picker__nav"
|
|
74
|
+
[attr.aria-label]="labels().prev"
|
|
75
|
+
(click)="navigate(-1)"
|
|
76
|
+
>
|
|
77
|
+
\u2039
|
|
78
|
+
</button>
|
|
79
|
+
|
|
80
|
+
<div class="dga-date-picker__selects">
|
|
81
|
+
@if (panelMode() !== 'year') {
|
|
82
|
+
<button
|
|
83
|
+
type="button"
|
|
84
|
+
class="dga-date-picker__select-btn"
|
|
85
|
+
(click)="setPanelView('month')"
|
|
86
|
+
>
|
|
87
|
+
{{ monthLabel(viewMonth()) }}
|
|
88
|
+
</button>
|
|
89
|
+
}
|
|
90
|
+
<button
|
|
91
|
+
type="button"
|
|
92
|
+
class="dga-date-picker__select-btn"
|
|
93
|
+
(click)="setPanelView('year')"
|
|
94
|
+
>
|
|
95
|
+
{{ viewYear() }}
|
|
96
|
+
</button>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
<button
|
|
100
|
+
type="button"
|
|
101
|
+
class="dga-date-picker__nav"
|
|
102
|
+
[attr.aria-label]="labels().next"
|
|
103
|
+
(click)="navigate(1)"
|
|
104
|
+
>
|
|
105
|
+
\u203A
|
|
106
|
+
</button>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
@if (panelView() === 'day') {
|
|
110
|
+
<div class="dga-date-picker__weekdays" aria-hidden="true">
|
|
111
|
+
@for (wd of weekdays(); track wd) {
|
|
112
|
+
<span class="dga-date-picker__weekday">{{ wd }}</span>
|
|
113
|
+
}
|
|
114
|
+
</div>
|
|
115
|
+
<div class="dga-date-picker__grid dga-date-picker__grid--days" role="grid">
|
|
116
|
+
@for (cell of dayCells(); track cell.key) {
|
|
117
|
+
@if (cell.empty) {
|
|
118
|
+
<span class="dga-date-picker__day dga-date-picker__day--empty" aria-hidden="true"></span>
|
|
119
|
+
} @else {
|
|
120
|
+
<button
|
|
121
|
+
type="button"
|
|
122
|
+
role="gridcell"
|
|
123
|
+
class="dga-date-picker__day"
|
|
124
|
+
[class.dga-date-picker__day--today]="cell.today"
|
|
125
|
+
[class.dga-date-picker__day--selected]="cell.selected"
|
|
126
|
+
[class.dga-date-picker__day--in-range]="cell.inRange"
|
|
127
|
+
[class.dga-date-picker__day--range-start]="cell.rangeStart"
|
|
128
|
+
[class.dga-date-picker__day--range-end]="cell.rangeEnd"
|
|
129
|
+
[class.dga-date-picker__day--disabled]="cell.disabled"
|
|
130
|
+
[disabled]="cell.disabled"
|
|
131
|
+
[attr.aria-selected]="cell.selected"
|
|
132
|
+
[attr.aria-label]="cell.label"
|
|
133
|
+
(click)="selectDay(cell.day!)"
|
|
134
|
+
>
|
|
135
|
+
{{ cell.day }}
|
|
136
|
+
</button>
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
</div>
|
|
140
|
+
} @else if (panelView() === 'month') {
|
|
141
|
+
<div class="dga-date-picker__grid dga-date-picker__grid--months" role="listbox">
|
|
142
|
+
@for (m of monthOptions(); track m.value) {
|
|
143
|
+
<button
|
|
144
|
+
type="button"
|
|
145
|
+
role="option"
|
|
146
|
+
class="dga-date-picker__month"
|
|
147
|
+
[class.dga-date-picker__month--selected]="m.selected"
|
|
148
|
+
[class.dga-date-picker__month--disabled]="m.disabled"
|
|
149
|
+
[disabled]="m.disabled"
|
|
150
|
+
[attr.aria-selected]="m.selected"
|
|
151
|
+
(click)="selectMonth(m.value)"
|
|
152
|
+
>
|
|
153
|
+
{{ m.label }}
|
|
154
|
+
</button>
|
|
155
|
+
}
|
|
156
|
+
</div>
|
|
157
|
+
} @else {
|
|
158
|
+
<div class="dga-date-picker__grid dga-date-picker__grid--years" role="listbox">
|
|
159
|
+
@for (y of yearOptions(); track y.value) {
|
|
160
|
+
<button
|
|
161
|
+
type="button"
|
|
162
|
+
role="option"
|
|
163
|
+
class="dga-date-picker__year"
|
|
164
|
+
[class.dga-date-picker__year--selected]="y.selected"
|
|
165
|
+
[class.dga-date-picker__year--disabled]="y.disabled"
|
|
166
|
+
[disabled]="y.disabled"
|
|
167
|
+
[attr.aria-selected]="y.selected"
|
|
168
|
+
(click)="selectYear(y.value)"
|
|
169
|
+
>
|
|
170
|
+
{{ y.value }}
|
|
171
|
+
</button>
|
|
172
|
+
}
|
|
173
|
+
</div>
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
<div class="dga-date-picker__footer">
|
|
177
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--ghost" (click)="goToday()">
|
|
178
|
+
{{ resolvedTodayLabel() }}
|
|
179
|
+
</button>
|
|
180
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--ghost" (click)="clearDraft()">
|
|
181
|
+
{{ resolvedClearLabel() }}
|
|
182
|
+
</button>
|
|
183
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--ghost" (click)="closePanel()">
|
|
184
|
+
{{ resolvedCloseLabel() }}
|
|
185
|
+
</button>
|
|
186
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--primary" (click)="save()">
|
|
187
|
+
{{ resolvedSaveLabel() }}
|
|
188
|
+
</button>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
}
|
|
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}
|
|
194
|
+
`],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.\u0275\u0275ngDeclareClassMetadata({minVersion:"12.0.0",version:"22.0.7",ngImport:i,type:x,decorators:[{type:ie,args:[{selector:"dga-date-picker",standalone:!0,imports:[O,j,B],encapsulation:de.None,template:`
|
|
195
|
+
<div
|
|
196
|
+
class="dga-date-picker"
|
|
197
|
+
[class.dga-date-picker--open]="open()"
|
|
198
|
+
[class.dga-date-picker--disabled]="disabled()"
|
|
199
|
+
[class.dga-date-picker--range]="range()"
|
|
200
|
+
[attr.data-size]="size()"
|
|
201
|
+
[attr.data-locale]="locale()"
|
|
202
|
+
[attr.data-calendar]="calendar()"
|
|
203
|
+
>
|
|
204
|
+
<dga-form-control
|
|
205
|
+
[size]="size()"
|
|
206
|
+
[status]="effectiveStatus()"
|
|
207
|
+
[disabled]="disabled()"
|
|
208
|
+
[filled]="!!displayValue()"
|
|
209
|
+
>
|
|
210
|
+
<input
|
|
211
|
+
#inputEl
|
|
212
|
+
type="text"
|
|
213
|
+
class="dga-date-picker__input"
|
|
214
|
+
[id]="controlId() || inputId"
|
|
215
|
+
[name]="name() || null"
|
|
216
|
+
[attr.placeholder]="resolvedPlaceholder()"
|
|
217
|
+
[attr.aria-label]="ariaLabel() || null"
|
|
218
|
+
[attr.aria-expanded]="open()"
|
|
219
|
+
[attr.aria-haspopup]="'dialog'"
|
|
220
|
+
[attr.aria-controls]="open() ? panelId : null"
|
|
221
|
+
[attr.aria-invalid]="invalid() || effectiveStatus() === 'error' || null"
|
|
222
|
+
[attr.aria-required]="required() || null"
|
|
223
|
+
[disabled]="disabled()"
|
|
224
|
+
[readonly]="!editable()"
|
|
225
|
+
[value]="displayValue()"
|
|
226
|
+
(input)="onInput($any($event.target).value)"
|
|
227
|
+
(keydown)="onInputKeydown($event)"
|
|
228
|
+
(blur)="onInputBlur()"
|
|
229
|
+
/>
|
|
230
|
+
@if (clearable() && displayValue() && !disabled()) {
|
|
231
|
+
<button
|
|
232
|
+
type="button"
|
|
233
|
+
class="dga-date-picker__clear"
|
|
234
|
+
[attr.aria-label]="labels().clearInput"
|
|
235
|
+
(mousedown)="$event.preventDefault()"
|
|
236
|
+
(click)="clearAll()"
|
|
237
|
+
>
|
|
238
|
+
\xD7
|
|
239
|
+
</button>
|
|
240
|
+
}
|
|
241
|
+
<button
|
|
242
|
+
type="button"
|
|
243
|
+
class="dga-date-picker__toggle"
|
|
244
|
+
[attr.aria-label]="labels().calendar"
|
|
245
|
+
[disabled]="disabled()"
|
|
246
|
+
(mousedown)="$event.preventDefault()"
|
|
247
|
+
(click)="togglePanel()"
|
|
248
|
+
>
|
|
249
|
+
<dga-icon name="calendar" size="sm" />
|
|
250
|
+
</button>
|
|
251
|
+
</dga-form-control>
|
|
252
|
+
|
|
253
|
+
@if (open()) {
|
|
254
|
+
<div
|
|
255
|
+
#panelEl
|
|
256
|
+
[id]="panelId"
|
|
257
|
+
class="dga-date-picker__panel"
|
|
258
|
+
role="dialog"
|
|
259
|
+
[attr.aria-label]="labels().calendar"
|
|
260
|
+
[ngStyle]="panelStyle()"
|
|
261
|
+
(mousedown)="$event.preventDefault()"
|
|
262
|
+
>
|
|
263
|
+
<div class="dga-date-picker__header">
|
|
264
|
+
<button
|
|
265
|
+
type="button"
|
|
266
|
+
class="dga-date-picker__nav"
|
|
267
|
+
[attr.aria-label]="labels().prev"
|
|
268
|
+
(click)="navigate(-1)"
|
|
269
|
+
>
|
|
270
|
+
\u2039
|
|
271
|
+
</button>
|
|
272
|
+
|
|
273
|
+
<div class="dga-date-picker__selects">
|
|
274
|
+
@if (panelMode() !== 'year') {
|
|
275
|
+
<button
|
|
276
|
+
type="button"
|
|
277
|
+
class="dga-date-picker__select-btn"
|
|
278
|
+
(click)="setPanelView('month')"
|
|
279
|
+
>
|
|
280
|
+
{{ monthLabel(viewMonth()) }}
|
|
281
|
+
</button>
|
|
282
|
+
}
|
|
283
|
+
<button
|
|
284
|
+
type="button"
|
|
285
|
+
class="dga-date-picker__select-btn"
|
|
286
|
+
(click)="setPanelView('year')"
|
|
287
|
+
>
|
|
288
|
+
{{ viewYear() }}
|
|
289
|
+
</button>
|
|
290
|
+
</div>
|
|
291
|
+
|
|
292
|
+
<button
|
|
293
|
+
type="button"
|
|
294
|
+
class="dga-date-picker__nav"
|
|
295
|
+
[attr.aria-label]="labels().next"
|
|
296
|
+
(click)="navigate(1)"
|
|
297
|
+
>
|
|
298
|
+
\u203A
|
|
299
|
+
</button>
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
@if (panelView() === 'day') {
|
|
303
|
+
<div class="dga-date-picker__weekdays" aria-hidden="true">
|
|
304
|
+
@for (wd of weekdays(); track wd) {
|
|
305
|
+
<span class="dga-date-picker__weekday">{{ wd }}</span>
|
|
306
|
+
}
|
|
307
|
+
</div>
|
|
308
|
+
<div class="dga-date-picker__grid dga-date-picker__grid--days" role="grid">
|
|
309
|
+
@for (cell of dayCells(); track cell.key) {
|
|
310
|
+
@if (cell.empty) {
|
|
311
|
+
<span class="dga-date-picker__day dga-date-picker__day--empty" aria-hidden="true"></span>
|
|
312
|
+
} @else {
|
|
313
|
+
<button
|
|
314
|
+
type="button"
|
|
315
|
+
role="gridcell"
|
|
316
|
+
class="dga-date-picker__day"
|
|
317
|
+
[class.dga-date-picker__day--today]="cell.today"
|
|
318
|
+
[class.dga-date-picker__day--selected]="cell.selected"
|
|
319
|
+
[class.dga-date-picker__day--in-range]="cell.inRange"
|
|
320
|
+
[class.dga-date-picker__day--range-start]="cell.rangeStart"
|
|
321
|
+
[class.dga-date-picker__day--range-end]="cell.rangeEnd"
|
|
322
|
+
[class.dga-date-picker__day--disabled]="cell.disabled"
|
|
323
|
+
[disabled]="cell.disabled"
|
|
324
|
+
[attr.aria-selected]="cell.selected"
|
|
325
|
+
[attr.aria-label]="cell.label"
|
|
326
|
+
(click)="selectDay(cell.day!)"
|
|
327
|
+
>
|
|
328
|
+
{{ cell.day }}
|
|
329
|
+
</button>
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
</div>
|
|
333
|
+
} @else if (panelView() === 'month') {
|
|
334
|
+
<div class="dga-date-picker__grid dga-date-picker__grid--months" role="listbox">
|
|
335
|
+
@for (m of monthOptions(); track m.value) {
|
|
336
|
+
<button
|
|
337
|
+
type="button"
|
|
338
|
+
role="option"
|
|
339
|
+
class="dga-date-picker__month"
|
|
340
|
+
[class.dga-date-picker__month--selected]="m.selected"
|
|
341
|
+
[class.dga-date-picker__month--disabled]="m.disabled"
|
|
342
|
+
[disabled]="m.disabled"
|
|
343
|
+
[attr.aria-selected]="m.selected"
|
|
344
|
+
(click)="selectMonth(m.value)"
|
|
345
|
+
>
|
|
346
|
+
{{ m.label }}
|
|
347
|
+
</button>
|
|
348
|
+
}
|
|
349
|
+
</div>
|
|
350
|
+
} @else {
|
|
351
|
+
<div class="dga-date-picker__grid dga-date-picker__grid--years" role="listbox">
|
|
352
|
+
@for (y of yearOptions(); track y.value) {
|
|
353
|
+
<button
|
|
354
|
+
type="button"
|
|
355
|
+
role="option"
|
|
356
|
+
class="dga-date-picker__year"
|
|
357
|
+
[class.dga-date-picker__year--selected]="y.selected"
|
|
358
|
+
[class.dga-date-picker__year--disabled]="y.disabled"
|
|
359
|
+
[disabled]="y.disabled"
|
|
360
|
+
[attr.aria-selected]="y.selected"
|
|
361
|
+
(click)="selectYear(y.value)"
|
|
362
|
+
>
|
|
363
|
+
{{ y.value }}
|
|
364
|
+
</button>
|
|
365
|
+
}
|
|
366
|
+
</div>
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
<div class="dga-date-picker__footer">
|
|
370
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--ghost" (click)="goToday()">
|
|
371
|
+
{{ resolvedTodayLabel() }}
|
|
372
|
+
</button>
|
|
373
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--ghost" (click)="clearDraft()">
|
|
374
|
+
{{ resolvedClearLabel() }}
|
|
375
|
+
</button>
|
|
376
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--ghost" (click)="closePanel()">
|
|
377
|
+
{{ resolvedCloseLabel() }}
|
|
378
|
+
</button>
|
|
379
|
+
<button type="button" class="dga-date-picker__btn dga-date-picker__btn--primary" (click)="save()">
|
|
380
|
+
{{ resolvedSaveLabel() }}
|
|
381
|
+
</button>
|
|
382
|
+
</div>
|
|
383
|
+
</div>
|
|
384
|
+
}
|
|
385
|
+
</div>
|
|
386
|
+
`,changeDetection:re.OnPush,host:{class:"dga-date-picker-host"},providers:[U(x)],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}
|
|
387
|
+
`]}]}],ctorParameters:()=>[],propDecorators:{valueInput:[{type:i.Input,args:[{isSignal:!0,alias:"value",required:!1}]}],startValue:[{type:i.Input,args:[{isSignal:!0,alias:"startValue",required:!1}]},{type:i.Output,args:["startValueChange"]}],endValue:[{type:i.Input,args:[{isSignal:!0,alias:"endValue",required:!1}]},{type:i.Output,args:["endValueChange"]}],calendar:[{type:i.Input,args:[{isSignal:!0,alias:"calendar",required:!1}]}],range:[{type:i.Input,args:[{isSignal:!0,alias:"range",required:!1}]}],format:[{type:i.Input,args:[{isSignal:!0,alias:"format",required:!1}]}],mode:[{type:i.Input,args:[{isSignal:!0,alias:"mode",required:!1}]}],locale:[{type:i.Input,args:[{isSignal:!0,alias:"locale",required:!1}]}],minDate:[{type:i.Input,args:[{isSignal:!0,alias:"minDate",required:!1}]}],maxDate:[{type:i.Input,args:[{isSignal:!0,alias:"maxDate",required:!1}]}],yearBefore:[{type:i.Input,args:[{isSignal:!0,alias:"yearBefore",required:!1}]}],yearAfter:[{type:i.Input,args:[{isSignal:!0,alias:"yearAfter",required:!1}]}],placeholder:[{type:i.Input,args:[{isSignal:!0,alias:"placeholder",required:!1}]}],controlId:[{type:i.Input,args:[{isSignal:!0,alias:"controlId",required:!1}]}],name:[{type:i.Input,args:[{isSignal:!0,alias:"name",required:!1}]}],size:[{type:i.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],disabledInput:[{type:i.Input,args:[{isSignal:!0,alias:"disabled",required:!1}]}],required:[{type:i.Input,args:[{isSignal:!0,alias:"required",required:!1}]}],clearable:[{type:i.Input,args:[{isSignal:!0,alias:"clearable",required:!1}]}],editable:[{type:i.Input,args:[{isSignal:!0,alias:"editable",required:!1}]}],invalid:[{type:i.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}],status:[{type:i.Input,args:[{isSignal:!0,alias:"status",required:!1}]}],rangeSeparator:[{type:i.Input,args:[{isSignal:!0,alias:"rangeSeparator",required:!1}]}],todayLabel:[{type:i.Input,args:[{isSignal:!0,alias:"todayLabel",required:!1}]}],clearLabel:[{type:i.Input,args:[{isSignal:!0,alias:"clearLabel",required:!1}]}],closeLabel:[{type:i.Input,args:[{isSignal:!0,alias:"closeLabel",required:!1}]}],saveLabel:[{type:i.Input,args:[{isSignal:!0,alias:"saveLabel",required:!1}]}],ariaLabel:[{type:i.Input,args:[{isSignal:!0,alias:"ariaLabel",required:!1}]}],valueChange:[{type:i.Output,args:["valueChange"]}],rangeChange:[{type:i.Output,args:["rangeChange"]}],onDocumentClick:[{type:q,args:["document:click",["$event"]]}],onEscape:[{type:q,args:["document:keydown.escape"]}],onReposition:[{type:q,args:["window:resize"]},{type:q,args:["window:scroll"]}]}});export{J as DGA_GREGORIAN_MONTHS,H as DGA_HIJRI_MONTHS,G as DGA_WEEKDAYS,x as DgaDatePicker,R as dgaAddMonths,F as dgaClampDate,I as dgaCoerceDate,y as dgaCompareDays,C as dgaDaysInMonth,D as dgaFormatDate,g as dgaGetCalendarParts,K as dgaModeFromFormat,E as dgaMonthNames,Z as dgaMonthStartWeekday,V as dgaParseDate,v as dgaPartsToDate,M as dgaSameDay,N as dgaTodayUtc};
|