igniteui-webcomponents 6.3.0-beta.0 → 6.3.0-beta.1

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.
Files changed (230) hide show
  1. package/components/accordion/accordion.js +3 -4
  2. package/components/accordion/accordion.js.map +1 -1
  3. package/components/avatar/avatar.js +3 -4
  4. package/components/avatar/avatar.js.map +1 -1
  5. package/components/badge/badge.js +3 -4
  6. package/components/badge/badge.js.map +1 -1
  7. package/components/banner/banner.js +3 -4
  8. package/components/banner/banner.js.map +1 -1
  9. package/components/button/button-base.js +1 -1
  10. package/components/button/button-base.js.map +1 -1
  11. package/components/button/button.js +3 -4
  12. package/components/button/button.js.map +1 -1
  13. package/components/button/icon-button.js +3 -4
  14. package/components/button/icon-button.js.map +1 -1
  15. package/components/button-group/button-group.js +3 -4
  16. package/components/button-group/button-group.js.map +1 -1
  17. package/components/button-group/toggle-button.js +4 -3
  18. package/components/button-group/toggle-button.js.map +1 -1
  19. package/components/calendar/calendar.js +3 -4
  20. package/components/calendar/calendar.js.map +1 -1
  21. package/components/calendar/days-view/days-view.js +4 -3
  22. package/components/calendar/days-view/days-view.js.map +1 -1
  23. package/components/calendar/months-view/months-view.js +4 -3
  24. package/components/calendar/months-view/months-view.js.map +1 -1
  25. package/components/calendar/years-view/years-view.js +4 -3
  26. package/components/calendar/years-view/years-view.js.map +1 -1
  27. package/components/card/card.actions.js +3 -4
  28. package/components/card/card.actions.js.map +1 -1
  29. package/components/card/card.content.js +3 -4
  30. package/components/card/card.content.js.map +1 -1
  31. package/components/card/card.header.js +3 -4
  32. package/components/card/card.header.js.map +1 -1
  33. package/components/card/card.js +3 -4
  34. package/components/card/card.js.map +1 -1
  35. package/components/card/card.media.js +3 -4
  36. package/components/card/card.media.js.map +1 -1
  37. package/components/carousel/carousel-indicator-container.js +3 -4
  38. package/components/carousel/carousel-indicator-container.js.map +1 -1
  39. package/components/carousel/carousel-indicator.js +3 -4
  40. package/components/carousel/carousel-indicator.js.map +1 -1
  41. package/components/carousel/carousel-slide.js +3 -4
  42. package/components/carousel/carousel-slide.js.map +1 -1
  43. package/components/carousel/carousel.js +3 -4
  44. package/components/carousel/carousel.js.map +1 -1
  45. package/components/chat/chat-input.d.ts +3 -3
  46. package/components/chat/chat-input.js +38 -38
  47. package/components/chat/chat-input.js.map +1 -1
  48. package/components/chat/chat-message.d.ts +3 -18
  49. package/components/chat/chat-message.js +28 -30
  50. package/components/chat/chat-message.js.map +1 -1
  51. package/components/chat/chat-state.d.ts +5 -8
  52. package/components/chat/chat-state.js +20 -22
  53. package/components/chat/chat-state.js.map +1 -1
  54. package/components/chat/chat.d.ts +4 -6
  55. package/components/chat/chat.js +44 -32
  56. package/components/chat/chat.js.map +1 -1
  57. package/components/chat/extras/markdown-renderer.d.ts +4 -1
  58. package/components/chat/extras/markdown-renderer.js +14 -14
  59. package/components/chat/extras/markdown-renderer.js.map +1 -1
  60. package/components/chat/message-attachments.d.ts +3 -3
  61. package/components/chat/message-attachments.js +35 -32
  62. package/components/chat/message-attachments.js.map +1 -1
  63. package/components/chat/themes/input.base.css.js +1 -1
  64. package/components/chat/themes/input.base.css.js.map +1 -1
  65. package/components/chat/themes/message.base.css.js +1 -1
  66. package/components/chat/themes/message.base.css.js.map +1 -1
  67. package/components/chat/themes/shared/chat.bootstrap.css.js +1 -1
  68. package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -1
  69. package/components/chat/themes/shared/chat.fluent.css.js +1 -1
  70. package/components/chat/themes/shared/chat.fluent.css.js.map +1 -1
  71. package/components/chat/themes/shared/chat.indigo.css.js +1 -1
  72. package/components/chat/themes/shared/chat.indigo.css.js.map +1 -1
  73. package/components/chat/themes/shared/input/input.bootstrap.css.js +1 -1
  74. package/components/chat/themes/shared/input/input.bootstrap.css.js.map +1 -1
  75. package/components/chat/themes/shared/input/input.fluent.css.js +1 -1
  76. package/components/chat/themes/shared/input/input.fluent.css.js.map +1 -1
  77. package/components/chat/themes/shared/input/input.indigo.css.js +1 -1
  78. package/components/chat/themes/shared/input/input.indigo.css.js.map +1 -1
  79. package/components/chat/types.d.ts +32 -21
  80. package/components/chat/types.js.map +1 -1
  81. package/components/chat/utils.d.ts +1 -0
  82. package/components/chat/utils.js +9 -1
  83. package/components/chat/utils.js.map +1 -1
  84. package/components/checkbox/checkbox.js +3 -4
  85. package/components/checkbox/checkbox.js.map +1 -1
  86. package/components/checkbox/switch.js +3 -4
  87. package/components/checkbox/switch.js.map +1 -1
  88. package/components/chip/chip.js +3 -4
  89. package/components/chip/chip.js.map +1 -1
  90. package/components/combo/combo-header.js +3 -4
  91. package/components/combo/combo-header.js.map +1 -1
  92. package/components/combo/combo-item.js +3 -4
  93. package/components/combo/combo-item.js.map +1 -1
  94. package/components/combo/combo-list.js +2 -3
  95. package/components/combo/combo-list.js.map +1 -1
  96. package/components/combo/combo.js +4 -3
  97. package/components/combo/combo.js.map +1 -1
  98. package/components/common/controllers/focus-ring.js +5 -5
  99. package/components/common/controllers/focus-ring.js.map +1 -1
  100. package/components/common/controllers/key-bindings.js +4 -4
  101. package/components/common/controllers/key-bindings.js.map +1 -1
  102. package/components/common/mixins/forms/associated.js +1 -1
  103. package/components/common/mixins/forms/associated.js.map +1 -1
  104. package/components/common/mixins/forms/form-value.js +1 -1
  105. package/components/common/mixins/forms/form-value.js.map +1 -1
  106. package/components/common/part-map.d.ts +1 -1
  107. package/components/date-picker/date-picker.js +5 -4
  108. package/components/date-picker/date-picker.js.map +1 -1
  109. package/components/date-range-picker/date-range-picker.js +5 -4
  110. package/components/date-range-picker/date-range-picker.js.map +1 -1
  111. package/components/date-range-picker/predefined-ranges-area.js +3 -4
  112. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  113. package/components/date-time-input/date-time-input.js +2 -3
  114. package/components/date-time-input/date-time-input.js.map +1 -1
  115. package/components/date-time-input/date-util.js +11 -11
  116. package/components/date-time-input/date-util.js.map +1 -1
  117. package/components/dialog/dialog.js +3 -4
  118. package/components/dialog/dialog.js.map +1 -1
  119. package/components/divider/divider.js +3 -4
  120. package/components/divider/divider.js.map +1 -1
  121. package/components/dropdown/dropdown-group.js +3 -4
  122. package/components/dropdown/dropdown-group.js.map +1 -1
  123. package/components/dropdown/dropdown-header.js +3 -4
  124. package/components/dropdown/dropdown-header.js.map +1 -1
  125. package/components/dropdown/dropdown-item.js +3 -4
  126. package/components/dropdown/dropdown-item.js.map +1 -1
  127. package/components/dropdown/dropdown.js +4 -3
  128. package/components/dropdown/dropdown.js.map +1 -1
  129. package/components/expansion-panel/expansion-panel.js +3 -4
  130. package/components/expansion-panel/expansion-panel.js.map +1 -1
  131. package/components/file-input/file-input.js +3 -4
  132. package/components/file-input/file-input.js.map +1 -1
  133. package/components/focus-trap/focus-trap.js +7 -8
  134. package/components/focus-trap/focus-trap.js.map +1 -1
  135. package/components/icon/icon-references.js +78 -0
  136. package/components/icon/icon-references.js.map +1 -1
  137. package/components/icon/icon-state.broadcast.js +1 -1
  138. package/components/icon/icon-state.broadcast.js.map +1 -1
  139. package/components/icon/icon.js +3 -4
  140. package/components/icon/icon.js.map +1 -1
  141. package/components/icon/internal-icons-lib.js +39 -0
  142. package/components/icon/internal-icons-lib.js.map +1 -1
  143. package/components/input/input-base.js +4 -3
  144. package/components/input/input-base.js.map +1 -1
  145. package/components/input/input.js +2 -3
  146. package/components/input/input.js.map +1 -1
  147. package/components/list/list-header.js +3 -4
  148. package/components/list/list-header.js.map +1 -1
  149. package/components/list/list-item.js +3 -4
  150. package/components/list/list-item.js.map +1 -1
  151. package/components/list/list.js +3 -4
  152. package/components/list/list.js.map +1 -1
  153. package/components/mask-input/mask-input.js +2 -3
  154. package/components/mask-input/mask-input.js.map +1 -1
  155. package/components/nav-drawer/nav-drawer-header-item.js +3 -4
  156. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  157. package/components/nav-drawer/nav-drawer-item.js +3 -4
  158. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  159. package/components/nav-drawer/nav-drawer.js +3 -4
  160. package/components/nav-drawer/nav-drawer.js.map +1 -1
  161. package/components/navbar/navbar.js +3 -4
  162. package/components/navbar/navbar.js.map +1 -1
  163. package/components/popover/popover.js +9 -10
  164. package/components/popover/popover.js.map +1 -1
  165. package/components/progress/circular-gradient.js +2 -3
  166. package/components/progress/circular-gradient.js.map +1 -1
  167. package/components/progress/circular-progress.js +3 -4
  168. package/components/progress/circular-progress.js.map +1 -1
  169. package/components/progress/linear-progress.js +3 -4
  170. package/components/progress/linear-progress.js.map +1 -1
  171. package/components/radio/radio.js +3 -4
  172. package/components/radio/radio.js.map +1 -1
  173. package/components/radio-group/radio-group.js +3 -4
  174. package/components/radio-group/radio-group.js.map +1 -1
  175. package/components/rating/rating-symbol.js +3 -4
  176. package/components/rating/rating-symbol.js.map +1 -1
  177. package/components/rating/rating.js +3 -4
  178. package/components/rating/rating.js.map +1 -1
  179. package/components/resize-container/resize-container.js +3 -4
  180. package/components/resize-container/resize-container.js.map +1 -1
  181. package/components/ripple/ripple.js +3 -4
  182. package/components/ripple/ripple.js.map +1 -1
  183. package/components/select/select-group.js +3 -4
  184. package/components/select/select-group.js.map +1 -1
  185. package/components/select/select-header.js +3 -4
  186. package/components/select/select-header.js.map +1 -1
  187. package/components/select/select-item.js +3 -4
  188. package/components/select/select-item.js.map +1 -1
  189. package/components/select/select.js +4 -3
  190. package/components/select/select.js.map +1 -1
  191. package/components/slider/range-slider.js +2 -3
  192. package/components/slider/range-slider.js.map +1 -1
  193. package/components/slider/slider-base.js +1 -1
  194. package/components/slider/slider-base.js.map +1 -1
  195. package/components/slider/slider-label.js +7 -8
  196. package/components/slider/slider-label.js.map +1 -1
  197. package/components/slider/slider.js +2 -3
  198. package/components/slider/slider.js.map +1 -1
  199. package/components/snackbar/snackbar.js +3 -4
  200. package/components/snackbar/snackbar.js.map +1 -1
  201. package/components/stepper/step.js +3 -4
  202. package/components/stepper/step.js.map +1 -1
  203. package/components/stepper/stepper.js +3 -4
  204. package/components/stepper/stepper.js.map +1 -1
  205. package/components/tabs/tab-dom.js +1 -1
  206. package/components/tabs/tab-dom.js.map +1 -1
  207. package/components/tabs/tab.js +4 -5
  208. package/components/tabs/tab.js.map +1 -1
  209. package/components/tabs/tabs.js +3 -4
  210. package/components/tabs/tabs.js.map +1 -1
  211. package/components/textarea/textarea.js +4 -3
  212. package/components/textarea/textarea.js.map +1 -1
  213. package/components/tile-manager/tile-manager.js +4 -3
  214. package/components/tile-manager/tile-manager.js.map +1 -1
  215. package/components/tile-manager/tile.js +3 -4
  216. package/components/tile-manager/tile.js.map +1 -1
  217. package/components/toast/toast.js +3 -4
  218. package/components/toast/toast.js.map +1 -1
  219. package/components/tooltip/controller.js +4 -4
  220. package/components/tooltip/controller.js.map +1 -1
  221. package/components/tooltip/tooltip.js +3 -4
  222. package/components/tooltip/tooltip.js.map +1 -1
  223. package/components/tree/tree-item.js +3 -4
  224. package/components/tree/tree-item.js.map +1 -1
  225. package/components/tree/tree.js +4 -3
  226. package/components/tree/tree.js.map +1 -1
  227. package/components/validation-container/validation-container.js +3 -4
  228. package/components/validation-container/validation-container.js.map +1 -1
  229. package/custom-elements.json +131 -83
  230. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"date-util.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseISODate } from '../calendar/helpers.js';\nimport { MaskParser } from '../mask-input/mask-parser.js';\n\nexport enum FormatDesc {\n Numeric = 'numeric',\n TwoDigits = '2-digit',\n}\n\nexport enum DateParts {\n Day = 'day',\n Month = 'month',\n Year = 'year',\n Date = 'date',\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n AmPm = 'amPm',\n Literal = 'literal',\n}\n\nexport enum DatePart {\n Month = 'month',\n Year = 'year',\n Date = 'date',\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n AmPm = 'amPm',\n}\n\n/** @ignore */\nexport interface DatePartInfo {\n type: DateParts;\n start: number;\n end: number;\n format: string;\n}\n\nexport interface DatePartDeltas {\n date?: number;\n month?: number;\n year?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n}\n\nfunction isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n\nexport abstract class DateTimeUtil {\n public static readonly DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy';\n public static readonly DEFAULT_TIME_INPUT_FORMAT = 'hh:mm tt';\n private static readonly SEPARATOR = 'literal';\n private static readonly DEFAULT_LOCALE = 'en';\n private static readonly PREDEFINED_FORMATS = new Set([\n 'short',\n 'medium',\n 'long',\n 'full',\n ]);\n private static _parser = new MaskParser();\n\n public static parseValueFromMask(\n inputData: string,\n dateTimeParts: DatePartInfo[],\n promptChar?: string\n ): Date | null {\n const parts: { [key in DateParts]: number } = {} as any;\n dateTimeParts.forEach((dp) => {\n let value = Number.parseInt(\n DateTimeUtil.getCleanVal(inputData, dp, promptChar),\n 10\n );\n if (!value) {\n value =\n dp.type === DateParts.Date || dp.type === DateParts.Month ? 1 : 0;\n }\n parts[dp.type] = value;\n });\n parts[DateParts.Month] -= 1;\n\n if (parts[DateParts.Month] < 0 || 11 < parts[DateParts.Month]) {\n return null;\n }\n\n // TODO: Century threshold\n if (parts[DateParts.Year] < 50) {\n parts[DateParts.Year] += 2000;\n }\n\n if (\n parts[DateParts.Date] >\n DateTimeUtil.daysInMonth(parts[DateParts.Year], parts[DateParts.Month])\n ) {\n return null;\n }\n\n if (\n parts[DateParts.Hours] > 23 ||\n parts[DateParts.Minutes] > 59 ||\n parts[DateParts.Seconds] > 59\n ) {\n return null;\n }\n\n const amPm = dateTimeParts.find((p) => p.type === DateParts.AmPm);\n if (amPm) {\n parts[DateParts.Hours] %= 12;\n }\n\n if (\n amPm &&\n DateTimeUtil.getCleanVal(inputData, amPm, promptChar).toLowerCase() ===\n 'pm'\n ) {\n parts[DateParts.Hours] += 12;\n }\n\n return new Date(\n parts[DateParts.Year] || 2000,\n parts[DateParts.Month] || 0,\n parts[DateParts.Date] || 1,\n parts[DateParts.Hours] || 0,\n parts[DateParts.Minutes] || 0,\n parts[DateParts.Seconds] || 0\n );\n }\n\n public static getDefaultMask(locale: string): string {\n const parts = DateTimeUtil.getDefaultLocaleMask(\n locale || DateTimeUtil.DEFAULT_LOCALE\n );\n\n if (parts !== undefined) {\n parts.forEach((p: any) => {\n if (p.type !== DateParts.Year && p.type !== DateTimeUtil.SEPARATOR) {\n p.formatType = FormatDesc.TwoDigits;\n }\n });\n\n return DateTimeUtil.getMask(parts);\n }\n\n return '';\n }\n\n public static parseDateTimeFormat(\n mask: string,\n locale: string = DateTimeUtil.DEFAULT_LOCALE,\n noLeadingZero = false\n ): DatePartInfo[] {\n const format = mask || DateTimeUtil.getDefaultMask(locale);\n const dateTimeParts: DatePartInfo[] = [];\n const formatArray = Array.from(format);\n let currentPart: DatePartInfo | null = null;\n let position = 0;\n\n for (let i = 0; i < formatArray.length; i++, position++) {\n const type = DateTimeUtil.determineDatePart(formatArray[i]);\n if (currentPart) {\n if (currentPart.type === type) {\n currentPart.format += formatArray[i];\n if (i < formatArray.length - 1) {\n continue;\n }\n }\n\n DateTimeUtil.addCurrentPart(currentPart, dateTimeParts, noLeadingZero);\n position = currentPart.end;\n }\n\n currentPart = {\n start: position,\n end: position + formatArray[i].length,\n type,\n format: formatArray[i],\n };\n }\n\n // make sure the last member of a format like H:m:s is not omitted\n if (\n !dateTimeParts.filter((p) => p.format.includes(currentPart!.format))\n .length\n ) {\n DateTimeUtil.addCurrentPart(currentPart!, dateTimeParts, noLeadingZero);\n }\n // formats like \"y\" or \"yyy\" are treated like \"yyyy\" while editing\n const yearPart = dateTimeParts.filter((p) => p.type === DateParts.Year)[0];\n if (yearPart && yearPart.format !== 'yy') {\n yearPart.end += 4 - yearPart.format.length;\n yearPart.format = 'yyyy';\n }\n\n return dateTimeParts;\n }\n\n public static parseIsoDate(value: string): Date | null {\n return parseISODate(value);\n }\n\n public static isValidDate(value: any): value is Date {\n if (isDate(value)) {\n return !Number.isNaN(value.getTime());\n }\n\n return false;\n }\n\n public static formatDate(\n value: Date,\n locale: string,\n format: string,\n noLeadingZero = false\n ): string {\n const options: any = {};\n let formattedDate = '';\n\n switch (format) {\n case 'short':\n case 'long':\n case 'medium':\n case 'full':\n options.dateStyle = format;\n options.timeStyle = format;\n break;\n case 'shortDate':\n case 'longDate':\n case 'mediumDate':\n case 'fullDate':\n options.dateStyle = format.toLowerCase().split('date')[0];\n break;\n case 'shortTime':\n case 'longTime':\n case 'mediumTime':\n case 'fullTime':\n options.timeStyle = format.toLowerCase().split('time')[0];\n break;\n default:\n return DateTimeUtil.setDisplayFormatOptions(\n value,\n format,\n locale,\n noLeadingZero\n );\n }\n\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(locale, options);\n } catch {\n formatter = new Intl.DateTimeFormat(DateTimeUtil.DEFAULT_LOCALE, options);\n }\n\n formattedDate = formatter.format(value);\n\n return formattedDate;\n }\n\n public static getPartValue(\n datePartInfo: DatePartInfo,\n partLength: number,\n _dateValue: Date | null\n ): string {\n let maskedValue: any;\n const datePart = datePartInfo.type;\n\n switch (datePart) {\n case DateParts.Date:\n maskedValue = _dateValue!.getDate();\n break;\n case DateParts.Month:\n // months are zero based\n maskedValue = _dateValue!.getMonth() + 1;\n break;\n case DateParts.Year:\n if (partLength === 2) {\n maskedValue = DateTimeUtil.prependValue(\n Number.parseInt(_dateValue!.getFullYear().toString().slice(-2), 10),\n partLength,\n '0'\n );\n } else {\n maskedValue = _dateValue!.getFullYear();\n }\n break;\n case DateParts.Hours:\n if (datePartInfo.format.indexOf('h') !== -1) {\n maskedValue = DateTimeUtil.prependValue(\n DateTimeUtil.toTwelveHourFormat(_dateValue!.getHours().toString()),\n partLength,\n '0'\n );\n } else {\n maskedValue = _dateValue!.getHours();\n }\n break;\n case DateParts.Minutes:\n maskedValue = _dateValue!.getMinutes();\n break;\n case DateParts.Seconds:\n maskedValue = _dateValue!.getSeconds();\n break;\n case DateParts.AmPm:\n maskedValue = _dateValue!.getHours() >= 12 ? 'PM' : 'AM';\n break;\n }\n\n if (datePartInfo.type !== DateParts.AmPm) {\n return DateTimeUtil.prependValue(maskedValue, partLength, '0');\n }\n\n return maskedValue;\n }\n\n public static spinYear(delta: number, newDate: Date): Date {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear() + delta,\n newDate.getMonth()\n );\n if (newDate.getDate() > maxDate) {\n // clip to max to avoid leap year change shifting the entire value\n newDate.setDate(maxDate);\n }\n newDate.setFullYear(newDate.getFullYear() + delta);\n\n return newDate;\n }\n\n public static spinMonth(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear(),\n newDate.getMonth() + delta\n );\n if (newDate.getDate() > maxDate) {\n newDate.setDate(maxDate);\n }\n\n const maxMonth = 11;\n const minMonth = 0;\n let month = newDate.getMonth() + delta;\n if (month > maxMonth) {\n month = spinLoop ? (month % maxMonth) - 1 : maxMonth;\n } else if (month < minMonth) {\n month = spinLoop ? maxMonth + (month % maxMonth) + 1 : minMonth;\n }\n\n newDate.setMonth(month);\n }\n\n public static spinDate(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear(),\n newDate.getMonth()\n );\n let date = newDate.getDate() + delta;\n if (date > maxDate) {\n date = spinLoop ? date % maxDate : maxDate;\n } else if (date < 1) {\n date = spinLoop ? maxDate + (date % maxDate) : 1;\n }\n\n newDate.setDate(date);\n }\n\n public static spinHours(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxHour = 23;\n const minHour = 0;\n let hours = newDate.getHours() + delta;\n if (hours > maxHour) {\n hours = spinLoop ? (hours % maxHour) - 1 : maxHour;\n } else if (hours < minHour) {\n hours = spinLoop ? maxHour + (hours % maxHour) + 1 : minHour;\n }\n\n newDate.setHours(hours);\n }\n\n public static spinMinutes(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxMinutes = 59;\n const minMinutes = 0;\n let minutes = newDate.getMinutes() + delta;\n if (minutes > maxMinutes) {\n minutes = spinLoop ? (minutes % maxMinutes) - 1 : maxMinutes;\n } else if (minutes < minMinutes) {\n minutes = spinLoop ? maxMinutes + (minutes % maxMinutes) + 1 : minMinutes;\n }\n\n newDate.setMinutes(minutes);\n }\n\n public static spinSeconds(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxSeconds = 59;\n const minSeconds = 0;\n let seconds = newDate.getSeconds() + delta;\n if (seconds > maxSeconds) {\n seconds = spinLoop ? (seconds % maxSeconds) - 1 : maxSeconds;\n } else if (seconds < minSeconds) {\n seconds = spinLoop ? maxSeconds + (seconds % maxSeconds) + 1 : minSeconds;\n }\n\n newDate.setSeconds(seconds);\n }\n\n public static spinAmPm(\n newDate: Date,\n currentDate: Date,\n amPmFromMask: string\n ): Date {\n let date = new Date(newDate);\n\n switch (amPmFromMask) {\n case 'AM':\n date = new Date(newDate.setHours(newDate.getHours() + 12));\n break;\n case 'PM':\n date = new Date(newDate.setHours(newDate.getHours() - 12));\n break;\n }\n if (date.getDate() !== currentDate.getDate()) {\n return currentDate;\n }\n\n return date;\n }\n\n public static greaterThanMaxValue(\n value: Date,\n maxValue: Date,\n includeTime = true,\n includeDate = true\n ): boolean {\n if (includeTime && includeDate) {\n return value.getTime() > maxValue.getTime();\n }\n\n const _value = new Date(value.getTime());\n const _maxValue = new Date(maxValue.getTime());\n if (!includeTime) {\n _value.setHours(0, 0, 0, 0);\n _maxValue.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n _value.setFullYear(0, 0, 0);\n _maxValue.setFullYear(0, 0, 0);\n }\n\n return _value.getTime() > _maxValue.getTime();\n }\n\n /**\n * Determines whether the provided value is less than the provided min value.\n *\n * @param includeTime set to false if you want to exclude time portion of the two dates\n * @param includeDate set to false if you want to exclude the date portion of the two dates\n * @returns true if provided value is less than provided minValue\n */\n public static lessThanMinValue(\n value: Date,\n minValue: Date,\n includeTime = true,\n includeDate = true\n ): boolean {\n if (includeTime && includeDate) {\n return value.getTime() < minValue.getTime();\n }\n\n const _value = new Date(value.getTime());\n const _minValue = new Date(minValue.getTime());\n if (!includeTime) {\n _value.setHours(0, 0, 0, 0);\n _minValue.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n _value.setFullYear(0, 0, 0);\n _minValue.setFullYear(0, 0, 0);\n }\n\n return _value.getTime() < _minValue.getTime();\n }\n\n /**\n * Validates a value within a given min and max value range.\n *\n * @param value The value to validate\n * @param minValue The lowest possible value that `value` can take\n * @param maxValue The largest possible value that `value` can take\n */\n public static validateMinMax(\n value: Date,\n minValue: Date | string,\n maxValue: Date | string,\n includeTime = true,\n includeDate = true\n ) {\n // if (!value) {\n // return null;\n // }\n const errors = {};\n const min = DateTimeUtil.isValidDate(minValue)\n ? minValue\n : DateTimeUtil.parseIsoDate(minValue);\n const max = DateTimeUtil.isValidDate(maxValue)\n ? maxValue\n : DateTimeUtil.parseIsoDate(maxValue);\n if (\n min &&\n value &&\n DateTimeUtil.lessThanMinValue(value, min, includeTime, includeDate)\n ) {\n Object.assign(errors, { minValue: true });\n }\n if (\n max &&\n value &&\n DateTimeUtil.greaterThanMaxValue(value, max, includeTime, includeDate)\n ) {\n Object.assign(errors, { maxValue: true });\n }\n\n return errors;\n }\n\n /**\n * Transforms the predefined format to a display format containing only date parts.\n *\n * @param format The format to check and transform\n */\n public static predefinedToDateDisplayFormat(format?: string) {\n return format && DateTimeUtil.PREDEFINED_FORMATS.has(format)\n ? `${format}Date`\n : format;\n }\n\n private static setDisplayFormatOptions(\n value: Date,\n format: string,\n locale: string,\n noLeadingZero = false\n ) {\n const options: any = {};\n const parts = DateTimeUtil.parseDateTimeFormat(\n format,\n locale,\n noLeadingZero\n );\n\n const datePartFormatOptionMap = new Map([\n [DateParts.Date, 'day'],\n [DateParts.Month, 'month'],\n [DateParts.Year, 'year'],\n [DateParts.Hours, 'hour'],\n [DateParts.Minutes, 'minute'],\n [DateParts.Seconds, 'second'],\n [DateParts.AmPm, 'dayPeriod'],\n ]);\n\n const dateFormatMap = new Map([\n ['d', 'numeric'],\n ['dd', '2-digit'],\n ['M', 'numeric'],\n ['MM', '2-digit'],\n ['MMM', 'short'],\n ['MMMM', 'long'],\n ['MMMMM', 'narrow'],\n ['y', 'numeric'],\n ['yy', '2-digit'],\n ['yyy', 'numeric'],\n ['yyyy', 'numeric'],\n ['h', 'numeric'],\n ['hh', '2-digit'],\n ['H', 'numeric'],\n ['HH', '2-digit'],\n ['m', 'numeric'],\n ['mm', '2-digit'],\n ['s', 'numeric'],\n ['ss', '2-digit'],\n ['ttt', 'short'],\n ['tttt', 'long'],\n ['ttttt', 'narrow'],\n ]);\n\n for (const part of parts) {\n if (part.type !== DateParts.Literal) {\n const option = datePartFormatOptionMap.get(part.type);\n const format =\n dateFormatMap.get(part.format) ||\n dateFormatMap.get(part.format.substring(0, 2));\n\n if (option && format) {\n options[option] = format;\n\n if (part.type === DateParts.Hours) {\n if (part.format.charAt(0) === 'h') {\n options.hourCycle = 'h12';\n } else {\n options.hourCycle = 'h23';\n }\n }\n }\n\n // Need to be set if we have 't' or 'tt'.\n if (part.type === DateParts.AmPm && part.format.length <= 2) {\n options.hour = '2-digit';\n options.hourCycle = 'h12';\n }\n }\n }\n\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(\n locale,\n options as Intl.DateTimeFormatOptions\n );\n } catch {\n formatter = new Intl.DateTimeFormat(DateTimeUtil.DEFAULT_LOCALE, options);\n }\n\n const formattedParts = formatter.formatToParts(value);\n\n let result = '';\n\n for (const part of parts) {\n if (part.type === DateParts.Literal) {\n result += part.format;\n continue;\n }\n\n const option = datePartFormatOptionMap.get(part.type)!;\n result += formattedParts.filter((p) => p.type === option)[0]?.value || '';\n }\n\n return result;\n }\n\n private static getMask(dateStruct: any[]): string {\n const mask = [];\n\n for (const part of dateStruct) {\n switch (part.formatType) {\n case FormatDesc.Numeric: {\n if (part.type === DateParts.Day) {\n mask.push('d');\n } else if (part.type === DateParts.Month) {\n mask.push('M');\n } else {\n mask.push('yyyy');\n }\n break;\n }\n case FormatDesc.TwoDigits: {\n if (part.type === DateParts.Day) {\n mask.push('dd');\n } else if (part.type === DateParts.Month) {\n mask.push('MM');\n } else {\n mask.push('yy');\n }\n }\n }\n\n if (part.type === DateTimeUtil.SEPARATOR) {\n mask.push(part.value);\n }\n }\n\n return mask.join('');\n }\n\n private static addCurrentPart(\n currentPart: DatePartInfo,\n dateTimeParts: DatePartInfo[],\n noLeadingZero = false\n ): void {\n DateTimeUtil.ensureLeadingZero(currentPart, noLeadingZero);\n currentPart.end = currentPart.start + currentPart.format.length;\n dateTimeParts.push(currentPart);\n }\n\n private static ensureLeadingZero(part: DatePartInfo, noLeadingZero = false) {\n switch (part.type) {\n case DateParts.Date:\n case DateParts.Month:\n case DateParts.Hours:\n case DateParts.Minutes:\n case DateParts.Seconds:\n if (part.format.length === 1 && !noLeadingZero) {\n part.format = part.format.repeat(2);\n }\n break;\n }\n }\n\n private static determineDatePart(char: string): DateParts {\n switch (char) {\n case 'd':\n case 'D':\n return DateParts.Date;\n case 'M':\n return DateParts.Month;\n case 'y':\n case 'Y':\n return DateParts.Year;\n case 'h':\n case 'H':\n return DateParts.Hours;\n case 'm':\n return DateParts.Minutes;\n case 's':\n case 'S':\n return DateParts.Seconds;\n case 't':\n case 'T':\n return DateParts.AmPm;\n default:\n return DateParts.Literal;\n }\n }\n\n private static getDefaultLocaleMask(locale: string) {\n const dateStruct: any = [];\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(locale);\n } catch {\n return;\n }\n\n const formatToParts = formatter.formatToParts(new Date());\n\n for (const part of formatToParts) {\n if (part.type === DateTimeUtil.SEPARATOR) {\n dateStruct.push({\n type: DateTimeUtil.SEPARATOR,\n value: part.value,\n });\n } else {\n dateStruct.push({\n type: part.type,\n });\n }\n }\n\n const formatterOptions = formatter.resolvedOptions();\n\n for (const part of dateStruct) {\n switch (part.type) {\n case DateParts.Day: {\n part.formatType = formatterOptions.day;\n break;\n }\n case DateParts.Month: {\n part.formatType = formatterOptions.month;\n break;\n }\n case DateParts.Year: {\n part.formatType = formatterOptions.year;\n break;\n }\n }\n }\n\n DateTimeUtil.fillDatePartsPositions(dateStruct);\n return dateStruct;\n }\n\n private static fillDatePartsPositions(dateArray: any[]): void {\n let currentPos = 0;\n\n for (const part of dateArray) {\n // Day|Month part positions\n if (part.type === DateParts.Day || part.type === DateParts.Month) {\n // Offset 2 positions for number\n part.position = [currentPos, currentPos + 2];\n currentPos += 2;\n } else if (part.type === DateParts.Year) {\n // Year part positions\n switch (part.formatType) {\n case FormatDesc.Numeric: {\n // Offset 4 positions for full year\n part.position = [currentPos, currentPos + 4];\n currentPos += 4;\n break;\n }\n case FormatDesc.TwoDigits: {\n // Offset 2 positions for short year\n part.position = [currentPos, currentPos + 2];\n currentPos += 2;\n break;\n }\n }\n } else if (part.type === DateTimeUtil.SEPARATOR) {\n // Separator positions\n part.position = [currentPos, currentPos + 1];\n currentPos++;\n }\n }\n }\n\n private static getCleanVal(\n inputData: string,\n datePart: DatePartInfo,\n prompt?: string\n ): string {\n return DateTimeUtil.trimEmptyPlaceholders(\n inputData.substring(datePart.start, datePart.end),\n prompt\n );\n }\n\n private static escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n private static trimEmptyPlaceholders(value: string, prompt?: string): string {\n const result = value.replace(\n new RegExp(DateTimeUtil.escapeRegExp(prompt ?? '_'), 'g'),\n ''\n );\n return result;\n }\n\n private static daysInMonth(fullYear: number, month: number): number {\n return new Date(fullYear, month + 1, 0).getDate();\n }\n\n private static prependValue(\n value: number,\n partLength: number,\n prependChar: string\n ): string {\n return (prependChar + value.toString()).slice(-partLength);\n }\n\n private static toTwelveHourFormat(value: string): number {\n let hour = Number.parseInt(\n value.replace(\n new RegExp(DateTimeUtil.escapeRegExp(DateTimeUtil._parser.prompt), 'g'),\n '0'\n ),\n 10\n );\n if (hour > 12) {\n hour -= 12;\n } else if (hour === 0) {\n hour = 12;\n }\n\n return hour;\n }\n}\n"]}
