@mhmo91/schmancy 0.2.12 → 0.2.14
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/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/date-range-Bf_u0TPH.js +130 -0
- package/dist/date-range-Bf_u0TPH.js.map +1 -0
- package/dist/date-range-C6ObEwpy.cjs +58 -0
- package/dist/date-range-C6ObEwpy.cjs.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/{input-BNWPVs3H.js → input-CjHwAdCr.js} +2 -2
- package/dist/input-CjHwAdCr.js.map +1 -0
- package/dist/{input-shCt07iX.cjs → input-Dg9UEyST.cjs} +2 -2
- package/dist/input-Dg9UEyST.cjs.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-DOO3qoVk.cjs → teleport.component-CBt5HLNC.cjs} +2 -2
- package/dist/{teleport.component-DOO3qoVk.cjs.map → teleport.component-CBt5HLNC.cjs.map} +1 -1
- package/dist/{teleport.component-DZlkBtyW.js → teleport.component-Dc1Ygxut.js} +3 -3
- package/dist/{teleport.component-DZlkBtyW.js.map → teleport.component-Dc1Ygxut.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/package.json +1 -1
- package/types/src/date-range/date-range.d.ts +49 -9
- package/types/src/input/input.d.ts +0 -4
- package/dist/date-range-AqKuO1c4.js +0 -112
- package/dist/date-range-AqKuO1c4.js.map +0 -1
- package/dist/date-range-wOUZirqC.cjs +0 -53
- package/dist/date-range-wOUZirqC.cjs.map +0 -1
- package/dist/input-BNWPVs3H.js.map +0 -1
- package/dist/input-shCt07iX.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-AqKuO1c4.js","sources":["../src/date-range/date-range.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport moment from 'moment'\n\n@customElement('schmancy-date-range')\nexport default class SwiftHRAdminDateRange extends $LitElement() {\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom!: {\n\t\tlabel: string\n\t\tvalue: string\n\t}\n\t@property({ type: Object }) dateTo!: {\n\t\tlabel: string\n\t\tvalue: string\n\t}\n\n\t@query('#checkin') checkInInput!: HTMLInputElement\n\t@query('#checkout') checkOutInput!: HTMLInputElement\n\n\t@property({ type: String }) minDate: string | undefined\n\t@property({ type: String }) maxDate!: string | undefined\n\t@query('schmancy-menu') schmancyMenu!: SchmancyMenu\n\n\t@state() selectedDateRange: string = 'Today'\n\n\tpresetRanges!: Array<{\n\t\tlabel: string\n\t\trange: {\n\t\t\tdateFrom: string\n\t\t\tdateTo: string\n\t\t}\n\t\tstep: moment.unitOfTime.DurationConstructor | moment.unitOfTime._isoWeek\n\t\tselected?: boolean\n\t}>\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.presetRanges = [\n\t\t\t{\n\t\t\t\tlabel: 'Yesterday',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.subtract(1, 'days')\n\t\t\t\t\t\t.startOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.subtract(1, 'days')\n\t\t\t\t\t\t.endOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Today',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.startOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.endOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t// tomorrow\n\t\t\t{\n\t\t\t\tlabel: 'Tomorrow',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.add(1, 'days')\n\t\t\t\t\t\t.startOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.add(1, 'days')\n\t\t\t\t\t\t.endOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.startOf('week')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.endOf('week')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'weeks',\n\t\t\t},\n\t\t\t// last week\n\t\t\t{\n\t\t\t\tlabel: 'Last Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.subtract(1, 'weeks')\n\t\t\t\t\t\t.startOf('isoWeek')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.subtract(1, 'weeks')\n\t\t\t\t\t\t.endOf('isoWeek')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'weeks',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Month',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.startOf('month')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.endOf('month')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'month',\n\t\t\t},\n\t\t\t// { label: \"Custom\", range: () => this.setCustomRange() },\n\t\t]\n\t\t// set the state selectedDateRange based on the dateFrom and dateTo values\n\t\tconst preset = this.presetRanges.find(\n\t\t\trange => range.range.dateFrom === this.dateFrom.value && range.range.dateTo === this.dateTo.value,\n\t\t)\n\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\tthis.selectedDateRange = moment(this.dateFrom.value)\n\t\t\t\t.format('MMM DD, YYYY')\n\t\t\t\t.concat(' To ', moment(this.dateTo.value).format('MMM DD, YYYY'))\n\t\t}\n\t}\n\n\tsetDateRange(fromDate: string, toDate: string) {\n\t\tthis.dateFrom.value = fromDate\n\t\tthis.dateTo.value = toDate\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TSchmancDateRangePayload>('change', {\n\t\t\t\tdetail: {\n\t\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tthis.requestUpdate()\n\t}\n\n\thandlePresetChange(presetLabel: string) {\n\t\tconst preset = this.presetRanges.find(range => range.label === presetLabel)\n\t\tif (preset) {\n\t\t\tconst { dateFrom, dateTo } = preset.range\n\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\tthis.selectedDateRange = presetLabel\n\t\t}\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"date-range-selector relative\">\n\t\t\t\t<schmancy-menu class=\"z-100 w-max\">\n\t\t\t\t\t<schmancy-grid slot=\"button\" align=\"center\" cols=\"auto 1fr auto\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t// Calculate the difference between dateFrom and dateTo in days\n\t\t\t\t\t\t\t\tconst dateDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\n\t\t\t\t\t\t\t\t// Subtract the date difference from both dateFrom and dateTo\n\t\t\t\t\t\t\t\tthis.dateFrom.value = moment(this.dateFrom.value)\n\t\t\t\t\t\t\t\t\t.subtract(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\tthis.dateTo.value = moment(this.dateTo.value)\n\t\t\t\t\t\t\t\t\t.subtract(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\t// Call the function to handle the date range change\n\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t}}\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\t\t\t\t\t\t<schmancy-button class=\"w-max\" variant=\"outlined\" type=\"button\"\n\t\t\t\t\t\t\t>${this.selectedDateRange || 'Date range'}\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t// Calculate the difference between dateFrom and dateTo in days\n\t\t\t\t\t\t\t\tconst dateDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\n\t\t\t\t\t\t\t\t// Add the date difference to both dateFrom and dateTo\n\t\t\t\t\t\t\t\tthis.dateFrom.value = moment(this.dateFrom.value)\n\t\t\t\t\t\t\t\t\t.add(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\tthis.dateTo.value = moment(this.dateTo.value)\n\t\t\t\t\t\t\t\t\t.add(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\t// Call the function to handle the date range change\n\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>arrow_right</schmancy-icon-button\n\t\t\t\t\t\t>\n\t\t\t\t\t</schmancy-grid>\n\n\t\t\t\t\t<schmancy-surface elevation=\"2\">\n\t\t\t\t\t\t${this.presetRanges.map(\n\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t<schmancy-menu-item class=\"w-full\" @click=${() => this.handlePresetChange(preset.label)}>\n\t\t\t\t\t\t\t\t\t<schmancy-grid class=\"w-full\" align=\"center\" cols=\"auto 1fr auto\"> ${preset.label} </schmancy-grid>\n\t\t\t\t\t\t\t\t</schmancy-menu-item>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<schmancy-grid gap=\"sm\" flow=\"row\" class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\tid=\"checkin\"\n\t\t\t\t\t\t\t\tmin=${ifDefined(this.minDate)}\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\t.label=\"${this.dateFrom.label}\"\n\t\t\t\t\t\t\t\t.value=${this.dateFrom.value}\n\t\t\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t\tconst selectedDate = moment(\n\t\t\t\t\t\t\t\t\t\tevent.detail.value,\n\t\t\t\t\t\t\t\t\t\tthis.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm',\n\t\t\t\t\t\t\t\t\t).format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t\t\t\t\t\t\t\t\tthis.dateFrom.value = selectedDate\n\t\t\t\t\t\t\t\t\tconst minDateStr = selectedDate\n\t\t\t\t\t\t\t\t\tthis.checkOutInput.setAttribute('min', minDateStr)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\tid=\"checkout\"\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\tlabel=\"${this.dateTo.label}\"\n\t\t\t\t\t\t\t\t.value=${this.dateTo.value}\n\t\t\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.dateTo.value = moment(\n\t\t\t\t\t\t\t\t\t\tevent.detail.value,\n\t\t\t\t\t\t\t\t\t\tthis.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm',\n\t\t\t\t\t\t\t\t\t).format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t\t}}\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</schmancy-grid>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-menu>\n\t\t\t</div>\n\t\t`\n\t}\n\n\thandleDateRangeChange() {\n\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\t// check if the selected date range is a preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\trange => range.range.dateFrom === this.dateFrom.value && range.range.dateTo === this.dateTo.value,\n\t\t)\n\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\tthis.selectedDateRange = moment(this.dateFrom.value)\n\t\t\t\t.format(this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A')\n\t\t\t\t.concat(' - ', moment(this.dateTo.value).format(this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A'))\n\t\t\tthis.schmancyMenu.open = false\n\t\t}\n\t}\n}\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<TSchmancDateRangePayload>\ntype TSchmancDateRangePayload = {\n\tdateFrom?: string\n\tdateTo?: string\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SwiftHRAdminDateRange\n\t}\n}\n"],"names":["SwiftHRAdminDateRange","$LitElement","super","arguments","this","type","selectedDateRange","connectedCallback","presetRanges","label","range","dateFrom","moment","subtract","startOf","format","dateTo","endOf","step","add","preset","find","value","concat","fromDate","toDate","dispatchEvent","CustomEvent","detail","requestUpdate","presetLabel","setDateRange","render","html","e","preventDefault","stopPropagation","dateDiff","diff","handleDateRangeChange","map","handlePresetChange","ifDefined","minDate","event","selectedDate","minDateStr","checkOutInput","setAttribute","schmancyMenu","open","__decorateClass","property","String","prototype","Object","query","state","customElement"],"mappings":"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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const c=require("./litElement.mixin-CqG5Vzn4.cjs");require("./tailwind.mixin-C3pXEh-C.cjs");const h=require("lit"),Y=require("lit/decorators.js"),l=require("lit/directives/if-defined.js"),t=require("moment");var D=Object.defineProperty,p=Object.getOwnPropertyDescriptor,r=(e,a,o,i)=>{for(var d,n=i>1?void 0:i?p(a,o):a,m=e.length-1;m>=0;m--)(d=e[m])&&(n=(i?d(a,o,n):d(n))||n);return i&&n&&D(a,o,n),n};let s=class extends c.$LitElement(){constructor(){super(...arguments),this.type="date",this.selectedDateRange="Today"}connectedCallback(){super.connectedCallback(),this.presetRanges=[{label:"Yesterday",range:{dateFrom:t().subtract(1,"days").startOf("day").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),dateTo:t().subtract(1,"days").endOf("day").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")},step:"day"},{label:"Today",range:{dateFrom:t().startOf("day").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),dateTo:t().endOf("day").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")},step:"day"},{label:"Tomorrow",range:{dateFrom:t().add(1,"days").startOf("day").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),dateTo:t().add(1,"days").endOf("day").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")},step:"day"},{label:"This Week",range:{dateFrom:t().startOf("week").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),dateTo:t().endOf("week").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")},step:"weeks"},{label:"Last Week",range:{dateFrom:t().subtract(1,"weeks").startOf("isoWeek").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),dateTo:t().subtract(1,"weeks").endOf("isoWeek").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")},step:"weeks"},{label:"This Month",range:{dateFrom:t().startOf("month").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),dateTo:t().endOf("month").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")},step:"month"}];const e=this.presetRanges.find(a=>a.range.dateFrom===this.dateFrom.value&&a.range.dateTo===this.dateTo.value);this.selectedDateRange=e?e.label:t(this.dateFrom.value).format("MMM DD, YYYY").concat(" To ",t(this.dateTo.value).format("MMM DD, YYYY"))}setDateRange(e,a){this.dateFrom.value=e,this.dateTo.value=a,this.dispatchEvent(new CustomEvent("change",{detail:{dateFrom:this.dateFrom.value,dateTo:this.dateTo.value}})),this.requestUpdate()}handlePresetChange(e){const a=this.presetRanges.find(o=>o.label===e);if(a){const{dateFrom:o,dateTo:i}=a.range;this.setDateRange(o,i),this.selectedDateRange=e}}render(){return h.html`
|
|
2
|
-
<div class="date-range-selector relative">
|
|
3
|
-
<schmancy-menu class="z-100 w-max">
|
|
4
|
-
<schmancy-grid slot="button" align="center" cols="auto 1fr auto">
|
|
5
|
-
<schmancy-icon-button
|
|
6
|
-
@click=${e=>{e.preventDefault(),e.stopPropagation();const a=t(this.dateTo.value).diff(t(this.dateFrom.value),"days")||1;this.dateFrom.value=t(this.dateFrom.value).subtract(a,"days").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),this.dateTo.value=t(this.dateTo.value).subtract(a,"days").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),this.handleDateRangeChange()}}
|
|
7
|
-
>
|
|
8
|
-
arrow_left
|
|
9
|
-
</schmancy-icon-button>
|
|
10
|
-
<schmancy-button class="w-max" variant="outlined" type="button"
|
|
11
|
-
>${this.selectedDateRange||"Date range"}
|
|
12
|
-
</schmancy-button>
|
|
13
|
-
<schmancy-icon-button
|
|
14
|
-
@click=${e=>{e.preventDefault(),e.stopPropagation();const a=t(this.dateTo.value).diff(t(this.dateFrom.value),"days")||1;this.dateFrom.value=t(this.dateFrom.value).add(a,"days").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),this.dateTo.value=t(this.dateTo.value).add(a,"days").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"),this.handleDateRangeChange()}}
|
|
15
|
-
>arrow_right</schmancy-icon-button
|
|
16
|
-
>
|
|
17
|
-
</schmancy-grid>
|
|
18
|
-
|
|
19
|
-
<schmancy-surface elevation="2">
|
|
20
|
-
${this.presetRanges.map(e=>h.html`
|
|
21
|
-
<schmancy-menu-item class="w-full" @click=${()=>this.handlePresetChange(e.label)}>
|
|
22
|
-
<schmancy-grid class="w-full" align="center" cols="auto 1fr auto"> ${e.label} </schmancy-grid>
|
|
23
|
-
</schmancy-menu-item>
|
|
24
|
-
`)}
|
|
25
|
-
<schmancy-grid gap="sm" flow="row" class="p-4">
|
|
26
|
-
<schmancy-input
|
|
27
|
-
id="checkin"
|
|
28
|
-
min=${l.ifDefined(this.minDate)}
|
|
29
|
-
.type=${this.type}
|
|
30
|
-
.label="${this.dateFrom.label}"
|
|
31
|
-
.value=${this.dateFrom.value}
|
|
32
|
-
@change=${e=>{e.preventDefault(),e.stopPropagation();const a=t(e.detail.value,this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm");this.dateFrom.value=a;const o=a;this.checkOutInput.setAttribute("min",o)}}
|
|
33
|
-
></schmancy-input>
|
|
34
|
-
<schmancy-input
|
|
35
|
-
id="checkout"
|
|
36
|
-
.type=${this.type}
|
|
37
|
-
label="${this.dateTo.label}"
|
|
38
|
-
.value=${this.dateTo.value}
|
|
39
|
-
@change=${e=>{e.preventDefault(),e.stopPropagation(),this.dateTo.value=t(e.detail.value,this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm").format(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")}}
|
|
40
|
-
></schmancy-input>
|
|
41
|
-
|
|
42
|
-
<schmancy-button
|
|
43
|
-
variant="outlined"
|
|
44
|
-
@click=${e=>{e.preventDefault(),e.stopPropagation(),this.handleDateRangeChange()}}
|
|
45
|
-
>
|
|
46
|
-
Apply
|
|
47
|
-
</schmancy-button>
|
|
48
|
-
</schmancy-grid>
|
|
49
|
-
</schmancy-surface>
|
|
50
|
-
</schmancy-menu>
|
|
51
|
-
</div>
|
|
52
|
-
`}handleDateRangeChange(){this.setDateRange(this.dateFrom.value,this.dateTo.value);const e=this.presetRanges.find(a=>a.range.dateFrom===this.dateFrom.value&&a.range.dateTo===this.dateTo.value);e?this.selectedDateRange=e.label:(this.selectedDateRange=t(this.dateFrom.value).format(this.type==="date"?"MMM DD, YYYY":"MMM DD, YYYY hh:mm A").concat(" - ",t(this.dateTo.value).format(this.type==="date"?"MMM DD, YYYY":"MMM DD, YYYY hh:mm A")),this.schmancyMenu.open=!1)}};r([Y.property({type:String})],s.prototype,"type",2),r([Y.property({type:Object})],s.prototype,"dateFrom",2),r([Y.property({type:Object})],s.prototype,"dateTo",2),r([Y.query("#checkin")],s.prototype,"checkInInput",2),r([Y.query("#checkout")],s.prototype,"checkOutInput",2),r([Y.property({type:String})],s.prototype,"minDate",2),r([Y.property({type:String})],s.prototype,"maxDate",2),r([Y.query("schmancy-menu")],s.prototype,"schmancyMenu",2),r([Y.state()],s.prototype,"selectedDateRange",2),s=r([Y.customElement("schmancy-date-range")],s);
|
|
53
|
-
//# sourceMappingURL=date-range-wOUZirqC.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-wOUZirqC.cjs","sources":["../src/date-range/date-range.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport moment from 'moment'\n\n@customElement('schmancy-date-range')\nexport default class SwiftHRAdminDateRange extends $LitElement() {\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom!: {\n\t\tlabel: string\n\t\tvalue: string\n\t}\n\t@property({ type: Object }) dateTo!: {\n\t\tlabel: string\n\t\tvalue: string\n\t}\n\n\t@query('#checkin') checkInInput!: HTMLInputElement\n\t@query('#checkout') checkOutInput!: HTMLInputElement\n\n\t@property({ type: String }) minDate: string | undefined\n\t@property({ type: String }) maxDate!: string | undefined\n\t@query('schmancy-menu') schmancyMenu!: SchmancyMenu\n\n\t@state() selectedDateRange: string = 'Today'\n\n\tpresetRanges!: Array<{\n\t\tlabel: string\n\t\trange: {\n\t\t\tdateFrom: string\n\t\t\tdateTo: string\n\t\t}\n\t\tstep: moment.unitOfTime.DurationConstructor | moment.unitOfTime._isoWeek\n\t\tselected?: boolean\n\t}>\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.presetRanges = [\n\t\t\t{\n\t\t\t\tlabel: 'Yesterday',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.subtract(1, 'days')\n\t\t\t\t\t\t.startOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.subtract(1, 'days')\n\t\t\t\t\t\t.endOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Today',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.startOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.endOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t// tomorrow\n\t\t\t{\n\t\t\t\tlabel: 'Tomorrow',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.add(1, 'days')\n\t\t\t\t\t\t.startOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.add(1, 'days')\n\t\t\t\t\t\t.endOf('day')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.startOf('week')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.endOf('week')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'weeks',\n\t\t\t},\n\t\t\t// last week\n\t\t\t{\n\t\t\t\tlabel: 'Last Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.subtract(1, 'weeks')\n\t\t\t\t\t\t.startOf('isoWeek')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.subtract(1, 'weeks')\n\t\t\t\t\t\t.endOf('isoWeek')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'weeks',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Month',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment()\n\t\t\t\t\t\t.startOf('month')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t\tdateTo: moment()\n\t\t\t\t\t\t.endOf('month')\n\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'),\n\t\t\t\t},\n\t\t\t\tstep: 'month',\n\t\t\t},\n\t\t\t// { label: \"Custom\", range: () => this.setCustomRange() },\n\t\t]\n\t\t// set the state selectedDateRange based on the dateFrom and dateTo values\n\t\tconst preset = this.presetRanges.find(\n\t\t\trange => range.range.dateFrom === this.dateFrom.value && range.range.dateTo === this.dateTo.value,\n\t\t)\n\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\tthis.selectedDateRange = moment(this.dateFrom.value)\n\t\t\t\t.format('MMM DD, YYYY')\n\t\t\t\t.concat(' To ', moment(this.dateTo.value).format('MMM DD, YYYY'))\n\t\t}\n\t}\n\n\tsetDateRange(fromDate: string, toDate: string) {\n\t\tthis.dateFrom.value = fromDate\n\t\tthis.dateTo.value = toDate\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TSchmancDateRangePayload>('change', {\n\t\t\t\tdetail: {\n\t\t\t\t\tdateFrom: this.dateFrom.value,\n\t\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\t\tthis.requestUpdate()\n\t}\n\n\thandlePresetChange(presetLabel: string) {\n\t\tconst preset = this.presetRanges.find(range => range.label === presetLabel)\n\t\tif (preset) {\n\t\t\tconst { dateFrom, dateTo } = preset.range\n\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\tthis.selectedDateRange = presetLabel\n\t\t}\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"date-range-selector relative\">\n\t\t\t\t<schmancy-menu class=\"z-100 w-max\">\n\t\t\t\t\t<schmancy-grid slot=\"button\" align=\"center\" cols=\"auto 1fr auto\">\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t// Calculate the difference between dateFrom and dateTo in days\n\t\t\t\t\t\t\t\tconst dateDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\n\t\t\t\t\t\t\t\t// Subtract the date difference from both dateFrom and dateTo\n\t\t\t\t\t\t\t\tthis.dateFrom.value = moment(this.dateFrom.value)\n\t\t\t\t\t\t\t\t\t.subtract(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\tthis.dateTo.value = moment(this.dateTo.value)\n\t\t\t\t\t\t\t\t\t.subtract(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\t// Call the function to handle the date range change\n\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t}}\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\t\t\t\t\t\t<schmancy-button class=\"w-max\" variant=\"outlined\" type=\"button\"\n\t\t\t\t\t\t\t>${this.selectedDateRange || 'Date range'}\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t// Calculate the difference between dateFrom and dateTo in days\n\t\t\t\t\t\t\t\tconst dateDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\n\t\t\t\t\t\t\t\t// Add the date difference to both dateFrom and dateTo\n\t\t\t\t\t\t\t\tthis.dateFrom.value = moment(this.dateFrom.value)\n\t\t\t\t\t\t\t\t\t.add(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\tthis.dateTo.value = moment(this.dateTo.value)\n\t\t\t\t\t\t\t\t\t.add(dateDiff, 'days')\n\t\t\t\t\t\t\t\t\t.format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\n\t\t\t\t\t\t\t\t// Call the function to handle the date range change\n\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>arrow_right</schmancy-icon-button\n\t\t\t\t\t\t>\n\t\t\t\t\t</schmancy-grid>\n\n\t\t\t\t\t<schmancy-surface elevation=\"2\">\n\t\t\t\t\t\t${this.presetRanges.map(\n\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t<schmancy-menu-item class=\"w-full\" @click=${() => this.handlePresetChange(preset.label)}>\n\t\t\t\t\t\t\t\t\t<schmancy-grid class=\"w-full\" align=\"center\" cols=\"auto 1fr auto\"> ${preset.label} </schmancy-grid>\n\t\t\t\t\t\t\t\t</schmancy-menu-item>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<schmancy-grid gap=\"sm\" flow=\"row\" class=\"p-4\">\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\tid=\"checkin\"\n\t\t\t\t\t\t\t\tmin=${ifDefined(this.minDate)}\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\t.label=\"${this.dateFrom.label}\"\n\t\t\t\t\t\t\t\t.value=${this.dateFrom.value}\n\t\t\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t\tconst selectedDate = moment(\n\t\t\t\t\t\t\t\t\t\tevent.detail.value,\n\t\t\t\t\t\t\t\t\t\tthis.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm',\n\t\t\t\t\t\t\t\t\t).format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t\t\t\t\t\t\t\t\tthis.dateFrom.value = selectedDate\n\t\t\t\t\t\t\t\t\tconst minDateStr = selectedDate\n\t\t\t\t\t\t\t\t\tthis.checkOutInput.setAttribute('min', minDateStr)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\tid=\"checkout\"\n\t\t\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t\t\tlabel=\"${this.dateTo.label}\"\n\t\t\t\t\t\t\t\t.value=${this.dateTo.value}\n\t\t\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.dateTo.value = moment(\n\t\t\t\t\t\t\t\t\t\tevent.detail.value,\n\t\t\t\t\t\t\t\t\t\tthis.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm',\n\t\t\t\t\t\t\t\t\t).format(this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t\t\tthis.handleDateRangeChange()\n\t\t\t\t\t\t\t\t}}\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</schmancy-grid>\n\t\t\t\t\t</schmancy-surface>\n\t\t\t\t</schmancy-menu>\n\t\t\t</div>\n\t\t`\n\t}\n\n\thandleDateRangeChange() {\n\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\t// check if the selected date range is a preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\trange => range.range.dateFrom === this.dateFrom.value && range.range.dateTo === this.dateTo.value,\n\t\t)\n\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\tthis.selectedDateRange = moment(this.dateFrom.value)\n\t\t\t\t.format(this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A')\n\t\t\t\t.concat(' - ', moment(this.dateTo.value).format(this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A'))\n\t\t\tthis.schmancyMenu.open = false\n\t\t}\n\t}\n}\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<TSchmancDateRangePayload>\ntype TSchmancDateRangePayload = {\n\tdateFrom?: string\n\tdateTo?: string\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SwiftHRAdminDateRange\n\t}\n}\n"],"names":["SwiftHRAdminDateRange","$LitElement","constructor","super","arguments","this","type","selectedDateRange","connectedCallback","presetRanges","label","range","dateFrom","moment","subtract","startOf","format","dateTo","endOf","step","add","preset","find","value","concat","fromDate","toDate","dispatchEvent","CustomEvent","detail","requestUpdate","presetLabel","setDateRange","render","html","e","preventDefault","stopPropagation","dateDiff","diff","handleDateRangeChange","map","handlePresetChange","ifDefined","minDate","event","selectedDate","minDateStr","checkOutInput","setAttribute","schmancyMenu","open","__decorateClass","property","String","prototype","Object","query","state","customElement"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-BNWPVs3H.js","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\n/**\n * An autocomplete type (expand or customize as needed).\n */\ntype AutoFill =\n\t| 'off'\n\t| 'on'\n\t| 'name'\n\t| 'username'\n\t| 'email'\n\t| 'tel'\n\t| 'url'\n\t| 'new-password'\n\t| 'current-password'\n\t| 'one-time-code'\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\ttype=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","constructor","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","validity","options","Event","click","blur","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-shCt07iX.cjs","sources":["../src/input/input.ts"],"sourcesContent":["import { LitElement, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js' // <-- Import if not provided by TailwindElement\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { when } from 'lit/directives/when.js'\nimport { distinctUntilChanged, filter, fromEvent, map } from 'rxjs'\n\n// If TailwindElement extends LitElement and has extra mixins, import it.\n// Otherwise, just extend LitElement. Adjust accordingly.\nimport { TailwindElement } from '@mixins/index'\n\n// color directive + theme interface\nimport { color } from '@schmancy/directives'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\n\n// If you want to be form-associated, you can define the type on `ElementInternals`.\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-input': SchmancyInput\n\t}\n}\n\n/**\n * An autocomplete type (expand or customize as needed).\n */\ntype AutoFill =\n\t| 'off'\n\t| 'on'\n\t| 'name'\n\t| 'username'\n\t| 'email'\n\t| 'tel'\n\t| 'url'\n\t| 'new-password'\n\t| 'current-password'\n\t| 'one-time-code'\n\ntype EventDetails = {\n\tvalue: string\n}\n\nexport type SchmancyInputChangeEvent = CustomEvent<EventDetails>\n\n/**\n * `schmancy-input` – A custom input component.\n */\n@customElement('schmancy-input')\nexport default class SchmancyInput extends TailwindElement() {\n\t/**\n\t * The label of the control.\n\t * @attr\n\t * @type {string}\n\t * @default ''\n\t */\n\t@property() label = ''\n\n\t/**\n\t * The type of the control.\n\t * @attr\n\t * @default 'text'\n\t */\n\t@property({ reflect: true })\n\tpublic type:\n\t\t| 'email'\n\t\t| 'number'\n\t\t| 'password'\n\t\t| 'search'\n\t\t| 'tel'\n\t\t| 'text'\n\t\t| 'url'\n\t\t| 'date'\n\t\t| 'datetime-local'\n\t\t| 'time'\n\t\t| 'month'\n\t\t| 'week'\n\t\t| 'color'\n\t\t| 'file' = 'text'\n\n\t@property({ type: Boolean, reflect: true }) public clickable = false\n\n\t/**\n\t * The name of the control.\n\t * @attr\n\t * @default 'name_' + Date.now()\n\t */\n\t@property() name = 'name_' + Date.now()\n\n\t/**\n\t * The placeholder of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property() placeholder = ''\n\n\t/**\n\t * The value of the control.\n\t * @attr\n\t * @default ''\n\t */\n\t@property({ type: String, reflect: true }) public value = ''\n\n\t/**\n\t * The pattern attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String, reflect: true })\n\tpublic pattern?: string\n\n\t@property({ type: Boolean, reflect: true }) required = false\n\t@property({ type: Boolean, reflect: true }) disabled = false\n\t@property({ type: Boolean, reflect: true }) readonly = false\n\t@property({ type: Boolean, reflect: true }) spellcheck = false\n\n\t@property({ type: String, reflect: true }) align: 'left' | 'center' | 'right' = 'left'\n\n\t/**\n\t * The inputmode attribute of the control.\n\t * @attr\n\t * @default undefined\n\t */\n\t@property()\n\tpublic inputmode?: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'\n\n\t/**\n\t * The minlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic minlength?: number\n\n\t/**\n\t * The maxlength attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number })\n\tpublic maxlength?: number\n\n\t/**\n\t * The min attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic min?: string\n\n\t/**\n\t * The max attribute of the control.\n\t * @attr\n\t */\n\t@property()\n\tpublic max?: string\n\n\t/**\n\t * The step attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic step?: number\n\n\t/**\n\t * The autofocus attribute of the control.\n\t * @attr\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tpublic autofocus = false\n\n\t/**\n\t * The autocomplete attribute of the control.\n\t * @attr\n\t */\n\t@property({ type: String })\n\tpublic autocomplete: AutoFill = 'off'\n\n\t/**\n\t * tabIndex for focusing by tab key.\n\t */\n\t@property({ type: Number, reflect: true })\n\tpublic tabIndex = 0\n\n\t@property()\n\thint?: string\n\n\t@property({ type: Boolean, reflect: true }) public error = false\n\n\t@query('input') inputElement!: HTMLInputElement\n\tinputRef = createRef<HTMLInputElement>()\n\n\t/** Form-associated custom elements support. */\n\tstatic formAssociated = true\n\tprotected static shadowRootOptions = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t}\n\n\tprivate internals?: ElementInternals\n\n\tconstructor() {\n\t\tsuper()\n\t\tif ('attachInternals' in this) {\n\t\t\ttry {\n\t\t\t\tthis.internals = this.attachInternals()\n\t\t\t} catch {\n\t\t\t\t// older browsers or polyfills might fail\n\t\t\t\tthis.internals = undefined\n\t\t\t}\n\t\t}\n\t}\n\n\tget form() {\n\t\treturn this.internals?.form ?? null\n\t}\n\n\t/**\n\t * (Optional) Whenever value changes, sync with form internals for\n\t * form submission (if you're using form-associated custom elements).\n\t */\n\tprotected updated(changedProps: Map<string, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.internals?.setFormValue(this.value)\n\t\t}\n\t}\n\n\t/** Checks for validity of the control and shows the browser message if it's invalid. */\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\t/** Checks for validity of the control and emits the invalid event if it is invalid. */\n\tpublic checkValidity() {\n\t\treturn this.inputRef.value?.checkValidity()\n\t}\n\n\t/** Sets a custom validity message. */\n\tpublic setCustomValidity(message: string) {\n\t\tthis.inputRef.value?.setCustomValidity(message)\n\t}\n\n\tfirstUpdated() {\n\t\tif (this.autofocus) {\n\t\t\tthis.focus()\n\t\t}\n\n\t\t// Subscribe to 'input' changes\n\t\tfromEvent<InputEvent>(this.inputElement, 'input')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Subscribe to 'change' changes (on blur for native inputs)\n\t\tfromEvent<Event>(this.inputElement, 'change')\n\t\t\t.pipe(\n\t\t\t\tmap(event => (event.target as HTMLInputElement).value),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Emit custom event on Enter key\n\t\tfromEvent<KeyboardEvent>(this.inputElement, 'keyup')\n\t\t\t.pipe(filter(event => event.key === 'Enter'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\t// You can remove `distinctUntilChanged()` here if you want *every* Enter\n\t\t\t\t// press to dispatch, even if the value hasn't changed.\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('enter', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\n\t\t// Detect autofill animation\n\t\tfromEvent<AnimationEvent>(this.inputElement, 'animationstart')\n\t\t\t.pipe(filter(ev => ev.animationName === 'onAutoFillStart'))\n\t\t\t.subscribe(event => {\n\t\t\t\tconst { value } = event.target as HTMLInputElement\n\t\t\t\tthis.value = value\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent<EventDetails>('change', {\n\t\t\t\t\t\tdetail: { value },\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\n\t/** Selects all text within the input. */\n\tpublic select() {\n\t\treturn this.inputRef.value?.select()\n\t}\n\n\t/** Returns the internal validity state object. */\n\tpublic getValidity(): ValidityState | undefined {\n\t\treturn this.inputRef.value?.validity\n\t}\n\n\t/**\n\t * Override focus so that focusing <schmancy-input> actually focuses\n\t * the internal <input>.\n\t */\n\tpublic override focus(options?: FocusOptions) {\n\t\tthis.inputRef.value?.focus(options)\n\t\tthis.dispatchEvent(new Event('focus'))\n\t}\n\n\t/**\n\t * Same with click; bubble a click out if needed, but delegate to internal input.\n\t */\n\tpublic override click() {\n\t\tthis.inputRef.value?.click()\n\t\tthis.dispatchEvent(new Event('click'))\n\t}\n\n\t/**\n\t * Same with blur; bubble the event.\n\t */\n\tpublic override blur() {\n\t\tthis.inputRef.value?.blur()\n\t\tthis.dispatchEvent(new Event('blur'))\n\t}\n\n\tprotected override render() {\n\t\tconst inputClasses = {\n\t\t\t'w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]': true,\n\t\t\t'disabled:opacity-40 disabled:cursor-not-allowed': true,\n\t\t\t'placeholder:text-muted': true,\n\t\t\t'ring-0 ring-inset focus:ring-1 focus:ring-inset': true,\n\t\t\t'ring-primary-default ring-outline focus:ring-primary-default': !this.error,\n\t\t\t'ring-error-default focus:ring-error-default': this.error,\n\t\t\t'caret-transparent focus:outline-hidden cursor-pointer text-select-none': this.readonly,\n\t\t\t'cursor-pointer': this.clickable,\n\t\t\t'text-center': this.align === 'center',\n\t\t\t'text-right': this.align === 'right',\n\t\t}\n\t\tconst labelClasses = {\n\t\t\t'opacity-40': this.disabled,\n\t\t\t'block mb-[4px]': true,\n\t\t}\n\t\treturn html`\n\t\t\t${when(\n\t\t\t\tthis.label,\n\t\t\t\t() => html`\n\t\t\t\t\t<label\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"${classMap(labelClasses)}\"\n\t\t\t\t\t\tfor=${this.id}\n\t\t\t\t\t>\n\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"lg\">${this.label}</schmancy-typography>\n\t\t\t\t\t</label>\n\t\t\t\t`,\n\t\t\t)}\n\t\t\t<input\n\t\t\t\t${color({\n\t\t\t\t\tbgColor: SchmancyTheme.sys.color.surface.highest,\n\t\t\t\t\tcolor: SchmancyTheme.sys.color.surface.on,\n\t\t\t\t})}\n\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t.value=${this.value}\n\t\t\t\tid=${this.id}\n\t\t\t\tname=${this.name}\n\t\t\t\ttype=${this.type}\n\t\t\t\tstep=${ifDefined(this.step)}\n\t\t\t\t.autocomplete=${this.autocomplete}\n\t\t\t\tplaceholder=${this.placeholder}\n\t\t\t\t?required=${this.required}\n\t\t\t\tinputmode=${ifDefined(this.inputmode)}\n\t\t\t\tclass=${classMap(inputClasses)}\n\t\t\t\t?disabled=${this.disabled}\n\t\t\t\t?readOnly=${this.readonly}\n\t\t\t\tminlength=${ifDefined(this.minlength)}\n\t\t\t\tmaxlength=${ifDefined(this.maxlength)}\n\t\t\t\tmin=${ifDefined(this.min)}\n\t\t\t\tmax=${ifDefined(this.max)}\n\t\t\t\tpattern=${ifDefined(this.pattern)}\n\t\t\t/>\n\t\t\t${when(\n\t\t\t\tthis.hint,\n\t\t\t\t() => html`\n\t\t\t\t\t<schmancy-typography\n\t\t\t\t\t\t${color({\n\t\t\t\t\t\t\tcolor: this.error ? SchmancyTheme.sys.color.error.default : SchmancyTheme.sys.color.primary.default,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tclass=\"pt-[4px]\"\n\t\t\t\t\t\ttype=\"body\"\n\t\t\t\t\t\ttoken=\"sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.hint}\n\t\t\t\t\t</schmancy-typography>\n\t\t\t\t`,\n\t\t\t)}\n\t\t`\n\t}\n}\n"],"names":["SchmancyInput","TailwindElement","super","this","label","type","clickable","name","Date","now","placeholder","value","required","disabled","readonly","spellcheck","align","autofocus","autocomplete","tabIndex","error","inputRef","createRef","internals","attachInternals","form","changedProps","updated","has","setFormValue","reportValidity","checkValidity","message","setCustomValidity","focus","fromEvent","inputElement","pipe","map","event","target","distinctUntilChanged","subscribe","dispatchEvent","CustomEvent","detail","bubbles","composed","filter","key","ev","animationName","select","getValidity","validity","options","Event","click","blur","render","inputClasses","labelClasses","html","when","color","SchmancyTheme","sys","default","primary","classMap","id","bgColor","surface","highest","on","ref","ifDefined","step","inputmode","minlength","maxlength","min","max","pattern","hint","formAssociated","shadowRootOptions","LitElement","delegatesFocus","__decorateClass","property","prototype","reflect","Boolean","String","Number","query","customElement"],"mappings":"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"}
|