@trendyol/baklava 3.4.2 → 3.5.0-beta.10

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 (205) hide show
  1. package/dist/baklava-react.js +1 -1
  2. package/dist/baklava-svelte.d.ts +4 -0
  3. package/dist/baklava.d.ts +2 -0
  4. package/dist/baklava.d.ts.map +1 -1
  5. package/dist/baklava.js +1 -1
  6. package/dist/chunk-276RDWEQ.js +95 -0
  7. package/dist/{chunk-HBPBDC7T.js.map → chunk-276RDWEQ.js.map} +4 -4
  8. package/dist/{chunk-LZ6VDMPM.js → chunk-2JDJGZRM.js} +2 -2
  9. package/dist/chunk-2PI5BUSE.js +2 -0
  10. package/dist/chunk-2PI5BUSE.js.map +7 -0
  11. package/dist/chunk-2XEDFGYF.js +59 -0
  12. package/dist/chunk-2XEDFGYF.js.map +7 -0
  13. package/dist/chunk-3D7WG3ON.js +5 -0
  14. package/dist/chunk-3D7WG3ON.js.map +7 -0
  15. package/dist/{chunk-NW7MDZJB.js → chunk-4BLKAURK.js} +2 -2
  16. package/dist/{chunk-3MLXIDOD.js → chunk-5TPDRTCU.js} +2 -2
  17. package/dist/chunk-6JU6I4L7.js +2 -0
  18. package/dist/chunk-6JU6I4L7.js.map +7 -0
  19. package/dist/{chunk-D7VPTSSK.js → chunk-7WQEZTFP.js} +2 -2
  20. package/dist/chunk-7WQEZTFP.js.map +7 -0
  21. package/dist/chunk-AIHL337R.js +50 -0
  22. package/dist/chunk-AIHL337R.js.map +7 -0
  23. package/dist/{chunk-3OQA4BKQ.js → chunk-BH64QNLE.js} +2 -2
  24. package/dist/{chunk-JTNWYMYZ.js → chunk-CNWKBBJJ.js} +2 -2
  25. package/dist/{chunk-KYLWO3YR.js → chunk-DAMBW5GX.js} +3 -3
  26. package/dist/{chunk-KYLWO3YR.js.map → chunk-DAMBW5GX.js.map} +3 -3
  27. package/dist/chunk-EFOTKJY4.js +80 -0
  28. package/dist/chunk-EFOTKJY4.js.map +7 -0
  29. package/dist/chunk-EH2C72PD.js +2 -0
  30. package/dist/chunk-EH2C72PD.js.map +7 -0
  31. package/dist/{chunk-LCAPXVGE.js → chunk-ERL6CBPO.js} +2 -2
  32. package/dist/{chunk-Z2AZS34W.js → chunk-G4DOH6BQ.js} +2 -2
  33. package/dist/{chunk-7HEDOM2M.js → chunk-GISZRI4I.js} +2 -2
  34. package/dist/{chunk-FS3MTRC3.js → chunk-IKYI4JCF.js} +2 -2
  35. package/dist/chunk-IZ2LK5GK.js +2 -0
  36. package/dist/{chunk-M4E4CVZ4.js → chunk-J24DBEJQ.js} +2 -2
  37. package/dist/{chunk-DPKNQOJX.js → chunk-J5YZ4HBV.js} +2 -2
  38. package/dist/{chunk-BDTCJ2JC.js → chunk-JXB2O63E.js} +2 -2
  39. package/dist/chunk-KC4ECXJJ.js +2 -0
  40. package/dist/chunk-KC4ECXJJ.js.map +7 -0
  41. package/dist/{chunk-5QGKDF4O.js → chunk-L5U5XRNP.js} +2 -2
  42. package/dist/chunk-LYHOM7F5.js +37 -0
  43. package/dist/chunk-LYHOM7F5.js.map +7 -0
  44. package/dist/{chunk-6XM52E7W.js → chunk-MWFGDECP.js} +2 -2
  45. package/dist/{chunk-FCOVZEHC.js → chunk-P5TOP3NH.js} +2 -2
  46. package/dist/chunk-PQEZBW3G.js +54 -0
  47. package/dist/chunk-PQEZBW3G.js.map +7 -0
  48. package/dist/{chunk-UK2ZEQBN.js → chunk-QDYWH7BU.js} +2 -2
  49. package/dist/{chunk-WZBUJ4ER.js → chunk-QF4LGACD.js} +2 -2
  50. package/dist/{chunk-UV7BOOVA.js → chunk-QKII4FCI.js} +2 -2
  51. package/dist/{chunk-5NSAJ3SX.js → chunk-S4BD3HT2.js} +2 -2
  52. package/dist/{chunk-23AVKNCC.js → chunk-SBCJY5IU.js} +2 -2
  53. package/dist/{chunk-LIUATY6B.js → chunk-SIP5IK3N.js} +2 -2
  54. package/dist/{chunk-UF5VCR36.js → chunk-STZJ3LBU.js} +2 -2
  55. package/dist/{chunk-UGRBWOQE.js → chunk-T5MEA7JO.js} +2 -2
  56. package/dist/{chunk-BCRV6HG6.js → chunk-TBB5HNL6.js} +2 -2
  57. package/dist/{chunk-7N7YHRPA.js → chunk-UQMXWLP6.js} +2 -2
  58. package/dist/{chunk-YH3MSMXL.js → chunk-WPESQSKX.js} +2 -2
  59. package/dist/{chunk-FANRUDPK.js → chunk-WUXXMMTM.js} +2 -2
  60. package/dist/chunk-X2MSD7NS.js +14 -0
  61. package/dist/chunk-X2MSD7NS.js.map +7 -0
  62. package/dist/{chunk-IR2QY2VG.js → chunk-YIKU2R7W.js} +2 -2
  63. package/dist/{chunk-OYHUG47P.js → chunk-ZE7GYACV.js} +2 -2
  64. package/dist/chunk-ZLE5MDX7.js +2 -0
  65. package/dist/chunk-ZLE5MDX7.js.map +7 -0
  66. package/dist/{chunk-HD7EU6S5.js → chunk-ZLJF4SVG.js} +2 -2
  67. package/dist/{chunk-NM74WWXQ.js → chunk-ZQ4MQ3U6.js} +2 -2
  68. package/dist/chunk-ZQ4MQ3U6.js.map +7 -0
  69. package/dist/components/accordion-group/accordion/bl-accordion.js +1 -1
  70. package/dist/components/accordion-group/bl-accordion-group.js +1 -1
  71. package/dist/components/alert/bl-alert.js +1 -1
  72. package/dist/components/badge/bl-badge.js +1 -1
  73. package/dist/components/button/bl-button.js +1 -1
  74. package/dist/components/calendar/bl-calendar.constant.js +1 -1
  75. package/dist/components/calendar/bl-calendar.js +1 -1
  76. package/dist/components/checkbox-group/bl-checkbox-group.js +1 -1
  77. package/dist/components/checkbox-group/checkbox/bl-checkbox.js +1 -1
  78. package/dist/components/datepicker/bl-datepicker.d.ts +4 -0
  79. package/dist/components/datepicker/bl-datepicker.d.ts.map +1 -1
  80. package/dist/components/datepicker/bl-datepicker.js +1 -1
  81. package/dist/components/dialog/bl-dialog.js +1 -1
  82. package/dist/components/dialog/bl-dialog.stories.js +1 -1
  83. package/dist/components/drawer/bl-drawer.js +1 -1
  84. package/dist/components/dropdown/bl-dropdown.js +1 -1
  85. package/dist/components/dropdown/group/bl-dropdown-group.js +1 -1
  86. package/dist/components/dropdown/item/bl-dropdown-item.js +1 -1
  87. package/dist/components/icon/bl-icon.js +1 -1
  88. package/dist/components/icon/icon-list.js +1 -1
  89. package/dist/components/input/bl-input.d.ts +4 -0
  90. package/dist/components/input/bl-input.d.ts.map +1 -1
  91. package/dist/components/input/bl-input.js +1 -1
  92. package/dist/components/link/bl-link.js +1 -1
  93. package/dist/components/link/bl-link.stories.js +1 -1
  94. package/dist/components/notification/bl-notification.js +1 -1
  95. package/dist/components/notification/bl-notification.stories.d.ts.map +1 -1
  96. package/dist/components/notification/bl-notification.stories.js +20 -8
  97. package/dist/components/notification/bl-notification.stories.js.map +2 -2
  98. package/dist/components/notification/card/bl-notification-card.js +1 -1
  99. package/dist/components/pagination/bl-pagination.js +1 -1
  100. package/dist/components/popover/bl-popover.d.ts.map +1 -1
  101. package/dist/components/popover/bl-popover.js +1 -1
  102. package/dist/components/progress-indicator/bl-progress-indicator.js +1 -1
  103. package/dist/components/radio-group/bl-radio-group.js +1 -1
  104. package/dist/components/radio-group/radio/bl-radio.js +1 -1
  105. package/dist/components/select/bl-select.d.ts.map +1 -1
  106. package/dist/components/select/bl-select.js +1 -1
  107. package/dist/components/select/option/bl-select-option.js +1 -1
  108. package/dist/components/spinner/bl-spinner.js +1 -1
  109. package/dist/components/split-button/bl-split-button.js +1 -1
  110. package/dist/components/stepper/bl-stepper-item.d.ts.map +1 -1
  111. package/dist/components/stepper/bl-stepper-item.js +1 -1
  112. package/dist/components/stepper/bl-stepper.js +1 -1
  113. package/dist/components/stepper/bl-stepper.stories.js +1 -1
  114. package/dist/components/switch/bl-switch.js +1 -1
  115. package/dist/components/tab-group/bl-tab-group.js +1 -1
  116. package/dist/components/tab-group/tab/bl-tab.js +1 -1
  117. package/dist/components/tab-group/tab-panel/bl-tab-panel.js +1 -1
  118. package/dist/components/table/bl-table.js +1 -1
  119. package/dist/components/table/table-body/bl-table-body.d.ts +4 -1
  120. package/dist/components/table/table-body/bl-table-body.d.ts.map +1 -1
  121. package/dist/components/table/table-body/bl-table-body.js +1 -1
  122. package/dist/components/table/table-cell/bl-table-cell.js +1 -1
  123. package/dist/components/table/table-header/bl-table-header.js +1 -1
  124. package/dist/components/table/table-header-cell/bl-table-header-cell.js +1 -1
  125. package/dist/components/table/table-row/bl-table-row.js +1 -1
  126. package/dist/components/tag/bl-tag.js +1 -1
  127. package/dist/components/textarea/bl-textarea.js +1 -1
  128. package/dist/components/tooltip/bl-tooltip.js +1 -1
  129. package/dist/components/tooltip/bl-tooltip.test.d.ts +6 -1
  130. package/dist/components/tooltip/bl-tooltip.test.d.ts.map +1 -1
  131. package/dist/custom-elements.json +63 -1
  132. package/dist/generated/locale-codes.js +1 -1
  133. package/dist/generated/locales/ar.d.ts +3 -0
  134. package/dist/generated/locales/ar.d.ts.map +1 -1
  135. package/dist/generated/locales/ar.js +1 -1
  136. package/dist/generated/locales/ar.js.map +4 -4
  137. package/dist/generated/locales/ro.d.ts +3 -0
  138. package/dist/generated/locales/ro.d.ts.map +1 -1
  139. package/dist/generated/locales/ro.js +1 -1
  140. package/dist/generated/locales/ro.js.map +4 -4
  141. package/dist/generated/locales/tr.d.ts +3 -0
  142. package/dist/generated/locales/tr.d.ts.map +1 -1
  143. package/dist/generated/locales/tr.js +1 -1
  144. package/dist/generated/locales/tr.js.map +4 -4
  145. package/dist/localization.d.ts +5 -0
  146. package/dist/localization.d.ts.map +1 -1
  147. package/dist/localization.js +1 -1
  148. package/dist/localization.js.map +4 -4
  149. package/dist/themes/dark.css +2 -0
  150. package/dist/themes/dark.css.map +7 -0
  151. package/dist/themes/default.css +1 -1
  152. package/dist/themes/default.css.map +2 -2
  153. package/dist/utilities/format-to-date-array.d.ts.map +1 -1
  154. package/package.json +10 -7
  155. package/dist/chunk-3IZAFXL6.js +0 -59
  156. package/dist/chunk-3IZAFXL6.js.map +0 -7
  157. package/dist/chunk-BWWXE4SL.js +0 -2
  158. package/dist/chunk-C2UDBDKV.js +0 -53
  159. package/dist/chunk-C2UDBDKV.js.map +0 -7
  160. package/dist/chunk-D7VPTSSK.js.map +0 -7
  161. package/dist/chunk-EZSEQHRH.js +0 -2
  162. package/dist/chunk-EZSEQHRH.js.map +0 -7
  163. package/dist/chunk-HBPBDC7T.js +0 -95
  164. package/dist/chunk-HCSEQTUP.js +0 -37
  165. package/dist/chunk-HCSEQTUP.js.map +0 -7
  166. package/dist/chunk-IEFQ6PGY.js +0 -80
  167. package/dist/chunk-IEFQ6PGY.js.map +0 -7
  168. package/dist/chunk-JN5BKKQZ.js +0 -14
  169. package/dist/chunk-JN5BKKQZ.js.map +0 -7
  170. package/dist/chunk-NM74WWXQ.js.map +0 -7
  171. package/dist/chunk-P4S537UY.js +0 -50
  172. package/dist/chunk-P4S537UY.js.map +0 -7
  173. package/dist/chunk-RCHKJINV.js +0 -5
  174. package/dist/chunk-RCHKJINV.js.map +0 -7
  175. /package/dist/{chunk-LZ6VDMPM.js.map → chunk-2JDJGZRM.js.map} +0 -0
  176. /package/dist/{chunk-NW7MDZJB.js.map → chunk-4BLKAURK.js.map} +0 -0
  177. /package/dist/{chunk-3MLXIDOD.js.map → chunk-5TPDRTCU.js.map} +0 -0
  178. /package/dist/{chunk-3OQA4BKQ.js.map → chunk-BH64QNLE.js.map} +0 -0
  179. /package/dist/{chunk-JTNWYMYZ.js.map → chunk-CNWKBBJJ.js.map} +0 -0
  180. /package/dist/{chunk-LCAPXVGE.js.map → chunk-ERL6CBPO.js.map} +0 -0
  181. /package/dist/{chunk-Z2AZS34W.js.map → chunk-G4DOH6BQ.js.map} +0 -0
  182. /package/dist/{chunk-7HEDOM2M.js.map → chunk-GISZRI4I.js.map} +0 -0
  183. /package/dist/{chunk-FS3MTRC3.js.map → chunk-IKYI4JCF.js.map} +0 -0
  184. /package/dist/{chunk-BWWXE4SL.js.map → chunk-IZ2LK5GK.js.map} +0 -0
  185. /package/dist/{chunk-M4E4CVZ4.js.map → chunk-J24DBEJQ.js.map} +0 -0
  186. /package/dist/{chunk-DPKNQOJX.js.map → chunk-J5YZ4HBV.js.map} +0 -0
  187. /package/dist/{chunk-BDTCJ2JC.js.map → chunk-JXB2O63E.js.map} +0 -0
  188. /package/dist/{chunk-5QGKDF4O.js.map → chunk-L5U5XRNP.js.map} +0 -0
  189. /package/dist/{chunk-6XM52E7W.js.map → chunk-MWFGDECP.js.map} +0 -0
  190. /package/dist/{chunk-FCOVZEHC.js.map → chunk-P5TOP3NH.js.map} +0 -0
  191. /package/dist/{chunk-UK2ZEQBN.js.map → chunk-QDYWH7BU.js.map} +0 -0
  192. /package/dist/{chunk-WZBUJ4ER.js.map → chunk-QF4LGACD.js.map} +0 -0
  193. /package/dist/{chunk-UV7BOOVA.js.map → chunk-QKII4FCI.js.map} +0 -0
  194. /package/dist/{chunk-5NSAJ3SX.js.map → chunk-S4BD3HT2.js.map} +0 -0
  195. /package/dist/{chunk-23AVKNCC.js.map → chunk-SBCJY5IU.js.map} +0 -0
  196. /package/dist/{chunk-LIUATY6B.js.map → chunk-SIP5IK3N.js.map} +0 -0
  197. /package/dist/{chunk-UF5VCR36.js.map → chunk-STZJ3LBU.js.map} +0 -0
  198. /package/dist/{chunk-UGRBWOQE.js.map → chunk-T5MEA7JO.js.map} +0 -0
  199. /package/dist/{chunk-BCRV6HG6.js.map → chunk-TBB5HNL6.js.map} +0 -0
  200. /package/dist/{chunk-7N7YHRPA.js.map → chunk-UQMXWLP6.js.map} +0 -0
  201. /package/dist/{chunk-YH3MSMXL.js.map → chunk-WPESQSKX.js.map} +0 -0
  202. /package/dist/{chunk-FANRUDPK.js.map → chunk-WUXXMMTM.js.map} +0 -0
  203. /package/dist/{chunk-IR2QY2VG.js.map → chunk-YIKU2R7W.js.map} +0 -0
  204. /package/dist/{chunk-OYHUG47P.js.map → chunk-ZE7GYACV.js.map} +0 -0
  205. /package/dist/{chunk-HD7EU6S5.js.map → chunk-ZLJF4SVG.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/utilities/string-to-date-converter.ts", "../src/mixins/datepicker-calendar-mixin/datepicker-calendar-mixin.ts", "../src/utilities/format-to-date-array.ts", "../src/components/calendar/bl-calendar.css", "../src/components/calendar/bl-calendar.ts"],
4
- "sourcesContent": ["export function stringToDateArray(value: string): Date[] {\n const tempValue: Date[] = [];\n const splitDates = value.split(\",\");\n\n splitDates?.forEach(date => {\n const isDate = new Date(date.trim());\n\n if (!isNaN(isDate.getTime())) {\n tempValue.push(isDate);\n }\n });\n return tempValue;\n}\n", "import { LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { CalendarType, DayValues } from \"../../components/calendar/bl-calendar.types\";\nimport { stringToDateArray } from \"../../utilities/string-to-date-converter\";\n\nexport default class DatepickerCalendarMixin extends LitElement {\n /**\n * Defines the calendar types, available types are single, multiple and range\n */\n @property()\n type: CalendarType;\n /**\n * Defines the start day of the calendar (1 defines monday)\n */\n @property({ type: Number, attribute: \"start-of-week\", reflect: true })\n startOfWeek: DayValues = 0;\n /**\n * Defines the calendar language\n */\n @property()\n locale: string = document.documentElement.lang || \"en-EN\";\n\n /**\n * Enables month and year only selection mode\n */\n @property({ type: Boolean, attribute: \"month-year-only\", reflect: true })\n monthYearOnly = false;\n\n /**\n * Defines the unselectable dates for calendar\n */\n protected _disabledDates: Date[] = [];\n\n get disabledDates(): Date[] {\n return this._disabledDates;\n }\n\n @property({\n attribute: \"disabled-dates\",\n reflect: true,\n })\n set disabledDates(disabledDates: Date[] | string) {\n // Now we are using 1.6.0 version of @lit/reactive-elements and in this version even if our property has property decorator it doesn't run request update inside.\n // We added similar implementations to update when there is a change.\n // When we update the lit to 2.0 or upper versions we can remove the requestUpdate here\n\n let newVal: Date[] = [];\n\n if (typeof disabledDates === \"string\") {\n newVal = stringToDateArray(disabledDates);\n } else if (Array.isArray(disabledDates)) {\n newVal = disabledDates.filter(d => !isNaN(d.getTime()));\n }\n\n this.requestUpdate(\"disabledDates\", newVal);\n this._disabledDates = newVal;\n }\n\n /**\n * Defines the maximum date value for the calendar\n */\n _maxDate: Date;\n\n get maxDate() {\n return this._maxDate;\n }\n\n @property({ type: Date, attribute: \"max-date\", reflect: true })\n set maxDate(maxDate: Date) {\n if (maxDate && isNaN(new Date(maxDate).getTime())) {\n console.warn(\"Invalid maxDate value.\");\n return;\n }\n if (this._minDate && this._minDate > maxDate) {\n console.warn(\"maxDate cannot be smaller than minDate.\");\n } else {\n this._maxDate = new Date(maxDate);\n this.requestUpdate(\"maxDate\", maxDate);\n }\n }\n\n /**\n * Defines the minimum date value for the calendar\n */\n _minDate: Date;\n\n get minDate() {\n return this._minDate;\n }\n\n @property({ type: Date, attribute: \"min-date\", reflect: true })\n set minDate(minDate: Date) {\n if (minDate && isNaN(new Date(minDate).getTime())) {\n console.warn(\"Invalid minDate value.\");\n return;\n }\n if (this._maxDate && this._maxDate < minDate) {\n console.warn(\"minDate cannot be greater than maxDate.\");\n } else {\n this._minDate = new Date(minDate);\n this.requestUpdate(\"minDate\", minDate);\n }\n }\n\n @property({ attribute: \"value\", reflect: true })\n set value(value: string | Date | Date[]) {\n const oldValue = this._value;\n\n this._value = value;\n this.requestUpdate(\"value\", oldValue);\n }\n\n get value(): string | Date | Date[] {\n return this._value;\n }\n\n _value: string | Date | Date[] = [];\n}\n", "import { stringToDateArray } from \"./string-to-date-converter\";\n\nexport function formatToDateArray(value: string | Date | Date[] | undefined): Date[] {\n if (!value) {\n return [];\n }\n if (typeof value === \"string\") {\n return stringToDateArray(value);\n } else if (value instanceof Date) {\n return [value];\n } else {\n return value;\n }\n}\n", "import {css} from 'lit';\nexport const styles = css`.calendar{display:flex;flex-direction:column}.calendar-content{display:flex;padding:var(--bl-size-m);flex-direction:column;align-items:center;gap:var(--bl-size-m);border-radius:var(--bl-border-radius-s);width:fit-content;background:var(--bl-color-neutral-full)}.calendar-header{display:flex;justify-content:space-between;width:100%;align-items:center;padding-bottom:var(--bl-size-s)}.arrow{flex:1}:host([dir=rtl]) .arrow{transform:scale(-1)}.header-text{flex:3}.header-text-hover{background:var(--bl-color-neutral-lightest);border-radius:var(--bl-border-radius-s)}.days-wrapper{display:flex;flex-direction:column}.day-wrapper{display:flex;align-items:center;justify-content:center}.week-row{display:flex;align-items:center;flex-direction:row;padding-bottom:var(--bl-size-2xs)}.day{display:flex;align-items:center;width:40px;--bl-button-focus-border-color:#000;--bl-font-title-4-medium:var(--bl-font-weight-regular) var(--bl-font-size-m);--bl-size-xl:40px;--bl-border-radius-m:50%;--bl-border-radius-l:50%}.day.today-day{--bl-color-neutral-darker:var(--bl-color-primary);--bl-color-neutral-darkest:var(--bl-color-primary)}.day.other-month-day{--bl-color-neutral-darker:var(--bl-color-neutral-dark)}.day.other-month-day.selected-day{--bl-color-neutral-darker:var(--bl-color-neutral-full)}.day.selected-day{background:var(--bl-color-primary);border-radius:50%;--bl-button-focus-border-color:var(--bl-color-primary);--bl-color-neutral-darker:var(--bl-color-neutral-full)}.range-day{background:var(--bl-color-primary-contrast);--bl-color-neutral-lightest:var(--bl-color-primary-contrast)}.range-end-day,.range-start-day,.selected-day{--bl-color-neutral-lightest:var(--bl-color-primary);--bl-color-neutral-darker:var(--bl-color-neutral-full);--bl-color-neutral-darkest:var(--bl-color-neutral-full)!important}.range-start-day{background:var(--bl-color-primary-contrast);border-start-start-radius:50%;border-end-start-radius:50%}.range-end-day{background:var(--bl-color-primary-contrast);border-start-end-radius:50%;border-end-end-radius:50%}.weekday-text{color:var(--bl-color-neutral-dark);text-align:center;padding:var(--bl-size-2xs) 0;width:40px}.grid-content{display:grid;grid-template-columns:auto auto auto;text-align:center}.grid-item{width:93.33px;--bl-size-3xs:15px}.grid-item:not(:nth-last-child(-n + 3)){padding-bottom:var(--bl-size-2xs)}.calendar-text{font:var(--bl-font-title-3-regular)}`;\nexport default styles;\n", "import { CSSResultGroup, html, PropertyValues, TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { localized } from \"@lit/localize\";\nimport DatepickerCalendarMixin from \"../../mixins/datepicker-calendar-mixin/datepicker-calendar-mixin\";\nimport { setDirectionProperty } from \"../../utilities/direction\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport { formatToDateArray } from \"../../utilities/format-to-date-array\";\nimport \"../button/bl-button\";\nimport \"../icon/bl-icon\";\nimport {\n CALENDAR_TYPES,\n CALENDAR_VIEWS,\n FIRST_MONTH_INDEX,\n LAST_MONTH_INDEX,\n} from \"./bl-calendar.constant\";\nimport style from \"./bl-calendar.css\";\nimport { Calendar, CalendarDay, CalendarView } from \"./bl-calendar.types\";\n\n/**\n * @tag bl-calendar\n * @summary Baklava Calendar component\n **/\n@customElement(\"bl-calendar\")\n@localized()\nexport default class BlCalendar extends DatepickerCalendarMixin {\n @state()\n today = new Date();\n @state()\n _calendarMonth: number = this.today.getMonth();\n @state()\n _calendarYear: number = this.today.getFullYear();\n @state()\n _calendarView: CalendarView = CALENDAR_VIEWS.DAYS;\n @state()\n _calendarYears: number[] = [];\n @state()\n _calendarDays: CalendarDay[] = [];\n @state()\n _dates: Date[] = [];\n\n /**\n * Custom function to render day cells.\n * It receives the date as an argument and should return a TemplateResult.\n */\n @property({ attribute: false })\n dayRenderer?: (date: Date) => TemplateResult;\n\n /**\n * Fires when date selection changes\n */\n @event(\"bl-calendar-change\") _onBlCalendarChange: EventDispatcher<Date[]>;\n\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n connectedCallback() {\n super.connectedCallback();\n setDirectionProperty(this);\n\n if (this.monthYearOnly) {\n this._calendarView = CALENDAR_VIEWS.MONTHS;\n }\n }\n\n get months() {\n return [...Array(12).keys()].map(month => ({\n name: new Date(0, month + 1, 0).toLocaleString(this.locale, { month: \"long\" }),\n value: month,\n }));\n }\n\n get days() {\n return [...Array(7).keys()].map(day => ({\n name: new Date(0, 0, day).toLocaleString(this.locale, { weekday: \"short\" }),\n value: day,\n }));\n }\n\n public handleClearSelectedDates = () => {\n this._dates = [];\n this._onBlCalendarChange([]);\n this.clearRangePickerStyles();\n };\n\n getDayNumInAMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate();\n }\n\n getWeekDayOfDate(year: number, month: number) {\n return new Date(year, month, 1).getDay();\n }\n\n setPreviousCalendarView() {\n this.clearRangePickerStyles();\n if (this._calendarView === CALENDAR_VIEWS.DAYS && !this.monthYearOnly) {\n if (this._calendarMonth === FIRST_MONTH_INDEX) {\n this._calendarMonth = LAST_MONTH_INDEX;\n this._calendarYear -= 1;\n } else this._calendarMonth -= 1;\n } else if (this._calendarView === CALENDAR_VIEWS.MONTHS) {\n this._calendarYear -= 1;\n } else if (this._calendarView === CALENDAR_VIEWS.YEARS) {\n const fromYear = this._calendarYears[0];\n\n this._calendarYears = Array.from({ length: 12 }, (_, i) => fromYear - (i + 1));\n }\n if (this.type === CALENDAR_TYPES.RANGE) this.setHoverClass();\n }\n\n setNextCalendarView() {\n this.clearRangePickerStyles();\n if (this._calendarView === CALENDAR_VIEWS.DAYS && !this.monthYearOnly) {\n if (this._calendarMonth === LAST_MONTH_INDEX) {\n this._calendarMonth = FIRST_MONTH_INDEX;\n this._calendarYear += 1;\n } else this._calendarMonth += 1;\n } else if (this._calendarView === CALENDAR_VIEWS.MONTHS) {\n this._calendarYear += 1;\n } else if (this._calendarView === CALENDAR_VIEWS.YEARS) {\n const fromYear = this._calendarYears[11];\n\n this._calendarYears = Array.from({ length: 12 }, (_, i) => fromYear + (i + 1));\n }\n this.setHoverClass();\n }\n\n setCurrentCalendarView(view: CalendarView) {\n const defaultView = this.monthYearOnly ? CALENDAR_VIEWS.MONTHS : CALENDAR_VIEWS.DAYS;\n\n this._calendarView = this._calendarView !== view ? view : defaultView;\n this.setHoverClass();\n }\n\n setMonthAndCalendarView(month: number) {\n this._calendarMonth = month;\n\n if (this.monthYearOnly) {\n // In month-year only mode, selecting a month finalizes the selection\n const date = new Date(this._calendarYear, month, 1);\n\n this.handleDate(date);\n } else {\n this._calendarView = CALENDAR_VIEWS.DAYS;\n if (this.type === CALENDAR_TYPES.RANGE) this.setHoverClass();\n }\n }\n\n setYearAndCalendarView(year: number) {\n this._calendarYear = year;\n this._calendarView = this.monthYearOnly ? CALENDAR_VIEWS.MONTHS : CALENDAR_VIEWS.DAYS;\n if (this.type === CALENDAR_TYPES.RANGE) this.setHoverClass();\n }\n\n generateSurroundingYears() {\n if (!this._calendarYears.length) {\n this._calendarYears = Array.from({ length: 12 }, (_, i) => this._calendarYear - 4 + i);\n }\n }\n\n clearRangePickerStyles() {\n this.shadowRoot\n ?.querySelectorAll(\".range-day, .range-start-day, .range-end-day\")\n .forEach(day => day.classList.remove(\"range-day\", \"range-start-day\", \"range-end-day\"));\n }\n\n handleDate(date: Date) {\n if (this.type !== CALENDAR_TYPES.RANGE) {\n const isDateBeforeThanCalendar =\n date.getFullYear() < this._calendarYear ||\n (date.getFullYear() === this._calendarYear && date.getMonth() < this._calendarMonth);\n\n const isDateAfterThanCalendar =\n date.getFullYear() > this._calendarYear ||\n (date.getFullYear() === this._calendarYear && date.getMonth() > this._calendarMonth);\n\n if (isDateBeforeThanCalendar) {\n this.setPreviousCalendarView();\n } else if (isDateAfterThanCalendar) {\n this.setNextCalendarView();\n }\n }\n\n switch (this.type) {\n case CALENDAR_TYPES.SINGLE:\n this.handleSingleSelectCalendar(date);\n break;\n case CALENDAR_TYPES.MULTIPLE:\n this.handleMultipleSelectCalendar(date);\n break;\n case CALENDAR_TYPES.RANGE:\n this.handleRangeSelectCalendar(date);\n break;\n }\n\n this._onBlCalendarChange(this._dates);\n this.requestUpdate();\n }\n\n handleSingleSelectCalendar(calendarDate: Date) {\n this._dates = [calendarDate];\n }\n\n handleMultipleSelectCalendar(calendarDate: Date) {\n const dateExist = this._dates?.some(d => d.getTime() === calendarDate.getTime());\n\n dateExist\n ? this._dates?.splice(\n this._dates?.findIndex(d => d.getTime() === calendarDate.getTime()),\n 1\n )\n : this._dates.push(calendarDate);\n }\n\n handleRangeSelectCalendar(calendarDate: Date) {\n if (!this._dates[0]) {\n this._dates[0] = calendarDate;\n } else if (!this._dates[1]) {\n if (calendarDate.getTime() > this._dates[0].getTime()) {\n this._dates[1] = calendarDate;\n } else {\n const tempEndDate = this._dates[0];\n\n this._dates[0] = calendarDate;\n this._dates[1] = tempEndDate;\n }\n } else {\n this._dates = [];\n this._dates[0] = calendarDate;\n }\n this.setHoverClass();\n }\n\n checkIfSelectedDate(calendarDate: Date) {\n return this._dates?.some(\n date =>\n date.getFullYear() === calendarDate.getFullYear() &&\n date.getMonth() === calendarDate.getMonth() &&\n date.getDate() === calendarDate.getDate()\n );\n }\n\n checkIfDateIsToday(calendarDate: Date) {\n const today = this.today;\n\n return (\n today.getDate() === calendarDate.getDate() &&\n today.getMonth() === calendarDate.getMonth() &&\n today.getFullYear() === calendarDate.getFullYear()\n );\n }\n\n checkIfDateIsDisabled(calendarDate: Date) {\n if (\n calendarDate.getTime() < this.minDate?.getTime() ||\n calendarDate.getTime() > this.maxDate?.getTime()\n ) {\n return true;\n }\n if (this.disabledDates.length > 0) {\n return this.disabledDates?.some(disabledDate => {\n return (\n calendarDate.getDate() === disabledDate.getDate() &&\n calendarDate.getMonth() === disabledDate.getMonth() &&\n calendarDate.getFullYear() === disabledDate.getFullYear()\n );\n });\n }\n return false;\n }\n\n setHoverClass() {\n this.clearRangePickerStyles();\n\n if (this._dates[0] && this._dates[1]) {\n setTimeout(() => {\n const startDateParentElement = this.shadowRoot?.getElementById(\n `${this._dates[0]?.getTime()}`\n )?.parentElement;\n\n startDateParentElement?.classList.add(\"range-start-day\");\n\n const endDateParentElement = this.shadowRoot?.getElementById(\n `${this._dates[1]?.getTime()}`\n )?.parentElement;\n\n endDateParentElement?.classList.add(\"range-end-day\");\n const rangeDays = [...this.createCalendarDays().values()]\n .flat()\n .filter(\n date =>\n date.getTime() > this._dates[0]!.getTime() &&\n date.getTime() < this._dates[1]!.getTime()\n );\n\n for (let i = 0; i < rangeDays.length; i++) {\n const element = this.shadowRoot?.getElementById(\n `${rangeDays[i].getTime()}`\n )?.parentElement;\n\n element?.classList?.add(\"range-day\");\n }\n });\n }\n }\n\n createCalendarDays() {\n const calendar: Calendar = new Map();\n\n this._calendarDays = this.days\n .slice(this.startOfWeek)\n .concat(this.days.slice(0, this.startOfWeek));\n\n const currentMonthStartWeekDay = this.getWeekDayOfDate(this._calendarYear, this._calendarMonth); // 1\n\n const lastMonthDaysCount =\n currentMonthStartWeekDay < this.startOfWeek\n ? 7 - (this.startOfWeek - currentMonthStartWeekDay)\n : currentMonthStartWeekDay - this.startOfWeek;\n\n const previousMonthDayCount = this.getDayNumInAMonth(\n this._calendarYear,\n this._calendarMonth - 1\n );\n\n const currentMonthDayCount = this.getDayNumInAMonth(this._calendarYear, this._calendarMonth);\n\n let dayOfTheWeek = this.startOfWeek; // from sunday\n\n for (\n let lastMonthDaysIterator = lastMonthDaysCount;\n lastMonthDaysIterator > 0;\n lastMonthDaysIterator--\n ) {\n const mod = dayOfTheWeek % 7;\n const date = new Date(\n this._calendarYear,\n this._calendarMonth - 1,\n previousMonthDayCount - lastMonthDaysIterator + 1\n );\n\n calendar.set(this.days[mod].name, [date]);\n\n dayOfTheWeek += 1;\n }\n for (\n let currentMonthDaysIterator = 1;\n currentMonthDaysIterator <= currentMonthDayCount;\n currentMonthDaysIterator++\n ) {\n const mod = dayOfTheWeek % 7;\n const day = new Date(this._calendarYear, this._calendarMonth, currentMonthDaysIterator);\n\n if (calendar.get(this.days[mod].name)) {\n calendar.get(this.days[mod].name)?.push(day);\n } else {\n calendar.set(this.days[mod].name, [day]);\n }\n dayOfTheWeek += 1;\n }\n\n const index = this._calendarDays.findIndex(day => day.value === dayOfTheWeek % 7);\n\n if (index !== 0) {\n for (\n let nextMonthDaysIterator = 1;\n nextMonthDaysIterator <= this._calendarDays.length - index;\n nextMonthDaysIterator++\n ) {\n const mod = dayOfTheWeek % 7;\n const date = new Date(this._calendarYear, this._calendarMonth + 1, nextMonthDaysIterator);\n\n calendar.get(this.days[mod].name)?.push(date);\n\n dayOfTheWeek += 1;\n }\n }\n return calendar;\n }\n\n updated(changedProperties: PropertyValues) {\n if (changedProperties.has(\"value\")) {\n const dates = formatToDateArray(this._value);\n\n if (!dates?.length) {\n this.handleClearSelectedDates();\n } else {\n dates?.forEach(date => {\n this.handleDate(date);\n });\n }\n }\n }\n\n renderCalendarHeader() {\n const showMonthSelected =\n this._calendarView === CALENDAR_VIEWS.MONTHS ? \"header-text-hover\" : \"\";\n const showYearSelected = this._calendarView === CALENDAR_VIEWS.YEARS ? \"header-text-hover\" : \"\";\n\n return html`\n <div class=\"calendar-header\">\n <bl-button\n class=\"arrow\"\n icon=\"arrow_left\"\n variant=\"tertiary\"\n kind=\"neutral\"\n @click=\"${() => this.setPreviousCalendarView()}\"\n ></bl-button>\n ${!this.monthYearOnly\n ? html`<bl-button\n variant=\"tertiary\"\n kind=\"neutral\"\n class=\"header-text ${showMonthSelected}\"\n @click=\"${() => this.setCurrentCalendarView(CALENDAR_VIEWS.MONTHS)}\"\n >${this.months[this._calendarMonth].name}\n </bl-button>`\n : html``}\n <bl-button\n variant=\"tertiary\"\n kind=\"neutral\"\n class=\"header-text ${showYearSelected}\"\n @click=\"${() => this.setCurrentCalendarView(CALENDAR_VIEWS.YEARS)}\"\n >${this._calendarYear}\n </bl-button>\n <bl-button\n class=\"arrow\"\n icon=\"arrow_right\"\n variant=\"tertiary\"\n kind=\"neutral\"\n @click=\"${() => this.setNextCalendarView()}\"\n ></bl-button>\n </div>\n `;\n }\n\n renderCalendarDays() {\n const calendarDays = this.createCalendarDays();\n const valuesArray = Array.from(calendarDays.values());\n\n return html` <div class=\"week-row\">\n ${[...calendarDays.keys()].map(key => {\n return html` <div class=\"calendar-text weekday-text\">${key}</div> `;\n })}\n </div>\n <div class=\"days-wrapper\">\n ${[...Array(valuesArray[0].length).keys()].map(key => {\n return html` <div class=\"week-row\">\n ${valuesArray.map(values => {\n const date = values[key];\n\n const isSelectedDay = this.checkIfSelectedDate(date);\n const isDayToday = this.checkIfDateIsToday(date);\n const isDisabledDay = this.checkIfDateIsDisabled(date);\n\n const classes = classMap({\n \"day\": true,\n \"calendar-text\": true,\n \"today-day\": isDayToday,\n \"selected-day\": isSelectedDay,\n \"other-month-day\": values[key].getMonth() !== this._calendarMonth,\n \"disabled-day\": isDisabledDay,\n });\n\n return html`<div class=\"day-wrapper\">\n <bl-button\n id=${date.getTime()}\n variant=\"tertiary\"\n kind=\"neutral\"\n size=\"small\"\n class=${classes}\n ?disabled=${isDisabledDay}\n @click=\"${() => !isDisabledDay && this.handleDate(date)}\"\n >\n ${this.dayRenderer ? this.dayRenderer(date) : date.getDate()}\n </bl-button>\n </div>`;\n })}\n </div>`;\n })}\n </div>`;\n }\n\n renderCalendarMonths() {\n return html` <div class=\"grid-content\">\n ${this.months.map((month, index) => {\n const variant = month.value === this._calendarMonth ? \"primary\" : \"tertiary\";\n const neutral = month.value === this._calendarMonth ? \"default\" : \"neutral\";\n\n return html` <bl-button\n variant=${variant}\n kind=${neutral}\n class=\"grid-item\"\n size=\"small\"\n @click=\"${() => this.setMonthAndCalendarView(index)}\"\n ><span class=\"calendar-text\">${month.name}</span></bl-button\n >`;\n })}\n </div>`;\n }\n\n renderCalendarYears() {\n this.generateSurroundingYears();\n return html` <div class=\"grid-content\">\n ${this._calendarYears.map(year => {\n const variant = year === this._calendarYear ? \"primary\" : \"tertiary\";\n const neutral = year === this._calendarYear ? \"default\" : \"neutral\";\n\n return html` <bl-button\n variant=${variant}\n kind=${neutral}\n class=\"grid-item\"\n @click=\"${() => this.setYearAndCalendarView(year)}\"\n ><span class=\"calendar-text\">${year}</span></bl-button\n >`;\n })}\n </div>`;\n }\n\n render() {\n return html`\n <div>\n <div class=\"calendar-content\">\n <div class=\"calendar\">\n ${this.renderCalendarHeader()}\n ${this._calendarView === CALENDAR_VIEWS.DAYS ? this.renderCalendarDays() : \"\"}\n ${this._calendarView === CALENDAR_VIEWS.MONTHS ? this.renderCalendarMonths() : \"\"}\n ${this._calendarView === CALENDAR_VIEWS.YEARS ? this.renderCalendarYears() : \"\"}\n </div>\n </div>\n </div>\n `;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["stringToDateArray", "value", "tempValue", "splitDates", "date", "isDate", "DatepickerCalendarMixin", "s", "disabledDates", "newVal", "stringToDateArray", "d", "maxDate", "minDate", "value", "oldValue", "__decorateClass", "e", "formatToDateArray", "value", "stringToDateArray", "styles", "i", "bl_calendar_default", "BlCalendar", "DatepickerCalendarMixin", "bl_calendar_default", "setDirectionProperty", "month", "day", "year", "fromYear", "_", "i", "view", "defaultView", "date", "_a", "isDateBeforeThanCalendar", "isDateAfterThanCalendar", "calendarDate", "_b", "_c", "d", "tempEndDate", "today", "disabledDate", "_d", "_e", "_f", "_g", "_h", "_i", "startDateParentElement", "endDateParentElement", "rangeDays", "element", "calendar", "currentMonthStartWeekDay", "lastMonthDaysCount", "previousMonthDayCount", "currentMonthDayCount", "dayOfTheWeek", "lastMonthDaysIterator", "mod", "currentMonthDaysIterator", "index", "nextMonthDaysIterator", "changedProperties", "dates", "formatToDateArray", "showMonthSelected", "showYearSelected", "x", "calendarDays", "valuesArray", "key", "values", "isSelectedDay", "isDayToday", "isDisabledDay", "classes", "o", "variant", "neutral", "__decorateClass", "t", "e", "event", "localized"]
7
- }
@@ -1,14 +0,0 @@
1
- import{a as n}from"./chunk-FCOVZEHC.js";import{c as e}from"./chunk-HBPBDC7T.js";import{a as i}from"./chunk-5MOOXA2X.js";import{a as o,b as l,f as r}from"./chunk-4OT5AMS5.js";import{d as a}from"./chunk-BWWXE4SL.js";var c=o`:host{display:table-row-group}.no-data-row{display:table-row}.no-data-cell{display:table-cell;padding:var(--bl-size-2xl);text-align:center;vertical-align:middle;background-color:var(--bl-color-neutral-full);width:100%;min-height:250px;position:relative}.no-data-cell ::slotted(*){display:block;width:100%}.default-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.default-no-data bl-icon{font-size:48px;margin-bottom:var(--bl-size-m);color:var(--bl-color-neutral-light)}.default-no-data .title{margin:0;font:var(--bl-font-title-2-regular);color:var(--bl-color-neutral-darker)}.default-no-data .subtitle{margin:var(--bl-size-xs) 0 0 0;font:var(--bl-font-body-text-2);color:var(--bl-color-neutral-light)}`,s=c;var p="bl-table-body",t=class extends r{static get styles(){return[s]}get _table(){return this.closest(n)}get hasTableRows(){return this.querySelector("bl-table-row")!==null}connectedCallback(){super.connectedCallback(),this._table||console.warn("bl-table-body is designed to be used inside a bl-table",this)}render(){if(this.hasTableRows)return l` <slot></slot> `;let d=e("No data available",{desc:"bl-table-body: no data title"}),b=e("There are currently no records to display.",{desc:"bl-table-body: no data subtitle"});return l`
2
- <tr class="no-data-row">
3
- <td class="no-data-cell" colspan="999">
4
- <slot name="no-data">
5
- <div class="default-no-data">
6
- <bl-icon name="info"></bl-icon>
7
- <p class="title">${d}</p>
8
- <p class="subtitle">${b}</p>
9
- </div>
10
- </slot>
11
- </td>
12
- </tr>
13
- `}};t=a([i(p)],t);export{p as a,t as b};
14
- //# sourceMappingURL=chunk-JN5BKKQZ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/table/table-body/bl-table-body.css", "../src/components/table/table-body/bl-table-body.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{display:table-row-group}.no-data-row{display:table-row}.no-data-cell{display:table-cell;padding:var(--bl-size-2xl);text-align:center;vertical-align:middle;background-color:var(--bl-color-neutral-full);width:100%;min-height:250px;position:relative}.no-data-cell ::slotted(*){display:block;width:100%}.default-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.default-no-data bl-icon{font-size:48px;margin-bottom:var(--bl-size-m);color:var(--bl-color-neutral-light)}.default-no-data .title{margin:0;font:var(--bl-font-title-2-regular);color:var(--bl-color-neutral-darker)}.default-no-data .subtitle{margin:var(--bl-size-xs) 0 0 0;font:var(--bl-font-body-text-2);color:var(--bl-color-neutral-light)}`;\nexport default styles;\n", "import { html, LitElement, TemplateResult } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { CSSResultGroup } from \"lit/development\";\nimport { msg } from \"@lit/localize\";\nimport \"../../icon/bl-icon\";\nimport type BlTable from \"../bl-table\";\nimport { blTableTag } from \"../bl-table\";\nimport style from \"../table-body/bl-table-body.css\";\n\nexport const blTableBodyTag = \"bl-table-body\";\n\n/**\n * @tag bl-table-body\n * @summary Baklava Table component\n *\n * @slot no-data - Content to display when no data is available\n */\n@customElement(blTableBodyTag)\nexport default class BlTableBody extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n private get _table() {\n return this.closest<BlTable>(blTableTag);\n }\n\n private get hasTableRows() {\n return this.querySelector(\"bl-table-row\") !== null;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n if (!this._table) {\n console.warn(\"bl-table-body is designed to be used inside a bl-table\", this);\n }\n }\n\n render(): TemplateResult {\n // If there are table rows, show the normal content\n if (this.hasTableRows) {\n return html` <slot></slot> `;\n }\n\n // If there are no table rows, show the no-data slot or default content\n const noDataTitle = msg(\"No data available\", { desc: \"bl-table-body: no data title\" });\n const noDataSubtitle = msg(\"There are currently no records to display.\", {\n desc: \"bl-table-body: no data subtitle\",\n });\n\n return html`\n <tr class=\"no-data-row\">\n <td class=\"no-data-cell\" colspan=\"999\">\n <slot name=\"no-data\">\n <div class=\"default-no-data\">\n <bl-icon name=\"info\"></bl-icon>\n <p class=\"title\">${noDataTitle}</p>\n <p class=\"subtitle\">${noDataSubtitle}</p>\n </div>\n </slot>\n </td>\n </tr>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blTableBodyTag]: BlTableBody;\n }\n}\n"],
5
- "mappings": "sNACO,IAAMA,EAASC,uvBACfC,EAAQF,ECOR,IAAMG,EAAiB,gBASTC,EAArB,cAAyCC,CAAW,CAClD,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAEA,IAAY,QAAS,CACnB,OAAO,KAAK,QAAiBC,CAAU,CACzC,CAEA,IAAY,cAAe,CACzB,OAAO,KAAK,cAAc,cAAc,IAAM,IAChD,CAEA,mBAA0B,CACxB,MAAM,kBAAkB,EACnB,KAAK,QACR,QAAQ,KAAK,yDAA0D,IAAI,CAE/E,CAEA,QAAyB,CAEvB,GAAI,KAAK,aACP,OAAOC,mBAIT,IAAMC,EAAcC,EAAI,oBAAqB,CAAE,KAAM,8BAA+B,CAAC,EAC/EC,EAAiBD,EAAI,6CAA8C,CACvE,KAAM,iCACR,CAAC,EAED,OAAOF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAMsBC;AAAA,oCACGE;AAAA;AAAA;AAAA;AAAA;AAAA,KAMlC,CACF,EA9CqBP,EAArBQ,EAAA,CADCC,EAAcV,CAAc,GACRC",
6
- "names": ["styles", "i", "bl_table_body_default", "blTableBodyTag", "BlTableBody", "s", "bl_table_body_default", "blTableTag", "x", "noDataTitle", "msg", "noDataSubtitle", "__decorateClass", "e"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/@open-wc/form-helpers/src/index.ts", "../src/components/button/bl-button.css", "../src/components/button/bl-button.ts"],
4
- "sourcesContent": ["/**\n * Implicitly submit a form by first validating all controls. If the form\n * is valid, issue a submit event and if that event is not prevented, manually\n * call the form's submit method.\n *\n * @param form {HTMLFormElement} - A form to implicitly submit\n */\nexport const submit = (form: HTMLFormElement): void => {\n if (!form.noValidate && !form.reportValidity()) {\n return;\n } else {\n const submitEvent = new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true\n });\n form.dispatchEvent(submitEvent);\n if (!submitEvent.defaultPrevented) {\n form.submit();\n }\n }\n};\n\nexport type FormValue = string|FormData|File|FormValue[];\n\n/**\n * Parse a form and return a set of values based on the name/value pair.\n * If multiple controls of a similar name exist, return an array for those values;\n * otherwise return a single value.\n *\n * @param form {HTMLFormElement} - The form to parse for values\n * @returns {Record<string, any>} - An object representing the form's current values\n */\nexport const formValues = (form: HTMLFormElement): Record<string, FormValue> => {\n const formData = new FormData(form);\n const values: Record<string, FormValue> = {};\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore This does exist in all browsers. TypeScript is wrong\n for (const [key, value] of formData.entries()) {\n if (!values.hasOwnProperty(key)) {\n values[key] = value;\n } else if (Array.isArray(values[key])) {\n const pointer = values[key] as FormValue[];\n pointer.push(value);\n } else {\n values[key] = [values[key], value];\n }\n }\n\n return values;\n};\n\n/**\n * This method takes a form and parses it as an object. If any form control has a `.`\n * in its name, this utility will evaluate that name as a deep key for an object;\n * in other words, if a form has a named control, `name.first` and another, `name.last`\n * it will report back a nested object, name, with first and last properties\n * representing those controls' values.\n *\n * This can be useful when you have a complex model that you are attempting to represent\n * in declaratively in HTML.\n *\n * @param form {HTMLFormElement} - The form to grab values from\n * @returns {Object<string, FormValue>} - An object representation of the form\n */\nexport const parseFormAsObject = (form: HTMLFormElement): Record<string, FormValue> => {\n const data = formValues(form);\n const output: Record<string, FormValue> = {};\n\n Object.entries(data).forEach(([key, value]) => {\n /** If the key has a '.', parse it as an object */\n if (key.includes('.')) {\n const path = key.split('.');\n const destination: string | undefined = path.pop();\n let pointer = output;\n\n while (path.length) {\n const key = path.shift();\n pointer[key as string] = pointer[key as string] || ({} as FormValue);\n pointer = pointer[key as string] as unknown as Record<string, FormValue>;\n }\n\n pointer[destination as string] = value;\n } else {\n output[key] = data[key];\n }\n });\n\n return output;\n};\n", "import {css} from 'lit';\nexport const styles = css`:host{display:var(--bl-button-display,inline-block);max-width:100%;position:relative}.button{--main-color:var(--bl-color-primary);--main-hover-color:var(--bl-color-primary-highlight);--text-hover-color:var(--bl-color-neutral-lightest);--content-color:var(--bl-color-neutral-full);--bg-color:var(--main-color);--border-color:var(--main-color);--padding-vertical:var(--bl-size-2xs);--padding-horizontal:var(--bl-size-m);--margin-icon:var(--padding-vertical);--icon-size:var(--bl-size-m);--font:var(--bl-font-title-3-medium);--height:var(--bl-size-2xl);display:flex;gap:var(--margin-icon);justify-content:var(--bl-button-justify,center);align-items:center;box-sizing:border-box;width:100%;height:var(--height);min-width:var(--height);border:solid 1px var(--border-color);border-radius:var(--bl-border-radius-m);text-decoration:none;padding:var(--padding-vertical) var(--padding-horizontal);cursor:pointer;background-color:var(--bg-color);color:var(--content-color);font:var(--font);font-kerning:none;user-select:none}:host(.__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__) .button,:host(:hover) .button{--bg-color:var(--main-hover-color);--border-color:var(--main-hover-color)}.label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([size=small]) .button{--font:var(--bl-font-title-4-medium);--padding-vertical:var(--bl-size-3xs);--padding-horizontal:var(--bl-size-2xs);--icon-size:var(--bl-size-s);--height:var(--bl-size-xl)}:host([size=large]) .button{--font:var(--bl-font-title-3-medium);--padding-vertical:var(--bl-size-xs);--padding-horizontal:var(--bl-size-xl);--margin-icon:var(--bl-size-2xs);--height:var(--bl-size-3xl)}.button:focus{outline:0}.button:focus-visible{position:relative;outline:0}.button:focus-visible::after{border:2px solid var(--bl-button-focus-border-color,var(--main-color));border-radius:var(--bl-border-radius-l);content:\"\";position:absolute;inset:-4px}:host ::slotted(bl-icon){font-size:var(--icon-size)}:host([loading]) ::slotted(bl-icon){display:none}:host .has-icon:not(.has-content){--padding-horizontal:var(--padding-vertical);--margin-icon:0}:host([variant=secondary]) .button{--bg-color:transparent;--content-color:var(--main-color)}:host([variant=tertiary]) .button{--content-color:var(--main-color);--border-color:transparent;--bg-color:transparent}:host([kind=neutral]) .button{--main-color:var(--bl-color-neutral-darker);--main-hover-color:var(--bl-color-neutral-darkest)}:host([kind=success]) .button{--main-color:var(--bl-color-success);--main-hover-color:var(--bl-color-success-highlight)}:host([kind=danger]) .button{--main-color:var(--bl-color-danger);--main-hover-color:var(--bl-color-danger-highlight)}:host([disabled]){cursor:not-allowed}:host([loading]){cursor:wait}:host .button[aria-disabled=true]{--main-color:var(--bl-color-neutral-lightest);--main-hover-color:var(--bl-color-neutral-lightest);--content-color:var(--bl-color-neutral-lighter);--bg-color:var(--main-color);pointer-events:none;text-decoration:none}:host([variant=tertiary]) .button[aria-disabled=true]{--main-color:transparent}:host([variant=secondary].__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__) .button[aria-disabled=false],:host([variant=secondary]:hover) .button[aria-disabled=false]{--content-color:var(--bl-color-neutral-full);--bg-color:var(--main-hover-color)}:host([variant=tertiary].__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__) .button[aria-disabled=false],:host([variant=tertiary]:hover) .button[aria-disabled=false]{--content-color:var(--main-hover-color);--bg-color:var(--text-hover-color)}:host([dropdown]) .open{display:none}:host([dropdown]) .active .open{display:inline-block}:host([dropdown]) .active .close{display:none}:host .active.button{--bg-color:var(--main-hover-color);--border-color:var(--main-hover-color)}:host([variant=secondary]) .active.button{--content-color:var(--bl-color-neutral-full);--bg-color:var(--main-hover-color)}:host([variant=tertiary]) .active.button{--content-color:var(--main-color);--bg-color:var(--bl-color-neutral-lightest);--border-color:transparent}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property, state, query } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { submit } from \"@open-wc/form-helpers\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport \"../icon/bl-icon\";\nimport { BaklavaIcon } from \"../icon/icon-list\";\nimport \"../spinner/bl-spinner\";\nimport style from \"./bl-button.css\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"tertiary\";\nexport type ButtonKind = \"default\" | \"neutral\" | \"success\" | \"danger\";\nexport type ButtonSize = \"small\" | \"medium\" | \"large\";\nexport type TargetType = \"_blank\" | \"_parent\" | \"_self\" | \"_top\";\n\n/**\n * @tag bl-button\n * @summary Baklava Button component\n *\n * @cssproperty [--bl-button-display=inline-block] Sets the display property of button\n * @cssproperty [--bl-button-justify=center] Sets the justify-content property of button\n *\n */\n@customElement(\"bl-button\")\nexport default class BlButton extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Sets the button variant\n */\n @property({ type: String, reflect: true })\n variant: ButtonVariant = \"primary\";\n\n /**\n * Sets the button kind\n */\n @property({ type: String, reflect: true })\n kind: ButtonKind = \"default\";\n\n /**\n * Sets the button size\n */\n @property({ type: String, reflect: true })\n size: ButtonSize = \"medium\";\n\n /**\n * Sets the button label. Used for accessibility.\n */\n @property({ type: String })\n label: string;\n\n /**\n * Sets the button label for loading status.\n */\n @property({ type: String, attribute: \"loading-label\" })\n loadingLabel: string;\n\n /**\n * Sets loading state of button\n */\n @property({ type: Boolean, reflect: true })\n loading = false;\n\n /**\n * Sets button as disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Set link url. If set, button will be rendered as anchor tag.\n */\n @property({ type: String })\n href?: string;\n\n /**\n * Sets the icon name. Shows icon with bl-icon component\n */\n @property({ type: String })\n icon?: BaklavaIcon;\n\n /**\n * Sets the anchor target. Used when `href` is set.\n */\n @property({ type: String })\n target?: TargetType = \"_self\";\n\n /**\n * Sets the type of the button. Set `submit` to use button as the submitter of parent form.\n */\n @property({ type: String })\n type: \"submit\";\n\n /**\n * Sets button type to dropdown\n */\n @property({ type: Boolean })\n dropdown = false;\n\n /**\n * Sets button to get keyboard focus automatically\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * Sets the associated form of the button. Use when `type` is set to `submit` and button is not inside the target form.\n */\n @property({ type: String })\n form: HTMLFormElement | string;\n\n /**\n * Active state\n */\n @state({})\n active = false;\n\n @query(\".button\")\n private button: HTMLAnchorElement | HTMLButtonElement;\n\n /**\n * Fires when button clicked\n */\n @event(\"bl-click\") private onClick: EventDispatcher<string>;\n\n private get _isActive() {\n return this.active;\n }\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n private caretTemplate(): TemplateResult {\n return html` <bl-icon class=\"open\" name=\"arrow_up\"></bl-icon>\n <bl-icon class=\"close\" name=\"arrow_down\"></bl-icon>`;\n }\n\n private _handleClick() {\n if (this.type === \"submit\") {\n let targetForm: HTMLFormElement;\n\n if (this.form instanceof HTMLFormElement) {\n targetForm = this.form;\n } else if (typeof this.form === \"string\") {\n targetForm = document.getElementById(this.form) as HTMLFormElement;\n } else {\n targetForm = this.closest(\"form\") as HTMLFormElement;\n }\n\n if (targetForm) {\n submit(targetForm);\n }\n }\n\n this.onClick(\"Click event fired!\");\n }\n\n focus() {\n this.button.focus();\n }\n\n get _hasIconSlot() {\n return this.querySelector(':scope > [slot=\"icon\"]') !== null;\n }\n\n get _hasDefaultSlot() {\n const childNodes = [...this.childNodes];\n\n return childNodes.some(node => {\n const nodeType = node.nodeType;\n\n // has only text node.\n if (nodeType === node.TEXT_NODE && node.textContent?.trim() !== \"\") {\n return true;\n }\n // has element node, it should not have slot attribute.\n if (nodeType === node.ELEMENT_NODE) {\n if (!(node as HTMLElement).hasAttribute(\"slot\")) {\n return true;\n }\n }\n return false;\n });\n }\n\n render(): TemplateResult {\n const isDisabled = this.loading || this.disabled;\n const label = this.loading && this.loadingLabel ? this.loadingLabel : html`<slot></slot>`;\n const isAnchor = !!this.href;\n const icon = this.icon ? html`<bl-icon name=${this.icon}></bl-icon>` : \"\";\n const loadingIcon = html`<bl-spinner\n class=\"loading-spinner\"\n ?disabled=\"${isDisabled}\"\n size=\"${this.size}\"\n ></bl-spinner>`;\n const slots = html`<slot name=\"icon\">${this.loading ? loadingIcon : icon}</slot>\n <span class=\"label\">${label}</span>`;\n const caret = this.dropdown ? this.caretTemplate() : \"\";\n const classes = classMap({\n \"button\": true,\n \"has-icon\": this.icon || this._hasIconSlot,\n \"has-content\": this._hasDefaultSlot,\n \"active\": !isAnchor && this._isActive,\n });\n\n return isAnchor\n ? html`<a\n class=${classes}\n ?autofocus=${this.autofocus}\n aria-disabled=\"${ifDefined(isDisabled)}\"\n aria-label=\"${ifDefined(this.label)}\"\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n role=\"button\"\n >${slots}\n </a>`\n : html`<button\n class=${classes}\n ?autofocus=${this.autofocus}\n aria-disabled=\"${ifDefined(isDisabled)}\"\n aria-label=\"${ifDefined(this.label)}\"\n ?disabled=${isDisabled}\n @click=\"${this._handleClick}\"\n >\n ${slots} ${caret}\n </button>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"bl-button\": BlButton;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["submit", "form", "submitEvent", "styles", "i", "bl_button_default", "BlButton", "s", "bl_button_default", "x", "targetForm", "submit", "node", "_a", "nodeType", "isDisabled", "label", "isAnchor", "icon", "loadingIcon", "slots", "caret", "classes", "o", "l", "__decorateClass", "t", "i", "event", "e"]
7
- }
@@ -1,50 +0,0 @@
1
- import{a as P}from"./chunk-IPYZIIRV.js";import{a as d}from"./chunk-DINNT5P2.js";import{a as b}from"./chunk-GRL4DWKG.js";import{a as v,c as n}from"./chunk-HBPBDC7T.js";import{a as h,b as i,c as m}from"./chunk-5MOOXA2X.js";import{a as c,b as s,f as g}from"./chunk-4OT5AMS5.js";import{d as a}from"./chunk-BWWXE4SL.js";var x=c`.pagination{display:flex;flex-wrap:wrap;justify-content:center;max-width:max-content;gap:var(--bl-size-s)}.pagination *{margin:0;padding:0;box-sizing:border-box}.page-container{display:flex;align-items:center}:host([dir=rtl]) .page-container :is(bl-button.next,bl-button.previous){transform:rotate(180deg)}.page-list{display:flex;align-items:center;list-style:none;user-select:none;gap:var(--bl-size-3xs)}.dots{margin:0 var(--bl-size-2xs)}.dots::before{content:" \\B7 \\B7 \\B7";color:var(--bl-color-neutral-darker)}.pagination-helpers{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--bl-size-m);color:var(--bl-color-neutral-darker)}.jumper,.select{display:flex;align-items:center;gap:var(--bl-size-2xs)}label{font:var(--bl-font-title-3-medium);font-size:var(--bl-font-size-m);font-weight:var(--bl-font-weight-medium);line-height:var(--bl-font-size-m);letter-spacing:0;user-select:none}bl-input{width:62px}bl-select{width:auto}@media only screen and (max-width:768px){label{display:none}}`,f=x;var t=class extends g{constructor(){super(...arguments);this.currentPage=1;this.totalItems=0;this.itemsPerPage=10;this.hasJumper=!1;this.hasSelect=!1;this.itemsPerPageOptions=[{text:"10 Items",value:10},{text:"25 Items",value:25},{text:"50 Items",value:50},{text:"100 Items",value:100}];this.pages=[]}static get styles(){return[f]}connectedCallback(){super.connectedCallback(),setTimeout(()=>{window==null||window.addEventListener("resize",()=>this._paginate())}),P(this)}disconnectedCallback(){super.disconnectedCallback(),window==null||window.removeEventListener("resize",this._paginate)}updated(e){(e.has("currentPage")||e.has("itemsPerPage")||e.has("totalItems"))&&this._paginate()}_paginate(){this.pages=[];let e=Math.ceil(Math.abs(this.totalItems/this.itemsPerPage))||1;if(e<=8){this.pages=Array.from(Array(e),(r,l)=>l+1);return}this.pages.push(1),this.currentPage<5?this.pages.push(2,3,4,5,"..."):this.currentPage>=5&&this.currentPage<=e-4?this.pages.push("...",this.currentPage-1,this.currentPage,this.currentPage+1,"..."):this.pages.push("...",e-4,e-3,e-2,e-1),this.pages.push(e)}_changePage(e){let r=this.currentPage;this.currentPage=e,this.onChange({selectedPage:e,prevPage:r,itemsPerPage:this.itemsPerPage})}_pageBack(){this.currentPage!==1&&this._changePage(this.currentPage-1)}_pageForward(){this.currentPage!==this._getLastPage()&&this._changePage(this.currentPage+1)}_getLastPage(){return+this.pages[this.pages.length-1]}_inputHandler(e){e.stopPropagation();let r=+e.target.value,l=r>0?Math.min(this._getLastPage(),r):1;this._changePage(l)}_selectHandler(e){var r;this.itemsPerPage=+((r=e==null?void 0:e.detail)==null?void 0:r.value)||100,this._changePage(1)}_renderSinglePage(e){if(typeof e=="string")return s`<li class="dots"></li>`;let r=this.currentPage===e?"page":void 0;return s` <li>
2
- <bl-button
3
- @click="${()=>this._changePage(e)}"
4
- variant=${this.currentPage===e?"primary":"tertiary"}
5
- kind="neutral"
6
- label="Page ${e}"
7
- aria-current=${d(r)}
8
- >
9
- ${e}
10
- </bl-button>
11
- </li>`}renderPages(){return s`
12
- <div class="page-container">
13
- <bl-button
14
- @click="${this._pageBack}"
15
- variant="tertiary"
16
- kind="neutral"
17
- icon="arrow_left"
18
- class="previous"
19
- label="Previous"
20
- ?disabled=${this.currentPage===1}
21
- ></bl-button>
22
- <ul class="page-list">
23
- ${window.innerWidth<768?s`${this._renderSinglePage(this.currentPage)}`:this.pages.map(e=>s`${this._renderSinglePage(e)}`)}
24
- </ul>
25
- <bl-button
26
- @click="${this._pageForward}"
27
- variant="tertiary"
28
- kind="neutral"
29
- icon="arrow_right"
30
- class="next"
31
- label="Next"
32
- ?disabled=${this.currentPage===this._getLastPage()}
33
- ></bl-button>
34
- </div>
35
- `}render(){var p,u;let e=(p=this.jumperLabel)!=null?p:n("Go to",{desc:"bl-pagination: jumper text"}),r=(u=this.selectLabel)!=null?u:n("Show",{desc:"bl-pagination: listing text"}),l=this.hasSelect?s`
36
- <div class="select">
37
- <label>${r}</label>
38
- <bl-select @bl-select="${this._selectHandler}" .value=${this.itemsPerPage} required>
39
- ${this.itemsPerPageOptions.map(o=>s`<bl-select-option .value=${o.value}
40
- >${o.text}</bl-select-option
41
- >`)}
42
- </bl-select>
43
- </div>
44
- `:null,y=this.hasJumper?s` <div class="jumper">
45
- <label>${e}</label>
46
- <bl-input .value="${this.currentPage}" @bl-change="${this._inputHandler}"></bl-input>
47
- </div>`:null;return s` <nav class="pagination" aria-label="Pagination">
48
- ${(()=>{if(!(!this.hasSelect&&!this.hasJumper))return s` <div class="pagination-helpers">${l} ${y}</div> `})()} ${this.renderPages()}
49
- </nav>`}};a([i({attribute:"current-page",type:Number,reflect:!0})],t.prototype,"currentPage",2),a([i({attribute:"total-items",type:Number})],t.prototype,"totalItems",2),a([i({attribute:"items-per-page",type:Number,reflect:!0})],t.prototype,"itemsPerPage",2),a([i({attribute:"has-jumper",type:Boolean})],t.prototype,"hasJumper",2),a([i({attribute:"jumper-label",type:String})],t.prototype,"jumperLabel",2),a([i({attribute:"has-select",type:Boolean})],t.prototype,"hasSelect",2),a([i({attribute:"select-label",type:String})],t.prototype,"selectLabel",2),a([i({type:Array,attribute:!1})],t.prototype,"itemsPerPageOptions",2),a([m()],t.prototype,"pages",2),a([b("bl-change")],t.prototype,"onChange",2),t=a([h("bl-pagination"),v()],t);export{t as a};
50
- //# sourceMappingURL=chunk-P4S537UY.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/pagination/bl-pagination.css", "../src/components/pagination/bl-pagination.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`.pagination{display:flex;flex-wrap:wrap;justify-content:center;max-width:max-content;gap:var(--bl-size-s)}.pagination *{margin:0;padding:0;box-sizing:border-box}.page-container{display:flex;align-items:center}:host([dir=rtl]) .page-container :is(bl-button.next,bl-button.previous){transform:rotate(180deg)}.page-list{display:flex;align-items:center;list-style:none;user-select:none;gap:var(--bl-size-3xs)}.dots{margin:0 var(--bl-size-2xs)}.dots::before{content:\" \\\\B7 \\\\B7 \\\\B7\";color:var(--bl-color-neutral-darker)}.pagination-helpers{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--bl-size-m);color:var(--bl-color-neutral-darker)}.jumper,.select{display:flex;align-items:center;gap:var(--bl-size-2xs)}label{font:var(--bl-font-title-3-medium);font-size:var(--bl-font-size-m);font-weight:var(--bl-font-weight-medium);line-height:var(--bl-font-size-m);letter-spacing:0;user-select:none}bl-input{width:62px}bl-select{width:auto}@media only screen and (max-width:768px){label{display:none}}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, PropertyValues, TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { localized, msg } from \"@lit/localize\";\nimport { setDirectionProperty } from \"../../utilities/direction\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport \"../button/bl-button\";\nimport \"../input/bl-input\";\nimport \"../select/bl-select\";\nimport style from \"./bl-pagination.css\";\n\n/**\n * @tag bl-pagination\n * @summary Baklava Pagination component\n */\n\n@customElement(\"bl-pagination\")\n@localized()\nexport default class BlPagination extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Sets the current page\n */\n @property({ attribute: \"current-page\", type: Number, reflect: true })\n currentPage = 1;\n\n /**\n * Sets the total items to be paginated\n */\n @property({ attribute: \"total-items\", type: Number })\n totalItems = 0;\n\n /**\n * Sets the number of items per page\n */\n @property({ attribute: \"items-per-page\", type: Number, reflect: true })\n itemsPerPage = 10;\n\n /**\n * Adds jumper element if provided as true\n */\n @property({ attribute: \"has-jumper\", type: Boolean })\n hasJumper = false;\n\n /**\n * Sets the jumper label\n */\n @property({ attribute: \"jumper-label\", type: String })\n jumperLabel?: string;\n\n /**\n * Adds select element to choose the items per page\n */\n @property({ attribute: \"has-select\", type: Boolean })\n hasSelect = false;\n\n /**\n * Adds select element to choose the items per page\n */\n @property({ attribute: \"select-label\", type: String })\n selectLabel?: string;\n\n /**\n * Sets the items per page options of the select element\n * PROPERTY\n */\n @property({ type: Array, attribute: false })\n itemsPerPageOptions = [\n {\n text: \"10 Items\",\n value: 10,\n },\n {\n text: \"25 Items\",\n value: 25,\n },\n {\n text: \"50 Items\",\n value: 50,\n },\n {\n text: \"100 Items\",\n value: 100,\n },\n ];\n\n @state() private pages: Array<number | string> = [];\n\n /**\n * Fires when the current page changes\n */\n @event(\"bl-change\") private onChange: EventDispatcher<{\n selectedPage: number;\n prevPage: number;\n itemsPerPage: number;\n }>;\n\n connectedCallback() {\n super.connectedCallback();\n\n setTimeout(() => {\n window?.addEventListener(\"resize\", () => this._paginate());\n });\n\n setDirectionProperty(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window?.removeEventListener(\"resize\", this._paginate);\n }\n\n updated(changedProperties: PropertyValues<this>) {\n if (\n changedProperties.has(\"currentPage\") ||\n changedProperties.has(\"itemsPerPage\") ||\n changedProperties.has(\"totalItems\")\n ) {\n this._paginate();\n }\n }\n\n private _paginate() {\n this.pages = [];\n const pageListLength = Math.ceil(Math.abs(this.totalItems / this.itemsPerPage)) || 1;\n\n if (pageListLength <= 8) {\n this.pages = Array.from(Array(pageListLength), (_, index) => index + 1);\n return;\n }\n\n this.pages.push(1);\n\n if (this.currentPage < 5) {\n this.pages.push(2, 3, 4, 5, \"...\");\n } else if (this.currentPage >= 5 && this.currentPage <= pageListLength - 4) {\n this.pages.push(\"...\", this.currentPage - 1, this.currentPage, this.currentPage + 1, \"...\");\n } else {\n this.pages.push(\n \"...\",\n pageListLength - 4,\n pageListLength - 3,\n pageListLength - 2,\n pageListLength - 1\n );\n }\n\n this.pages.push(pageListLength);\n }\n\n private _changePage(selectedPage: number): void {\n const prevPage = this.currentPage;\n\n this.currentPage = selectedPage;\n\n this.onChange({\n selectedPage,\n prevPage,\n itemsPerPage: this.itemsPerPage,\n });\n }\n\n private _pageBack(): void {\n if (this.currentPage === 1) return;\n this._changePage(this.currentPage - 1);\n }\n\n private _pageForward(): void {\n if (this.currentPage === this._getLastPage()) return;\n this._changePage(this.currentPage + 1);\n }\n\n private _getLastPage(): number {\n return +this.pages[this.pages.length - 1];\n }\n\n private _inputHandler(event: CustomEvent) {\n event.stopPropagation();\n const inputValue = +(event.target as HTMLInputElement).value;\n const newPage = inputValue > 0 ? Math.min(this._getLastPage(), inputValue) : 1;\n\n this._changePage(newPage);\n }\n\n private _selectHandler(event: CustomEvent) {\n this.itemsPerPage = +event?.detail?.value || 100;\n this._changePage(1);\n }\n\n private _renderSinglePage(page: number | string) {\n if (typeof page === \"string\") {\n return html`<li class=\"dots\"></li>`;\n }\n const ariaCurrent = this.currentPage === page ? \"page\" : undefined;\n\n return html` <li>\n <bl-button\n @click=\"${() => this._changePage(page)}\"\n variant=${this.currentPage === page ? \"primary\" : \"tertiary\"}\n kind=\"neutral\"\n label=\"Page ${page}\"\n aria-current=${ifDefined(ariaCurrent)}\n >\n ${page}\n </bl-button>\n </li>`;\n }\n\n private renderPages() {\n return html`\n <div class=\"page-container\">\n <bl-button\n @click=\"${this._pageBack}\"\n variant=\"tertiary\"\n kind=\"neutral\"\n icon=\"arrow_left\"\n class=\"previous\"\n label=\"Previous\"\n ?disabled=${this.currentPage === 1}\n ></bl-button>\n <ul class=\"page-list\">\n ${window.innerWidth < 768\n ? html`${this._renderSinglePage(this.currentPage)}`\n : this.pages.map(page => html`${this._renderSinglePage(page)}`)}\n </ul>\n <bl-button\n @click=\"${this._pageForward}\"\n variant=\"tertiary\"\n kind=\"neutral\"\n icon=\"arrow_right\"\n class=\"next\"\n label=\"Next\"\n ?disabled=${this.currentPage === this._getLastPage()}\n ></bl-button>\n </div>\n `;\n }\n\n render(): TemplateResult {\n const jumperText = this.jumperLabel ?? msg(\"Go to\", { desc: \"bl-pagination: jumper text\" });\n const selectText = this.selectLabel ?? msg(\"Show\", { desc: \"bl-pagination: listing text\" });\n\n const selectEl = this.hasSelect\n ? html`\n <div class=\"select\">\n <label>${selectText}</label>\n <bl-select @bl-select=\"${this._selectHandler}\" .value=${this.itemsPerPage} required>\n ${this.itemsPerPageOptions.map(option => {\n return html`<bl-select-option .value=${option.value}\n >${option.text}</bl-select-option\n >`;\n })}\n </bl-select>\n </div>\n `\n : null;\n\n const jumperEl = this.hasJumper\n ? html` <div class=\"jumper\">\n <label>${jumperText}</label>\n <bl-input .value=\"${this.currentPage}\" @bl-change=\"${this._inputHandler}\"></bl-input>\n </div>`\n : null;\n\n const getHelperElements = () => {\n if (!this.hasSelect && !this.hasJumper) return;\n return html` <div class=\"pagination-helpers\">${selectEl} ${jumperEl}</div> `;\n };\n\n return html` <nav class=\"pagination\" aria-label=\"Pagination\">\n ${getHelperElements()} ${this.renderPages()}\n </nav>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"bl-pagination\": BlPagination;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["styles", "i", "bl_pagination_default", "BlPagination", "s", "bl_pagination_default", "setDirectionProperty", "changedProperties", "pageListLength", "_", "index", "selectedPage", "prevPage", "event", "inputValue", "newPage", "_a", "page", "x", "ariaCurrent", "l", "_b", "jumperText", "msg", "selectText", "selectEl", "option", "jumperEl", "__decorateClass", "e", "t", "localized"]
7
- }
@@ -1,5 +0,0 @@
1
- import{a as w,b as f,c as E,d as y,e as x,f as _,g as k,h as M}from"./chunk-EZSEQHRH.js";import{a as g}from"./chunk-6LT7O7T2.js";import{a as l}from"./chunk-GRL4DWKG.js";import{a as u,b as a,c as n,e as s}from"./chunk-5MOOXA2X.js";import{a as c,b as m,f as b}from"./chunk-4OT5AMS5.js";import{d as o}from"./chunk-BWWXE4SL.js";function z(i){return typeof i=="string"?document.getElementById(i):i instanceof Element?i:null}var S=c`:host{display:contents}.popover{--arrow-display:var(--bl-popover-arrow-display, none);--background-color:var(--bl-popover-background-color, var(--bl-color-neutral-full));--border-color:var(--bl-popover-border-color, var(--bl-color-primary-highlight));--border-size:var(--bl-popover-border-size, 1px);--padding:var(--bl-popover-padding, var(--bl-size-m));--border-radius:var(--bl-popover-border-radius, var(--bl-size-3xs));--position:var(--bl-popover-position, fixed);--max-width:var(--bl-popover-max-width, 100vw);--max-viewport:calc(100vw - var(--bl-size-s));position:var(--position);box-sizing:border-box;border:var(--border-size) solid var(--border-color);padding:var(--padding);border-radius:var(--border-radius);z-index:var(--bl-index-popover);max-width:min(var(--max-viewport),var(--max-width));width:max-content;hyphens:auto;background-color:var(--background-color);font:var(--bl-font-title-3-regular);color:var(--bl-color-neutral-darker)}.popover:not(.visible){visibility:hidden}.arrow{--arrow-rotation:45deg;--size:var(--bl-size-2xs);--arrow-position:calc((var(--size) / -2) - var(--border-size));box-sizing:border-box;display:var(--arrow-display);position:absolute;background-color:var(--background-color);width:var(--size);height:var(--size);transform:rotate(var(--arrow-rotation));border:var(--border-size) solid var(--border-color);border-bottom:none;border-inline-end:none}.popover[data-placement*=bottom] .arrow{top:var(--arrow-position)}.popover[data-placement*=top] .arrow{--arrow-rotation:225deg;bottom:var(--arrow-position)}.popover[data-placement*=left] .arrow{--arrow-rotation:135deg;right:var(--arrow-position)}.popover[data-placement*=right] .arrow{--arrow-rotation:315deg;left:var(--arrow-position)}`,C=S;var t=class extends b{constructor(){super(...arguments);this.placement="bottom";this.fitSize=!1;this.offset=8;this._visible=!1;this._handleClickOutside=e=>{let r=e.composedPath();!r.includes(this._target)&&!r.includes(this)&&this.hide()}}static get styles(){return[C]}get target(){return this._target}set target(e){let r=z(e);if(!r){console.warn("BlPopover target only accepts an Element instance or a string id of a DOM element.");return}this._target=r}get visible(){return this._visible}connectedCallback(){super.connectedCallback(),this._handlePopoverShowEvent=this._handlePopoverShowEvent.bind(this),this._handleKeydownEvent=this._handleKeydownEvent.bind(this),this._handleClickOutside=this._handleClickOutside.bind(this)}disconnectedCallback(){super.disconnectedCallback(),this.popoverAutoUpdateCleanup&&this.popoverAutoUpdateCleanup()}show(){this._visible=!0,this.setPopover(),this.onBlPopoverShow(""),document.addEventListener("click",this._handleClickOutside),document.addEventListener("keydown",this._handleKeydownEvent),document.addEventListener("bl-popover-show",this._handlePopoverShowEvent)}hide(){this._visible=!1,document.removeEventListener("click",this._handleClickOutside),document.removeEventListener("keydown",this._handleKeydownEvent),document.removeEventListener("bl-popover-show",this._handlePopoverShowEvent),this.onBlPopoverHide("",{bubbles:!1})}render(){let e=g({popover:!0,visible:this._visible});return m` <div class=${e}>
2
- <slot id="popover" aria-live=${this._visible?"polite":"off"}></slot>
3
- <div class="arrow" aria-hidden="true"></div>
4
- </div>`}getMiddleware(){let e=[];return e.push(y(this.offset),E(),f(),x({padding:4})),this.fitSize&&e.push(_({apply(r){r.elements.floating&&r.elements.reference&&Object.assign(r.elements.floating.style,{"min-width":`${r.elements.reference.getBoundingClientRect().width}px`})}})),e.push(w({element:this.arrow,padding:5})),e}setPopover(){this.target&&(this.popoverAutoUpdateCleanup=k(this.target,this._popover,()=>{M(this.target,this._popover,{placement:this.placement,strategy:"fixed",middleware:this.getMiddleware()}).then(({x:e,y:r,placement:d,middlewareData:p})=>{if(Object.assign(this._popover.style,{left:`${e}px`,top:`${r}px`}),this._popover.dataset.placement=d,p.arrow){let{x:v,y:h}=p.arrow;Object.assign(this.arrow.style,{left:v!=null?`${v}px`:"",top:h!=null?`${h}px`:""})}})}))}_handlePopoverShowEvent(e){if(e.target!==this){let{parentElement:r}=e.target;!this.contains(r)&&e.target.tagName===this.tagName&&this.hide()}}_handleKeydownEvent(e){e.key==="Escape"&&this.visible&&(e.preventDefault(),this.hide())}};o([a({type:String})],t.prototype,"placement",2),o([a({type:Boolean,attribute:"fit-size"})],t.prototype,"fitSize",2),o([a({type:Number})],t.prototype,"offset",2),o([s(".popover")],t.prototype,"_popover",2),o([s(".arrow")],t.prototype,"arrow",2),o([l("bl-popover-show")],t.prototype,"onBlPopoverShow",2),o([l("bl-popover-hide")],t.prototype,"onBlPopoverHide",2),o([n()],t.prototype,"_target",2),o([a()],t.prototype,"target",1),o([n()],t.prototype,"_visible",2),t=o([u("bl-popover")],t);export{z as a,t as b};
5
- //# sourceMappingURL=chunk-RCHKJINV.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/utilities/elements.ts", "../src/components/popover/bl-popover.css", "../src/components/popover/bl-popover.ts"],
4
- "sourcesContent": ["export function getMiddleOfElement(element: Element) {\n const { x, y, width, height } = element.getBoundingClientRect();\n\n return {\n x: Math.floor(x + window.pageXOffset + width / 2),\n y: Math.floor(y + window.pageYOffset + height / 2),\n };\n}\n\nexport function getTarget(value: string | Element): Element | null {\n if (typeof value === \"string\") {\n return document.getElementById(value) as Element;\n } else if (value instanceof Element) {\n return value;\n }\n\n return null;\n}\n", "import {css} from 'lit';\nexport const styles = css`:host{display:contents}.popover{--arrow-display:var(--bl-popover-arrow-display, none);--background-color:var(--bl-popover-background-color, var(--bl-color-neutral-full));--border-color:var(--bl-popover-border-color, var(--bl-color-primary-highlight));--border-size:var(--bl-popover-border-size, 1px);--padding:var(--bl-popover-padding, var(--bl-size-m));--border-radius:var(--bl-popover-border-radius, var(--bl-size-3xs));--position:var(--bl-popover-position, fixed);--max-width:var(--bl-popover-max-width, 100vw);--max-viewport:calc(100vw - var(--bl-size-s));position:var(--position);box-sizing:border-box;border:var(--border-size) solid var(--border-color);padding:var(--padding);border-radius:var(--border-radius);z-index:var(--bl-index-popover);max-width:min(var(--max-viewport),var(--max-width));width:max-content;hyphens:auto;background-color:var(--background-color);font:var(--bl-font-title-3-regular);color:var(--bl-color-neutral-darker)}.popover:not(.visible){visibility:hidden}.arrow{--arrow-rotation:45deg;--size:var(--bl-size-2xs);--arrow-position:calc((var(--size) / -2) - var(--border-size));box-sizing:border-box;display:var(--arrow-display);position:absolute;background-color:var(--background-color);width:var(--size);height:var(--size);transform:rotate(var(--arrow-rotation));border:var(--border-size) solid var(--border-color);border-bottom:none;border-inline-end:none}.popover[data-placement*=bottom] .arrow{top:var(--arrow-position)}.popover[data-placement*=top] .arrow{--arrow-rotation:225deg;bottom:var(--arrow-position)}.popover[data-placement*=left] .arrow{--arrow-rotation:135deg;right:var(--arrow-position)}.popover[data-placement*=right] .arrow{--arrow-rotation:315deg;left:var(--arrow-position)}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property, query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n inline,\n Middleware,\n MiddlewareState,\n offset,\n shift,\n size,\n} from \"@floating-ui/dom\";\nimport { getTarget } from \"../../utilities/elements\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport style from \"./bl-popover.css\";\n\nexport type Placement =\n | \"top-start\"\n | \"top\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"bottom-end\"\n | \"left-start\"\n | \"left\"\n | \"left-end\"\n | \"right-start\"\n | \"right\"\n | \"right-end\";\n\n/**\n * @tag bl-popover\n * @summary Baklava Popover component\n *\n * @cssproperty [--bl-popover-arrow-display=none] - Sets the display of popovers arrow. Set as `block` to make arrow visible.\n * @cssproperty [--bl-popover-background-color=--bl-color-neutral-full] - Sets the background color of popover.\n * @cssproperty [--bl-popover-border-color=--bl-color-primary-highlight] - Sets the border color of popover.\n * @cssproperty [--bl-popover-border-size=1px] - Sets the border size of popover. You can set it to `0px` to not have a border (if you use a custom background color). Always use with a length unit.\n * @cssproperty [--bl-popover-padding=--bl-size-m] - Sets the padding of popover.\n * @cssproperty [--bl-popbover-border-radius=--bl-size-3xs] - Sets the border radius of popover.\n * @cssproperty [--bl-popover-max-width=100vw] - Sets the maximum width of the popover (including border and padding).\n * @cssproperty [--bl-popover-position=fixed] - Sets the position of popover. You can set it to `absolute` if parent element is a fixed positioned element like drawer or dialog.\n */\n@customElement(\"bl-popover\")\nexport default class BlPopover extends LitElement {\n /**\n * Sets placement of the popover\n */\n @property({ type: String })\n placement: Placement = \"bottom\";\n /**\n * Sets size of popover same as trigger element\n */\n @property({ type: Boolean, attribute: \"fit-size\" })\n fitSize = false;\n /**\n * Sets the distance between popover and target/trigger element\n */\n @property({ type: Number })\n offset = 8;\n @query(\".popover\") private _popover: HTMLElement;\n @query(\".arrow\") private arrow: HTMLElement;\n /**\n * Fires when the popover is shown\n */\n @event(\"bl-popover-show\") private onBlPopoverShow: EventDispatcher<string>;\n /**\n * Fires when popover becomes hidden\n */\n @event(\"bl-popover-hide\") private onBlPopoverHide: EventDispatcher<string>;\n private popoverAutoUpdateCleanup: () => void;\n\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Target elements state\n */\n @state() _target: string | Element;\n\n /**\n * Sets the target element of the popover to align and trigger.\n * It can be a string id of the target element or can be a direct Element reference of it.\n */\n @property()\n get target(): string | Element {\n return this._target;\n }\n\n set target(value: string | Element) {\n const target = getTarget(value);\n\n if (!target) {\n console.warn(\n \"BlPopover target only accepts an Element instance or a string id of a DOM element.\"\n );\n return;\n }\n\n this._target = target;\n }\n\n /**\n * Visibility state\n */\n @state() private _visible = false;\n\n /**\n * Gives the visibility status of the popover\n */\n get visible(): boolean {\n return this._visible;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this._handlePopoverShowEvent = this._handlePopoverShowEvent.bind(this);\n this._handleKeydownEvent = this._handleKeydownEvent.bind(this);\n this._handleClickOutside = this._handleClickOutside.bind(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.popoverAutoUpdateCleanup && this.popoverAutoUpdateCleanup();\n }\n\n /**\n * Shows popover\n */\n show() {\n this._visible = true;\n\n this.setPopover();\n this.onBlPopoverShow(\"\");\n document.addEventListener(\"click\", this._handleClickOutside);\n document.addEventListener(\"keydown\", this._handleKeydownEvent);\n document.addEventListener(\"bl-popover-show\", this._handlePopoverShowEvent);\n }\n\n /**\n * Hides popover\n */\n hide() {\n this._visible = false;\n document.removeEventListener(\"click\", this._handleClickOutside);\n document.removeEventListener(\"keydown\", this._handleKeydownEvent);\n document.removeEventListener(\"bl-popover-show\", this._handlePopoverShowEvent);\n this.onBlPopoverHide(\"\", { bubbles: false });\n }\n\n render(): TemplateResult {\n const classes = classMap({\n popover: true,\n visible: this._visible,\n });\n\n return html` <div class=${classes}>\n <slot id=\"popover\" aria-live=${this._visible ? \"polite\" : \"off\"}></slot>\n <div class=\"arrow\" aria-hidden=\"true\"></div>\n </div>`;\n }\n\n private getMiddleware(): Middleware[] {\n const middlewareParams: Middleware[] = [];\n\n middlewareParams.push(offset(this.offset), inline(), flip(), shift({ padding: 4 }));\n\n if (this.fitSize) {\n middlewareParams.push(\n size({\n apply(args: MiddlewareState) {\n if (args.elements.floating && args.elements.reference) {\n Object.assign(args.elements.floating.style, {\n \"min-width\": `${args.elements.reference.getBoundingClientRect().width}px`,\n });\n }\n },\n })\n );\n }\n\n middlewareParams.push(arrow({ element: this.arrow, padding: 5 }));\n\n return middlewareParams;\n }\n\n private _handleClickOutside = (event: MouseEvent) => {\n const eventPath = event.composedPath() as HTMLElement[];\n\n if (!eventPath.includes(this._target as HTMLElement) && !eventPath.includes(this)) {\n this.hide();\n }\n };\n\n private setPopover() {\n if (this.target) {\n this.popoverAutoUpdateCleanup = autoUpdate(this.target as Element, this._popover, () => {\n computePosition(this.target as Element, this._popover, {\n placement: this.placement,\n strategy: \"fixed\",\n middleware: this.getMiddleware(),\n }).then(({ x, y, placement, middlewareData }) => {\n Object.assign(this._popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n this._popover.dataset.placement = placement;\n\n if (middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(this.arrow.style, {\n left: arrowX != null ? `${arrowX}px` : \"\",\n top: arrowY != null ? `${arrowY}px` : \"\",\n });\n }\n });\n });\n }\n }\n\n private _handlePopoverShowEvent(event: Event) {\n if (event.target !== this) {\n const { parentElement } = event.target as HTMLElement;\n const isNestedPopover = this.contains(parentElement);\n\n if (!isNestedPopover && (event.target as HTMLElement).tagName === this.tagName) {\n this.hide();\n }\n }\n }\n\n private _handleKeydownEvent(event: KeyboardEvent) {\n if (event.key === \"Escape\" && this.visible) {\n event.preventDefault();\n this.hide();\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"bl-popover\": BlPopover;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["getTarget", "value", "styles", "i", "bl_popover_default", "BlPopover", "s", "event", "eventPath", "bl_popover_default", "value", "target", "getTarget", "classes", "o", "x", "middlewareParams", "offset", "inline", "flip", "shift", "size", "args", "arrow", "autoUpdate", "computePosition", "y", "placement", "middlewareData", "arrowX", "arrowY", "parentElement", "__decorateClass", "e", "i", "t"]
7
- }