1
+ {"version":3,"file":"date-util.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { parseISODate } from '../calendar/helpers.js';\nimport { MaskParser } from '../mask-input/mask-parser.js';\n\nexport enum FormatDesc {\n Numeric = 'numeric',\n TwoDigits = '2-digit',\n}\n\nexport enum DateParts {\n Day = 'day',\n Month = 'month',\n Year = 'year',\n Date = 'date',\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n AmPm = 'amPm',\n Literal = 'literal',\n}\n\nexport enum DatePart {\n Month = 'month',\n Year = 'year',\n Date = 'date',\n Hours = 'hours',\n Minutes = 'minutes',\n Seconds = 'seconds',\n AmPm = 'amPm',\n}\n\n/** @ignore */\nexport interface DatePartInfo {\n type: DateParts;\n start: number;\n end: number;\n format: string;\n}\n\nexport interface DatePartDeltas {\n date?: number;\n month?: number;\n year?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n}\n\nfunction isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n\nexport abstract class DateTimeUtil {\n public static readonly DEFAULT_INPUT_FORMAT = 'MM/dd/yyyy';\n public static readonly DEFAULT_TIME_INPUT_FORMAT = 'hh:mm tt';\n private static readonly SEPARATOR = 'literal';\n private static readonly DEFAULT_LOCALE = 'en';\n private static readonly PREDEFINED_FORMATS = new Set([\n 'short',\n 'medium',\n 'long',\n 'full',\n ]);\n private static _parser = new MaskParser();\n\n public static parseValueFromMask(\n inputData: string,\n dateTimeParts: DatePartInfo[],\n promptChar?: string\n ): Date | null {\n const parts: { [key in DateParts]: number } = {} as any;\n dateTimeParts.forEach((dp) => {\n let value = Number.parseInt(\n DateTimeUtil.getCleanVal(inputData, dp, promptChar),\n 10\n );\n if (!value) {\n value =\n dp.type === DateParts.Date || dp.type === DateParts.Month ? 1 : 0;\n }\n parts[dp.type] = value;\n });\n parts[DateParts.Month] -= 1;\n\n if (parts[DateParts.Month] < 0 || 11 < parts[DateParts.Month]) {\n return null;\n }\n\n // TODO: Century threshold\n if (parts[DateParts.Year] < 50) {\n parts[DateParts.Year] += 2000;\n }\n\n if (\n parts[DateParts.Date] >\n DateTimeUtil.daysInMonth(parts[DateParts.Year], parts[DateParts.Month])\n ) {\n return null;\n }\n\n if (\n parts[DateParts.Hours] > 23 ||\n parts[DateParts.Minutes] > 59 ||\n parts[DateParts.Seconds] > 59\n ) {\n return null;\n }\n\n const amPm = dateTimeParts.find((p) => p.type === DateParts.AmPm);\n if (amPm) {\n parts[DateParts.Hours] %= 12;\n }\n\n if (\n amPm &&\n DateTimeUtil.getCleanVal(inputData, amPm, promptChar).toLowerCase() ===\n 'pm'\n ) {\n parts[DateParts.Hours] += 12;\n }\n\n return new Date(\n parts[DateParts.Year] || 2000,\n parts[DateParts.Month] || 0,\n parts[DateParts.Date] || 1,\n parts[DateParts.Hours] || 0,\n parts[DateParts.Minutes] || 0,\n parts[DateParts.Seconds] || 0\n );\n }\n\n public static getDefaultMask(locale: string): string {\n const parts = DateTimeUtil.getDefaultLocaleMask(\n locale || DateTimeUtil.DEFAULT_LOCALE\n );\n\n if (parts !== undefined) {\n parts.forEach((p: any) => {\n if (p.type !== DateParts.Year && p.type !== DateTimeUtil.SEPARATOR) {\n p.formatType = FormatDesc.TwoDigits;\n }\n });\n\n return DateTimeUtil.getMask(parts);\n }\n\n return '';\n }\n\n public static parseDateTimeFormat(\n mask: string,\n locale: string = DateTimeUtil.DEFAULT_LOCALE,\n noLeadingZero = false\n ): DatePartInfo[] {\n const format = mask || DateTimeUtil.getDefaultMask(locale);\n const dateTimeParts: DatePartInfo[] = [];\n const formatArray = Array.from(format);\n let currentPart: DatePartInfo | null = null;\n let position = 0;\n\n for (let i = 0; i < formatArray.length; i++, position++) {\n const type = DateTimeUtil.determineDatePart(formatArray[i]);\n if (currentPart) {\n if (currentPart.type === type) {\n currentPart.format += formatArray[i];\n if (i < formatArray.length - 1) {\n continue;\n }\n }\n\n DateTimeUtil.addCurrentPart(currentPart, dateTimeParts, noLeadingZero);\n position = currentPart.end;\n }\n\n currentPart = {\n start: position,\n end: position + formatArray[i].length,\n type,\n format: formatArray[i],\n };\n }\n\n // make sure the last member of a format like H:m:s is not omitted\n if (\n !dateTimeParts.filter((p) => p.format.includes(currentPart!.format))\n .length\n ) {\n DateTimeUtil.addCurrentPart(currentPart!, dateTimeParts, noLeadingZero);\n }\n // formats like \"y\" or \"yyy\" are treated like \"yyyy\" while editing\n const yearPart = dateTimeParts.filter((p) => p.type === DateParts.Year)[0];\n if (yearPart && yearPart.format !== 'yy') {\n yearPart.end += 4 - yearPart.format.length;\n yearPart.format = 'yyyy';\n }\n\n return dateTimeParts;\n }\n\n public static parseIsoDate(value: string): Date | null {\n return parseISODate(value);\n }\n\n public static isValidDate(value: any): value is Date {\n if (isDate(value)) {\n return !Number.isNaN(value.getTime());\n }\n\n return false;\n }\n\n public static formatDate(\n value: Date,\n locale: string,\n format: string,\n noLeadingZero = false\n ): string {\n const options: any = {};\n let formattedDate = '';\n\n switch (format) {\n case 'short':\n case 'long':\n case 'medium':\n case 'full':\n options.dateStyle = format;\n options.timeStyle = format;\n break;\n case 'shortDate':\n case 'longDate':\n case 'mediumDate':\n case 'fullDate':\n options.dateStyle = format.toLowerCase().split('date')[0];\n break;\n case 'shortTime':\n case 'longTime':\n case 'mediumTime':\n case 'fullTime':\n options.timeStyle = format.toLowerCase().split('time')[0];\n break;\n default:\n return DateTimeUtil.setDisplayFormatOptions(\n value,\n format,\n locale,\n noLeadingZero\n );\n }\n\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(locale, options);\n } catch {\n formatter = new Intl.DateTimeFormat(DateTimeUtil.DEFAULT_LOCALE, options);\n }\n\n formattedDate = formatter.format(value);\n\n return formattedDate;\n }\n\n public static getPartValue(\n datePartInfo: DatePartInfo,\n partLength: number,\n _dateValue: Date | null\n ): string {\n let maskedValue: any;\n const datePart = datePartInfo.type;\n\n switch (datePart) {\n case DateParts.Date:\n maskedValue = _dateValue!.getDate();\n break;\n case DateParts.Month:\n // months are zero based\n maskedValue = _dateValue!.getMonth() + 1;\n break;\n case DateParts.Year:\n if (partLength === 2) {\n maskedValue = DateTimeUtil.prependValue(\n Number.parseInt(_dateValue!.getFullYear().toString().slice(-2), 10),\n partLength,\n '0'\n );\n } else {\n maskedValue = _dateValue!.getFullYear();\n }\n break;\n case DateParts.Hours:\n if (datePartInfo.format.indexOf('h') !== -1) {\n maskedValue = DateTimeUtil.prependValue(\n DateTimeUtil.toTwelveHourFormat(_dateValue!.getHours().toString()),\n partLength,\n '0'\n );\n } else {\n maskedValue = _dateValue!.getHours();\n }\n break;\n case DateParts.Minutes:\n maskedValue = _dateValue!.getMinutes();\n break;\n case DateParts.Seconds:\n maskedValue = _dateValue!.getSeconds();\n break;\n case DateParts.AmPm:\n maskedValue = _dateValue!.getHours() >= 12 ? 'PM' : 'AM';\n break;\n }\n\n if (datePartInfo.type !== DateParts.AmPm) {\n return DateTimeUtil.prependValue(maskedValue, partLength, '0');\n }\n\n return maskedValue;\n }\n\n public static spinYear(delta: number, newDate: Date): Date {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear() + delta,\n newDate.getMonth()\n );\n if (newDate.getDate() > maxDate) {\n // clip to max to avoid leap year change shifting the entire value\n newDate.setDate(maxDate);\n }\n newDate.setFullYear(newDate.getFullYear() + delta);\n\n return newDate;\n }\n\n public static spinMonth(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear(),\n newDate.getMonth() + delta\n );\n if (newDate.getDate() > maxDate) {\n newDate.setDate(maxDate);\n }\n\n const maxMonth = 11;\n const minMonth = 0;\n let month = newDate.getMonth() + delta;\n if (month > maxMonth) {\n month = spinLoop ? (month % maxMonth) - 1 : maxMonth;\n } else if (month < minMonth) {\n month = spinLoop ? maxMonth + (month % maxMonth) + 1 : minMonth;\n }\n\n newDate.setMonth(month);\n }\n\n public static spinDate(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxDate = DateTimeUtil.daysInMonth(\n newDate.getFullYear(),\n newDate.getMonth()\n );\n let date = newDate.getDate() + delta;\n if (date > maxDate) {\n date = spinLoop ? date % maxDate : maxDate;\n } else if (date < 1) {\n date = spinLoop ? maxDate + (date % maxDate) : 1;\n }\n\n newDate.setDate(date);\n }\n\n public static spinHours(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxHour = 23;\n const minHour = 0;\n let hours = newDate.getHours() + delta;\n if (hours > maxHour) {\n hours = spinLoop ? (hours % maxHour) - 1 : maxHour;\n } else if (hours < minHour) {\n hours = spinLoop ? maxHour + (hours % maxHour) + 1 : minHour;\n }\n\n newDate.setHours(hours);\n }\n\n public static spinMinutes(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxMinutes = 59;\n const minMinutes = 0;\n let minutes = newDate.getMinutes() + delta;\n if (minutes > maxMinutes) {\n minutes = spinLoop ? (minutes % maxMinutes) - 1 : maxMinutes;\n } else if (minutes < minMinutes) {\n minutes = spinLoop ? maxMinutes + (minutes % maxMinutes) + 1 : minMinutes;\n }\n\n newDate.setMinutes(minutes);\n }\n\n public static spinSeconds(\n delta: number,\n newDate: Date,\n spinLoop: boolean\n ): void {\n const maxSeconds = 59;\n const minSeconds = 0;\n let seconds = newDate.getSeconds() + delta;\n if (seconds > maxSeconds) {\n seconds = spinLoop ? (seconds % maxSeconds) - 1 : maxSeconds;\n } else if (seconds < minSeconds) {\n seconds = spinLoop ? maxSeconds + (seconds % maxSeconds) + 1 : minSeconds;\n }\n\n newDate.setSeconds(seconds);\n }\n\n public static spinAmPm(\n newDate: Date,\n currentDate: Date,\n amPmFromMask: string\n ): Date {\n let date = new Date(newDate);\n\n switch (amPmFromMask) {\n case 'AM':\n date = new Date(newDate.setHours(newDate.getHours() + 12));\n break;\n case 'PM':\n date = new Date(newDate.setHours(newDate.getHours() - 12));\n break;\n }\n if (date.getDate() !== currentDate.getDate()) {\n return currentDate;\n }\n\n return date;\n }\n\n public static greaterThanMaxValue(\n value: Date,\n maxValue: Date,\n includeTime = true,\n includeDate = true\n ): boolean {\n if (includeTime && includeDate) {\n return value.getTime() > maxValue.getTime();\n }\n\n const _value = new Date(value.getTime());\n const _maxValue = new Date(maxValue.getTime());\n if (!includeTime) {\n _value.setHours(0, 0, 0, 0);\n _maxValue.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n _value.setFullYear(0, 0, 0);\n _maxValue.setFullYear(0, 0, 0);\n }\n\n return _value.getTime() > _maxValue.getTime();\n }\n\n /**\n * Determines whether the provided value is less than the provided min value.\n *\n * @param includeTime set to false if you want to exclude time portion of the two dates\n * @param includeDate set to false if you want to exclude the date portion of the two dates\n * @returns true if provided value is less than provided minValue\n */\n public static lessThanMinValue(\n value: Date,\n minValue: Date,\n includeTime = true,\n includeDate = true\n ): boolean {\n if (includeTime && includeDate) {\n return value.getTime() < minValue.getTime();\n }\n\n const _value = new Date(value.getTime());\n const _minValue = new Date(minValue.getTime());\n if (!includeTime) {\n _value.setHours(0, 0, 0, 0);\n _minValue.setHours(0, 0, 0, 0);\n }\n if (!includeDate) {\n _value.setFullYear(0, 0, 0);\n _minValue.setFullYear(0, 0, 0);\n }\n\n return _value.getTime() < _minValue.getTime();\n }\n\n /**\n * Validates a value within a given min and max value range.\n *\n * @param value The value to validate\n * @param minValue The lowest possible value that `value` can take\n * @param maxValue The largest possible value that `value` can take\n */\n public static validateMinMax(\n value: Date,\n minValue: Date | string,\n maxValue: Date | string,\n includeTime = true,\n includeDate = true\n ) {\n // if (!value) {\n // return null;\n // }\n const errors = {};\n const min = DateTimeUtil.isValidDate(minValue)\n ? minValue\n : DateTimeUtil.parseIsoDate(minValue);\n const max = DateTimeUtil.isValidDate(maxValue)\n ? maxValue\n : DateTimeUtil.parseIsoDate(maxValue);\n if (\n min &&\n value &&\n DateTimeUtil.lessThanMinValue(value, min, includeTime, includeDate)\n ) {\n Object.assign(errors, { minValue: true });\n }\n if (\n max &&\n value &&\n DateTimeUtil.greaterThanMaxValue(value, max, includeTime, includeDate)\n ) {\n Object.assign(errors, { maxValue: true });\n }\n\n return errors;\n }\n\n /**\n * Transforms the predefined format to a display format containing only date parts.\n *\n * @param format The format to check and transform\n */\n public static predefinedToDateDisplayFormat(format?: string) {\n return format && DateTimeUtil.PREDEFINED_FORMATS.has(format)\n ? `${format}Date`\n : format;\n }\n\n private static setDisplayFormatOptions(\n value: Date,\n format: string,\n locale: string,\n noLeadingZero = false\n ) {\n const options: any = {};\n const parts = DateTimeUtil.parseDateTimeFormat(\n format,\n locale,\n noLeadingZero\n );\n\n const datePartFormatOptionMap = new Map([\n [DateParts.Date, 'day'],\n [DateParts.Month, 'month'],\n [DateParts.Year, 'year'],\n [DateParts.Hours, 'hour'],\n [DateParts.Minutes, 'minute'],\n [DateParts.Seconds, 'second'],\n [DateParts.AmPm, 'dayPeriod'],\n ]);\n\n const dateFormatMap = new Map([\n ['d', 'numeric'],\n ['dd', '2-digit'],\n ['M', 'numeric'],\n ['MM', '2-digit'],\n ['MMM', 'short'],\n ['MMMM', 'long'],\n ['MMMMM', 'narrow'],\n ['y', 'numeric'],\n ['yy', '2-digit'],\n ['yyy', 'numeric'],\n ['yyyy', 'numeric'],\n ['h', 'numeric'],\n ['hh', '2-digit'],\n ['H', 'numeric'],\n ['HH', '2-digit'],\n ['m', 'numeric'],\n ['mm', '2-digit'],\n ['s', 'numeric'],\n ['ss', '2-digit'],\n ['ttt', 'short'],\n ['tttt', 'long'],\n ['ttttt', 'narrow'],\n ]);\n\n for (const part of parts) {\n if (part.type !== DateParts.Literal) {\n const option = datePartFormatOptionMap.get(part.type);\n const format =\n dateFormatMap.get(part.format) ||\n dateFormatMap.get(part.format.substring(0, 2));\n\n if (option && format) {\n options[option] = format;\n\n if (part.type === DateParts.Hours) {\n if (part.format.charAt(0) === 'h') {\n options.hourCycle = 'h12';\n } else {\n options.hourCycle = 'h23';\n }\n }\n }\n\n // Need to be set if we have 't' or 'tt'.\n if (part.type === DateParts.AmPm && part.format.length <= 2) {\n options.hour = '2-digit';\n options.hourCycle = 'h12';\n }\n }\n }\n\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(\n locale,\n options as Intl.DateTimeFormatOptions\n );\n } catch {\n formatter = new Intl.DateTimeFormat(DateTimeUtil.DEFAULT_LOCALE, options);\n }\n\n const formattedParts = formatter.formatToParts(value);\n\n let result = '';\n\n for (const part of parts) {\n if (part.type === DateParts.Literal) {\n result += part.format;\n continue;\n }\n\n const option = datePartFormatOptionMap.get(part.type)!;\n result += formattedParts.filter((p) => p.type === option)[0]?.value || '';\n }\n\n return result;\n }\n\n private static getMask(dateStruct: any[]): string {\n const mask = [];\n\n for (const part of dateStruct) {\n switch (part.formatType) {\n case FormatDesc.Numeric: {\n if (part.type === DateParts.Day) {\n mask.push('d');\n } else if (part.type === DateParts.Month) {\n mask.push('M');\n } else {\n mask.push('yyyy');\n }\n break;\n }\n case FormatDesc.TwoDigits: {\n if (part.type === DateParts.Day) {\n mask.push('dd');\n } else if (part.type === DateParts.Month) {\n mask.push('MM');\n } else {\n mask.push('yy');\n }\n }\n }\n\n if (part.type === DateTimeUtil.SEPARATOR) {\n mask.push(part.value);\n }\n }\n\n return mask.join('');\n }\n\n private static addCurrentPart(\n currentPart: DatePartInfo,\n dateTimeParts: DatePartInfo[],\n noLeadingZero = false\n ): void {\n DateTimeUtil.ensureLeadingZero(currentPart, noLeadingZero);\n currentPart.end = currentPart.start + currentPart.format.length;\n dateTimeParts.push(currentPart);\n }\n\n private static ensureLeadingZero(part: DatePartInfo, noLeadingZero = false) {\n switch (part.type) {\n case DateParts.Date:\n case DateParts.Month:\n case DateParts.Hours:\n case DateParts.Minutes:\n case DateParts.Seconds:\n if (part.format.length === 1 && !noLeadingZero) {\n part.format = part.format.repeat(2);\n }\n break;\n }\n }\n\n private static determineDatePart(char: string): DateParts {\n switch (char) {\n case 'd':\n case 'D':\n return DateParts.Date;\n case 'M':\n return DateParts.Month;\n case 'y':\n case 'Y':\n return DateParts.Year;\n case 'h':\n case 'H':\n return DateParts.Hours;\n case 'm':\n return DateParts.Minutes;\n case 's':\n case 'S':\n return DateParts.Seconds;\n case 't':\n case 'T':\n return DateParts.AmPm;\n default:\n return DateParts.Literal;\n }\n }\n\n private static getDefaultLocaleMask(locale: string) {\n const dateStruct: any = [];\n let formatter: Intl.DateTimeFormat;\n try {\n formatter = new Intl.DateTimeFormat(locale);\n } catch {\n return;\n }\n\n const formatToParts = formatter.formatToParts(new Date());\n\n for (const part of formatToParts) {\n if (part.type === DateTimeUtil.SEPARATOR) {\n dateStruct.push({\n type: DateTimeUtil.SEPARATOR,\n value: part.value,\n });\n } else {\n dateStruct.push({\n type: part.type,\n });\n }\n }\n\n const formatterOptions = formatter.resolvedOptions();\n\n for (const part of dateStruct) {\n switch (part.type) {\n case DateParts.Day: {\n part.formatType = formatterOptions.day;\n break;\n }\n case DateParts.Month: {\n part.formatType = formatterOptions.month;\n break;\n }\n case DateParts.Year: {\n part.formatType = formatterOptions.year;\n break;\n }\n }\n }\n\n DateTimeUtil.fillDatePartsPositions(dateStruct);\n return dateStruct;\n }\n\n private static fillDatePartsPositions(dateArray: any[]): void {\n let currentPos = 0;\n\n for (const part of dateArray) {\n // Day|Month part positions\n if (part.type === DateParts.Day || part.type === DateParts.Month) {\n // Offset 2 positions for number\n part.position = [currentPos, currentPos + 2];\n currentPos += 2;\n } else if (part.type === DateParts.Year) {\n // Year part positions\n switch (part.formatType) {\n case FormatDesc.Numeric: {\n // Offset 4 positions for full year\n part.position = [currentPos, currentPos + 4];\n currentPos += 4;\n break;\n }\n case FormatDesc.TwoDigits: {\n // Offset 2 positions for short year\n part.position = [currentPos, currentPos + 2];\n currentPos += 2;\n break;\n }\n }\n } else if (part.type === DateTimeUtil.SEPARATOR) {\n // Separator positions\n part.position = [currentPos, currentPos + 1];\n currentPos++;\n }\n }\n }\n\n private static getCleanVal(\n inputData: string,\n datePart: DatePartInfo,\n prompt?: string\n ): string {\n return DateTimeUtil.trimEmptyPlaceholders(\n inputData.substring(datePart.start, datePart.end),\n prompt\n );\n }\n\n private static escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n private static trimEmptyPlaceholders(value: string, prompt?: string): string {\n const result = value.replace(\n new RegExp(DateTimeUtil.escapeRegExp(prompt ?? '_'), 'g'),\n ''\n );\n return result;\n }\n\n private static daysInMonth(fullYear: number, month: number): number {\n return new Date(fullYear, month + 1, 0).getDate();\n }\n\n private static prependValue(\n value: number,\n partLength: number,\n prependChar: string\n ): string {\n return (prependChar + value.toString()).slice(-partLength);\n }\n\n private static toTwelveHourFormat(value: string): number {\n let hour = Number.parseInt(\n value.replace(\n new RegExp(DateTimeUtil.escapeRegExp(DateTimeUtil._parser.prompt), 'g'),\n '0'\n ),\n 10\n );\n if (hour > 12) {\n hour -= 12;\n } else if (hour === 0) {\n hour = 12;\n }\n\n return hour;\n }\n}\n"]}
@@ -21,7 +21,9 @@ import { styles } from './themes/dialog.base.css.js';
21
21
  import { styles as shared } from './themes/shared/dialog.common.css.js';
