@universal-material/web 3.7.2 → 3.8.0
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/app-bar/top-app-bar.d.ts +15 -0
- package/app-bar/top-app-bar.d.ts.map +1 -1
- package/app-bar/top-app-bar.js +15 -0
- package/app-bar/top-app-bar.js.map +1 -1
- package/badge/badge.d.ts +3 -0
- package/badge/badge.d.ts.map +1 -1
- package/badge/badge.js +3 -0
- package/badge/badge.js.map +1 -1
- package/bundle.min.js +600 -482
- package/button/button-base.d.ts +7 -0
- package/button/button-base.d.ts.map +1 -1
- package/button/button-base.js +7 -0
- package/button/button-base.js.map +1 -1
- package/button/button.d.ts +3 -0
- package/button/button.d.ts.map +1 -1
- package/button/button.js +3 -0
- package/button/button.js.map +1 -1
- package/button/icon-button.d.ts +6 -0
- package/button/icon-button.d.ts.map +1 -1
- package/button/icon-button.js +6 -0
- package/button/icon-button.js.map +1 -1
- package/button-field/button-field.d.ts +3 -0
- package/button-field/button-field.d.ts.map +1 -1
- package/button-field/button-field.js +3 -0
- package/button-field/button-field.js.map +1 -1
- package/calendar/calendar-adapter.d.ts +3 -0
- package/calendar/calendar-adapter.d.ts.map +1 -1
- package/calendar/calendar-adapter.js.map +1 -1
- package/calendar/calendar-base.d.ts +17 -0
- package/calendar/calendar-base.d.ts.map +1 -1
- package/calendar/calendar-base.js +182 -19
- package/calendar/calendar-base.js.map +1 -1
- package/calendar/calendar.d.ts +4 -0
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar/calendar.js +4 -0
- package/calendar/calendar.js.map +1 -1
- package/calendar/default-calendar-adapter.d.ts +3 -0
- package/calendar/default-calendar-adapter.d.ts.map +1 -1
- package/calendar/default-calendar-adapter.js +17 -5
- package/calendar/default-calendar-adapter.js.map +1 -1
- package/card/card-content.d.ts +5 -0
- package/card/card-content.d.ts.map +1 -1
- package/card/card-content.js +5 -0
- package/card/card-content.js.map +1 -1
- package/card/card-media.d.ts +3 -0
- package/card/card-media.d.ts.map +1 -1
- package/card/card-media.js +3 -0
- package/card/card-media.js.map +1 -1
- package/checkbox/checkbox.d.ts +7 -0
- package/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox.js +7 -0
- package/checkbox/checkbox.js.map +1 -1
- package/chip/chip.d.ts +3 -0
- package/chip/chip.d.ts.map +1 -1
- package/chip/chip.js +3 -0
- package/chip/chip.js.map +1 -1
- package/chip-field/chip-field.d.ts +3 -0
- package/chip-field/chip-field.d.ts.map +1 -1
- package/chip-field/chip-field.js.map +1 -1
- package/custom-elements.json +12881 -9853
- package/datepicker/datepicker.d.ts +51 -2
- package/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker.js +185 -3
- package/datepicker/datepicker.js.map +1 -1
- package/datepicker/format.d.ts +19 -0
- package/datepicker/format.d.ts.map +1 -0
- package/datepicker/format.js +47 -0
- package/datepicker/format.js.map +1 -0
- package/datepicker/range-datepicker.d.ts +56 -0
- package/datepicker/range-datepicker.d.ts.map +1 -0
- package/datepicker/range-datepicker.js +198 -0
- package/datepicker/range-datepicker.js.map +1 -0
- package/dialog/dialog.d.ts +8 -0
- package/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog.js +8 -0
- package/dialog/dialog.js.map +1 -1
- package/field/field-base.d.ts +14 -0
- package/field/field-base.d.ts.map +1 -1
- package/field/field-base.js +10 -0
- package/field/field-base.js.map +1 -1
- package/field/field.d.ts +4 -0
- package/field/field.d.ts.map +1 -1
- package/field/field.js +4 -0
- package/field/field.js.map +1 -1
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -1
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/list/list-item.d.ts +3 -0
- package/list/list-item.d.ts.map +1 -1
- package/list/list-item.js +3 -0
- package/list/list-item.js.map +1 -1
- package/menu/menu-item.d.ts +6 -0
- package/menu/menu-item.d.ts.map +1 -1
- package/menu/menu-item.js +6 -0
- package/menu/menu-item.js.map +1 -1
- package/menu/menu.d.ts +16 -0
- package/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +24 -5
- package/menu/menu.js.map +1 -1
- package/menu/menu.styles.d.ts.map +1 -1
- package/menu/menu.styles.js +5 -0
- package/menu/menu.styles.js.map +1 -1
- package/navigation/drawer-headline.styles.js +1 -1
- package/navigation/drawer-headline.styles.js.map +1 -1
- package/overflow-menu/overflow-menu-item.d.ts +8 -0
- package/overflow-menu/overflow-menu-item.d.ts.map +1 -1
- package/overflow-menu/overflow-menu-item.js +8 -0
- package/overflow-menu/overflow-menu-item.js.map +1 -1
- package/package.json +3 -3
- package/progress/circular-progress.d.ts +7 -0
- package/progress/circular-progress.d.ts.map +1 -1
- package/progress/circular-progress.js +3 -0
- package/progress/circular-progress.js.map +1 -1
- package/progress/progress-bar.d.ts +7 -0
- package/progress/progress-bar.d.ts.map +1 -1
- package/progress/progress-bar.js +3 -0
- package/progress/progress-bar.js.map +1 -1
- package/radio/radio.d.ts +3 -0
- package/radio/radio.d.ts.map +1 -1
- package/radio/radio.js +3 -0
- package/radio/radio.js.map +1 -1
- package/search/search.d.ts +3 -0
- package/search/search.d.ts.map +1 -1
- package/search/search.js +3 -0
- package/search/search.js.map +1 -1
- package/select/option.d.ts +6 -0
- package/select/option.d.ts.map +1 -1
- package/select/option.js +6 -0
- package/select/option.js.map +1 -1
- package/select/select.d.ts +4 -0
- package/select/select.d.ts.map +1 -1
- package/select/select.js +4 -0
- package/select/select.js.map +1 -1
- package/shared/button-wrapper.d.ts +3 -0
- package/shared/button-wrapper.d.ts.map +1 -1
- package/shared/button-wrapper.js.map +1 -1
- package/shared/char-count-text-field/native-text-field-wrapper.d.ts +13 -0
- package/shared/char-count-text-field/native-text-field-wrapper.d.ts.map +1 -1
- package/shared/char-count-text-field/native-text-field-wrapper.js +10 -0
- package/shared/char-count-text-field/native-text-field-wrapper.js.map +1 -1
- package/shared/selection-control/selection-control-list-item.d.ts.map +1 -1
- package/shared/selection-control/selection-control-list-item.js +4 -0
- package/shared/selection-control/selection-control-list-item.js.map +1 -1
- package/shared/selection-control/selection-control.d.ts +9 -0
- package/shared/selection-control/selection-control.d.ts.map +1 -1
- package/shared/selection-control/selection-control.js +9 -0
- package/shared/selection-control/selection-control.js.map +1 -1
- package/shared/text-field-base/text-field-base.d.ts +3 -0
- package/shared/text-field-base/text-field-base.d.ts.map +1 -1
- package/shared/text-field-base/text-field-base.js +3 -0
- package/shared/text-field-base/text-field-base.js.map +1 -1
- package/snackbar/snackbar.d.ts +9 -0
- package/snackbar/snackbar.d.ts.map +1 -1
- package/snackbar/snackbar.js +9 -0
- package/snackbar/snackbar.js.map +1 -1
- package/tab-bar/tab-bar.d.ts +3 -0
- package/tab-bar/tab-bar.d.ts.map +1 -1
- package/tab-bar/tab-bar.js +3 -0
- package/tab-bar/tab-bar.js.map +1 -1
- package/tab-bar/tab.d.ts +5 -0
- package/tab-bar/tab.d.ts.map +1 -1
- package/tab-bar/tab.js +5 -0
- package/tab-bar/tab.js.map +1 -1
- package/text-area/text-area.d.ts +3 -0
- package/text-area/text-area.d.ts.map +1 -1
- package/text-area/text-area.js +3 -0
- package/text-area/text-area.js.map +1 -1
- package/text-field/text-field.d.ts +16 -0
- package/text-field/text-field.d.ts.map +1 -1
- package/text-field/text-field.js +7 -0
- package/text-field/text-field.js.map +1 -1
- package/typeahead/typeahead-template-render.d.ts +4 -0
- package/typeahead/typeahead-template-render.d.ts.map +1 -1
- package/typeahead/typeahead-template-render.js +4 -0
- package/typeahead/typeahead-template-render.js.map +1 -1
- package/typeahead/typeahead.d.ts +7 -0
- package/typeahead/typeahead.d.ts.map +1 -1
- package/typeahead/typeahead.js +7 -0
- package/typeahead/typeahead.js.map +1 -1
- package/vscode.html-custom-data.json +661 -230
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../src/calendar/calendar-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { DirectiveResult } from 'lit-html/directive.js';\nimport { ClassMapDirective } from 'lit-html/directives/class-map';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { styles } from './calendar-base.styles.js';\nimport { DefaultCalendarAdapter } from './default-calendar-adapter.js';\n\nexport abstract class UmCalendarBase extends LitElement {\n static override styles: CSSResultGroup = [styles];\n\n @state() weekDays: string[] = [];\n @state() dateRenderer: ((date: Date, day: string) => HTMLElement) | null = null;\n @property({ type: Boolean }) dateOutsideMonth = false;\n\n get year(): number {\n return this._displayingMonthDate.getFullYear();\n }\n\n set year(year: number) {\n this._displayingMonthDate.setFullYear(year);\n this._displayingMonthDate = new Date(this._displayingMonthDate);\n }\n\n get month(): number {\n return this._displayingMonthDate.getMonth();\n }\n\n set month(month: number) {\n this._displayingMonthDate.setMonth(month);\n this._displayingMonthDate = new Date(this._displayingMonthDate);\n }\n\n readonly #currentDate = new Date();\n @state() _displayingMonthDate: Date;\n\n @property() locale: string | null = null;\n _innerLocale: string = navigator.language;\n adapter = new DefaultCalendarAdapter();\n\n protected constructor() {\n super();\n\n this.#currentDate.setHours(0);\n this.#currentDate.setMinutes(0);\n this.#currentDate.setSeconds(0);\n this.#currentDate.setMilliseconds(0);\n this._displayingMonthDate = new Date(this.#currentDate);\n this._displayingMonthDate.setDate(1);\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.#setLocaleDependantProperties();\n\n window.addEventListener('languagechange', () => {\n if (this.locale !== null) {\n return;\n }\n\n this._innerLocale = navigator.language;\n this.#setLocaleDependantProperties();\n });\n }\n\n override render(): HTMLTemplateResult {\n return html`\n <div>\n <u-button-set>\n <u-button class=\"month-button\" type=\"button\" variant=\"text\">\n ${this.adapter.getMonth(this.#getDisplayingMonthDate())}\n </u-button>\n <u-icon-button class=\"previous-month-button\" @click=${() => this.#addMonth(-1)}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </u-icon-button>\n <u-icon-button @click=${() => this.#addMonth(1)}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </u-icon-button>\n </u-button-set>\n </div>\n <div class=\"calendar ${this._getCalendarClassMap()}\">${this.#renderWeekDays()}${this.#renderDays()}</div>\n `;\n }\n\n #renderWeekDays(): HTMLTemplateResult[] {\n return this.weekDays.map(\n weekDay =>\n html`\n <div class=\"calendar-item\">\n <span class=\"week-day\">${weekDay}</span>\n </div>\n `,\n );\n }\n\n #getDisplayingMonthDate(): Date {\n return this._getDateFromIsoDate(`${this.year}-${this.month + 1}-1`);\n }\n\n #renderDays(): HTMLTemplateResult[] {\n const date = new Date(this._displayingMonthDate);\n\n date.setDate(date.getDate() - date.getDay());\n\n const month = this.month;\n const year = this.year;\n\n const daysTemplates: HTMLTemplateResult[] = [];\n\n do {\n for (let i = 0; i < 7; i++) {\n const dateOutsideMonth = date.getMonth() !== month;\n\n const dateClasses = this._getSelectedDateClasses(date);\n\n if (!Object.keys(dateClasses).length && this.#currentDate.getTime() === date.getTime()) {\n dateClasses['current-date'] = true;\n }\n\n if (dateOutsideMonth) {\n dateClasses['date-outside-month'] = true;\n }\n\n const classes = classMap(dateClasses);\n\n const dateTemplate = dateOutsideMonth && !this.dateOutsideMonth\n ? null\n : html`\n <u-ripple></u-ripple>\n <span class=\"date\">\n ${this.dateRenderer\n ? this.dateRenderer(new Date(date), this.adapter.getDay(date))\n : this.adapter.getDay(date)}\n </span>\n `;\n\n daysTemplates.push(html`\n <div\n class=\"calendar-item ${classes}\"\n @click=${this.#handleDateClick(new Date(date))}>\n ${dateTemplate}\n </div>\n `);\n\n date.setDate(date.getDate() + 1);\n }\n } while (date.getMonth() <= month && date.getFullYear() <= year);\n\n return daysTemplates;\n }\n\n #handleDateClick(date: Date): () => void {\n return () => this._selectDate(date);\n }\n\n protected _getCalendarClassMap(): DirectiveResult<typeof ClassMapDirective> | null {\n return null;\n }\n\n protected abstract _selectDate(date: Date): void;\n protected abstract _getSelectedDateClasses(date: Date): Record<string, boolean>;\n\n protected _getDateFromIsoDate(isoDate: string): Date {\n const date = new Date(isoDate);\n const offsetMs = date.getTimezoneOffset() * 60 * 1000;\n date.setTime(date.getTime() + offsetMs);\n\n return date;\n }\n\n protected _getDateString(date: Date | null): string {\n\n if (!date) {\n return '';\n }\n\n return Intl\n .DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })\n .format(date);\n }\n\n protected _getDateFromString(dateString: string): Date | null {\n if (!dateString) {\n return null;\n }\n\n const dateTime = Date.parse(dateString);\n\n if (!dateTime && dateTime !== 0) {\n return null;\n }\n\n return this._getDateFromIsoDate(dateString);\n }\n\n #addMonth(value: number): void {\n this.month += value;\n }\n\n #setLocaleDependantProperties(): void {\n this.weekDays = this.adapter.getWeekDays(this._innerLocale);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"calendar-base.js","sourceRoot":"","sources":["../../src/calendar/calendar-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { DirectiveResult } from 'lit-html/directive.js';\nimport { ClassMapDirective } from 'lit-html/directives/class-map';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n\nimport { styles } from './calendar-base.styles.js';\nimport { DefaultCalendarAdapter } from './default-calendar-adapter.js';\n\nexport type CalendarView = 'day' | 'month' | 'year';\n\nexport abstract class UmCalendarBase extends LitElement {\n static override styles: CSSResultGroup = [styles];\n\n @state() weekDays: string[] = [];\n @state() private _firstDayOfWeek = 0;\n @state() dateRenderer: ((date: Date, day: string) => HTMLElement) | null = null;\n /**\n * Whether to render dates from the previous and next months that\n * fall inside the displayed weeks\n */\n @property({ type: Boolean }) dateOutsideMonth = false;\n\n /**\n * Number of years displayed per page in the year picker view.\n */\n @property({ type: Number, attribute: 'year-range' }) yearRange = 24;\n\n get year(): number {\n return this._displayingMonthDate.getFullYear();\n }\n\n set year(year: number) {\n this._displayingMonthDate = new Date(year, this._displayingMonthDate.getMonth(), 1);\n }\n\n get month(): number {\n return this._displayingMonthDate.getMonth();\n }\n\n set month(month: number) {\n this._displayingMonthDate = new Date(this._displayingMonthDate.getFullYear(), month, 1);\n }\n\n readonly #currentDate = new Date();\n @state() _displayingMonthDate: Date;\n @state() view: CalendarView = 'day';\n @state() _yearPageStart = 0;\n\n /**\n * The BCP 47 locale tag used to format month names and weekdays.\n * When `null`, falls back to the browser's `navigator.language`.\n */\n @property() locale: string | null = null;\n _innerLocale: string = navigator.language;\n adapter = new DefaultCalendarAdapter();\n\n protected constructor() {\n super();\n\n this.#currentDate.setHours(0);\n this.#currentDate.setMinutes(0);\n this.#currentDate.setSeconds(0);\n this.#currentDate.setMilliseconds(0);\n this._displayingMonthDate = new Date(this.#currentDate);\n this._displayingMonthDate.setDate(1);\n this._yearPageStart = this.#computeYearPageStart(this.year);\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.#setLocaleDependantProperties();\n\n window.addEventListener('languagechange', () => {\n if (this.locale !== null) {\n return;\n }\n\n this._innerLocale = navigator.language;\n this.#setLocaleDependantProperties();\n });\n }\n\n override willUpdate(changed: Map<string, unknown>): void {\n if (changed.has('locale')) {\n this._innerLocale = this.locale ?? navigator.language;\n this.#setLocaleDependantProperties();\n }\n }\n\n override render(): HTMLTemplateResult {\n return html`\n <div>\n <u-button-set>\n <u-button class=\"month-button\" type=\"button\" variant=\"text\" @click=${this.#toggleYearView}>\n ${this.#getHeaderLabel()}\n <svg\n class=\"month-button-icon ${this.view !== 'day' ? 'open' : ''}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1.5em\"\n viewBox=\"0 -960 960 960\"\n width=\"1.5em\"\n fill=\"currentColor\">\n <path d=\"M480-360 280-560h400L480-360Z\" />\n </svg>\n </u-button>\n <u-icon-button class=\"previous-month-button\" @click=${this.#handlePrevClick}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </u-icon-button>\n <u-icon-button @click=${this.#handleNextClick}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </u-icon-button>\n </u-button-set>\n </div>\n ${this.#renderBody()}\n `;\n }\n\n #renderBody(): HTMLTemplateResult {\n if (this.view === 'year') {\n return html`<div class=\"year-grid\">${this.#renderYears()}</div>`;\n }\n\n if (this.view === 'month') {\n return html`<div class=\"month-grid\">${this.#renderMonths()}</div>`;\n }\n\n return html`\n <div class=\"calendar ${this._getCalendarClassMap()}\">${this.#renderWeekDays()}${this.#renderDays()}</div>\n `;\n }\n\n #getHeaderLabel(): string {\n if (this.view === 'month') {\n return this.adapter.getYear(this.#getDisplayingMonthDate());\n }\n\n return this.adapter.getMonth(this.#getDisplayingMonthDate());\n }\n\n #renderWeekDays(): HTMLTemplateResult[] {\n return this.weekDays.map(\n weekDay =>\n html`\n <div class=\"calendar-item\">\n <span class=\"week-day\">${weekDay}</span>\n </div>\n `,\n );\n }\n\n #getDisplayingMonthDate(): Date {\n return new Date(this.year, this.month, 1);\n }\n\n #renderDays(): HTMLTemplateResult[] {\n const year = this.year;\n const month = this.month;\n const firstOfMonth = new Date(year, month, 1);\n const diffToFirstDayOfWeek = (firstOfMonth.getDay() - this._firstDayOfWeek + 7) % 7;\n const date = new Date(year, month, 1 - diffToFirstDayOfWeek);\n\n const daysTemplates: HTMLTemplateResult[] = [];\n\n for (let row = 0; row < 6; row++) {\n for (let i = 0; i < 7; i++) {\n const dateOutsideMonth = date.getMonth() !== month;\n\n const dateClasses = this._getSelectedDateClasses(date);\n\n if (!Object.keys(dateClasses).length && this.#currentDate.getTime() === date.getTime()) {\n dateClasses['current-date'] = true;\n }\n\n if (dateOutsideMonth) {\n dateClasses['date-outside-month'] = true;\n }\n\n const classes = classMap(dateClasses);\n\n const renderDate = !dateOutsideMonth || this.dateOutsideMonth;\n const dateTemplate = renderDate\n ? html`\n <u-ripple></u-ripple>\n <span class=\"date\">\n ${this.dateRenderer\n ? this.dateRenderer(new Date(date), this.adapter.getDay(date))\n : this.adapter.getDay(date)}\n </span>\n `\n : null;\n\n const click = renderDate ? this.#handleDateClick(new Date(date)) : null;\n\n daysTemplates.push(html`\n <div\n class=\"calendar-item ${classes}\"\n @click=${click}>\n ${dateTemplate}\n </div>\n `);\n\n date.setDate(date.getDate() + 1);\n }\n }\n\n return daysTemplates;\n }\n\n #renderYears(): HTMLTemplateResult[] {\n const templates: HTMLTemplateResult[] = [];\n const currentYear = this.#currentDate.getFullYear();\n const selectedYear = this.year;\n\n for (let i = 0; i < this.yearRange; i++) {\n const year = this._yearPageStart + i;\n const classes = classMap({\n 'year-cell': true,\n 'current-year': year === currentYear && year !== selectedYear,\n 'selected-year': year === selectedYear,\n });\n\n templates.push(html`\n <div class=${classes} @click=${this.#handleYearClick(year)}>\n <span class=\"year-label\">\n <u-ripple></u-ripple>\n ${year}\n </span>\n </div>\n `);\n }\n\n return templates;\n }\n\n #renderMonths(): HTMLTemplateResult[] {\n const templates: HTMLTemplateResult[] = [];\n const currentYear = this.#currentDate.getFullYear();\n const currentMonth = this.#currentDate.getMonth();\n const selectedMonth = this.month;\n const displayedYear = this.year;\n\n for (let month = 0; month < 12; month++) {\n const isCurrent = displayedYear === currentYear && month === currentMonth;\n const isSelected = month === selectedMonth;\n\n const classes = classMap({\n 'month-cell': true,\n 'current-month': isCurrent && !isSelected,\n 'selected-month': isSelected,\n });\n\n templates.push(html`\n <div class=${classes} @click=${this.#handleMonthClick(month)}>\n <span class=\"month-label\">\n <u-ripple></u-ripple>\n ${this.adapter.getMonthShort(month, this._innerLocale)}\n </span>\n </div>\n `);\n }\n\n return templates;\n }\n\n #handleDateClick(date: Date): () => void {\n return () => this._selectDate(date);\n }\n\n #handleYearClick(year: number): () => void {\n return () => {\n this.year = year;\n this.view = 'month';\n };\n }\n\n #handleMonthClick(month: number): () => void {\n return () => {\n this.month = month;\n this.view = 'day';\n };\n }\n\n #toggleYearView = (): void => {\n if (this.view === 'day') {\n this._yearPageStart = this.#computeYearPageStart(this.year);\n this.view = 'year';\n return;\n }\n\n if (this.view === 'month') {\n this._yearPageStart = this.#computeYearPageStart(this.year);\n this.view = 'year';\n return;\n }\n\n this.view = 'day';\n };\n\n #handlePrevClick = (): void => {\n if (this.view === 'year') {\n this._yearPageStart -= this.yearRange;\n return;\n }\n\n if (this.view === 'month') {\n this.year -= 1;\n return;\n }\n\n this.#addMonth(-1);\n };\n\n #handleNextClick = (): void => {\n if (this.view === 'year') {\n this._yearPageStart += this.yearRange;\n return;\n }\n\n if (this.view === 'month') {\n this.year += 1;\n return;\n }\n\n this.#addMonth(1);\n };\n\n #computeYearPageStart(year: number): number {\n return year - Math.floor(this.yearRange / 2);\n }\n\n protected _getCalendarClassMap(): DirectiveResult<typeof ClassMapDirective> | null {\n return null;\n }\n\n protected abstract _selectDate(date: Date): void;\n protected abstract _getSelectedDateClasses(date: Date): Record<string, boolean>;\n\n protected _getDateFromIsoDate(isoDate: string): Date {\n const date = new Date(isoDate);\n const offsetMs = date.getTimezoneOffset() * 60 * 1000;\n date.setTime(date.getTime() + offsetMs);\n\n return date;\n }\n\n protected _getDateString(date: Date | null): string {\n\n if (!date) {\n return '';\n }\n\n return Intl\n .DateTimeFormat('en-CA', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })\n .format(date);\n }\n\n protected _getDateFromString(dateString: string): Date | null {\n if (!dateString) {\n return null;\n }\n\n const dateTime = Date.parse(dateString);\n\n if (!dateTime && dateTime !== 0) {\n return null;\n }\n\n return this._getDateFromIsoDate(dateString);\n }\n\n #addMonth(value: number): void {\n this.month += value;\n }\n\n #setLocaleDependantProperties(): void {\n this.adapter.locale = this._innerLocale;\n this.weekDays = this.adapter.getWeekDays(this._innerLocale);\n this._firstDayOfWeek = this.adapter.getFirstDayOfWeek(this._innerLocale);\n }\n}\n"]}
|
package/calendar/calendar.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ import { UmCalendarBase } from './calendar-base.js';
|
|
|
3
3
|
export declare class UmCalendar extends UmCalendarBase {
|
|
4
4
|
static styles: CSSResultGroup;
|
|
5
5
|
dateValue: Date | null;
|
|
6
|
+
/**
|
|
7
|
+
* The selected date as an ISO date string (`YYYY-MM-DD`), or an empty
|
|
8
|
+
* string when no date is selected
|
|
9
|
+
*/
|
|
6
10
|
get value(): string;
|
|
7
11
|
set value(value: string);
|
|
8
12
|
protected _selectDate(date: Date): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBACa,UAAW,SAAQ,cAAc;IAC5C,OAAgB,MAAM,EAAE,cAAc,CAAmC;IAEhE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEvC,IACI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;cAEkB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;cAe7B,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMhF"}
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBACa,UAAW,SAAQ,cAAc;IAC5C,OAAgB,MAAM,EAAE,cAAc,CAAmC;IAEhE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEvC;;;OAGG;IACH,IACI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;cAEkB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;cAe7B,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMhF"}
|
package/calendar/calendar.js
CHANGED
|
@@ -8,6 +8,10 @@ let UmCalendar = class UmCalendar extends UmCalendarBase {
|
|
|
8
8
|
this.dateValue = null;
|
|
9
9
|
}
|
|
10
10
|
static { this.styles = [styles, UmCalendarBase.styles]; }
|
|
11
|
+
/**
|
|
12
|
+
* The selected date as an ISO date string (`YYYY-MM-DD`), or an empty
|
|
13
|
+
* string when no date is selected
|
|
14
|
+
*/
|
|
11
15
|
get value() {
|
|
12
16
|
return this._getDateString(this.dateValue);
|
|
13
17
|
}
|
package/calendar/calendar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAc;IAAvC;;QAGI,cAAS,GAAgB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/calendar/calendar.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAc;IAAvC;;QAGI,cAAS,GAAgB,IAAI,CAAC;IAoCzC,CAAC;aAtCiB,WAAM,GAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,AAAlD,CAAmD;IAIzE;;;OAGG;IAEH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAEkB,WAAW,CAAC,IAAU;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,CAAC;IAEkB,uBAAuB,CAAC,IAAU;QACnD,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE;YACjD,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;YAC3B,CAAC,CAAC,EAAE,CAAC;IAET,CAAC;;AAnCQ;IAAR,KAAK,EAAE;6CAA+B;AAOvC;IADC,QAAQ,EAAE;uCAGV;AAZU,UAAU;IADtB,aAAa,CAAC,YAAY,CAAC;GACf,UAAU,CAuCtB","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { UmCalendarBase } from './calendar-base.js';\nimport { styles } from './calendar.styles.js';\n\n@customElement('u-calendar')\nexport class UmCalendar extends UmCalendarBase {\n static override styles: CSSResultGroup = [styles, UmCalendarBase.styles];\n\n @state() dateValue: Date | null = null;\n\n /**\n * The selected date as an ISO date string (`YYYY-MM-DD`), or an empty\n * string when no date is selected\n */\n @property()\n get value(): string {\n return this._getDateString(this.dateValue);\n }\n\n set value(value: string) {\n this.dateValue = this._getDateFromString(value);\n }\n\n protected override _selectDate(date: Date): void {\n this.dateValue = date;\n\n this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n\n if (this.month === date.getMonth() && this.year === date.getFullYear()) {\n return;\n }\n\n this.month = date.getMonth();\n this.year = date.getFullYear();\n\n }\n\n protected override _getSelectedDateClasses(date: Date): Record<string, boolean> {\n return this.dateValue?.getTime() === date.getTime()\n ? { 'selected-date': true }\n : {};\n\n }\n}\n"]}
|
|
@@ -4,7 +4,10 @@ export declare class DefaultCalendarAdapter implements CalendarAdapter {
|
|
|
4
4
|
weekDayFormat: 'long' | 'short' | 'narrow';
|
|
5
5
|
locale: string;
|
|
6
6
|
getWeekDays(locale: string): string[];
|
|
7
|
+
getFirstDayOfWeek(locale: string): number;
|
|
7
8
|
getDay(date: Date): string;
|
|
8
9
|
getMonth(date: Date): string;
|
|
10
|
+
getYear(date: Date): string;
|
|
11
|
+
getMonthShort(month: number, locale: string): string;
|
|
9
12
|
}
|
|
10
13
|
//# sourceMappingURL=default-calendar-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-calendar-adapter.d.ts","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,sBAAuB,YAAW,eAAe;;IAC5D,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAY;IACtD,MAAM,SAAW;IAEjB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"default-calendar-adapter.d.ts","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,sBAAuB,YAAW,eAAe;;IAC5D,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAY;IACtD,MAAM,SAAW;IAEjB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAerC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAazC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI1B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAO5B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI3B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAIrD"}
|
|
@@ -5,9 +5,8 @@ export class DefaultCalendarAdapter {
|
|
|
5
5
|
}
|
|
6
6
|
getWeekDays(locale) {
|
|
7
7
|
const date = new Date();
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
this.#setDateToFirstDayOfWeek(date, weekInfo.firstDay);
|
|
8
|
+
const firstDay = this.getFirstDayOfWeek(locale);
|
|
9
|
+
this.#setDateToFirstDayOfWeek(date, firstDay);
|
|
11
10
|
const weekDays = [];
|
|
12
11
|
for (let i = 0; i < 7; i++) {
|
|
13
12
|
weekDays.push(date.toLocaleDateString(locale, { weekday: this.weekDayFormat }));
|
|
@@ -15,8 +14,14 @@ export class DefaultCalendarAdapter {
|
|
|
15
14
|
}
|
|
16
15
|
return weekDays;
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
const
|
|
17
|
+
getFirstDayOfWeek(locale) {
|
|
18
|
+
const intlLocale = new Intl.Locale(locale);
|
|
19
|
+
const weekInfo = intlLocale.getWeekInfo ? intlLocale.getWeekInfo() : intlLocale.weekinfo;
|
|
20
|
+
// CLDR convention (1=Mon..7=Sun) → JS Date convention (0=Sun..6=Sat)
|
|
21
|
+
return weekInfo.firstDay % 7;
|
|
22
|
+
}
|
|
23
|
+
#setDateToFirstDayOfWeek(date, jsFirstDayOfWeek) {
|
|
24
|
+
const diffToFirstDayOfWeek = (jsFirstDayOfWeek - date.getDay() + 7) % 7;
|
|
20
25
|
date.setDate(date.getDate() + diffToFirstDayOfWeek);
|
|
21
26
|
}
|
|
22
27
|
getDay(date) {
|
|
@@ -28,5 +33,12 @@ export class DefaultCalendarAdapter {
|
|
|
28
33
|
year: 'numeric',
|
|
29
34
|
});
|
|
30
35
|
}
|
|
36
|
+
getYear(date) {
|
|
37
|
+
return date.toLocaleDateString(this.locale, { year: 'numeric' });
|
|
38
|
+
}
|
|
39
|
+
getMonthShort(month, locale) {
|
|
40
|
+
const date = new Date(2000, month, 1);
|
|
41
|
+
return date.toLocaleDateString(locale, { month: 'short' });
|
|
42
|
+
}
|
|
31
43
|
}
|
|
32
44
|
//# sourceMappingURL=default-calendar-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-calendar-adapter.js","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAAnC;QACE,kBAAa,GAAgC,QAAQ,CAAC;QACtD,WAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"default-calendar-adapter.js","sourceRoot":"","sources":["../../src/calendar/default-calendar-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAAnC;QACE,kBAAa,GAAgC,QAAQ,CAAC;QACtD,WAAM,GAAG,OAAO,CAAC;IAiDnB,CAAC;IA/CC,WAAW,CAAC,MAAc;QACxB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAE,UAAkB,CAAC,QAAQ,CAAC;QAClG,qEAAqE;QACrE,OAAO,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,wBAAwB,CAAC,IAAU,EAAE,gBAAwB;QAC3D,MAAM,oBAAoB,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAExE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,oBAAoB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1C,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import { CalendarAdapter } from './calendar-adapter.js';\n\nexport class DefaultCalendarAdapter implements CalendarAdapter {\n weekDayFormat: 'long' | 'short' | 'narrow' = 'narrow';\n locale = 'pt-br';\n\n getWeekDays(locale: string): string[] {\n const date = new Date();\n const firstDay = this.getFirstDayOfWeek(locale);\n\n this.#setDateToFirstDayOfWeek(date, firstDay);\n const weekDays: string[] = [];\n\n for (let i = 0; i < 7; i++) {\n weekDays.push(date.toLocaleDateString(locale, { weekday: this.weekDayFormat }));\n date.setDate(date.getDate() + 1);\n }\n\n return weekDays;\n }\n\n getFirstDayOfWeek(locale: string): number {\n const intlLocale = new Intl.Locale(locale);\n const weekInfo = intlLocale.getWeekInfo ? intlLocale.getWeekInfo() : (intlLocale as any).weekinfo;\n // CLDR convention (1=Mon..7=Sun) → JS Date convention (0=Sun..6=Sat)\n return weekInfo.firstDay % 7;\n }\n\n #setDateToFirstDayOfWeek(date: Date, jsFirstDayOfWeek: number): void {\n const diffToFirstDayOfWeek = (jsFirstDayOfWeek - date.getDay() + 7) % 7;\n\n date.setDate(date.getDate() + diffToFirstDayOfWeek);\n }\n\n getDay(date: Date): string {\n return date.toLocaleDateString(this.locale, { day: 'numeric' });\n }\n\n getMonth(date: Date): string {\n return date.toLocaleDateString(this.locale, {\n month: 'long',\n year: 'numeric',\n });\n }\n\n getYear(date: Date): string {\n return date.toLocaleDateString(this.locale, { year: 'numeric' });\n }\n\n getMonthShort(month: number, locale: string): string {\n const date = new Date(2000, month, 1);\n return date.toLocaleDateString(locale, { month: 'short' });\n }\n}\n"]}
|
package/card/card-content.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { HTMLTemplateResult, LitElement } from 'lit';
|
|
2
2
|
export declare class UmCardContent extends LitElement {
|
|
3
3
|
static styles: import("lit").CSSResult[];
|
|
4
|
+
/**
|
|
5
|
+
* Whether the default slot has assigned content
|
|
6
|
+
*
|
|
7
|
+
* _Note:_ Readonly
|
|
8
|
+
*/
|
|
4
9
|
hasContent: boolean;
|
|
5
10
|
render(): HTMLTemplateResult;
|
|
6
11
|
private handleSlotChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-content.d.ts","sourceRoot":"","sources":["../../src/card/card-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAM3D,qBACa,aAAc,SAAQ,UAAU;IAE3C,OAAgB,MAAM,4BAAwB;
|
|
1
|
+
{"version":3,"file":"card-content.d.ts","sourceRoot":"","sources":["../../src/card/card-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAM3D,qBACa,aAAc,SAAQ,UAAU;IAE3C,OAAgB,MAAM,4BAAwB;IAE9C;;;;OAIG;IACmE,UAAU,UAAS;IAEhF,MAAM,IAAI,kBAAkB;IAKrC,OAAO,CAAC,gBAAgB;CAoBzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
|
package/card/card-content.js
CHANGED
|
@@ -6,6 +6,11 @@ import { styles } from './card-content.styles.js';
|
|
|
6
6
|
let UmCardContent = class UmCardContent extends LitElement {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
|
+
/**
|
|
10
|
+
* Whether the default slot has assigned content
|
|
11
|
+
*
|
|
12
|
+
* _Note:_ Readonly
|
|
13
|
+
*/
|
|
9
14
|
this.hasContent = false;
|
|
10
15
|
}
|
|
11
16
|
static { this.styles = [baseStyles, styles]; }
|
package/card/card-content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-content.js","sourceRoot":"","sources":["../../src/card/card-content.ts"],"names":[],"mappings":";AAAA,OAAO,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAG3C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;
|
|
1
|
+
{"version":3,"file":"card-content.js","sourceRoot":"","sources":["../../src/card/card-content.ts"],"names":[],"mappings":";AAAA,OAAO,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAG3C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAIL;;;;WAIG;QACmE,eAAU,GAAG,KAAK,CAAC;IA2B3F,CAAC;aAlCiB,WAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,AAAvB,CAAwB;IASrC,MAAM;QACb,OAAO,IAAI,CAAA;2BACY,IAAI,CAAC,gBAAgB,WAAW,CAAC;IAC1D,CAAC;IAEO,gBAAgB,CAAC,CAAQ;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAyB,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;;AA1BqE;IAArE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDAAoB;AAT9E,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CAoCzB","sourcesContent":["import { HTMLTemplateResult, LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './card-content.styles.js';\n\n@customElement('u-card-content')\nexport class UmCardContent extends LitElement {\n\n static override styles = [baseStyles, styles];\n\n /**\n * Whether the default slot has assigned content\n *\n * _Note:_ Readonly\n */\n @property({ type: Boolean, attribute: 'has-content', reflect: true }) hasContent = false;\n\n override render(): HTMLTemplateResult {\n return html`\n <slot @slotchange=\"${this.handleSlotChange}\"></slot>`;\n }\n\n private handleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n\n this.hasContent = slot.assignedElements({ flatten: true }).length > 0;\n\n if (this.hasContent) {\n return;\n }\n\n const nodes = slot.assignedNodes({ flatten: true });\n\n for (const node of nodes) {\n if (node.nodeValue?.trim()) {\n this.hasContent = true;\n return;\n }\n }\n\n this.hasContent = false;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-card-content': UmCardContent;\n }\n}\n"]}
|
package/card/card-media.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { HTMLTemplateResult, LitElement } from 'lit';
|
|
2
2
|
export declare class UmCardMedia extends LitElement {
|
|
3
3
|
static styles: import("lit").CSSResult[];
|
|
4
|
+
/**
|
|
5
|
+
* Whether the media block uses the wide aspect ratio variant
|
|
6
|
+
*/
|
|
4
7
|
wide: boolean;
|
|
5
8
|
render(): HTMLTemplateResult;
|
|
6
9
|
}
|
package/card/card-media.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-media.d.ts","sourceRoot":"","sources":["../../src/card/card-media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAM3D,qBACa,WAAY,SAAQ,UAAU;IAEzC,OAAgB,MAAM,4BAAwB;
|
|
1
|
+
{"version":3,"file":"card-media.d.ts","sourceRoot":"","sources":["../../src/card/card-media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAM3D,qBACa,WAAY,SAAQ,UAAU;IAEzC,OAAgB,MAAM,4BAAwB;IAE9C;;OAEG;IACyC,IAAI,UAAS;IAEhD,MAAM,IAAI,kBAAkB;CAItC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
|
package/card/card-media.js
CHANGED
|
@@ -6,6 +6,9 @@ import { styles } from './card-media.styles.js';
|
|
|
6
6
|
let UmCardMedia = class UmCardMedia extends LitElement {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
|
+
/**
|
|
10
|
+
* Whether the media block uses the wide aspect ratio variant
|
|
11
|
+
*/
|
|
9
12
|
this.wide = false;
|
|
10
13
|
}
|
|
11
14
|
static { this.styles = [baseStyles, styles]; }
|
package/card/card-media.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-media.js","sourceRoot":"","sources":["../../src/card/card-media.ts"],"names":[],"mappings":";AAAA,OAAO,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;
|
|
1
|
+
{"version":3,"file":"card-media.js","sourceRoot":"","sources":["../../src/card/card-media.ts"],"names":[],"mappings":";AAAA,OAAO,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAIL;;WAEG;QACyC,SAAI,GAAG,KAAK,CAAC;IAM3D,CAAC;aAXiB,WAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,AAAvB,CAAwB;IAOrC,MAAM;QACb,OAAO,IAAI,CAAA;oBACK,CAAC;IACnB,CAAC;;AAL2C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAc;AAP9C,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAavB","sourcesContent":["import { HTMLTemplateResult, LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './card-media.styles.js';\n\n@customElement('u-card-media')\nexport class UmCardMedia extends LitElement {\n\n static override styles = [baseStyles, styles];\n\n /**\n * Whether the media block uses the wide aspect ratio variant\n */\n @property({ type: Boolean, reflect: true }) wide = false;\n\n override render(): HTMLTemplateResult {\n return html`\n <slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-card-media': UmCardMedia;\n }\n}\n"]}
|
package/checkbox/checkbox.d.ts
CHANGED
|
@@ -4,7 +4,14 @@ import { UmSelectionControl } from '../shared/selection-control/selection-contro
|
|
|
4
4
|
export declare class UmCheckbox extends UmSelectionControl {
|
|
5
5
|
#private;
|
|
6
6
|
static styles: import("lit").CSSResult[];
|
|
7
|
+
/**
|
|
8
|
+
* Whether to hide the hover/focus state layer behind the checkbox indicator
|
|
9
|
+
*/
|
|
7
10
|
hideStateLayer: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the checkbox is in the indeterminate (mixed) state.
|
|
13
|
+
* Setting `checked` resets this to `false`.
|
|
14
|
+
*/
|
|
8
15
|
get indeterminate(): boolean;
|
|
9
16
|
set indeterminate(indeterminate: boolean);
|
|
10
17
|
get checked(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAQ,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAI/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAGtF,qBACa,UAAW,SAAQ,kBAAkB;;IAChD,OAAgB,MAAM,4BAGpB;
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/checkbox/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAQ,kBAAkB,EAAE,MAAM,KAAK,CAAC;AAI/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAGtF,qBACa,UAAW,SAAQ,kBAAkB;;IAChD,OAAgB,MAAM,4BAGpB;IAIF;;OAEG;IACwE,cAAc,UAAS;IAElG;;;OAGG;IACH,IACI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,OAAO,EAUvC;IAED,IAAa,OAAO,IAAI,OAAO,CAE9B;IAED,IAAa,OAAO,CAAC,OAAO,EAAE,OAAO,EAGpC;;IAMQ,YAAY,CAAC,iBAAiB,EAAE,cAAc;cAMpC,eAAe,IAAI,kBAAkB;CAKzD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,UAAU,CAAC;KAC1B;CACF"}
|
package/checkbox/checkbox.js
CHANGED
|
@@ -10,6 +10,10 @@ let UmCheckbox = class UmCheckbox extends UmSelectionControl {
|
|
|
10
10
|
styles,
|
|
11
11
|
]; }
|
|
12
12
|
#indeterminate;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the checkbox is in the indeterminate (mixed) state.
|
|
15
|
+
* Setting `checked` resets this to `false`.
|
|
16
|
+
*/
|
|
13
17
|
get indeterminate() {
|
|
14
18
|
return this.#indeterminate;
|
|
15
19
|
}
|
|
@@ -32,6 +36,9 @@ let UmCheckbox = class UmCheckbox extends UmSelectionControl {
|
|
|
32
36
|
constructor() {
|
|
33
37
|
super();
|
|
34
38
|
this.#indeterminate = false;
|
|
39
|
+
/**
|
|
40
|
+
* Whether to hide the hover/focus state layer behind the checkbox indicator
|
|
41
|
+
*/
|
|
35
42
|
this.hideStateLayer = false;
|
|
36
43
|
}
|
|
37
44
|
firstUpdated(changedProperties) {
|
package/checkbox/checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/checkbox/checkbox.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAsB,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,kBAAkB;aAChC,WAAM,GAAG;QACvB,UAAU;QACV,MAAM;KACP,AAHqB,CAGpB;IAEF,cAAc,CAAS;
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/checkbox/checkbox.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAsB,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGvC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,kBAAkB;aAChC,WAAM,GAAG;QACvB,UAAU;QACV,MAAM;KACP,AAHqB,CAGpB;IAEF,cAAc,CAAS;IAOvB;;;OAGG;IAEH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,aAAsB;QACtC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IAAa,OAAO;QAClB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAa,OAAO,CAAC,OAAgB;QACnC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAtCV,mBAAc,GAAG,KAAK,CAAC;QAEvB;;WAEG;QACwE,mBAAc,GAAG,KAAK,CAAC;IAkClG,CAAC;IAEQ,YAAY,CAAC,iBAAiC;QACrD,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAEtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAEkB,eAAe;QAChC,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;;AA9C0E;IAA1E,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDAAwB;AAOlG;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CAG3B;AApBU,UAAU;IADtB,aAAa,CAAC,YAAY,CAAC;GACf,UAAU,CA0DtB","sourcesContent":["import { PropertyValues } from '@lit/reactive-element';\n\nimport { html, HTMLTemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { UmSelectionControl } from '../shared/selection-control/selection-control.js';\nimport { styles } from './checkbox.styles.js';\n\n@customElement('u-checkbox')\nexport class UmCheckbox extends UmSelectionControl {\n static override styles = [\n baseStyles,\n styles,\n ];\n\n #indeterminate = false;\n\n /**\n * Whether to hide the hover/focus state layer behind the checkbox indicator\n */\n @property({ type: Boolean, attribute: 'hide-state-layer', reflect: true }) hideStateLayer = false;\n\n /**\n * Whether the checkbox is in the indeterminate (mixed) state.\n * Setting `checked` resets this to `false`.\n */\n @property({ type: Boolean })\n get indeterminate(): boolean {\n return this.#indeterminate;\n }\n\n set indeterminate(indeterminate: boolean) {\n this.#indeterminate = indeterminate;\n\n if (!indeterminate) {\n this.input?.classList.remove('indeterminate');\n return;\n }\n\n this.input?.classList.add('indeterminate');\n this.elementInternals.setFormValue(null);\n }\n\n override get checked(): boolean {\n return super.checked;\n }\n\n override set checked(checked: boolean) {\n super.checked = checked;\n this.indeterminate = false;\n }\n\n constructor() {\n super();\n }\n\n override firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n\n this.indeterminate = this.indeterminate;\n }\n\n protected override renderIndicator(): HTMLTemplateResult {\n return html`\n <div class=\"border\"><div class=\"indicator\"></div></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-checkbox': UmCheckbox;\n }\n}\n"]}
|
package/chip/chip.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ export declare class UmChip extends UmButtonWrapper {
|
|
|
10
10
|
* Whether the chip is selected or not
|
|
11
11
|
*/
|
|
12
12
|
selected: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the chip is interactive and renders a ripple on click
|
|
15
|
+
*/
|
|
13
16
|
get clickable(): boolean;
|
|
14
17
|
set clickable(value: boolean);
|
|
15
18
|
/**
|
package/chip/chip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../src/chip/chip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAW,MAAM,KAAK,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAEnC,qBACa,MAAO,SAAQ,eAAe;;IACzC,OAAgB,MAAM,iCAAoC;IAK1D;;OAEG;IACyC,QAAQ,UAAS;IAE7D,IACI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAG3B;IAED;;OAEG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACH,IACI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAGxB;IAED;;OAEG;IACyC,SAAS,UAAS;IAE9D;;OAEG;IAC0E,gBAAgB,UAAS;IAE7F,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IAG1C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAGvD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;IAGxD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;IAE/B,YAAY,EAAG,QAAQ,CAAC;IAExC,iBAAiB;cAgCP,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;cAWlC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAe/C,cAAc,IAAI,kBAAkB;CA6CxD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,MAAM,CAAC;KAClB;CACF"}
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../src/chip/chip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAW,MAAM,KAAK,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAEnC,qBACa,MAAO,SAAQ,eAAe;;IACzC,OAAgB,MAAM,iCAAoC;IAK1D;;OAEG;IACyC,QAAQ,UAAS;IAE7D;;OAEG;IACH,IACI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAG3B;IAED;;OAEG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IACH,IACI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAGxB;IAED;;OAEG;IACyC,SAAS,UAAS;IAE9D;;OAEG;IAC0E,gBAAgB,UAAS;IAE7F,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IAG1C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAGvD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;IAGxD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;IAE/B,YAAY,EAAG,QAAQ,CAAC;IAExC,iBAAiB;cAgCP,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;cAWlC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAe/C,cAAc,IAAI,kBAAkB;CA6CxD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,MAAM,CAAC;KAClB;CACF"}
|
package/chip/chip.js
CHANGED
|
@@ -33,6 +33,9 @@ let UmChip = class UmChip extends UmButtonWrapper {
|
|
|
33
33
|
static { this.styles = [UmButtonWrapper.styles, styles]; }
|
|
34
34
|
#clickable;
|
|
35
35
|
#toggle;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the chip is interactive and renders a ripple on click
|
|
38
|
+
*/
|
|
36
39
|
get clickable() {
|
|
37
40
|
return this.#clickable;
|
|
38
41
|
}
|
package/chip/chip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.js","sourceRoot":"","sources":["../../src/chip/chip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAsB,OAAO,EAAE,MAAM,KAAK,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGjG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAG5B,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,eAAe;IAApC;;QAGL,eAAU,GAAG,KAAK,CAAC;QACnB,YAAO,GAAG,KAAK,CAAC;QAEhB;;WAEG;QACyC,aAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"chip.js","sourceRoot":"","sources":["../../src/chip/chip.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, nothing } from 'lit';\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js';\n\nimport { UmRipple } from '../ripple/ripple.js';\nimport { UmButtonWrapper } from '../shared/button-wrapper.js';\nimport { styles } from './chip.styles.js';\n\nimport '../ripple/ripple.js';\nimport '../elevation/elevation.js';\n\n@customElement('u-chip')\nexport class UmChip extends UmButtonWrapper {\n static override styles = [UmButtonWrapper.styles, styles];\n\n #clickable = false;\n #toggle = false;\n\n /**\n * Whether the chip is selected or not\n */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n /**\n * Whether the chip is interactive and renders a ripple on click\n */\n @property({ type: Boolean, reflect: true })\n get clickable(): boolean {\n return this.#clickable;\n }\n\n set clickable(value: boolean) {\n this.#clickable = value;\n this.renderRipple = this.#clickable || this.#toggle;\n }\n\n /**\n * Adds elevation to the chip\n */\n @property({ type: Boolean, reflect: true }) elevated = false;\n\n /**\n * When true, the chip will toggle between selected and unselected\n * states\n */\n @property({ type: Boolean, reflect: true })\n get toggle(): boolean {\n return this.#toggle;\n }\n\n set toggle(value: boolean) {\n this.#toggle = value;\n this.renderRipple = this.#clickable || this.#toggle;\n }\n\n /**\n * Add the remove icon\n */\n @property({ type: Boolean, reflect: true }) removable = false;\n\n /**\n * Hide the selected icon\n */\n @property({ type: Boolean, attribute: 'hide-selected-icon', reflect: true }) hideSelectedIcon = false;\n\n @state() private _hasLeadingIcon = false;\n @state() private _hasSelectedIcon = false;\n @state() private _hasTrailingIcon = false;\n\n @queryAssignedElements({ slot: 'leading-icon', flatten: true })\n private readonly _assignedLeadingIcons!: HTMLElement[];\n\n @queryAssignedElements({ slot: 'icon-selected', flatten: true })\n private readonly _assignedSelectedIcons!: HTMLElement[];\n\n @queryAssignedElements({ slot: 'trailing-icon', flatten: true })\n private readonly _assignedTrailingIcons!: HTMLElement[];\n\n @query('#remove-ripple') removeRipple!: UmRipple;\n\n override connectedCallback() {\n super.connectedCallback();\n this.renderRipple = this.#clickable || this.#toggle;\n }\n\n #handleRemoveClick(e: Event) {\n e.stopPropagation();\n\n if (!(e as PointerEvent).pointerType) {\n this.removeRipple.createRipple();\n }\n\n const removeEvent = new Event('remove', { cancelable: true });\n this.dispatchEvent(removeEvent);\n\n if (!removeEvent.defaultPrevented) {\n this.remove();\n }\n }\n\n #handleTrailingIconSlotChange() {\n this._hasTrailingIcon = this._assignedTrailingIcons.length > 0;\n }\n\n #handleLeadingIconSlotChange() {\n this._hasLeadingIcon = this._assignedLeadingIcons.length > 0;\n }\n\n #handleSelectedIconSlotChange() {\n this._hasSelectedIcon = this._assignedSelectedIcons.length > 0;\n }\n\n protected override _handleClick(event: UIEvent): void {\n super._handleClick(event);\n\n if (!this.toggle) {\n return;\n }\n\n this.selected = !this.selected;\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n protected override _getContainerClasses(): Record<string, boolean> {\n return {\n ...super._getContainerClasses(),\n clickable: this.clickable,\n toggle: this.toggle,\n selected: this.selected,\n removable: this.removable,\n elevated: this.elevated && !this.disabled,\n 'trailing-icon': this._hasTrailingIcon,\n 'leading-icon': this._hasLeadingIcon,\n 'selected-icon': this._hasSelectedIcon,\n 'hide-selected-icon': this.hideSelectedIcon,\n };\n }\n\n protected override _renderContent(): HTMLTemplateResult {\n const remove = html`\n <button class=\"icon remove-button focus-ring\" ?disabled=${this.disabled} @click=${this.#handleRemoveClick}>\n <u-ripple id=\"remove-ripple\" ?disabled=${this.disabled}></u-ripple>\n <slot name=\"remove-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path\n d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\" />\n </svg>\n </slot>\n </button>\n `;\n\n const outline = !this.disabled && !this.elevated && !this.selected\n ? html`<div class=\"outline\"></div>`\n : nothing;\n\n return html`\n ${outline}\n <span class=\"icon leading\" part=\"icon leading\">\n <slot name=\"leading-icon\" @slotchange=\"${this.#handleLeadingIconSlotChange}\"></slot>\n </span>\n <span class=\"icon icon-selected\" part=\"icon selected\">\n <slot name=\"icon-selected\" @slotchange=\"${this.#handleSelectedIconSlotChange}\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"1em\"\n viewBox=\"0 -960 960 960\"\n width=\"1em\"\n fill=\"currentColor\">\n <path d=\"M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z\" />\n </svg>\n </slot>\n </span>\n <div class=\"label\">\n <slot></slot>\n </div>\n <slot\n class=\"icon trailing\"\n part=\"icon trailing\"\n name=\"trailing-icon\"\n @slotchange=\"${this.#handleTrailingIconSlotChange}\"></slot>\n ${this.removable ? remove : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-chip': UmChip;\n }\n}\n"]}
|
|
@@ -5,6 +5,9 @@ export declare class UmChipField extends UmTextFieldBase {
|
|
|
5
5
|
#private;
|
|
6
6
|
static styles: CSSResultGroup;
|
|
7
7
|
input: HTMLInputElement;
|
|
8
|
+
/**
|
|
9
|
+
* The form field name used when submitting each chip value as form data
|
|
10
|
+
*/
|
|
8
11
|
name: string;
|
|
9
12
|
/**
|
|
10
13
|
* If true, ignore enter key input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip-field.d.ts","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAQ,kBAAkB,EAAW,MAAM,KAAK,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAG/E,qBACa,WAAY,SAAQ,eAAe;;IAC9C,OAAgB,MAAM,EAAE,cAAc,CAAoC;IAE1D,KAAK,EAAG,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"chip-field.d.ts","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAQ,kBAAkB,EAAW,MAAM,KAAK,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAG/E,qBACa,WAAY,SAAQ,eAAe;;IAC9C,OAAgB,MAAM,EAAE,cAAc,CAAoC;IAE1D,KAAK,EAAG,gBAAgB,CAAC;IAEzC;;OAEG;IACS,IAAI,EAAG,MAAM,CAAC;IAE1B;;OAEG;IAC0B,MAAM,UAAS;IAE5C;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAEhD;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAI1D;;;;OAIG;IACH,IAAI,KAAK,IAAI,GAAG,EAAE,CAEjB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAGrB;IAED,OAAO,CAAC,YAAY;IAUX,KAAK;cAIK,aAAa,IAAI,kBAAkB;IAsDtD,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,UAAQ;IAMrC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,UAAQ;IAiD7C,OAAO,CAAC,YAAY;CAGrB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip-field.js","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAsB,OAAO,EAAE,MAAM,KAAK,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,eAAe;IAAzC;;
|
|
1
|
+
{"version":3,"file":"chip-field.js","sourceRoot":"","sources":["../../src/chip-field/chip-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\n\nimport { html, HTMLTemplateResult, nothing } from 'lit';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\nimport { customElement, property, query } from 'lit/decorators.js';\n\nimport { UmTextFieldBase } from '../shared/text-field-base/text-field-base.js';\nimport { styles } from './chip-field.styles.js';\n\n@customElement('u-chip-field')\nexport class UmChipField extends UmTextFieldBase {\n static override styles: CSSResultGroup = [UmTextFieldBase.styles, styles];\n\n @query('input') input!: HTMLInputElement;\n\n /**\n * The form field name used when submitting each chip value as form data\n */\n @property() name!: string;\n\n /**\n * If true, ignore enter key input\n */\n @property({ type: Boolean }) manual = false;\n\n /**\n * A function return a string based on a item from the `value`. Useful when the items of value are objects.\n */\n formatter: ((value: any) => string) | undefined;\n\n /**\n * A string representing an HTML to be rendered inside as leading icon of each chip.\n *\n * _Note:_ Subject to signature change\n */\n leadingIconTemplate: ((value: any) => string) | undefined;\n\n #value: any[] = [];\n\n /**\n * An array containing the value representation of each chip.\n *\n * _Note:_ Add or remove items directly from value array won't trigger a render on Chip Field. Use the methods `add` or `removeAt`.\n */\n get value(): any[] {\n return this.#value;\n }\n\n set value(value: any[]) {\n this.#value = value;\n this.#valueUpdate();\n }\n\n private setFormValue() {\n const formData = new FormData();\n\n for (const item of this.value) {\n formData.append(this.name, this.getItemLabel(item));\n }\n\n this.elementInternals.setFormValue(formData);\n }\n\n override focus() {\n this.input.focus();\n }\n\n protected override renderControl(): HTMLTemplateResult {\n return html`\n <div class=\"input\">\n ${this.#getChips()}\n <input\n part=\"input\"\n id=${this.id || nothing}\n aria-labelledby=\"label\"\n ?disabled=${this.disabled}\n placeholder=${this.placeholder || nothing}\n @blur=${this.#handleBlur}\n @keydown=${this.#handleKeyDown}\n @input=${this.#handleInput} />\n </div>\n `;\n }\n\n #getChips() {\n return this.value?.map((item, index) => {\n const leadingIcon = this.leadingIconTemplate\n ? html`\n <span slot=\"leading-icon\">${unsafeHTML(this.leadingIconTemplate(item))}</span>\n `\n : nothing;\n\n return html`\n <u-chip removable ?disabled=${this.disabled} @remove=${this.#removeChip(index)}>\n ${leadingIcon} ${this.getItemLabel(item)}\n </u-chip>\n `;\n });\n }\n\n #handleBlur() {\n this.requestUpdate();\n }\n\n #handleInput() {\n this.#setEmpty();\n }\n\n #handleKeyDown(e: KeyboardEvent) {\n if (!this.manual && e.key === 'Enter') {\n this.add(this.input.value, true);\n this.input.value = '';\n return;\n }\n\n if (e.key === 'Backspace' && this.input.selectionStart === 0 && this.input.selectionEnd === 0) {\n this.#removeChip(this.value.length - 1)();\n return;\n }\n }\n\n add(value: any, triggerChange = false) {\n this.value.push(value);\n\n this.#changed(triggerChange);\n }\n\n removeAt(index: number, triggerChange = false) {\n this.value.splice(index, 1);\n this.#changed(triggerChange);\n }\n\n readonly #removeChip = (index: number) => (e?: Event) => {\n e?.preventDefault();\n\n this.input.focus();\n const defaultPrevented = this.#dispatchRemoveEvent(index);\n\n if (defaultPrevented) {\n return;\n }\n\n this.removeAt(index, true);\n };\n\n #changed(triggerChange: boolean) {\n this.#valueUpdate();\n\n if (triggerChange) {\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n\n #valueUpdate() {\n this.#setEmpty();\n this.setFormValue();\n this.requestUpdate();\n }\n\n #setEmpty() {\n this.empty = !this.value?.length && !this.input?.value;\n }\n\n #dispatchRemoveEvent(index: number): boolean {\n const item = this.value[index];\n\n const event = new CustomEvent('remove', {\n cancelable: true,\n detail: item,\n });\n\n this.dispatchEvent(event);\n\n return event.defaultPrevented;\n }\n\n private getItemLabel(item: any) {\n return this.formatter ? this.formatter(item) : item.toString();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-chip-field': UmChipField;\n }\n}\n"]}
|