@mhmo91/schmancy 0.4.8 → 0.4.9
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/dist/{avatar-BMzBsIWs.cjs → avatar-BK-Ikpdw.cjs} +2 -2
- package/dist/{avatar-BMzBsIWs.cjs.map → avatar-BK-Ikpdw.cjs.map} +1 -1
- package/dist/{avatar-DUPqOrZp.js → avatar-Bp0t8NU5.js} +3 -3
- package/dist/{avatar-DUPqOrZp.js.map → avatar-Bp0t8NU5.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-DN0v_ykN.js → date-range-BLs8_7pI.js} +2 -2
- package/dist/{date-range-DN0v_ykN.js.map → date-range-BLs8_7pI.js.map} +1 -1
- package/dist/{date-range-BPVaXilO.cjs → date-range-Ch_Ir3s1.cjs} +2 -2
- package/dist/{date-range-BPVaXilO.cjs.map → date-range-Ch_Ir3s1.cjs.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{dialog-service-BgqAlT7T.cjs → dialog-service-BZZK8N6A.cjs} +2 -2
- package/dist/dialog-service-BZZK8N6A.cjs.map +1 -0
- package/dist/dialog-service-DFMlRcXf.js +128 -0
- package/dist/dialog-service-DFMlRcXf.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/package.json +1 -1
- package/dist/dialog-service-BgqAlT7T.cjs.map +0 -1
- package/dist/dialog-service-CnjZCTMj.js +0 -127
- package/dist/dialog-service-CnjZCTMj.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-DN0v_ykN.js","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-utils.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-range-helpers.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\r\nimport { PresetUnit } from './date-range-presets'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')}-${toDate.format('D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('MMM D, YYYY')}${fromTime} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\r\n}","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { validateInitialDateRange } from './date-utils'\nimport { DateRangePreset, PresetCategory, generatePresetCategories } from './date-range-presets'\nimport { formatDateRange, detectDateRangeType, calculateShiftParams, adjustQuarter } from './date-range-helpers'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.activePreset = preset.label\n\t\tthis.setDateRange(preset.range.dateFrom, preset.range.dateTo)\n\t\t$dialog.dismiss()\n\t}\n\n\n\n\tprivate toggleDropdown(e: Event) {\n\t\te.stopPropagation()\n\t\tif (this.disabled) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (this.disabled) return\n\t\t\n\t\tthis.isOpen = true\n\t\t\n\t\t// Create dialog content\n\t\tconst dialogContent = this.createDialogContent()\n\t\t\n\t\t// Use the dialog service - it will automatically find the nearest schmancy-theme\n\t\t$dialog.component(dialogContent, {\n\t\t\ttitle: 'Select Date Range',\n\t\t\twidth: this.isMobile ? '100vw' : '800px',\n\t\t\thideActions: true\n\t\t}).then(() => {\n\t\t\tthis.isOpen = false\n\t\t})\n\t}\n\n\tprivate closeDropdown() {\n\t\t$dialog.dismiss()\n\t\tthis.isOpen = false\n\t}\n\n\n\t/**\n\t * Shifts the date range based on its type (preset or custom)\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\n\t\t// Get active preset and calculate shift parameters\n\t\tconst activePreset = this.presetRanges.find(p => p.label === this.activePreset)\n\t\tconst { unit, amount } = calculateShiftParams(fromDate, toDate, activePreset?.step)\n\n\t\t// Detect date range type\n\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\n\t\tlet newFromDate: dayjs.Dayjs\n\t\tlet newToDate: dayjs.Dayjs\n\n\t\t// Handle shifting based on unit\n\t\tif (unit === 'quarter') {\n\t\t\tnewFromDate = adjustQuarter(fromDate, amount, dir)\n\t\t\tnewToDate = adjustQuarter(toDate, amount, dir)\n\t\t\t\n\t\t\tif (rangeType.isFullQuarter) {\n\t\t\t\tnewFromDate = newFromDate.startOf('quarter')\n\t\t\t\tnewToDate = newFromDate.endOf('quarter')\n\t\t\t}\n\t\t} else if (unit === 'hour') {\n\t\t\tconst rangeDurationInHours = toDate.diff(fromDate, 'hour')\n\t\t\tnewFromDate = dir > 0 ? fromDate.add(rangeDurationInHours, 'hour') : fromDate.subtract(rangeDurationInHours, 'hour')\n\t\t\tnewToDate = dir > 0 ? toDate.add(rangeDurationInHours, 'hour') : toDate.subtract(rangeDurationInHours, 'hour')\n\t\t} else {\n\t\t\t// Handle all other units (day, week, month, year)\n\t\t\tif (dir > 0) {\n\t\t\t\tnewFromDate = fromDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t} else {\n\t\t\t\tnewFromDate = fromDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t}\n\n\t\t\t// Preserve full period ranges\n\t\t\tif (unit === 'year' && rangeType.isFullYear) {\n\t\t\t\tnewFromDate = newFromDate.startOf('year')\n\t\t\t\tnewToDate = newFromDate.endOf('year')\n\t\t\t} else if (unit === 'month' && rangeType.isFullMonth) {\n\t\t\t\tnewFromDate = newFromDate.startOf('month')\n\t\t\t\tnewToDate = newFromDate.endOf('month')\n\t\t\t} else if (unit === 'week' && rangeType.isFullWeek) {\n\t\t\t\tnewFromDate = newFromDate.startOf('week')\n\t\t\t\tnewToDate = newFromDate.endOf('week')\n\t\t\t}\n\t\t}\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.announceToScreenReader('Invalid date format. Please check your input.')\n\t\t\treturn\n\t\t}\n\n\t\t// Ensure from date is before to date\n\t\tif (fromDate.isAfter(toDate)) {\n\t\t\tthis.setDateRange(toDate.format(this.getDateFormat()), fromDate.format(this.getDateFormat()))\n\t\t} else {\n\t\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\t}\n\n\t\t$dialog.dismiss()\n\t}\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\t/**\n\t * Create dialog content\n\t */\n\tprivate createDialogContent(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Custom Range Section with Inline Calendars -->\n\t\t\t\t<schmancy-surface type=\"container\" class=\"rounded-xl p-4 mb-6\">\n\t\t\t\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t\t\t\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t\t\t<!-- From Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateFrom.label || 'From'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- To Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateTo.label || 'To'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<!-- Apply Button - Now at the bottom for logical flow -->\n\t\t\t\t\t\t<div class=\"flex justify-end mt-2\">\n\t\t\t\t\t\t\t<schmancy-button \n\t\t\t\t\t\t\t\tvariant=\"filled\" \n\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\n\t\t\t\t<!-- Presets Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\">\n\t\t\t\t\t<div class=\"grid grid-cols-2 md:grid-cols-5 gap-6\">\n\t\t\t\t\t\t${this.presetCategories.map(\n\t\t\t\t\t\t\tcategory => html`\n\t\t\t\t\t\t\t\t<div class=\"space-y-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"text-surface-onVariant font-medium\">\n\t\t\t\t\t\t\t\t\t\t${category.name}\n\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t<div class=\"space-y-1\">\n\t\t\t\t\t\t\t\t\t\t${category.presets.map(\n\t\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"${this.activePreset === preset.label ? 'filled' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"w-full justify-start text-left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.handlePresetSelection(preset, e)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-pressed=\"${this.activePreset === preset.label}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"${preset.label}: ${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"truncate\">${preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Trigger using the preferred schmancy-grid pattern -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"flex\" >\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.toggleDropdown(e)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"names":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","quarter","bind","enforceDateFormat","dateString","expectedFormat","parsedDate","dayjs","validateInitialDateRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","generateLastNDaysPresets","days","map","label","range","step","generateLastNWeeksPresets","weeks","generateLastNMonthsPresets","generateLastNQuartersPresets","quarters","adjustQuarter","amount","direction","newQuarter","yearAdjustment","newDate","targetDay","quarterOfYear","SchmancyDateRange","$LitElement","constructor","super","type","value","customPresets","disabled","required","placeholder","clearable","isOpen","selectedDateRange","activePreset","announceMessage","isMobile","presetRanges","presetCategories","memoizedPresets","Map","connectedCallback","initPresetRanges","checkMobileView","dateFormat","getDateFormat","validatedRange","updateSelectedDateRange","now","setupEventHandlers","fromEvent","document","pipe","takeUntil","disconnecting","subscribe","event","handleKeyboardNavigation","window","debounceTime","disconnectedCallback","changedProps","updated","has","cacheKey","JSON","stringify","cached","category","push","presets","includeTime","categories","customCategory","preset","find","checkAndUpdateActivePreset","fromValue","toValue","fromDate","fromTime","toTime","announceToScreenReader","dispatchEvent","CustomEvent","detail","bubbles","composed","stopPropagation","setDateRange","$dialog","dismiss","closeDropdown","openDropdown","dialogContent","createDialogContent","component","title","width","hideActions","then","dir","unit","activePresetStep","rangeDurationInDays","rangeType","isFullMonth","isFullQuarter","isFullYear","isFullWeek","day","newFromDate","newToDate","rangeDurationInHours","key","target","contains","shiftDateRange","preventDefault","ctrlKey","currentFrom","currentTo","monthStart","daysDiff","monthEnd","matchingPreset","innerWidth","input","html","ifDefined","minDate","maxDate","handleFromDateChange","handleToDateChange","applyManualDateSelection","handlePresetSelection","message","timer","toggleDropdown","__decorateClass","property","Object","Boolean","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"date-range-BLs8_7pI.js","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-utils.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-range-helpers.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\r\nimport { PresetUnit } from './date-range-presets'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')}-${toDate.format('D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('MMM D, YYYY')}${fromTime} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\r\n}","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { validateInitialDateRange } from './date-utils'\nimport { DateRangePreset, PresetCategory, generatePresetCategories } from './date-range-presets'\nimport { formatDateRange, detectDateRangeType, calculateShiftParams, adjustQuarter } from './date-range-helpers'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.activePreset = preset.label\n\t\tthis.setDateRange(preset.range.dateFrom, preset.range.dateTo)\n\t\t$dialog.dismiss()\n\t}\n\n\n\n\tprivate toggleDropdown(e: Event) {\n\t\te.stopPropagation()\n\t\tif (this.disabled) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (this.disabled) return\n\t\t\n\t\tthis.isOpen = true\n\t\t\n\t\t// Create dialog content\n\t\tconst dialogContent = this.createDialogContent()\n\t\t\n\t\t// Use the dialog service - it will automatically find the nearest schmancy-theme\n\t\t$dialog.component(dialogContent, {\n\t\t\ttitle: 'Select Date Range',\n\t\t\twidth: this.isMobile ? '100vw' : '800px',\n\t\t\thideActions: true\n\t\t}).then(() => {\n\t\t\tthis.isOpen = false\n\t\t})\n\t}\n\n\tprivate closeDropdown() {\n\t\t$dialog.dismiss()\n\t\tthis.isOpen = false\n\t}\n\n\n\t/**\n\t * Shifts the date range based on its type (preset or custom)\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\n\t\t// Get active preset and calculate shift parameters\n\t\tconst activePreset = this.presetRanges.find(p => p.label === this.activePreset)\n\t\tconst { unit, amount } = calculateShiftParams(fromDate, toDate, activePreset?.step)\n\n\t\t// Detect date range type\n\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\n\t\tlet newFromDate: dayjs.Dayjs\n\t\tlet newToDate: dayjs.Dayjs\n\n\t\t// Handle shifting based on unit\n\t\tif (unit === 'quarter') {\n\t\t\tnewFromDate = adjustQuarter(fromDate, amount, dir)\n\t\t\tnewToDate = adjustQuarter(toDate, amount, dir)\n\t\t\t\n\t\t\tif (rangeType.isFullQuarter) {\n\t\t\t\tnewFromDate = newFromDate.startOf('quarter')\n\t\t\t\tnewToDate = newFromDate.endOf('quarter')\n\t\t\t}\n\t\t} else if (unit === 'hour') {\n\t\t\tconst rangeDurationInHours = toDate.diff(fromDate, 'hour')\n\t\t\tnewFromDate = dir > 0 ? fromDate.add(rangeDurationInHours, 'hour') : fromDate.subtract(rangeDurationInHours, 'hour')\n\t\t\tnewToDate = dir > 0 ? toDate.add(rangeDurationInHours, 'hour') : toDate.subtract(rangeDurationInHours, 'hour')\n\t\t} else {\n\t\t\t// Handle all other units (day, week, month, year)\n\t\t\tif (dir > 0) {\n\t\t\t\tnewFromDate = fromDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t} else {\n\t\t\t\tnewFromDate = fromDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t}\n\n\t\t\t// Preserve full period ranges\n\t\t\tif (unit === 'year' && rangeType.isFullYear) {\n\t\t\t\tnewFromDate = newFromDate.startOf('year')\n\t\t\t\tnewToDate = newFromDate.endOf('year')\n\t\t\t} else if (unit === 'month' && rangeType.isFullMonth) {\n\t\t\t\tnewFromDate = newFromDate.startOf('month')\n\t\t\t\tnewToDate = newFromDate.endOf('month')\n\t\t\t} else if (unit === 'week' && rangeType.isFullWeek) {\n\t\t\t\tnewFromDate = newFromDate.startOf('week')\n\t\t\t\tnewToDate = newFromDate.endOf('week')\n\t\t\t}\n\t\t}\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.announceToScreenReader('Invalid date format. Please check your input.')\n\t\t\treturn\n\t\t}\n\n\t\t// Ensure from date is before to date\n\t\tif (fromDate.isAfter(toDate)) {\n\t\t\tthis.setDateRange(toDate.format(this.getDateFormat()), fromDate.format(this.getDateFormat()))\n\t\t} else {\n\t\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\t}\n\n\t\t$dialog.dismiss()\n\t}\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\t/**\n\t * Create dialog content\n\t */\n\tprivate createDialogContent(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Custom Range Section with Inline Calendars -->\n\t\t\t\t<schmancy-surface type=\"container\" class=\"rounded-xl p-4 mb-6\">\n\t\t\t\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t\t\t\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t\t\t<!-- From Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateFrom.label || 'From'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- To Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateTo.label || 'To'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<!-- Apply Button - Now at the bottom for logical flow -->\n\t\t\t\t\t\t<div class=\"flex justify-end mt-2\">\n\t\t\t\t\t\t\t<schmancy-button \n\t\t\t\t\t\t\t\tvariant=\"filled\" \n\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\n\t\t\t\t<!-- Presets Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\">\n\t\t\t\t\t<div class=\"grid grid-cols-2 md:grid-cols-5 gap-6\">\n\t\t\t\t\t\t${this.presetCategories.map(\n\t\t\t\t\t\t\tcategory => html`\n\t\t\t\t\t\t\t\t<div class=\"space-y-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"text-surface-onVariant font-medium\">\n\t\t\t\t\t\t\t\t\t\t${category.name}\n\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t<div class=\"space-y-1\">\n\t\t\t\t\t\t\t\t\t\t${category.presets.map(\n\t\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"${this.activePreset === preset.label ? 'filled' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"w-full justify-start text-left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.handlePresetSelection(preset, e)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-pressed=\"${this.activePreset === preset.label}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"${preset.label}: ${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"truncate\">${preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Trigger using the preferred schmancy-grid pattern -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"flex\" >\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.toggleDropdown(e)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"names":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","quarter","bind","enforceDateFormat","dateString","expectedFormat","parsedDate","dayjs","validateInitialDateRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","generateLastNDaysPresets","days","map","label","range","step","generateLastNWeeksPresets","weeks","generateLastNMonthsPresets","generateLastNQuartersPresets","quarters","adjustQuarter","amount","direction","newQuarter","yearAdjustment","newDate","targetDay","quarterOfYear","SchmancyDateRange","$LitElement","constructor","super","type","value","customPresets","disabled","required","placeholder","clearable","isOpen","selectedDateRange","activePreset","announceMessage","isMobile","presetRanges","presetCategories","memoizedPresets","Map","connectedCallback","initPresetRanges","checkMobileView","dateFormat","getDateFormat","validatedRange","updateSelectedDateRange","now","setupEventHandlers","fromEvent","document","pipe","takeUntil","disconnecting","subscribe","event","handleKeyboardNavigation","window","debounceTime","disconnectedCallback","changedProps","updated","has","cacheKey","JSON","stringify","cached","category","push","presets","includeTime","categories","customCategory","preset","find","checkAndUpdateActivePreset","fromValue","toValue","fromDate","fromTime","toTime","announceToScreenReader","dispatchEvent","CustomEvent","detail","bubbles","composed","stopPropagation","setDateRange","$dialog","dismiss","closeDropdown","openDropdown","dialogContent","createDialogContent","component","title","width","hideActions","then","dir","unit","activePresetStep","rangeDurationInDays","rangeType","isFullMonth","isFullQuarter","isFullYear","isFullWeek","day","newFromDate","newToDate","rangeDurationInHours","key","target","contains","shiftDateRange","preventDefault","ctrlKey","currentFrom","currentTo","monthStart","daysDiff","monthEnd","matchingPreset","innerWidth","input","html","ifDefined","minDate","maxDate","handleFromDateChange","handleToDateChange","applyManualDateSelection","handlePresetSelection","message","timer","toggleDropdown","__decorateClass","property","Object","Boolean","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const A=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const he=require("./litElement.mixin-CUibxXWX.cjs");require("./tailwind.mixin-C6mrbvH3.cjs");const ue=require("./_commonjsHelpers-k2hpEU-q.cjs"),z=require("lit"),T=require("lit/decorators.js"),Q=require("lit/directives/if-defined.js"),B=require("./dialog-service-BgqAlT7T.cjs");var te,ae={exports:{}},le=(te||(te=1,ae.exports=function(){var t=1e3,a=6e4,e=36e5,u="millisecond",m="second",o="minute",f="hour",y="day",F="week",b="month",$="quarter",M="year",v="date",Y="Invalid Date",j=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,P=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,de={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(c){var n=["th","st","nd","rd"],r=c%100;return"["+c+(n[(r-20)%10]||n[r]||n[0])+"]"}},K=function(c,n,r){var i=String(c);return!i||i.length>=n?c:""+Array(n+1-i.length).join(r)+c},ce={s:K,z:function(c){var n=-c.utcOffset(),r=Math.abs(n),i=Math.floor(r/60),s=r%60;return(n<=0?"+":"-")+K(i,2,"0")+":"+K(s,2,"0")},m:function c(n,r){if(n.date()<r.date())return-c(r,n);var i=12*(r.year()-n.year())+(r.month()-n.month()),s=n.clone().add(i,b),h=r-s<0,l=n.clone().add(i+(h?-1:1),b);return+(-(i+(r-s)/(h?s-l:l-s))||0)},a:function(c){return c<0?Math.ceil(c)||0:Math.floor(c)},p:function(c){return{M:b,y:M,w:F,d:y,D:v,h:f,m:o,s:m,ms:u,Q:$}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(c){return c===void 0}},V="en",q={};q[V]=de;var X="$isDayjsObject",Z=function(c){return c instanceof U||!(!c||!c[X])},N=function c(n,r,i){var s;if(!n)return V;if(typeof n=="string"){var h=n.toLowerCase();q[h]&&(s=h),r&&(q[h]=r,s=h);var l=n.split("-");if(!s&&l.length>1)return c(l[0])}else{var g=n.name;q[g]=n,s=g}return!i&&s&&(V=s),s||!i&&V},O=function(c,n){if(Z(c))return c.clone();var r=typeof n=="object"?n:{};return r.date=c,r.args=arguments,new U(r)},p=ce;p.l=N,p.i=Z,p.w=function(c,n){return O(c,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})};var U=function(){function c(r){this.$L=N(r.locale,null,!0),this.parse(r),this.$x=this.$x||r.x||{},this[X]=!0}var n=c.prototype;return n.parse=function(r){this.$d=function(i){var s=i.date,h=i.utc;if(s===null)return new Date(NaN);if(p.u(s))return new Date;if(s instanceof Date)return new Date(s);if(typeof s=="string"&&!/Z$/i.test(s)){var l=s.match(j);if(l){var g=l[2]-1||0,D=(l[7]||"0").substring(0,3);return h?new Date(Date.UTC(l[1],g,l[3]||1,l[4]||0,l[5]||0,l[6]||0,D)):new Date(l[1],g,l[3]||1,l[4]||0,l[5]||0,l[6]||0,D)}}return new Date(s)}(r),this.init()},n.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},n.$utils=function(){return p},n.isValid=function(){return this.$d.toString()!==Y},n.isSame=function(r,i){var s=O(r);return this.startOf(i)<=s&&s<=this.endOf(i)},n.isAfter=function(r,i){return O(r)<this.startOf(i)},n.isBefore=function(r,i){return this.endOf(i)<O(r)},n.$g=function(r,i,s){return p.u(r)?this[i]:this.set(s,r)},n.unix=function(){return Math.floor(this.valueOf()/1e3)},n.valueOf=function(){return this.$d.getTime()},n.startOf=function(r,i){var s=this,h=!!p.u(i)||i,l=p.p(r),g=function(_,R){var C=p.w(s.$u?Date.UTC(s.$y,R,_):new Date(s.$y,R,_),s);return h?C:C.endOf(y)},D=function(_,R){return p.w(s.toDate()[_].apply(s.toDate("s"),(h?[0,0,0,0]:[23,59,59,999]).slice(R)),s)},S=this.$W,k=this.$M,x=this.$D,H="set"+(this.$u?"UTC":"");switch(l){case M:return h?g(1,0):g(31,11);case b:return h?g(1,k):g(0,k+1);case F:var L=this.$locale().weekStart||0,W=(S<L?S+7:S)-L;return g(h?x-W:x+(6-W),k);case y:case v:return D(H+"Hours",0);case f:return D(H+"Minutes",1);case o:return D(H+"Seconds",2);case m:return D(H+"Milliseconds",3);default:return this.clone()}},n.endOf=function(r){return this.startOf(r,!1)},n.$set=function(r,i){var s,h=p.p(r),l="set"+(this.$u?"UTC":""),g=(s={},s[y]=l+"Date",s[v]=l+"Date",s[b]=l+"Month",s[M]=l+"FullYear",s[f]=l+"Hours",s[o]=l+"Minutes",s[m]=l+"Seconds",s[u]=l+"Milliseconds",s)[h],D=h===y?this.$D+(i-this.$W):i;if(h===b||h===M){var S=this.clone().set(v,1);S.$d[g](D),S.init(),this.$d=S.set(v,Math.min(this.$D,S.daysInMonth())).$d}else g&&this.$d[g](D);return this.init(),this},n.set=function(r,i){return this.clone().$set(r,i)},n.get=function(r){return this[p.p(r)]()},n.add=function(r,i){var s,h=this;r=Number(r);var l=p.p(i),g=function(k){var x=O(h);return p.w(x.date(x.date()+Math.round(k*r)),h)};if(l===b)return this.set(b,this.$M+r);if(l===M)return this.set(M,this.$y+r);if(l===y)return g(1);if(l===F)return g(7);var D=(s={},s[o]=a,s[f]=e,s[m]=t,s)[l]||1,S=this.$d.getTime()+r*D;return p.w(S,this)},n.subtract=function(r,i){return this.add(-1*r,i)},n.format=function(r){var i=this,s=this.$locale();if(!this.isValid())return s.invalidDate||Y;var h=r||"YYYY-MM-DDTHH:mm:ssZ",l=p.z(this),g=this.$H,D=this.$m,S=this.$M,k=s.weekdays,x=s.months,H=s.meridiem,L=function(R,C,E,I){return R&&(R[C]||R(i,h))||E[C].slice(0,I)},W=function(R){return p.s(g%12||12,R,"0")},_=H||function(R,C,E){var I=R<12?"AM":"PM";return E?I.toLowerCase():I};return h.replace(P,function(R,C){return C||function(E){switch(E){case"YY":return String(i.$y).slice(-2);case"YYYY":return p.s(i.$y,4,"0");case"M":return S+1;case"MM":return p.s(S+1,2,"0");case"MMM":return L(s.monthsShort,S,x,3);case"MMMM":return L(x,S);case"D":return i.$D;case"DD":return p.s(i.$D,2,"0");case"d":return String(i.$W);case"dd":return L(s.weekdaysMin,i.$W,k,2);case"ddd":return L(s.weekdaysShort,i.$W,k,3);case"dddd":return k[i.$W];case"H":return String(g);case"HH":return p.s(g,2,"0");case"h":return W(1);case"hh":return W(2);case"a":return _(g,D,!0);case"A":return _(g,D,!1);case"m":return String(D);case"mm":return p.s(D,2,"0");case"s":return String(i.$s);case"ss":return p.s(i.$s,2,"0");case"SSS":return p.s(i.$ms,3,"0");case"Z":return l}return null}(R)||l.replace(":","")})},n.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},n.diff=function(r,i,s){var h,l=this,g=p.p(i),D=O(r),S=(D.utcOffset()-this.utcOffset())*a,k=this-D,x=function(){return p.m(l,D)};switch(g){case M:h=x()/12;break;case b:h=x();break;case $:h=x()/3;break;case F:h=(k-S)/6048e5;break;case y:h=(k-S)/864e5;break;case f:h=k/e;break;case o:h=k/a;break;case m:h=k/t;break;default:h=k}return s?h:p.a(h)},n.daysInMonth=function(){return this.endOf(b).$D},n.$locale=function(){return q[this.$L]},n.locale=function(r,i){if(!r)return this.$L;var s=this.clone(),h=N(r,i,!0);return h&&(s.$L=h),s},n.clone=function(){return p.w(this.$d,this)},n.toDate=function(){return new Date(this.valueOf())},n.toJSON=function(){return this.isValid()?this.toISOString():null},n.toISOString=function(){return this.$d.toISOString()},n.toString=function(){return this.$d.toUTCString()},c}(),ee=U.prototype;return O.prototype=ee,[["$ms",u],["$s",m],["$m",o],["$H",f],["$W",y],["$M",b],["$y",M],["$D",v]].forEach(function(c){ee[c[1]]=function(n){return this.$g(n,c[0],c[1])}}),O.extend=function(c,n){return c.$i||(c(n,U,O),c.$i=!0),O},O.locale=N,O.isDayjs=Z,O.unix=function(c){return O(1e3*c)},O.en=q[V],O.Ls=q,O.p={},O}()),ae.exports);const d=ue.getDefaultExportFromCjs(le);var re,se={exports:{}},J,G,me=re?se.exports:(re=1,se.exports=(J="month",G="quarter",function(t,a){var e=a.prototype;e.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var u=e.add;e.add=function(o,f){return o=Number(o),this.$utils().p(f)===G?this.add(3*o,J):u.bind(this)(o,f)};var m=e.startOf;e.startOf=function(o,f){var y=this.$utils(),F=!!y.u(f)||f;if(y.p(o)===G){var b=this.quarter()-1;return F?this.month(3*b).startOf(J).startOf("day"):this.month(3*b+2).endOf(J).endOf("day")}return m.bind(this)(o,f)}}));const fe=ue.getDefaultExportFromCjs(me);function ne(t,a){if(!t)return null;const e=d(t);return e.isValid()?e.format(a):null}function ie(t,a,e){const u=ne(t,e),m=ne(a,e);return{dateFrom:u,dateTo:m,isValid:u!==null&&m!==null}}function pe(t,a){return t.map(e=>({label:`Last ${e} Days`,range:{dateFrom:d().subtract(e-1,"days").startOf("day").format(a),dateTo:d().endOf("day").format(a)},step:"day"}))}function ye(t,a){return t.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:d().subtract(e,"weeks").startOf("week").format(a),dateTo:d().endOf("day").format(a)},step:"week"}))}function ge(t,a){return t.map(e=>({label:`Last ${e} Months`,range:{dateFrom:d().subtract(e,"months").startOf("month").format(a),dateTo:d().endOf("day").format(a)},step:"month"}))}function ve(t,a){return t.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:d().subtract(e,"quarters").startOf("quarter").format(a),dateTo:d().endOf("day").format(a)},step:"quarter"}))}function oe(t,a,e){let u=t.quarter()+e*a,m=0;for(;u>4;)u-=4,m+=1;for(;u<1;)u+=4,m-=1;const o=t.add(m,"year").month(3*(u-1)),f=o.daysInMonth(),y=Math.min(t.date(),f);return o.date(y)}var $e=Object.defineProperty,De=Object.getOwnPropertyDescriptor,w=(t,a,e,u)=>{for(var m,o=u>1?void 0:u?De(a,e):a,f=t.length-1;f>=0;f--)(m=t[f])&&(o=(u?m(a,e,o):m(o))||o);return u&&o&&$e(a,e,o),o};d.extend(fe),exports.SchmancyDateRange=class extends he.$LitElement(){constructor(){super(...arguments),this.type="date",this.dateFrom={label:"From",value:""},this.dateTo={label:"To",value:""},this.customPresets=[],this.disabled=!1,this.required=!1,this.placeholder="Select date range",this.clearable=!0,this.isOpen=!1,this.selectedDateRange="",this.activePreset=null,this.announceMessage="",this.isMobile=!1,this.presetRanges=[],this.presetCategories=[],this.memoizedPresets=new Map}connectedCallback(){super.connectedCallback(),this.initPresetRanges(),this.checkMobileView();const t=this.getDateFormat(),a=ie(this.dateFrom.value,this.dateTo.value,t);if(a.isValid)this.dateFrom.value=a.dateFrom,this.dateTo.value=a.dateTo,this.updateSelectedDateRange();else{const e=d().format(t);this.dateFrom.value=e,this.dateTo.value=e,this.updateSelectedDateRange()}this.setupEventHandlers()}setupEventHandlers(){A.fromEvent(document,"keydown").pipe(A.takeUntil(this.disconnecting)).subscribe(t=>{this.handleKeyboardNavigation(t)}),A.fromEvent(window,"resize").pipe(A.debounceTime(150),A.takeUntil(this.disconnecting)).subscribe(()=>{this.checkMobileView()})}disconnectedCallback(){super.disconnectedCallback()}updated(t){super.updated(t),!t.has("dateFrom")&&!t.has("dateTo")||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}initPresetRanges(){const t=this.getDateFormat(),a=`${this.type}-${t}-${JSON.stringify(this.customPresets)}`;if(this.memoizedPresets.has(a)){const e=this.memoizedPresets.get(a);return this.presetCategories=e,this.presetRanges=[],void e.forEach(u=>{this.presetRanges.push(...u.presets)})}if(this.presetCategories=function(e,u=!1){const m=[];return u&&m.push({name:"Hours",presets:[{label:"Last 24 Hours",range:{dateFrom:d().subtract(24,"hours").format(e),dateTo:d().format(e)},step:"hour"},{label:"Last 12 Hours",range:{dateFrom:d().subtract(12,"hours").format(e),dateTo:d().format(e)},step:"hour"}]}),m.push({name:"Days",presets:[{label:"Today",range:{dateFrom:d().startOf("day").format(e),dateTo:d().endOf("day").format(e)},step:"day"},{label:"Yesterday",range:{dateFrom:d().subtract(1,"days").startOf("day").format(e),dateTo:d().subtract(1,"days").endOf("day").format(e)},step:"day"},...pe([7,14,30,60,90],e)]}),m.push({name:"Weeks",presets:[{label:"This Week",range:{dateFrom:d().startOf("week").format(e),dateTo:d().endOf("week").format(e)},step:"week"},{label:"Last Week",range:{dateFrom:d().subtract(1,"weeks").startOf("week").format(e),dateTo:d().subtract(1,"weeks").endOf("week").format(e)},step:"week"},...ye([2,4],e)]}),m.push({name:"Months",presets:[{label:"This Month",range:{dateFrom:d().startOf("month").format(e),dateTo:d().endOf("month").format(e)},step:"month"},{label:"Last Month",range:{dateFrom:d().subtract(1,"month").startOf("month").format(e),dateTo:d().subtract(1,"month").endOf("month").format(e)},step:"month"},...ge([3,6],e)]}),m.push({name:"Quarters",presets:[{label:"This Quarter",range:{dateFrom:d().startOf("quarter").format(e),dateTo:d().endOf("quarter").format(e)},step:"quarter"},{label:"Last Quarter",range:{dateFrom:d().subtract(1,"quarter").startOf("quarter").format(e),dateTo:d().subtract(1,"quarter").endOf("quarter").format(e)},step:"quarter"},...ve([2,4],e)]}),m.push({name:"Years",presets:[{label:"This Year",range:{dateFrom:d().startOf("year").format(e),dateTo:d().endOf("year").format(e)},step:"year"},{label:"Last Year",range:{dateFrom:d().subtract(1,"year").startOf("year").format(e),dateTo:d().subtract(1,"year").endOf("year").format(e)},step:"year"},{label:"Year to Date",range:{dateFrom:d().startOf("year").format(e),dateTo:d().endOf("day").format(e)},step:"day"}]}),m}(t,this.type==="datetime-local"),this.presetRanges=[],this.presetCategories.forEach(e=>{this.presetRanges.push(...e.presets)}),this.customPresets&&this.customPresets.length>0){const e={name:"Custom",presets:this.customPresets.map(u=>({label:u.label,range:{dateFrom:u.dateFrom,dateTo:u.dateTo},step:"day"}))};this.presetCategories.push(e),this.presetRanges.push(...e.presets)}this.memoizedPresets.set(a,[...this.presetCategories])}getDateFormat(){return this.format||(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")}updateSelectedDateRange(){const t=this.presetRanges.find(a=>a.range.dateFrom===this.dateFrom.value&&a.range.dateTo===this.dateTo.value);if(t)return this.selectedDateRange=t.label,void(this.activePreset=t.label);this.checkAndUpdateActivePreset(this.dateFrom.value,this.dateTo.value),this.activePreset=null,this.selectedDateRange=function(a,e,u,m){if(!a||!e)return m;const o=d(a),f=d(e);if(!o.isValid()||!f.isValid())return m;const y=u==="datetime-local"?o.format(" h:mm A"):"",F=u==="datetime-local"?f.format(" h:mm A"):"";return o.isSame(f,"day")?`${o.format("MMM D, YYYY")}${y}`:o.isSame(f,"month")&&o.isSame(f,"year")?`${o.format("MMM D")}-${f.format("D, YYYY")}${F}`:o.isSame(f,"year")?`${o.format("MMM D")} - ${f.format("MMM D, YYYY")}${F}`:`${o.format("MMM D, YYYY")}${y} - ${f.format("MMM D, YYYY")}${F}`}(this.dateFrom.value,this.dateTo.value,this.type,this.placeholder)}setDateRange(t,a){this.dateFrom.value=t,this.dateTo.value=a,this.updateSelectedDateRange(),this.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`),this.dispatchEvent(new CustomEvent("change",{detail:{dateFrom:t,dateTo:a},bubbles:!0,composed:!0}))}handlePresetSelection(t,a){a.stopPropagation(),this.activePreset=t.label,this.setDateRange(t.range.dateFrom,t.range.dateTo),B.$dialog.dismiss()}toggleDropdown(t){t.stopPropagation(),this.disabled||(this.isOpen?this.closeDropdown():this.openDropdown())}openDropdown(){if(this.disabled)return;this.isOpen=!0;const t=this.createDialogContent();B.$dialog.component(t,{title:"Select Date Range",width:this.isMobile?"100vw":"800px",hideActions:!0}).then(()=>{this.isOpen=!1})}closeDropdown(){B.$dialog.dismiss(),this.isOpen=!1}shiftDateRange(t,a){if(a.stopPropagation(),!this.dateFrom.value||!this.dateTo.value)return;const e=d(this.dateFrom.value),u=d(this.dateTo.value);if(!e.isValid()||!u.isValid())return;const m=this.getDateFormat(),o=t>0?1:-1,f=this.presetRanges.find(v=>v.label===this.activePreset),{unit:y,amount:F}=function(v,Y,j){if(j)return{unit:j,amount:1};const P=Y.diff(v,"day");return P>=360?{unit:"year",amount:Math.round(P/365)}:P>=90?{unit:"quarter",amount:Math.round(P/90)}:P>=30?{unit:"month",amount:Math.round(P/30)}:P>=7?{unit:"week",amount:Math.round(P/7)}:{unit:"day",amount:P+1}}(e,u,f?.step),b=function(v,Y){return{isFullMonth:v.date()===1&&Y.isSame(v.endOf("month"),"day"),isFullQuarter:v.isSame(v.startOf("quarter"),"day")&&Y.isSame(Y.endOf("quarter"),"day"),isFullYear:v.isSame(v.startOf("year"),"day")&&Y.isSame(Y.endOf("year"),"day"),isFullWeek:v.day()===0&&Y.day()===6&&Y.diff(v,"days")===6}}(e,u);let $,M;if(y==="quarter")$=oe(e,F,o),M=oe(u,F,o),b.isFullQuarter&&($=$.startOf("quarter"),M=$.endOf("quarter"));else if(y==="hour"){const v=u.diff(e,"hour");$=o>0?e.add(v,"hour"):e.subtract(v,"hour"),M=o>0?u.add(v,"hour"):u.subtract(v,"hour")}else o>0?($=e.add(F,y),M=u.add(F,y)):($=e.subtract(F,y),M=u.subtract(F,y)),y==="year"&&b.isFullYear?($=$.startOf("year"),M=$.endOf("year")):y==="month"&&b.isFullMonth?($=$.startOf("month"),M=$.endOf("month")):y==="week"&&b.isFullWeek&&($=$.startOf("week"),M=$.endOf("week"));this.setDateRange($.format(m),M.format(m)),this.checkAndUpdateActivePreset($.format(m),M.format(m))}handleKeyboardNavigation(t){const a=t.key;if(this.dateFrom.value&&this.dateTo.value&&!this.disabled)switch(a){case"PageUp":(t.target===this||this.contains(t.target))&&(this.shiftDateRange(-1,t),t.preventDefault());break;case"PageDown":(t.target===this||this.contains(t.target))&&(this.shiftDateRange(1,t),t.preventDefault());break;case"Home":if(t.ctrlKey&&(t.target===this||this.contains(t.target))){const e=d(this.dateFrom.value),u=d(this.dateTo.value),m=e.startOf("month"),o=u.diff(e,"day");this.setDateRange(m.format(this.getDateFormat()),m.add(o,"day").format(this.getDateFormat())),t.preventDefault()}break;case"End":if(t.ctrlKey&&(t.target===this||this.contains(t.target))){const e=d(this.dateFrom.value),u=d(this.dateTo.value),m=u.diff(e,"day"),o=u.endOf("month");this.setDateRange(o.subtract(m,"day").format(this.getDateFormat()),o.format(this.getDateFormat())),t.preventDefault()}}}checkAndUpdateActivePreset(t,a){const e=this.presetRanges.find(u=>u.range.dateFrom===t&&u.range.dateTo===a);this.activePreset=e?e.label:null}applyManualDateSelection(t){t.stopPropagation();const a=d(this.dateFrom.value),e=d(this.dateTo.value);a.isValid()&&e.isValid()?(a.isAfter(e)?this.setDateRange(e.format(this.getDateFormat()),a.format(this.getDateFormat())):this.setDateRange(this.dateFrom.value,this.dateTo.value),B.$dialog.dismiss()):this.announceToScreenReader("Invalid date format. Please check your input.")}checkMobileView(){this.isMobile=window.innerWidth<768}handleFromDateChange(t){const a=t.target;this.dateFrom.value=a.value,this.updateSelectedDateRange()}handleToDateChange(t){const a=t.target;this.dateTo.value=a.value,this.updateSelectedDateRange()}createDialogContent(){return z.html`
|
|
1
|
+
"use strict";const A=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const he=require("./litElement.mixin-CUibxXWX.cjs");require("./tailwind.mixin-C6mrbvH3.cjs");const ue=require("./_commonjsHelpers-k2hpEU-q.cjs"),z=require("lit"),T=require("lit/decorators.js"),Q=require("lit/directives/if-defined.js"),B=require("./dialog-service-BZZK8N6A.cjs");var te,ae={exports:{}},le=(te||(te=1,ae.exports=function(){var t=1e3,a=6e4,e=36e5,u="millisecond",m="second",o="minute",f="hour",y="day",F="week",b="month",$="quarter",M="year",v="date",Y="Invalid Date",j=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,P=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,de={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(c){var n=["th","st","nd","rd"],r=c%100;return"["+c+(n[(r-20)%10]||n[r]||n[0])+"]"}},K=function(c,n,r){var i=String(c);return!i||i.length>=n?c:""+Array(n+1-i.length).join(r)+c},ce={s:K,z:function(c){var n=-c.utcOffset(),r=Math.abs(n),i=Math.floor(r/60),s=r%60;return(n<=0?"+":"-")+K(i,2,"0")+":"+K(s,2,"0")},m:function c(n,r){if(n.date()<r.date())return-c(r,n);var i=12*(r.year()-n.year())+(r.month()-n.month()),s=n.clone().add(i,b),h=r-s<0,l=n.clone().add(i+(h?-1:1),b);return+(-(i+(r-s)/(h?s-l:l-s))||0)},a:function(c){return c<0?Math.ceil(c)||0:Math.floor(c)},p:function(c){return{M:b,y:M,w:F,d:y,D:v,h:f,m:o,s:m,ms:u,Q:$}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(c){return c===void 0}},V="en",q={};q[V]=de;var X="$isDayjsObject",Z=function(c){return c instanceof U||!(!c||!c[X])},N=function c(n,r,i){var s;if(!n)return V;if(typeof n=="string"){var h=n.toLowerCase();q[h]&&(s=h),r&&(q[h]=r,s=h);var l=n.split("-");if(!s&&l.length>1)return c(l[0])}else{var g=n.name;q[g]=n,s=g}return!i&&s&&(V=s),s||!i&&V},O=function(c,n){if(Z(c))return c.clone();var r=typeof n=="object"?n:{};return r.date=c,r.args=arguments,new U(r)},p=ce;p.l=N,p.i=Z,p.w=function(c,n){return O(c,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})};var U=function(){function c(r){this.$L=N(r.locale,null,!0),this.parse(r),this.$x=this.$x||r.x||{},this[X]=!0}var n=c.prototype;return n.parse=function(r){this.$d=function(i){var s=i.date,h=i.utc;if(s===null)return new Date(NaN);if(p.u(s))return new Date;if(s instanceof Date)return new Date(s);if(typeof s=="string"&&!/Z$/i.test(s)){var l=s.match(j);if(l){var g=l[2]-1||0,D=(l[7]||"0").substring(0,3);return h?new Date(Date.UTC(l[1],g,l[3]||1,l[4]||0,l[5]||0,l[6]||0,D)):new Date(l[1],g,l[3]||1,l[4]||0,l[5]||0,l[6]||0,D)}}return new Date(s)}(r),this.init()},n.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},n.$utils=function(){return p},n.isValid=function(){return this.$d.toString()!==Y},n.isSame=function(r,i){var s=O(r);return this.startOf(i)<=s&&s<=this.endOf(i)},n.isAfter=function(r,i){return O(r)<this.startOf(i)},n.isBefore=function(r,i){return this.endOf(i)<O(r)},n.$g=function(r,i,s){return p.u(r)?this[i]:this.set(s,r)},n.unix=function(){return Math.floor(this.valueOf()/1e3)},n.valueOf=function(){return this.$d.getTime()},n.startOf=function(r,i){var s=this,h=!!p.u(i)||i,l=p.p(r),g=function(_,R){var C=p.w(s.$u?Date.UTC(s.$y,R,_):new Date(s.$y,R,_),s);return h?C:C.endOf(y)},D=function(_,R){return p.w(s.toDate()[_].apply(s.toDate("s"),(h?[0,0,0,0]:[23,59,59,999]).slice(R)),s)},S=this.$W,k=this.$M,x=this.$D,H="set"+(this.$u?"UTC":"");switch(l){case M:return h?g(1,0):g(31,11);case b:return h?g(1,k):g(0,k+1);case F:var L=this.$locale().weekStart||0,W=(S<L?S+7:S)-L;return g(h?x-W:x+(6-W),k);case y:case v:return D(H+"Hours",0);case f:return D(H+"Minutes",1);case o:return D(H+"Seconds",2);case m:return D(H+"Milliseconds",3);default:return this.clone()}},n.endOf=function(r){return this.startOf(r,!1)},n.$set=function(r,i){var s,h=p.p(r),l="set"+(this.$u?"UTC":""),g=(s={},s[y]=l+"Date",s[v]=l+"Date",s[b]=l+"Month",s[M]=l+"FullYear",s[f]=l+"Hours",s[o]=l+"Minutes",s[m]=l+"Seconds",s[u]=l+"Milliseconds",s)[h],D=h===y?this.$D+(i-this.$W):i;if(h===b||h===M){var S=this.clone().set(v,1);S.$d[g](D),S.init(),this.$d=S.set(v,Math.min(this.$D,S.daysInMonth())).$d}else g&&this.$d[g](D);return this.init(),this},n.set=function(r,i){return this.clone().$set(r,i)},n.get=function(r){return this[p.p(r)]()},n.add=function(r,i){var s,h=this;r=Number(r);var l=p.p(i),g=function(k){var x=O(h);return p.w(x.date(x.date()+Math.round(k*r)),h)};if(l===b)return this.set(b,this.$M+r);if(l===M)return this.set(M,this.$y+r);if(l===y)return g(1);if(l===F)return g(7);var D=(s={},s[o]=a,s[f]=e,s[m]=t,s)[l]||1,S=this.$d.getTime()+r*D;return p.w(S,this)},n.subtract=function(r,i){return this.add(-1*r,i)},n.format=function(r){var i=this,s=this.$locale();if(!this.isValid())return s.invalidDate||Y;var h=r||"YYYY-MM-DDTHH:mm:ssZ",l=p.z(this),g=this.$H,D=this.$m,S=this.$M,k=s.weekdays,x=s.months,H=s.meridiem,L=function(R,C,E,I){return R&&(R[C]||R(i,h))||E[C].slice(0,I)},W=function(R){return p.s(g%12||12,R,"0")},_=H||function(R,C,E){var I=R<12?"AM":"PM";return E?I.toLowerCase():I};return h.replace(P,function(R,C){return C||function(E){switch(E){case"YY":return String(i.$y).slice(-2);case"YYYY":return p.s(i.$y,4,"0");case"M":return S+1;case"MM":return p.s(S+1,2,"0");case"MMM":return L(s.monthsShort,S,x,3);case"MMMM":return L(x,S);case"D":return i.$D;case"DD":return p.s(i.$D,2,"0");case"d":return String(i.$W);case"dd":return L(s.weekdaysMin,i.$W,k,2);case"ddd":return L(s.weekdaysShort,i.$W,k,3);case"dddd":return k[i.$W];case"H":return String(g);case"HH":return p.s(g,2,"0");case"h":return W(1);case"hh":return W(2);case"a":return _(g,D,!0);case"A":return _(g,D,!1);case"m":return String(D);case"mm":return p.s(D,2,"0");case"s":return String(i.$s);case"ss":return p.s(i.$s,2,"0");case"SSS":return p.s(i.$ms,3,"0");case"Z":return l}return null}(R)||l.replace(":","")})},n.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},n.diff=function(r,i,s){var h,l=this,g=p.p(i),D=O(r),S=(D.utcOffset()-this.utcOffset())*a,k=this-D,x=function(){return p.m(l,D)};switch(g){case M:h=x()/12;break;case b:h=x();break;case $:h=x()/3;break;case F:h=(k-S)/6048e5;break;case y:h=(k-S)/864e5;break;case f:h=k/e;break;case o:h=k/a;break;case m:h=k/t;break;default:h=k}return s?h:p.a(h)},n.daysInMonth=function(){return this.endOf(b).$D},n.$locale=function(){return q[this.$L]},n.locale=function(r,i){if(!r)return this.$L;var s=this.clone(),h=N(r,i,!0);return h&&(s.$L=h),s},n.clone=function(){return p.w(this.$d,this)},n.toDate=function(){return new Date(this.valueOf())},n.toJSON=function(){return this.isValid()?this.toISOString():null},n.toISOString=function(){return this.$d.toISOString()},n.toString=function(){return this.$d.toUTCString()},c}(),ee=U.prototype;return O.prototype=ee,[["$ms",u],["$s",m],["$m",o],["$H",f],["$W",y],["$M",b],["$y",M],["$D",v]].forEach(function(c){ee[c[1]]=function(n){return this.$g(n,c[0],c[1])}}),O.extend=function(c,n){return c.$i||(c(n,U,O),c.$i=!0),O},O.locale=N,O.isDayjs=Z,O.unix=function(c){return O(1e3*c)},O.en=q[V],O.Ls=q,O.p={},O}()),ae.exports);const d=ue.getDefaultExportFromCjs(le);var re,se={exports:{}},J,G,me=re?se.exports:(re=1,se.exports=(J="month",G="quarter",function(t,a){var e=a.prototype;e.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var u=e.add;e.add=function(o,f){return o=Number(o),this.$utils().p(f)===G?this.add(3*o,J):u.bind(this)(o,f)};var m=e.startOf;e.startOf=function(o,f){var y=this.$utils(),F=!!y.u(f)||f;if(y.p(o)===G){var b=this.quarter()-1;return F?this.month(3*b).startOf(J).startOf("day"):this.month(3*b+2).endOf(J).endOf("day")}return m.bind(this)(o,f)}}));const fe=ue.getDefaultExportFromCjs(me);function ne(t,a){if(!t)return null;const e=d(t);return e.isValid()?e.format(a):null}function ie(t,a,e){const u=ne(t,e),m=ne(a,e);return{dateFrom:u,dateTo:m,isValid:u!==null&&m!==null}}function pe(t,a){return t.map(e=>({label:`Last ${e} Days`,range:{dateFrom:d().subtract(e-1,"days").startOf("day").format(a),dateTo:d().endOf("day").format(a)},step:"day"}))}function ye(t,a){return t.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:d().subtract(e,"weeks").startOf("week").format(a),dateTo:d().endOf("day").format(a)},step:"week"}))}function ge(t,a){return t.map(e=>({label:`Last ${e} Months`,range:{dateFrom:d().subtract(e,"months").startOf("month").format(a),dateTo:d().endOf("day").format(a)},step:"month"}))}function ve(t,a){return t.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:d().subtract(e,"quarters").startOf("quarter").format(a),dateTo:d().endOf("day").format(a)},step:"quarter"}))}function oe(t,a,e){let u=t.quarter()+e*a,m=0;for(;u>4;)u-=4,m+=1;for(;u<1;)u+=4,m-=1;const o=t.add(m,"year").month(3*(u-1)),f=o.daysInMonth(),y=Math.min(t.date(),f);return o.date(y)}var $e=Object.defineProperty,De=Object.getOwnPropertyDescriptor,w=(t,a,e,u)=>{for(var m,o=u>1?void 0:u?De(a,e):a,f=t.length-1;f>=0;f--)(m=t[f])&&(o=(u?m(a,e,o):m(o))||o);return u&&o&&$e(a,e,o),o};d.extend(fe),exports.SchmancyDateRange=class extends he.$LitElement(){constructor(){super(...arguments),this.type="date",this.dateFrom={label:"From",value:""},this.dateTo={label:"To",value:""},this.customPresets=[],this.disabled=!1,this.required=!1,this.placeholder="Select date range",this.clearable=!0,this.isOpen=!1,this.selectedDateRange="",this.activePreset=null,this.announceMessage="",this.isMobile=!1,this.presetRanges=[],this.presetCategories=[],this.memoizedPresets=new Map}connectedCallback(){super.connectedCallback(),this.initPresetRanges(),this.checkMobileView();const t=this.getDateFormat(),a=ie(this.dateFrom.value,this.dateTo.value,t);if(a.isValid)this.dateFrom.value=a.dateFrom,this.dateTo.value=a.dateTo,this.updateSelectedDateRange();else{const e=d().format(t);this.dateFrom.value=e,this.dateTo.value=e,this.updateSelectedDateRange()}this.setupEventHandlers()}setupEventHandlers(){A.fromEvent(document,"keydown").pipe(A.takeUntil(this.disconnecting)).subscribe(t=>{this.handleKeyboardNavigation(t)}),A.fromEvent(window,"resize").pipe(A.debounceTime(150),A.takeUntil(this.disconnecting)).subscribe(()=>{this.checkMobileView()})}disconnectedCallback(){super.disconnectedCallback()}updated(t){super.updated(t),!t.has("dateFrom")&&!t.has("dateTo")||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}initPresetRanges(){const t=this.getDateFormat(),a=`${this.type}-${t}-${JSON.stringify(this.customPresets)}`;if(this.memoizedPresets.has(a)){const e=this.memoizedPresets.get(a);return this.presetCategories=e,this.presetRanges=[],void e.forEach(u=>{this.presetRanges.push(...u.presets)})}if(this.presetCategories=function(e,u=!1){const m=[];return u&&m.push({name:"Hours",presets:[{label:"Last 24 Hours",range:{dateFrom:d().subtract(24,"hours").format(e),dateTo:d().format(e)},step:"hour"},{label:"Last 12 Hours",range:{dateFrom:d().subtract(12,"hours").format(e),dateTo:d().format(e)},step:"hour"}]}),m.push({name:"Days",presets:[{label:"Today",range:{dateFrom:d().startOf("day").format(e),dateTo:d().endOf("day").format(e)},step:"day"},{label:"Yesterday",range:{dateFrom:d().subtract(1,"days").startOf("day").format(e),dateTo:d().subtract(1,"days").endOf("day").format(e)},step:"day"},...pe([7,14,30,60,90],e)]}),m.push({name:"Weeks",presets:[{label:"This Week",range:{dateFrom:d().startOf("week").format(e),dateTo:d().endOf("week").format(e)},step:"week"},{label:"Last Week",range:{dateFrom:d().subtract(1,"weeks").startOf("week").format(e),dateTo:d().subtract(1,"weeks").endOf("week").format(e)},step:"week"},...ye([2,4],e)]}),m.push({name:"Months",presets:[{label:"This Month",range:{dateFrom:d().startOf("month").format(e),dateTo:d().endOf("month").format(e)},step:"month"},{label:"Last Month",range:{dateFrom:d().subtract(1,"month").startOf("month").format(e),dateTo:d().subtract(1,"month").endOf("month").format(e)},step:"month"},...ge([3,6],e)]}),m.push({name:"Quarters",presets:[{label:"This Quarter",range:{dateFrom:d().startOf("quarter").format(e),dateTo:d().endOf("quarter").format(e)},step:"quarter"},{label:"Last Quarter",range:{dateFrom:d().subtract(1,"quarter").startOf("quarter").format(e),dateTo:d().subtract(1,"quarter").endOf("quarter").format(e)},step:"quarter"},...ve([2,4],e)]}),m.push({name:"Years",presets:[{label:"This Year",range:{dateFrom:d().startOf("year").format(e),dateTo:d().endOf("year").format(e)},step:"year"},{label:"Last Year",range:{dateFrom:d().subtract(1,"year").startOf("year").format(e),dateTo:d().subtract(1,"year").endOf("year").format(e)},step:"year"},{label:"Year to Date",range:{dateFrom:d().startOf("year").format(e),dateTo:d().endOf("day").format(e)},step:"day"}]}),m}(t,this.type==="datetime-local"),this.presetRanges=[],this.presetCategories.forEach(e=>{this.presetRanges.push(...e.presets)}),this.customPresets&&this.customPresets.length>0){const e={name:"Custom",presets:this.customPresets.map(u=>({label:u.label,range:{dateFrom:u.dateFrom,dateTo:u.dateTo},step:"day"}))};this.presetCategories.push(e),this.presetRanges.push(...e.presets)}this.memoizedPresets.set(a,[...this.presetCategories])}getDateFormat(){return this.format||(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")}updateSelectedDateRange(){const t=this.presetRanges.find(a=>a.range.dateFrom===this.dateFrom.value&&a.range.dateTo===this.dateTo.value);if(t)return this.selectedDateRange=t.label,void(this.activePreset=t.label);this.checkAndUpdateActivePreset(this.dateFrom.value,this.dateTo.value),this.activePreset=null,this.selectedDateRange=function(a,e,u,m){if(!a||!e)return m;const o=d(a),f=d(e);if(!o.isValid()||!f.isValid())return m;const y=u==="datetime-local"?o.format(" h:mm A"):"",F=u==="datetime-local"?f.format(" h:mm A"):"";return o.isSame(f,"day")?`${o.format("MMM D, YYYY")}${y}`:o.isSame(f,"month")&&o.isSame(f,"year")?`${o.format("MMM D")}-${f.format("D, YYYY")}${F}`:o.isSame(f,"year")?`${o.format("MMM D")} - ${f.format("MMM D, YYYY")}${F}`:`${o.format("MMM D, YYYY")}${y} - ${f.format("MMM D, YYYY")}${F}`}(this.dateFrom.value,this.dateTo.value,this.type,this.placeholder)}setDateRange(t,a){this.dateFrom.value=t,this.dateTo.value=a,this.updateSelectedDateRange(),this.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`),this.dispatchEvent(new CustomEvent("change",{detail:{dateFrom:t,dateTo:a},bubbles:!0,composed:!0}))}handlePresetSelection(t,a){a.stopPropagation(),this.activePreset=t.label,this.setDateRange(t.range.dateFrom,t.range.dateTo),B.$dialog.dismiss()}toggleDropdown(t){t.stopPropagation(),this.disabled||(this.isOpen?this.closeDropdown():this.openDropdown())}openDropdown(){if(this.disabled)return;this.isOpen=!0;const t=this.createDialogContent();B.$dialog.component(t,{title:"Select Date Range",width:this.isMobile?"100vw":"800px",hideActions:!0}).then(()=>{this.isOpen=!1})}closeDropdown(){B.$dialog.dismiss(),this.isOpen=!1}shiftDateRange(t,a){if(a.stopPropagation(),!this.dateFrom.value||!this.dateTo.value)return;const e=d(this.dateFrom.value),u=d(this.dateTo.value);if(!e.isValid()||!u.isValid())return;const m=this.getDateFormat(),o=t>0?1:-1,f=this.presetRanges.find(v=>v.label===this.activePreset),{unit:y,amount:F}=function(v,Y,j){if(j)return{unit:j,amount:1};const P=Y.diff(v,"day");return P>=360?{unit:"year",amount:Math.round(P/365)}:P>=90?{unit:"quarter",amount:Math.round(P/90)}:P>=30?{unit:"month",amount:Math.round(P/30)}:P>=7?{unit:"week",amount:Math.round(P/7)}:{unit:"day",amount:P+1}}(e,u,f?.step),b=function(v,Y){return{isFullMonth:v.date()===1&&Y.isSame(v.endOf("month"),"day"),isFullQuarter:v.isSame(v.startOf("quarter"),"day")&&Y.isSame(Y.endOf("quarter"),"day"),isFullYear:v.isSame(v.startOf("year"),"day")&&Y.isSame(Y.endOf("year"),"day"),isFullWeek:v.day()===0&&Y.day()===6&&Y.diff(v,"days")===6}}(e,u);let $,M;if(y==="quarter")$=oe(e,F,o),M=oe(u,F,o),b.isFullQuarter&&($=$.startOf("quarter"),M=$.endOf("quarter"));else if(y==="hour"){const v=u.diff(e,"hour");$=o>0?e.add(v,"hour"):e.subtract(v,"hour"),M=o>0?u.add(v,"hour"):u.subtract(v,"hour")}else o>0?($=e.add(F,y),M=u.add(F,y)):($=e.subtract(F,y),M=u.subtract(F,y)),y==="year"&&b.isFullYear?($=$.startOf("year"),M=$.endOf("year")):y==="month"&&b.isFullMonth?($=$.startOf("month"),M=$.endOf("month")):y==="week"&&b.isFullWeek&&($=$.startOf("week"),M=$.endOf("week"));this.setDateRange($.format(m),M.format(m)),this.checkAndUpdateActivePreset($.format(m),M.format(m))}handleKeyboardNavigation(t){const a=t.key;if(this.dateFrom.value&&this.dateTo.value&&!this.disabled)switch(a){case"PageUp":(t.target===this||this.contains(t.target))&&(this.shiftDateRange(-1,t),t.preventDefault());break;case"PageDown":(t.target===this||this.contains(t.target))&&(this.shiftDateRange(1,t),t.preventDefault());break;case"Home":if(t.ctrlKey&&(t.target===this||this.contains(t.target))){const e=d(this.dateFrom.value),u=d(this.dateTo.value),m=e.startOf("month"),o=u.diff(e,"day");this.setDateRange(m.format(this.getDateFormat()),m.add(o,"day").format(this.getDateFormat())),t.preventDefault()}break;case"End":if(t.ctrlKey&&(t.target===this||this.contains(t.target))){const e=d(this.dateFrom.value),u=d(this.dateTo.value),m=u.diff(e,"day"),o=u.endOf("month");this.setDateRange(o.subtract(m,"day").format(this.getDateFormat()),o.format(this.getDateFormat())),t.preventDefault()}}}checkAndUpdateActivePreset(t,a){const e=this.presetRanges.find(u=>u.range.dateFrom===t&&u.range.dateTo===a);this.activePreset=e?e.label:null}applyManualDateSelection(t){t.stopPropagation();const a=d(this.dateFrom.value),e=d(this.dateTo.value);a.isValid()&&e.isValid()?(a.isAfter(e)?this.setDateRange(e.format(this.getDateFormat()),a.format(this.getDateFormat())):this.setDateRange(this.dateFrom.value,this.dateTo.value),B.$dialog.dismiss()):this.announceToScreenReader("Invalid date format. Please check your input.")}checkMobileView(){this.isMobile=window.innerWidth<768}handleFromDateChange(t){const a=t.target;this.dateFrom.value=a.value,this.updateSelectedDateRange()}handleToDateChange(t){const a=t.target;this.dateTo.value=a.value,this.updateSelectedDateRange()}createDialogContent(){return z.html`
|
|
2
2
|
<div class="w-full min-h-[400px] max-h-[80vh] flex flex-col p-4">
|
|
3
3
|
<!-- Custom Range Section with Inline Calendars -->
|
|
4
4
|
<schmancy-surface type="container" class="rounded-xl p-4 mb-6">
|
|
@@ -114,4 +114,4 @@
|
|
|
114
114
|
</section>
|
|
115
115
|
</div>
|
|
116
116
|
`}},w([T.property({type:String})],exports.SchmancyDateRange.prototype,"type",2),w([T.property({type:Object})],exports.SchmancyDateRange.prototype,"dateFrom",2),w([T.property({type:Object})],exports.SchmancyDateRange.prototype,"dateTo",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"minDate",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"maxDate",2),w([T.property({type:Array})],exports.SchmancyDateRange.prototype,"customPresets",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"format",2),w([T.property({type:Boolean})],exports.SchmancyDateRange.prototype,"disabled",2),w([T.property({type:Boolean})],exports.SchmancyDateRange.prototype,"required",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"placeholder",2),w([T.property({type:Boolean})],exports.SchmancyDateRange.prototype,"clearable",2),w([T.state()],exports.SchmancyDateRange.prototype,"isOpen",2),w([T.state()],exports.SchmancyDateRange.prototype,"selectedDateRange",2),w([T.state()],exports.SchmancyDateRange.prototype,"activePreset",2),w([T.state()],exports.SchmancyDateRange.prototype,"announceMessage",2),w([T.state()],exports.SchmancyDateRange.prototype,"isMobile",2),exports.SchmancyDateRange=w([T.customElement("schmancy-date-range")],exports.SchmancyDateRange),exports.validateInitialDateRange=ie;
|
|
117
|
-
//# sourceMappingURL=date-range-
|
|
117
|
+
//# sourceMappingURL=date-range-Ch_Ir3s1.cjs.map
|