22
22
  import { all } from './themes/themes.js';
23
23
  let nextId = 1;
24
- class IgcDialogComponent extends EventEmitterMixin(LitElement) {
24
+ export default class IgcDialogComponent extends EventEmitterMixin(LitElement) {
25
+ static { this.tagName = 'igc-dialog'; }
26
+ static { this.styles = [styles, shared]; }
25
27
  static register() {
26
28
  registerComponent(IgcDialogComponent, IgcButtonComponent);
27
29
  }
@@ -170,9 +172,6 @@ class IgcDialogComponent extends EventEmitterMixin(LitElement) {
170
172
  `;
171
173
  }
172
174
  }
173
- IgcDialogComponent.tagName = 'igc-dialog';
174
- IgcDialogComponent.styles = [styles, shared];
175
- export default IgcDialogComponent;
176
175
  __decorate([
177
176
  state()
178
177
  ], IgcDialogComponent.prototype, "_animating", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport { numberInRangeInclusive } from '../common/util.js';\nimport { styles } from './themes/dialog.base.css.js';\nimport { styles as shared } from './themes/shared/dialog.common.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcDialogComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nlet nextId = 1;\n\n/* blazorAdditionalDependency: IgcButtonComponent */\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed. Cancelable.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot of the dialog.\n * @slot title - Renders content in the title slot of the dialog header.\n * @slot message - Renders the message content of the dialog.\n * @slot footer - Renders content in the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container of the dialog.\n * @csspart footer - The footer container of the dialog.\n * @csspart overlay - The backdrop overlay of the dialog.\n */\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-dialog';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDialogComponent, IgcButtonComponent);\n }\n\n //#region Private state and properties\n\n private readonly _titleId = `title-${nextId++}`;\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('title', 'message', 'footer'),\n });\n\n private readonly _dialogRef = createRef<HTMLDialogElement>();\n private readonly _player = addAnimationController(this, this._dialogRef);\n\n /**\n * Backdrop animation helper.\n */\n @state()\n private _animating = false;\n\n private get _dialog(): HTMLDialogElement {\n return this._dialogRef.value!;\n }\n\n //#endregion\n\n //#region Public properties\n\n /**\n * Whether the dialog should be kept open when pressing the 'Escape' button.\n * @attr keep-open-on-escape\n */\n @property({ type: Boolean, attribute: 'keep-open-on-escape' })\n public keepOpenOnEscape = false;\n\n /**\n * Whether the dialog should be closed when clicking outside of it.\n * @attr close-on-outside-click\n */\n @property({ type: Boolean, attribute: 'close-on-outside-click' })\n public closeOnOutsideClick = false;\n\n /**\n * Whether to hide the default action button for the dialog.\n *\n * When there is projected content in the `footer` slot this property\n * has no effect.\n * @attr hide-default-action\n */\n @property({ type: Boolean, attribute: 'hide-default-action' })\n public hideDefaultAction = false;\n\n /**\n * Whether the dialog is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Sets the title of the dialog.\n * @attr\n */\n @property()\n public override title!: string;\n\n /** Sets the return value for the dialog. */\n @property({ attribute: false })\n public returnValue!: string;\n\n //#endregion\n\n //#region Internal API\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override firstUpdated(): void {\n if (this.open) {\n this._dialog.showModal();\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected _handleOpenState(): void {\n this.open ? this._dialog.showModal() : this._dialog.close();\n }\n\n private _emitClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n private async _hide(emitEvent = false): Promise<boolean> {\n if (!this.open || (emitEvent && !this._emitClosing())) {\n return false;\n }\n\n this._animating = true;\n await this._player.playExclusive(fadeOut());\n this.open = false;\n this._animating = false;\n\n if (emitEvent) {\n await this.updateComplete;\n this.emitEvent('igcClosed');\n }\n\n return true;\n }\n\n protected _handleFormSubmit(event: SubmitEvent): void {\n const form = event.target as HTMLFormElement;\n\n if (form.method === 'dialog') {\n if (hasSubmitter(event.submitter)) {\n this.returnValue = event.submitter.value ?? '';\n }\n\n if (!event.defaultPrevented) {\n this._hide(true);\n }\n }\n }\n\n private _handleCancel(event: Event): void {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this._hide(true);\n }\n }\n\n private _handleClick({ clientX, clientY, target }: PointerEvent): void {\n if (this.closeOnOutsideClick && this._dialog === target) {\n const rect = this._dialog.getBoundingClientRect();\n const inX = numberInRangeInclusive(clientX, rect.left, rect.right);\n const inY = numberInRangeInclusive(clientY, rect.top, rect.bottom);\n\n if (!(inX && inY)) {\n this._hide(true);\n }\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /** Opens the dialog. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this._player.playExclusive(fadeIn());\n return true;\n }\n\n /** Closes the dialog. */\n public async hide(): Promise<boolean> {\n return this._hide();\n }\n\n /** Toggles the open state of the dialog. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n\n //#endregion\n\n //#region Render methods\n\n protected _renderBackdrop() {\n return html`\n <div\n aria-hidden=${!this.open}\n part=${partMap({ backdrop: true, animating: this._animating })}\n ></div>\n `;\n }\n\n protected _renderHeader() {\n return html`\n <header part=\"title\" id=${this._titleId}>\n <slot name=\"title\">\n <span>${this.title}</span>\n </slot>\n </header>\n `;\n }\n\n protected _renderContent() {\n const hasMessage = this._slots.hasAssignedElements('message');\n return html`\n <section part=\"content\">\n <slot name=\"message\" ?hidden=${!hasMessage}></slot>\n <slot @submit=${this._handleFormSubmit}></slot>\n </section>\n `;\n }\n\n protected _renderFooter() {\n return html`\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`\n <igc-button variant=\"flat\" @click=${() => this._hide(true)}>\n OK\n </igc-button>\n `}\n </slot>\n </footer>\n `;\n }\n\n protected override render() {\n const hasTitle = this._slots.hasAssignedElements('title') || !!this.title;\n const hasFooter =\n this._slots.hasAssignedElements('footer') || !this.hideDefaultAction;\n const labelledBy = this.ariaLabel ?? this._titleId;\n\n return html`\n ${this._renderBackdrop()}\n <dialog\n ${ref(this._dialogRef)}\n part=${partMap({ base: true, titled: hasTitle, footed: hasFooter })}\n role=\"dialog\"\n aria-label=${this.ariaLabel || nothing}\n aria-labelledby=${labelledBy || nothing}\n @click=${this._handleClick}\n @cancel=${this._handleCancel}\n >\n ${this._renderHeader()} ${this._renderContent()} ${this._renderFooter()}\n </dialog>\n `;\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n\nfunction hasSubmitter(\n submitter: SubmitEvent['submitter']\n): submitter is HTMLButtonElement | HTMLInputElement {\n return submitter != null;\n}\n"]}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/components/dialog/dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../animations/presets/fade/index.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport IgcButtonComponent from '../button/button.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport { numberInRangeInclusive } from '../common/util.js';\nimport { styles } from './themes/dialog.base.css.js';\nimport { styles as shared } from './themes/shared/dialog.common.css.js';\nimport { all } from './themes/themes.js';\n\nexport interface IgcDialogComponentEventMap {\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nlet nextId = 1;\n\n/* blazorAdditionalDependency: IgcButtonComponent */\n/**\n * Represents a Dialog component.\n *\n * @element igc-dialog\n *\n * @fires igcClosing - Emitter just before the dialog is closed. Cancelable.\n * @fires igcClosed - Emitted after closing the dialog.\n *\n * @slot - Renders content inside the default slot of the dialog.\n * @slot title - Renders content in the title slot of the dialog header.\n * @slot message - Renders the message content of the dialog.\n * @slot footer - Renders content in the dialog footer.\n *\n * @csspart base - The base wrapper of the dialog.\n * @csspart title - The title container of the dialog.\n * @csspart footer - The footer container of the dialog.\n * @csspart overlay - The backdrop overlay of the dialog.\n */\nexport default class IgcDialogComponent extends EventEmitterMixin<\n IgcDialogComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-dialog';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDialogComponent, IgcButtonComponent);\n }\n\n //#region Private state and properties\n\n private readonly _titleId = `title-${nextId++}`;\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('title', 'message', 'footer'),\n });\n\n private readonly _dialogRef = createRef<HTMLDialogElement>();\n private readonly _player = addAnimationController(this, this._dialogRef);\n\n /**\n * Backdrop animation helper.\n */\n @state()\n private _animating = false;\n\n private get _dialog(): HTMLDialogElement {\n return this._dialogRef.value!;\n }\n\n //#endregion\n\n //#region Public properties\n\n /**\n * Whether the dialog should be kept open when pressing the 'Escape' button.\n * @attr keep-open-on-escape\n */\n @property({ type: Boolean, attribute: 'keep-open-on-escape' })\n public keepOpenOnEscape = false;\n\n /**\n * Whether the dialog should be closed when clicking outside of it.\n * @attr close-on-outside-click\n */\n @property({ type: Boolean, attribute: 'close-on-outside-click' })\n public closeOnOutsideClick = false;\n\n /**\n * Whether to hide the default action button for the dialog.\n *\n * When there is projected content in the `footer` slot this property\n * has no effect.\n * @attr hide-default-action\n */\n @property({ type: Boolean, attribute: 'hide-default-action' })\n public hideDefaultAction = false;\n\n /**\n * Whether the dialog is opened.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Sets the title of the dialog.\n * @attr\n */\n @property()\n public override title!: string;\n\n /** Sets the return value for the dialog. */\n @property({ attribute: false })\n public returnValue!: string;\n\n //#endregion\n\n //#region Internal API\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override firstUpdated(): void {\n if (this.open) {\n this._dialog.showModal();\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n protected _handleOpenState(): void {\n this.open ? this._dialog.showModal() : this._dialog.close();\n }\n\n private _emitClosing(): boolean {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n private async _hide(emitEvent = false): Promise<boolean> {\n if (!this.open || (emitEvent && !this._emitClosing())) {\n return false;\n }\n\n this._animating = true;\n await this._player.playExclusive(fadeOut());\n this.open = false;\n this._animating = false;\n\n if (emitEvent) {\n await this.updateComplete;\n this.emitEvent('igcClosed');\n }\n\n return true;\n }\n\n protected _handleFormSubmit(event: SubmitEvent): void {\n const form = event.target as HTMLFormElement;\n\n if (form.method === 'dialog') {\n if (hasSubmitter(event.submitter)) {\n this.returnValue = event.submitter.value ?? '';\n }\n\n if (!event.defaultPrevented) {\n this._hide(true);\n }\n }\n }\n\n private _handleCancel(event: Event): void {\n event.preventDefault();\n\n if (!this.keepOpenOnEscape) {\n this._hide(true);\n }\n }\n\n private _handleClick({ clientX, clientY, target }: PointerEvent): void {\n if (this.closeOnOutsideClick && this._dialog === target) {\n const rect = this._dialog.getBoundingClientRect();\n const inX = numberInRangeInclusive(clientX, rect.left, rect.right);\n const inY = numberInRangeInclusive(clientY, rect.top, rect.bottom);\n\n if (!(inX && inY)) {\n this._hide(true);\n }\n }\n }\n\n //#endregion\n\n //#region Public API\n\n /** Opens the dialog. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this._player.playExclusive(fadeIn());\n return true;\n }\n\n /** Closes the dialog. */\n public async hide(): Promise<boolean> {\n return this._hide();\n }\n\n /** Toggles the open state of the dialog. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n\n //#endregion\n\n //#region Render methods\n\n protected _renderBackdrop() {\n return html`\n <div\n aria-hidden=${!this.open}\n part=${partMap({ backdrop: true, animating: this._animating })}\n ></div>\n `;\n }\n\n protected _renderHeader() {\n return html`\n <header part=\"title\" id=${this._titleId}>\n <slot name=\"title\">\n <span>${this.title}</span>\n </slot>\n </header>\n `;\n }\n\n protected _renderContent() {\n const hasMessage = this._slots.hasAssignedElements('message');\n return html`\n <section part=\"content\">\n <slot name=\"message\" ?hidden=${!hasMessage}></slot>\n <slot @submit=${this._handleFormSubmit}></slot>\n </section>\n `;\n }\n\n protected _renderFooter() {\n return html`\n <footer part=\"footer\">\n <slot name=\"footer\">\n ${this.hideDefaultAction\n ? nothing\n : html`\n <igc-button variant=\"flat\" @click=${() => this._hide(true)}>\n OK\n </igc-button>\n `}\n </slot>\n </footer>\n `;\n }\n\n protected override render() {\n const hasTitle = this._slots.hasAssignedElements('title') || !!this.title;\n const hasFooter =\n this._slots.hasAssignedElements('footer') || !this.hideDefaultAction;\n const labelledBy = this.ariaLabel ?? this._titleId;\n\n return html`\n ${this._renderBackdrop()}\n <dialog\n ${ref(this._dialogRef)}\n part=${partMap({ base: true, titled: hasTitle, footed: hasFooter })}\n role=\"dialog\"\n aria-label=${this.ariaLabel || nothing}\n aria-labelledby=${labelledBy || nothing}\n @click=${this._handleClick}\n @cancel=${this._handleCancel}\n >\n ${this._renderHeader()} ${this._renderContent()} ${this._renderFooter()}\n </dialog>\n `;\n }\n\n //#endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dialog': IgcDialogComponent;\n }\n}\n\nfunction hasSubmitter(\n submitter: SubmitEvent['submitter']\n): submitter is HTMLButtonElement | HTMLInputElement {\n return submitter != null;\n}\n"]}
@@ -12,7 +12,9 @@ import { registerComponent } from '../common/definitions/register.js';
12
12
  import { styles } from './themes/divider.base.css.js';
13
13
  import { styles as shared } from './themes/shared/divider.common.css.js';
14
14
  import { all } from './themes/themes.js';
15
- class IgcDividerComponent extends LitElement {
15
+ export default class IgcDividerComponent extends LitElement {
16
+ static { this.tagName = 'igc-divider'; }
17
+ static { this.styles = [styles, shared]; }
16
18
  static register() {
17
19
  registerComponent(IgcDividerComponent);
18
20
  }
@@ -42,9 +44,6 @@ class IgcDividerComponent extends LitElement {
42
44
  return html ``;
43
45
  }
44
46
  }
45
- IgcDividerComponent.tagName = 'igc-divider';
46
- IgcDividerComponent.styles = [styles, shared];
47
- export default IgcDividerComponent;
48
47
  __decorate([
49
48
  property({ type: Boolean, reflect: true })
50
49
  ], IgcDividerComponent.prototype, "vertical", null);
@@ -1 +1 @@
1
- {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/components/divider/divider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAWzC,MAAqB,mBAAoB,SAAQ,UAAU;IAKlD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAiBD,IAAW,QAAQ,CAAC,KAAc;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACtB,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAmBD;QACE,KAAK,EAAE,CAAC;QA5CO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE;gBACX,IAAI,EAAE,WAAW;gBACjB,eAAe,EAAE,UAAU;aAC5B;SACF,CAAC,CAAC;QAEK,cAAS,GAAG,KAAK,CAAC;QAyBnB,WAAM,GAAG,KAAK,CAAC;QASf,SAAI,GAAgB,OAAO,CAAC;QAIjC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;;AA1DsB,2BAAO,GAAG,aAAa,AAAhB,CAAiB;AACxB,0BAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAF9B,mBAAmB;AAwBtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAM1C;AAYM;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACrB;AASf;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACO","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { DividerType } from '../types.js';\nimport { styles } from './themes/divider.base.css.js';\nimport { styles as shared } from './themes/shared/divider.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The igc-divider allows the content author to easily create a horizontal/vertical rule as a break between content to better organize information on a page.\n *\n * @element igc-divider\n *\n * @cssproperty --color - Sets the color of the divider.\n * @cssproperty --inset - Shrinks the divider by the given amount from the start. If `middle` is set it will shrink from both sides.\n *\n */\nexport default class IgcDividerComponent extends LitElement {\n public static readonly tagName = 'igc-divider';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDividerComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'separator',\n ariaOrientation: 'vertical',\n },\n });\n\n private _vertical = false;\n\n /**\n * Whether to render a vertical divider line.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set vertical(value: boolean) {\n this._vertical = Boolean(value);\n this._internals.setARIA({\n ariaOrientation: this._vertical ? 'vertical' : 'horizontal',\n });\n }\n\n public get vertical(): boolean {\n return this._vertical;\n }\n\n /**\n * When set and inset is provided, it will shrink the divider line from both sides.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public middle = false;\n\n /* alternateName: lineType */\n /**\n * Whether to render a solid or a dashed divider line.\n * @attr type\n * @default 'solid'\n */\n @property({ reflect: true })\n public type: DividerType = 'solid';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override render() {\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-divider': IgcDividerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/components/divider/divider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAWzC,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU;aAClC,YAAO,GAAG,aAAa,AAAhB,CAAiB;aACxB,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAiBD,IAAW,QAAQ,CAAC,KAAc;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACtB,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAmBD;QACE,KAAK,EAAE,CAAC;QA5CO,eAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE;YACzD,WAAW,EAAE;gBACX,IAAI,EAAE,WAAW;gBACjB,eAAe,EAAE,UAAU;aAC5B;SACF,CAAC,CAAC;QAEK,cAAS,GAAG,KAAK,CAAC;QAyBnB,WAAM,GAAG,KAAK,CAAC;QASf,SAAI,GAAgB,OAAO,CAAC;QAIjC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;;AAnCD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAM1C;AAYM;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDACrB;AASf;IADN,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACO","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { DividerType } from '../types.js';\nimport { styles } from './themes/divider.base.css.js';\nimport { styles as shared } from './themes/shared/divider.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The igc-divider allows the content author to easily create a horizontal/vertical rule as a break between content to better organize information on a page.\n *\n * @element igc-divider\n *\n * @cssproperty --color - Sets the color of the divider.\n * @cssproperty --inset - Shrinks the divider by the given amount from the start. If `middle` is set it will shrink from both sides.\n *\n */\nexport default class IgcDividerComponent extends LitElement {\n public static readonly tagName = 'igc-divider';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDividerComponent);\n }\n\n private readonly _internals = addInternalsController(this, {\n initialARIA: {\n role: 'separator',\n ariaOrientation: 'vertical',\n },\n });\n\n private _vertical = false;\n\n /**\n * Whether to render a vertical divider line.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set vertical(value: boolean) {\n this._vertical = Boolean(value);\n this._internals.setARIA({\n ariaOrientation: this._vertical ? 'vertical' : 'horizontal',\n });\n }\n\n public get vertical(): boolean {\n return this._vertical;\n }\n\n /**\n * When set and inset is provided, it will shrink the divider line from both sides.\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public middle = false;\n\n /* alternateName: lineType */\n /**\n * Whether to render a solid or a dashed divider line.\n * @attr type\n * @default 'solid'\n */\n @property({ reflect: true })\n public type: DividerType = 'solid';\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override render() {\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-divider': IgcDividerComponent;\n }\n}\n"]}
@@ -13,7 +13,9 @@ import IgcDropdownItemComponent from './dropdown-item.js';
13
13
  import { styles } from './themes/dropdown-group.base.css.js';
14
14
  import { all } from './themes/group.js';
15
15
  import { styles as shared } from './themes/shared/group/dropdown-group.common.css.js';
16
- class IgcDropdownGroupComponent extends LitElement {
16
+ export default class IgcDropdownGroupComponent extends LitElement {
17
+ static { this.tagName = 'igc-dropdown-group'; }
18
+ static { this.styles = [styles, shared]; }
17
19
  static register() {
18
20
  registerComponent(IgcDropdownGroupComponent);
19
21
  }
@@ -35,9 +37,6 @@ class IgcDropdownGroupComponent extends LitElement {
35
37
  `;
36
38
  }
37
39
  }
38
- IgcDropdownGroupComponent.tagName = 'igc-dropdown-group';
39
- IgcDropdownGroupComponent.styles = [styles, shared];
40
- export default IgcDropdownGroupComponent;
41
40
  __decorate([
42
41
  queryAssignedElements({
43
42
  flatten: true,
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-group.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,wBAAwB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,oDAAoD,CAAC;AAYtF,MAAqB,yBAA0B,SAAQ,UAAU;IAKxD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAUD;QACE,KAAK,EAAE,CAAC;QAER,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhC,sBAAsB,CAAC,IAAI,EAAE;YAC3B,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;aACd;SACF,CAAC,CAAC;IACL,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;KAKV,CAAC;IACJ,CAAC;;AAnCsB,iCAAO,GAAW,oBAAoB,CAAC;AACvC,gCAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;eAF9B,yBAAyB;AAerC;IAJN,qBAAqB,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,wBAAwB,CAAC,OAAO;KAC3C,CAAC;wDAC6C","sourcesContent":["import { html, LitElement } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcDropdownItemComponent from './dropdown-item.js';\nimport { styles } from './themes/dropdown-group.base.css.js';\nimport { all } from './themes/group.js';\nimport { styles as shared } from './themes/shared/group/dropdown-group.common.css.js';\n\n/**\n * A container for a group of `igc-dropdown-item` components.\n *\n * @element igc-dropdown-group\n *\n * @slot label - Contains the group's label.\n * @slot - Intended to contain the items belonging to this group.\n *\n * @csspart label - The native label element.\n */\nexport default class IgcDropdownGroupComponent extends LitElement {\n public static readonly tagName: string = 'igc-dropdown-group';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDropdownGroupComponent);\n }\n\n /* blazorSuppress */\n /** All child `igc-dropdown-item`s. */\n @queryAssignedElements({\n flatten: true,\n selector: IgcDropdownItemComponent.tagName,\n })\n public items!: Array<IgcDropdownItemComponent>;\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addInternalsController(this, {\n initialARIA: {\n role: 'group',\n },\n });\n }\n\n protected override render() {\n return html`\n <label part=\"label\">\n <slot name=\"label\"></slot>\n </label>\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-group': IgcDropdownGroupComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown-group.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,wBAAwB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,oDAAoD,CAAC;AAYtF,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,UAAU;aACxC,YAAO,GAAW,oBAAoB,CAAC;aACvC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAUD;QACE,KAAK,EAAE,CAAC;QAER,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEhC,sBAAsB,CAAC,IAAI,EAAE;YAC3B,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;aACd;SACF,CAAC,CAAC;IACL,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;;KAKV,CAAC;IACJ,CAAC;;AArBM;IAJN,qBAAqB,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,wBAAwB,CAAC,OAAO;KAC3C,CAAC;wDAC6C","sourcesContent":["import { html, LitElement } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcDropdownItemComponent from './dropdown-item.js';\nimport { styles } from './themes/dropdown-group.base.css.js';\nimport { all } from './themes/group.js';\nimport { styles as shared } from './themes/shared/group/dropdown-group.common.css.js';\n\n/**\n * A container for a group of `igc-dropdown-item` components.\n *\n * @element igc-dropdown-group\n *\n * @slot label - Contains the group's label.\n * @slot - Intended to contain the items belonging to this group.\n *\n * @csspart label - The native label element.\n */\nexport default class IgcDropdownGroupComponent extends LitElement {\n public static readonly tagName: string = 'igc-dropdown-group';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDropdownGroupComponent);\n }\n\n /* blazorSuppress */\n /** All child `igc-dropdown-item`s. */\n @queryAssignedElements({\n flatten: true,\n selector: IgcDropdownItemComponent.tagName,\n })\n public items!: Array<IgcDropdownItemComponent>;\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addInternalsController(this, {\n initialARIA: {\n role: 'group',\n },\n });\n }\n\n protected override render() {\n return html`\n <label part=\"label\">\n <slot name=\"label\"></slot>\n </label>\n <slot></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-group': IgcDropdownGroupComponent;\n }\n}\n"]}
@@ -4,7 +4,9 @@ import { registerComponent } from '../common/definitions/register.js';
4
4
  import { styles } from './themes/dropdown-header.base.css.js';
5
5
  import { all } from './themes/header.js';
6
6
  import { styles as shared } from './themes/shared/header/dropdown-header.common.css.js';
7
- class IgcDropdownHeaderComponent extends LitElement {
7
+ export default class IgcDropdownHeaderComponent extends LitElement {
8
+ static { this.tagName = 'igc-dropdown-header'; }
9
+ static { this.styles = [styles, shared]; }
8
10
  static register() {
9
11
  registerComponent(IgcDropdownHeaderComponent);
10
12
  }
@@ -16,7 +18,4 @@ class IgcDropdownHeaderComponent extends LitElement {
16
18
  return html `<slot></slot>`;
17
19
  }
18
20
  }
19
- IgcDropdownHeaderComponent.tagName = 'igc-dropdown-header';
20
- IgcDropdownHeaderComponent.styles = [styles, shared];
21
- export default IgcDropdownHeaderComponent;
22
21
  //# sourceMappingURL=dropdown-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-header.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sDAAsD,CAAC;AASxF,MAAqB,0BAA2B,SAAQ,UAAU;IAKzD,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAfsB,kCAAO,GAAW,qBAAqB,CAAC;AACxC,iCAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;eAF9B,0BAA0B","sourcesContent":["import { html, LitElement } from 'lit';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { styles } from './themes/dropdown-header.base.css.js';\nimport { all } from './themes/header.js';\nimport { styles as shared } from './themes/shared/header/dropdown-header.common.css.js';\n\n/**\n * Represents a header item in a igc-dropdown list.\n *\n * @element igc-dropdown-header\n *\n * @slot - Renders the header.\n */\nexport default class IgcDropdownHeaderComponent extends LitElement {\n public static readonly tagName: string = 'igc-dropdown-header';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDropdownHeaderComponent);\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-header': IgcDropdownHeaderComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown-header.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,sDAAsD,CAAC;AASxF,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,UAAU;aACzC,YAAO,GAAW,qBAAqB,CAAC;aACxC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { styles } from './themes/dropdown-header.base.css.js';\nimport { all } from './themes/header.js';\nimport { styles as shared } from './themes/shared/header/dropdown-header.common.css.js';\n\n/**\n * Represents a header item in a igc-dropdown list.\n *\n * @element igc-dropdown-header\n *\n * @slot - Renders the header.\n */\nexport default class IgcDropdownHeaderComponent extends LitElement {\n public static readonly tagName: string = 'igc-dropdown-header';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDropdownHeaderComponent);\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-header': IgcDropdownHeaderComponent;\n }\n}\n"]}
@@ -4,7 +4,9 @@ import { IgcBaseOptionLikeComponent } from '../common/mixins/option.js';
4
4
  import { styles } from './themes/dropdown-item.base.css.js';
5
5
  import { all } from './themes/item.js';
6
6
  import { styles as shared } from './themes/shared/item/dropdown-item.common.css.js';
7
- class IgcDropdownItemComponent extends IgcBaseOptionLikeComponent {
7
+ export default class IgcDropdownItemComponent extends IgcBaseOptionLikeComponent {
8
+ static { this.tagName = 'igc-dropdown-item'; }
9
+ static { this.styles = [styles, shared]; }
8
10
  static register() {
9
11
  registerComponent(IgcDropdownItemComponent);
10
12
  }
@@ -13,7 +15,4 @@ class IgcDropdownItemComponent extends IgcBaseOptionLikeComponent {
13
15
  addThemingController(this, all);
14
16
  }
15
17
  }
16
- IgcDropdownItemComponent.tagName = 'igc-dropdown-item';
17
- IgcDropdownItemComponent.styles = [styles, shared];
18
- export default IgcDropdownItemComponent;
19
18
  //# sourceMappingURL=dropdown-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-item.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,kDAAkD,CAAC;AAepF,MAAqB,wBAAyB,SAAQ,0BAA0B;IAKvE,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;;AAXsB,gCAAO,GAAG,mBAAmB,CAAC;AAC9B,+BAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;eAF9B,wBAAwB","sourcesContent":["import { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { IgcBaseOptionLikeComponent } from '../common/mixins/option.js';\nimport { styles } from './themes/dropdown-item.base.css.js';\nimport { all } from './themes/item.js';\nimport { styles as shared } from './themes/shared/item/dropdown-item.common.css.js';\n\n/**\n * Represents an item in a dropdown list.\n *\n * @element igc-dropdown-item\n *\n * @slot prefix - Renders content before the item's main content.\n * @slot - Renders the item's main content.\n * @slot suffix - Renders content after the item's main content.\n *\n * @csspart prefix - The prefix wrapper of the igc-dropdown-item.\n * @csspart content - The main content wrapper of the igc-dropdown-item.\n * @csspart suffix - The suffix wrapper of the igc-dropdown-item.\n */\nexport default class IgcDropdownItemComponent extends IgcBaseOptionLikeComponent {\n public static readonly tagName = 'igc-dropdown-item';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDropdownItemComponent);\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-item': IgcDropdownItemComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown-item.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,kDAAkD,CAAC;AAepF,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,0BAA0B;aACvD,YAAO,GAAG,mBAAmB,CAAC;aAC9B,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG1C,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC","sourcesContent":["import { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { IgcBaseOptionLikeComponent } from '../common/mixins/option.js';\nimport { styles } from './themes/dropdown-item.base.css.js';\nimport { all } from './themes/item.js';\nimport { styles as shared } from './themes/shared/item/dropdown-item.common.css.js';\n\n/**\n * Represents an item in a dropdown list.\n *\n * @element igc-dropdown-item\n *\n * @slot prefix - Renders content before the item's main content.\n * @slot - Renders the item's main content.\n * @slot suffix - Renders content after the item's main content.\n *\n * @csspart prefix - The prefix wrapper of the igc-dropdown-item.\n * @csspart content - The main content wrapper of the igc-dropdown-item.\n * @csspart suffix - The suffix wrapper of the igc-dropdown-item.\n */\nexport default class IgcDropdownItemComponent extends IgcBaseOptionLikeComponent {\n public static readonly tagName = 'igc-dropdown-item';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDropdownItemComponent);\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown-item': IgcDropdownItemComponent;\n }\n}\n"]}
@@ -24,7 +24,10 @@ import IgcDropdownItemComponent from './dropdown-item.js';
24
24
  import { all } from './themes/container.js';
25
25
  import { styles } from './themes/dropdown.base.css.js';
26
26
  import { styles as shared } from './themes/shared/dropdown.common.css.js';
27
- let IgcDropdownComponent = IgcDropdownComponent_1 = class IgcDropdownComponent extends EventEmitterMixin(IgcBaseComboBoxLikeComponent) {
27
+ let IgcDropdownComponent = class IgcDropdownComponent extends EventEmitterMixin(IgcBaseComboBoxLikeComponent) {
28
+ static { IgcDropdownComponent_1 = this; }
29
+ static { this.tagName = 'igc-dropdown'; }
30
+ static { this.styles = [styles, shared]; }
28
31
  static register() {
29
32
  registerComponent(IgcDropdownComponent_1, IgcDropdownGroupComponent, IgcDropdownHeaderComponent, IgcDropdownItemComponent, IgcPopoverComponent);
30
33
  }
@@ -236,8 +239,6 @@ let IgcDropdownComponent = IgcDropdownComponent_1 = class IgcDropdownComponent e
236
239
  </igc-popover>`;
237
240
  }
238
241
  };
239
- IgcDropdownComponent.tagName = 'igc-dropdown';
240
- IgcDropdownComponent.styles = [styles, shared];
241
242
  __decorate([
242
243
  state()
243
244
  ], IgcDropdownComponent.prototype, "_selectedItem", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n type KeyBindingController,\n type KeyBindingObserverCleanup,\n tabKey,\n} from '../common/controllers/key-bindings.js';\nimport { addRootClickController } from '../common/controllers/root-click.js';\nimport { addRootScrollHandler } from '../common/controllers/root-scroll.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n IgcBaseComboBoxLikeComponent,\n setInitialSelectionState,\n} from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n findElementFromEventPath,\n getElementByIdFromRoot,\n isString,\n} from '../common/util.js';\nimport IgcPopoverComponent, {\n type PopoverPlacement,\n} from '../popover/popover.js';\nimport type { PopoverScrollStrategy } from '../types.js';\nimport IgcDropdownGroupComponent from './dropdown-group.js';\nimport IgcDropdownHeaderComponent from './dropdown-header.js';\nimport IgcDropdownItemComponent from './dropdown-item.js';\nimport { all } from './themes/container.js';\nimport { styles } from './themes/dropdown.base.css.js';\nimport { styles as shared } from './themes/shared/dropdown.common.css.js';\n\nexport interface IgcDropdownComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<IgcDropdownItemComponent>;\n}\n\n/**\n * Represents a DropDown component.\n *\n * @element igc-dropdown\n *\n * @fires igcChange - Emitted when the selected item changes.\n * @fires igcOpening - Emitted just before the dropdown is open.\n * @fires igcOpened - Emitted after the dropdown is open.\n * @fires igcClosing - Emitter just before the dropdown is closed.\n * @fires igcClosed - Emitted after closing the dropdown.\n *\n * @slot target - Renders the dropdown's target element.\n * @slot - Renders the dropdown list items.\n *\n * @csspart base - The dropdown list wrapper container.\n * @csspart list - The dropdown list element.\n */\n@blazorAdditionalDependencies(\n 'IgcDropdownItemComponent, IgcDropdownHeaderComponent, IgcDropdownGroupComponent'\n)\nexport default class IgcDropdownComponent extends EventEmitterMixin<\n IgcDropdownComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n>(IgcBaseComboBoxLikeComponent) {\n public static readonly tagName = 'igc-dropdown';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcPopoverComponent\n );\n }\n\n private readonly _keyBindings: KeyBindingController;\n\n private _rootScrollController = addRootScrollHandler(this, {\n hideCallback: this.handleClosing,\n });\n\n protected override readonly _rootClickController = addRootClickController(\n this,\n {\n onHide: this.handleClosing,\n }\n );\n\n @state()\n protected _selectedItem: IgcDropdownItemComponent | null = null;\n\n @state()\n protected _activeItem!: IgcDropdownItemComponent;\n\n private get _activeItems() {\n return Array.from(\n getActiveItems<IgcDropdownItemComponent>(\n this,\n IgcDropdownItemComponent.tagName\n )\n );\n }\n\n private _targetListeners!: KeyBindingObserverCleanup;\n\n @state()\n private _target?: HTMLElement;\n\n @query('slot[name=\"target\"]', true)\n protected trigger!: HTMLSlotElement;\n\n /** The preferred placement of the component around the target element.\n * @attr\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * Determines the behavior of the component during scrolling of the parent container.\n * @attr scroll-strategy\n */\n @property({ attribute: 'scroll-strategy' })\n public scrollStrategy: PopoverScrollStrategy = 'scroll';\n\n /**\n * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.\n * When true, once enough space is detected on its preferred side, it will flip back.\n * @attr\n */\n @property({ type: Boolean })\n public flip = false;\n\n /**\n * The distance from the target element.\n * @attr\n */\n @property({ type: Number })\n public distance = 0;\n\n /**\n * Whether the dropdown's width should be the same as the target's one.\n * @attr same-width\n */\n @property({ type: Boolean, attribute: 'same-width' })\n public sameWidth = false;\n\n /** Returns the items of the dropdown. */\n public get items() {\n return Array.from(\n getItems<IgcDropdownItemComponent>(this, IgcDropdownItemComponent.tagName)\n );\n }\n\n /** Returns the group items of the dropdown. */\n public get groups() {\n return Array.from(\n getItems<IgcDropdownGroupComponent>(\n this,\n IgcDropdownGroupComponent.tagName\n )\n );\n }\n\n /** Returns the selected item from the dropdown or null. */\n public get selectedItem() {\n return this._selectedItem;\n }\n\n @watch('scrollStrategy', { waitUntilFirstUpdate: true })\n protected scrollStrategyChanged() {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n @watch('keepOpenOnOutsideClick', { waitUntilFirstUpdate: true })\n protected openStateChange() {\n this._updateAnchorAccessibility(this._target);\n this._rootClickController.update();\n this._rootScrollController.update();\n\n if (!this.open) {\n this._target = undefined;\n this._targetListeners?.unsubscribe();\n this._rootClickController.update({ target: undefined });\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n this._keyBindings = addKeybindings(this, {\n skip: () => !this.open,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set(tabKey, this.onTabKey, {\n preventDefault: false,\n })\n .set(escapeKey, this.onEscapeKey)\n .set(arrowUp, this.onArrowUp)\n .set(arrowLeft, this.onArrowUp)\n .set(arrowDown, this.onArrowDown)\n .set(arrowRight, this.onArrowDown)\n .set(enterKey, this.onEnterKey)\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey);\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n if (selected) {\n this._selectItem(selected, false);\n }\n }\n\n public override disconnectedCallback() {\n this._targetListeners?.unsubscribe();\n super.disconnectedCallback();\n }\n\n private handleListBoxClick(event: MouseEvent) {\n const item = findElementFromEventPath<IgcDropdownItemComponent>(\n IgcDropdownItemComponent.tagName,\n event\n );\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private handleChange(item: IgcDropdownItemComponent) {\n this.emitEvent('igcChange', { detail: item });\n }\n\n private handleSlotChange() {\n this._updateAnchorAccessibility();\n }\n\n private onArrowUp() {\n this._navigateToActiveItem(\n getPreviousActiveItem(this.items, this._activeItem)\n );\n }\n\n private onArrowDown() {\n this._navigateToActiveItem(getNextActiveItem(this.items, this._activeItem));\n }\n\n protected onHomeKey() {\n this._navigateToActiveItem(this._activeItems.at(0));\n }\n\n protected onEndKey() {\n this._navigateToActiveItem(this._activeItems.at(-1));\n }\n\n protected onTabKey() {\n if (this._activeItem) {\n this._selectItem(this._activeItem);\n }\n if (this.open) {\n this._hide(true);\n }\n }\n\n protected onEscapeKey() {\n this._hide(true);\n }\n\n protected onEnterKey() {\n this._selectItem(this._activeItem);\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n private activateItem(item: IgcDropdownItemComponent) {\n if (this._activeItem) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n this._activeItem.active = true;\n }\n\n private _navigateToActiveItem(item?: IgcDropdownItemComponent) {\n if (item) {\n this.activateItem(item);\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _selectItem(item: IgcDropdownItemComponent, emit = true) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n this.activateItem(item);\n this._selectedItem = item;\n this._selectedItem.selected = true;\n\n if (emit) this.handleChange(this._selectedItem);\n if (emit && !this.keepOpenOnSelect) this._hide(true);\n\n return this._selectedItem;\n }\n\n private _updateAnchorAccessibility(anchor?: HTMLElement | null) {\n const target =\n anchor ?? this.trigger.assignedElements({ flatten: true }).at(0);\n\n // Find tabbable elements ?\n if (target) {\n target.setAttribute('aria-haspopup', 'true');\n target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n private getItem(value: string) {\n return this.items.find((item) => item.value === value);\n }\n\n private _setTarget(anchor: HTMLElement | string) {\n const target = isString(anchor)\n ? getElementByIdFromRoot(this, anchor)!\n : anchor;\n\n this._target = target;\n this._targetListeners = this._keyBindings.observeElement(target);\n this._rootClickController.update({ target });\n }\n\n /* blazorSuppress */\n /** Shows the component. */\n public override async show(target?: HTMLElement | string): Promise<boolean> {\n if (target) {\n this._setTarget(target);\n }\n return super.show();\n }\n\n /* blazorSuppress */\n /** Toggles the open state of the component. */\n public override async toggle(\n target?: HTMLElement | string\n ): Promise<boolean> {\n return this.open ? this.hide() : this.show(target);\n }\n\n /* blazorSuppress */\n /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public navigateTo(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\n /* blazorSuppress */\n /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public select(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n public select(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n return item ? this._selectItem(item, false) : null;\n }\n\n /** Clears the current selection of the dropdown. */\n public clearSelection() {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n }\n\n protected override render() {\n return html`<igc-popover\n ?open=${this.open}\n ?flip=${this.flip}\n ?same-width=${this.sameWidth}\n .anchor=${this._target}\n .offset=${this.distance}\n .placement=${this.placement}\n shift\n >\n <slot\n id=\"dropdown-target\"\n name=\"target\"\n slot=\"anchor\"\n @click=${this.handleAnchorClick}\n @slotchange=${this.handleSlotChange}\n ></slot>\n <div part=\"base\" @click=${this.handleListBoxClick} .inert=${!this.open}>\n <div\n id=\"dropdown-list\"\n role=\"listbox\"\n part=\"list\"\n aria-labelledby=\"dropdown-target\"\n >\n <slot></slot>\n </div>\n </div>\n </igc-popover>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown': IgcDropdownComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\n\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n type KeyBindingController,\n type KeyBindingObserverCleanup,\n tabKey,\n} from '../common/controllers/key-bindings.js';\nimport { addRootClickController } from '../common/controllers/root-click.js';\nimport { addRootScrollHandler } from '../common/controllers/root-scroll.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport {\n getActiveItems,\n getItems,\n getNextActiveItem,\n getPreviousActiveItem,\n IgcBaseComboBoxLikeComponent,\n setInitialSelectionState,\n} from '../common/mixins/combo-box.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport {\n findElementFromEventPath,\n getElementByIdFromRoot,\n isString,\n} from '../common/util.js';\nimport IgcPopoverComponent, {\n type PopoverPlacement,\n} from '../popover/popover.js';\nimport type { PopoverScrollStrategy } from '../types.js';\nimport IgcDropdownGroupComponent from './dropdown-group.js';\nimport IgcDropdownHeaderComponent from './dropdown-header.js';\nimport IgcDropdownItemComponent from './dropdown-item.js';\nimport { all } from './themes/container.js';\nimport { styles } from './themes/dropdown.base.css.js';\nimport { styles as shared } from './themes/shared/dropdown.common.css.js';\n\nexport interface IgcDropdownComponentEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n igcChange: CustomEvent<IgcDropdownItemComponent>;\n}\n\n/**\n * Represents a DropDown component.\n *\n * @element igc-dropdown\n *\n * @fires igcChange - Emitted when the selected item changes.\n * @fires igcOpening - Emitted just before the dropdown is open.\n * @fires igcOpened - Emitted after the dropdown is open.\n * @fires igcClosing - Emitter just before the dropdown is closed.\n * @fires igcClosed - Emitted after closing the dropdown.\n *\n * @slot target - Renders the dropdown's target element.\n * @slot - Renders the dropdown list items.\n *\n * @csspart base - The dropdown list wrapper container.\n * @csspart list - The dropdown list element.\n */\n@blazorAdditionalDependencies(\n 'IgcDropdownItemComponent, IgcDropdownHeaderComponent, IgcDropdownGroupComponent'\n)\nexport default class IgcDropdownComponent extends EventEmitterMixin<\n IgcDropdownComponentEventMap,\n AbstractConstructor<IgcBaseComboBoxLikeComponent>\n>(IgcBaseComboBoxLikeComponent) {\n public static readonly tagName = 'igc-dropdown';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcPopoverComponent\n );\n }\n\n private readonly _keyBindings: KeyBindingController;\n\n private _rootScrollController = addRootScrollHandler(this, {\n hideCallback: this.handleClosing,\n });\n\n protected override readonly _rootClickController = addRootClickController(\n this,\n {\n onHide: this.handleClosing,\n }\n );\n\n @state()\n protected _selectedItem: IgcDropdownItemComponent | null = null;\n\n @state()\n protected _activeItem!: IgcDropdownItemComponent;\n\n private get _activeItems() {\n return Array.from(\n getActiveItems<IgcDropdownItemComponent>(\n this,\n IgcDropdownItemComponent.tagName\n )\n );\n }\n\n private _targetListeners!: KeyBindingObserverCleanup;\n\n @state()\n private _target?: HTMLElement;\n\n @query('slot[name=\"target\"]', true)\n protected trigger!: HTMLSlotElement;\n\n /** The preferred placement of the component around the target element.\n * @attr\n */\n @property()\n public placement: PopoverPlacement = 'bottom-start';\n\n /**\n * Determines the behavior of the component during scrolling of the parent container.\n * @attr scroll-strategy\n */\n @property({ attribute: 'scroll-strategy' })\n public scrollStrategy: PopoverScrollStrategy = 'scroll';\n\n /**\n * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area.\n * When true, once enough space is detected on its preferred side, it will flip back.\n * @attr\n */\n @property({ type: Boolean })\n public flip = false;\n\n /**\n * The distance from the target element.\n * @attr\n */\n @property({ type: Number })\n public distance = 0;\n\n /**\n * Whether the dropdown's width should be the same as the target's one.\n * @attr same-width\n */\n @property({ type: Boolean, attribute: 'same-width' })\n public sameWidth = false;\n\n /** Returns the items of the dropdown. */\n public get items() {\n return Array.from(\n getItems<IgcDropdownItemComponent>(this, IgcDropdownItemComponent.tagName)\n );\n }\n\n /** Returns the group items of the dropdown. */\n public get groups() {\n return Array.from(\n getItems<IgcDropdownGroupComponent>(\n this,\n IgcDropdownGroupComponent.tagName\n )\n );\n }\n\n /** Returns the selected item from the dropdown or null. */\n public get selectedItem() {\n return this._selectedItem;\n }\n\n @watch('scrollStrategy', { waitUntilFirstUpdate: true })\n protected scrollStrategyChanged() {\n this._rootScrollController.update({ resetListeners: true });\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n @watch('keepOpenOnOutsideClick', { waitUntilFirstUpdate: true })\n protected openStateChange() {\n this._updateAnchorAccessibility(this._target);\n this._rootClickController.update();\n this._rootScrollController.update();\n\n if (!this.open) {\n this._target = undefined;\n this._targetListeners?.unsubscribe();\n this._rootClickController.update({ target: undefined });\n }\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n this._keyBindings = addKeybindings(this, {\n skip: () => !this.open,\n bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },\n })\n .set(tabKey, this.onTabKey, {\n preventDefault: false,\n })\n .set(escapeKey, this.onEscapeKey)\n .set(arrowUp, this.onArrowUp)\n .set(arrowLeft, this.onArrowUp)\n .set(arrowDown, this.onArrowDown)\n .set(arrowRight, this.onArrowDown)\n .set(enterKey, this.onEnterKey)\n .set(homeKey, this.onHomeKey)\n .set(endKey, this.onEndKey);\n }\n\n protected override async firstUpdated() {\n await this.updateComplete;\n const selected = setInitialSelectionState(this.items);\n if (selected) {\n this._selectItem(selected, false);\n }\n }\n\n public override disconnectedCallback() {\n this._targetListeners?.unsubscribe();\n super.disconnectedCallback();\n }\n\n private handleListBoxClick(event: MouseEvent) {\n const item = findElementFromEventPath<IgcDropdownItemComponent>(\n IgcDropdownItemComponent.tagName,\n event\n );\n if (item && this._activeItems.includes(item)) {\n this._selectItem(item);\n }\n }\n\n private handleChange(item: IgcDropdownItemComponent) {\n this.emitEvent('igcChange', { detail: item });\n }\n\n private handleSlotChange() {\n this._updateAnchorAccessibility();\n }\n\n private onArrowUp() {\n this._navigateToActiveItem(\n getPreviousActiveItem(this.items, this._activeItem)\n );\n }\n\n private onArrowDown() {\n this._navigateToActiveItem(getNextActiveItem(this.items, this._activeItem));\n }\n\n protected onHomeKey() {\n this._navigateToActiveItem(this._activeItems.at(0));\n }\n\n protected onEndKey() {\n this._navigateToActiveItem(this._activeItems.at(-1));\n }\n\n protected onTabKey() {\n if (this._activeItem) {\n this._selectItem(this._activeItem);\n }\n if (this.open) {\n this._hide(true);\n }\n }\n\n protected onEscapeKey() {\n this._hide(true);\n }\n\n protected onEnterKey() {\n this._selectItem(this._activeItem);\n }\n\n protected handleClosing() {\n this._hide(true);\n }\n\n private activateItem(item: IgcDropdownItemComponent) {\n if (this._activeItem) {\n this._activeItem.active = false;\n }\n\n this._activeItem = item;\n this._activeItem.active = true;\n }\n\n private _navigateToActiveItem(item?: IgcDropdownItemComponent) {\n if (item) {\n this.activateItem(item);\n item.scrollIntoView({ behavior: 'auto', block: 'nearest' });\n }\n }\n\n private _selectItem(item: IgcDropdownItemComponent, emit = true) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n this.activateItem(item);\n this._selectedItem = item;\n this._selectedItem.selected = true;\n\n if (emit) this.handleChange(this._selectedItem);\n if (emit && !this.keepOpenOnSelect) this._hide(true);\n\n return this._selectedItem;\n }\n\n private _updateAnchorAccessibility(anchor?: HTMLElement | null) {\n const target =\n anchor ?? this.trigger.assignedElements({ flatten: true }).at(0);\n\n // Find tabbable elements ?\n if (target) {\n target.setAttribute('aria-haspopup', 'true');\n target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n private getItem(value: string) {\n return this.items.find((item) => item.value === value);\n }\n\n private _setTarget(anchor: HTMLElement | string) {\n const target = isString(anchor)\n ? getElementByIdFromRoot(this, anchor)!\n : anchor;\n\n this._target = target;\n this._targetListeners = this._keyBindings.observeElement(target);\n this._rootClickController.update({ target });\n }\n\n /* blazorSuppress */\n /** Shows the component. */\n public override async show(target?: HTMLElement | string): Promise<boolean> {\n if (target) {\n this._setTarget(target);\n }\n return super.show();\n }\n\n /* blazorSuppress */\n /** Toggles the open state of the component. */\n public override async toggle(\n target?: HTMLElement | string\n ): Promise<boolean> {\n return this.open ? this.hide() : this.show(target);\n }\n\n /* blazorSuppress */\n /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public navigateTo(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Navigates to the specified item. If it exists, returns the found item, otherwise - null. */\n public navigateTo(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n\n if (item) {\n this._navigateToActiveItem(item);\n }\n\n return item ?? null;\n }\n\n /* blazorSuppress */\n /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */\n public select(value: string): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */\n public select(index: number): IgcDropdownItemComponent | null;\n /* blazorSuppress */\n /** Selects the specified item. If it exists, returns the found item, otherwise - null. */\n public select(value: string | number): IgcDropdownItemComponent | null {\n const item = isString(value) ? this.getItem(value) : this.items[value];\n return item ? this._selectItem(item, false) : null;\n }\n\n /** Clears the current selection of the dropdown. */\n public clearSelection() {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n this._selectedItem = null;\n }\n\n protected override render() {\n return html`<igc-popover\n ?open=${this.open}\n ?flip=${this.flip}\n ?same-width=${this.sameWidth}\n .anchor=${this._target}\n .offset=${this.distance}\n .placement=${this.placement}\n shift\n >\n <slot\n id=\"dropdown-target\"\n name=\"target\"\n slot=\"anchor\"\n @click=${this.handleAnchorClick}\n @slotchange=${this.handleSlotChange}\n ></slot>\n <div part=\"base\" @click=${this.handleListBoxClick} .inert=${!this.open}>\n <div\n id=\"dropdown-list\"\n role=\"listbox\"\n part=\"list\"\n aria-labelledby=\"dropdown-target\"\n >\n <slot></slot>\n </div>\n </div>\n </igc-popover>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-dropdown': IgcDropdownComponent;\n }\n}\n"]}