@vuetify/nightly 3.0.0-alpha.3 → 3.0.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.
- package/CHANGELOG.md +2 -110
- package/_settings.scss +2 -0
- package/_styles.scss +1 -0
- package/_tools.scss +1 -0
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +5594 -0
- package/dist/json/importMap.json +541 -0
- package/dist/json/tags.json +1943 -0
- package/dist/json/web-types.json +18992 -0
- package/dist/vuetify.css +14443 -11685
- package/dist/vuetify.d.ts +15310 -0
- package/dist/vuetify.esm.js +18770 -0
- package/dist/vuetify.esm.js.map +1 -0
- package/dist/vuetify.js +18102 -9395
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +6 -3
- package/dist/vuetify.min.js +1510 -5252
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.mjs +4 -0
- package/lib/blueprints/index.mjs.map +1 -0
- package/lib/blueprints/md1.mjs +63 -0
- package/lib/blueprints/md1.mjs.map +1 -0
- package/lib/blueprints/md2.mjs +60 -0
- package/lib/blueprints/md2.mjs.map +1 -0
- package/lib/blueprints/md3.mjs +74 -0
- package/lib/blueprints/md3.mjs.map +1 -0
- package/lib/components/VAlert/VAlert.css +210 -0
- package/lib/components/VAlert/VAlert.mjs +174 -208
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +102 -160
- package/lib/components/VAlert/VAlertTitle.mjs +4 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -0
- package/lib/components/VAlert/_variables.scss +50 -14
- package/lib/components/VAlert/index.mjs +2 -3
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +15 -0
- package/lib/components/VApp/VApp.mjs +37 -24
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +10 -23
- package/lib/components/VApp/index.mjs +1 -1
- package/lib/components/VApp/index.mjs.map +1 -1
- package/lib/components/VApp/variables.scss +6 -0
- package/lib/components/VAppBar/VAppBar.css +10 -0
- package/lib/components/VAppBar/VAppBar.mjs +64 -227
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +7 -54
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +21 -25
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +16 -60
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/_variables.scss +41 -4
- package/lib/components/VAppBar/index.mjs +3 -11
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +67 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +263 -356
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +77 -33
- package/lib/components/VAutocomplete/_variables.scss +8 -4
- package/lib/components/VAutocomplete/index.mjs +1 -3
- package/lib/components/VAutocomplete/index.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +46 -0
- package/lib/components/VAvatar/VAvatar.mjs +51 -28
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +12 -13
- package/lib/components/VAvatar/_mixins.scss +31 -0
- package/lib/components/VAvatar/_variables.scss +19 -8
- package/lib/components/VAvatar/index.mjs +1 -1
- package/lib/components/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +71 -0
- package/lib/components/VBadge/VBadge.mjs +52 -65
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +5 -8
- package/lib/components/VBadge/_variables.scss +13 -6
- package/lib/components/VBadge/index.mjs +1 -1
- package/lib/components/VBadge/index.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +157 -0
- package/lib/components/VBanner/VBanner.mjs +89 -48
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +77 -121
- package/lib/components/VBanner/VBannerActions.mjs +35 -0
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -0
- package/lib/components/VBanner/VBannerText.mjs +3 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -0
- package/lib/components/VBanner/_variables.scss +37 -45
- package/lib/components/VBanner/index.mjs +3 -1
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +54 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +105 -111
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +48 -82
- package/lib/components/VBottomNavigation/_variables.scss +41 -6
- package/lib/components/VBottomNavigation/index.mjs +1 -3
- package/lib/components/VBottomNavigation/index.mjs.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBottomSheet/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +55 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +93 -51
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +30 -30
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +2 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +53 -35
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/_variables.scss +16 -7
- package/lib/components/VBreadcrumbs/index.mjs +3 -11
- package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +408 -0
- package/lib/components/VBtn/VBtn.mjs +158 -70
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +199 -42
- package/lib/components/VBtn/_mixins.scss +31 -7
- package/lib/components/VBtn/_variables.scss +73 -30
- package/lib/components/VBtn/index.mjs +1 -1
- package/lib/components/VBtn/index.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +58 -0
- package/lib/components/VBtnGroup/VBtnGroup.mjs +67 -0
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -0
- package/lib/components/VBtnGroup/VBtnGroup.sass +51 -0
- package/lib/components/VBtnGroup/_variables.scss +27 -0
- package/lib/components/VBtnGroup/index.mjs +2 -0
- package/lib/components/VBtnGroup/index.mjs.map +1 -0
- package/lib/components/VBtnToggle/VBtnToggle.css +3 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +45 -39
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +4 -95
- package/lib/components/VBtnToggle/_variables.scss +4 -10
- package/lib/components/VBtnToggle/index.mjs +1 -3
- package/lib/components/VBtnToggle/index.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendar.mjs +15 -6
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs +5 -4
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +67 -0
- package/lib/components/VCalendar/VCalendarDaily.mjs +1 -1
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/_variables.scss +4 -0
- package/lib/components/VCalendar/index.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-base.mjs +5 -4
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +42 -39
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.sass +7 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +2 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +20 -1
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
- package/lib/components/VCalendar/modes/column.mjs.map +1 -1
- package/lib/components/VCalendar/modes/common.mjs +7 -3
- package/lib/components/VCalendar/modes/common.mjs.map +1 -1
- package/lib/components/VCalendar/modes/index.mjs.map +1 -1
- package/lib/components/VCalendar/modes/stack.mjs +2 -1
- package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
- package/lib/components/VCalendar/util/events.mjs +8 -3
- package/lib/components/VCalendar/util/events.mjs.map +1 -1
- package/lib/components/VCalendar/util/parser.mjs +1 -3
- package/lib/components/VCalendar/util/parser.mjs.map +1 -1
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCalendar/util/timestamp.mjs +24 -12
- package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +287 -0
- package/lib/components/VCard/VCard.mjs +159 -65
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +158 -118
- package/lib/components/VCard/VCardActions.mjs +29 -0
- package/lib/components/VCard/VCardActions.mjs.map +1 -0
- package/lib/components/VCard/VCardItem.mjs +88 -0
- package/lib/components/VCard/VCardItem.mjs.map +1 -0
- package/lib/components/VCard/VCardSubtitle.mjs +3 -0
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -0
- package/lib/components/VCard/VCardText.mjs +3 -0
- package/lib/components/VCard/VCardText.mjs.map +1 -0
- package/lib/components/VCard/VCardTitle.mjs +3 -0
- package/lib/components/VCard/VCardTitle.mjs.map +1 -0
- package/lib/components/VCard/_mixins.scss +13 -0
- package/lib/components/VCard/_variables.scss +122 -26
- package/lib/components/VCard/index.mjs +6 -16
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.css +63 -0
- package/lib/components/VCarousel/VCarousel.mjs +102 -186
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +6 -2
- package/lib/components/VCarousel/VCarouselItem.mjs +22 -42
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/_variables.scss +2 -3
- package/lib/components/VCarousel/index.mjs +2 -9
- package/lib/components/VCarousel/index.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.css +3 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +44 -103
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +7 -8
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
- package/lib/components/VCheckbox/_variables.scss +2 -4
- package/lib/components/VCheckbox/index.mjs +2 -9
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +352 -0
- package/lib/components/VChip/VChip.mjs +193 -143
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +44 -175
- package/lib/components/VChip/_mixins.scss +85 -0
- package/lib/components/VChip/_variables.scss +44 -49
- package/lib/components/VChip/index.mjs +1 -3
- package/lib/components/VChip/index.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.css +18 -0
- package/lib/components/VChipGroup/VChipGroup.mjs +67 -38
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +12 -18
- package/lib/components/VChipGroup/_variables.scss +3 -5
- package/lib/components/VChipGroup/index.mjs +1 -3
- package/lib/components/VChipGroup/index.mjs.map +1 -1
- package/lib/components/VCode/VCode.css +7 -0
- package/lib/components/VCode/VCode.sass +8 -0
- package/lib/components/VCode/_variables.scss +5 -0
- package/lib/components/VCode/index.mjs +4 -0
- package/lib/components/VCode/index.mjs.map +1 -0
- package/lib/components/VColorPicker/VColorPicker.css +21 -0
- package/lib/components/VColorPicker/VColorPicker.mjs +106 -134
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +9 -17
- package/lib/components/VColorPicker/VColorPickerCanvas.css +21 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +140 -121
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +4 -3
- package/lib/components/VColorPicker/VColorPickerEdit.css +31 -0
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +75 -134
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +8 -6
- package/lib/components/VColorPicker/VColorPickerPreview.css +67 -0
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +61 -86
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +41 -39
- package/lib/components/VColorPicker/VColorPickerSwatches.css +35 -0
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +36 -55
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +5 -4
- package/lib/components/VColorPicker/_variables.scss +18 -15
- package/lib/components/VColorPicker/index.mjs +1 -5
- package/lib/components/VColorPicker/index.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs +139 -97
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +76 -0
- package/lib/components/VCombobox/VCombobox.mjs +349 -202
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +99 -0
- package/lib/components/VCombobox/_variables.scss +9 -0
- package/lib/components/VCombobox/index.mjs +1 -3
- package/lib/components/VCombobox/index.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.css +6 -0
- package/lib/components/VCounter/VCounter.mjs +35 -26
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +5 -8
- package/lib/components/VCounter/_variables.scss +4 -2
- package/lib/components/VCounter/index.mjs +1 -3
- package/lib/components/VCounter/index.mjs.map +1 -1
- package/lib/components/VData/VData.mjs +8 -3
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VData/index.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs +20 -8
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/_variables.scss +2 -2
- package/lib/components/VDataIterator/index.mjs.map +1 -1
- package/lib/components/VDataTable/MobileRow.mjs +6 -5
- package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
- package/lib/components/VDataTable/Row.mjs +20 -12
- package/lib/components/VDataTable/Row.mjs.map +1 -1
- package/lib/components/VDataTable/RowGroup.mjs +5 -4
- package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.mjs +22 -21
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.sass +5 -0
- package/lib/components/VDataTable/VDataTableHeader.mjs +7 -6
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +3 -3
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +2 -2
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
- package/lib/components/VDataTable/VEditDialog.mjs +7 -6
- package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.mjs +2 -2
- package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
- package/lib/components/VDataTable/_variables.scss +2 -2
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VDataTable/mixins/header.mjs +1 -3
- package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +13 -13
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs +5 -5
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs +5 -5
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +2 -2
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.mjs +2 -2
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.mjs.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs +20 -9
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +7 -5
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs +1 -0
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
- package/lib/components/VDatePicker/util/index.mjs.map +1 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
- package/lib/components/VDatePicker/util/monthChange.mjs +3 -3
- package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
- package/lib/components/VDatePicker/util/pad.mjs +4 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +38 -0
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -0
- package/lib/components/VDefaultsProvider/index.mjs +2 -0
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -0
- package/lib/components/VDialog/VDialog.css +74 -0
- package/lib/components/VDialog/VDialog.mjs +98 -280
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +50 -82
- package/lib/components/VDialog/_variables.scss +10 -10
- package/lib/components/VDialog/index.mjs +1 -3
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.css +30 -0
- package/lib/components/VDivider/VDivider.mjs +32 -25
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +4 -9
- package/lib/components/VDivider/_variables.scss +12 -12
- package/lib/components/VDivider/index.mjs +1 -1
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +192 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +91 -82
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +91 -129
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +42 -0
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +80 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +45 -59
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/_variables.scss +21 -10
- package/lib/components/VExpansionPanel/index.mjs +4 -13
- package/lib/components/VExpansionPanel/index.mjs.map +1 -1
- package/lib/components/VField/VField.css +429 -0
- package/lib/components/VField/VField.mjs +265 -0
- package/lib/components/VField/VField.mjs.map +1 -0
- package/lib/components/VField/VField.sass +404 -0
- package/lib/components/VField/VFieldLabel.mjs +26 -0
- package/lib/components/VField/VFieldLabel.mjs.map +1 -0
- package/lib/components/VField/_variables.scss +45 -0
- package/lib/components/VField/index.mjs +3 -0
- package/lib/components/VField/index.mjs.map +1 -0
- package/lib/components/VFileInput/VFileInput.css +8 -0
- package/lib/components/VFileInput/VFileInput.mjs +188 -231
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +4 -53
- package/lib/components/VFileInput/_variables.scss +2 -6
- package/lib/components/VFileInput/index.mjs +1 -3
- package/lib/components/VFileInput/index.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.css +20 -0
- package/lib/components/VFooter/VFooter.mjs +56 -32
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +9 -7
- package/lib/components/VFooter/_variables.scss +15 -4
- package/lib/components/VFooter/index.mjs +1 -1
- package/lib/components/VFooter/index.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +55 -122
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.mjs +1 -3
- package/lib/components/VForm/index.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs +25 -19
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +12 -13
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VGrid.css +1002 -0
- package/lib/components/VGrid/VGrid.sass +9 -8
- package/lib/components/VGrid/VRow.mjs +30 -20
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/_mixins.sass +26 -21
- package/lib/components/VGrid/index.mjs +4 -4
- package/lib/components/VGrid/index.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs +31 -61
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.mjs +1 -3
- package/lib/components/VHover/index.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +47 -0
- package/lib/components/VIcon/VIcon.mjs +46 -41
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +16 -53
- package/lib/components/VIcon/_variables.scss +16 -23
- package/lib/components/VIcon/index.mjs +1 -1
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.css +34 -0
- package/lib/components/VImg/VImg.mjs +122 -71
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +13 -8
- package/lib/components/VImg/_variables.scss +1 -0
- package/lib/components/VImg/index.mjs +1 -1
- package/lib/components/VImg/index.mjs.map +1 -1
- package/lib/components/VInput/InputIcon.mjs +33 -0
- package/lib/components/VInput/InputIcon.mjs.map +1 -0
- package/lib/components/VInput/VInput.css +113 -0
- package/lib/components/VInput/VInput.mjs +115 -282
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +77 -117
- package/lib/components/VInput/_variables.scss +20 -13
- package/lib/components/VInput/index.mjs +1 -3
- package/lib/components/VInput/index.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs +32 -58
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.css +6 -0
- package/lib/components/VItemGroup/VItemGroup.mjs +45 -215
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +2 -2
- package/lib/components/VItemGroup/_variables.scss +3 -2
- package/lib/components/VItemGroup/index.mjs +2 -9
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.css +9 -0
- package/lib/components/VKbd/VKbd.sass +12 -0
- package/lib/components/VKbd/_variables.scss +6 -0
- package/lib/components/VKbd/index.mjs +4 -0
- package/lib/components/VKbd/index.mjs.map +1 -0
- package/lib/components/VLabel/VLabel.css +12 -0
- package/lib/components/VLabel/VLabel.mjs +20 -57
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +12 -11
- package/lib/components/VLabel/_variables.scss +8 -4
- package/lib/components/VLabel/index.mjs +1 -3
- package/lib/components/VLabel/index.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.css +9 -0
- package/lib/components/VLayout/VLayout.mjs +20 -15
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.sass +5 -5
- package/lib/components/VLayout/VLayoutItem.css +8 -0
- package/lib/components/VLayout/VLayoutItem.mjs +36 -17
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.sass +8 -0
- package/lib/components/VLayout/index.mjs +2 -2
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +42 -50
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.mjs +1 -3
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +104 -0
- package/lib/components/VList/VList.mjs +155 -74
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +90 -94
- package/lib/components/VList/VListChildren.mjs +109 -0
- package/lib/components/VList/VListChildren.mjs.map +1 -0
- package/lib/components/VList/VListGroup.mjs +107 -172
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs +3 -0
- package/lib/components/VList/VListImg.mjs.map +1 -0
- package/lib/components/VList/VListItem.css +376 -0
- package/lib/components/VList/VListItem.mjs +223 -142
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +204 -226
- package/lib/components/VList/VListItemAction.mjs +22 -19
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +30 -0
- package/lib/components/VList/VListItemMedia.mjs.map +1 -0
- package/lib/components/VList/VListItemSubtitle.mjs +3 -0
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -0
- package/lib/components/VList/VListItemTitle.mjs +3 -0
- package/lib/components/VList/VListItemTitle.mjs.map +1 -0
- package/lib/components/VList/VListSubheader.mjs +48 -0
- package/lib/components/VList/VListSubheader.mjs.map +1 -0
- package/lib/components/VList/_variables.scss +160 -57
- package/lib/components/VList/index.mjs +9 -28
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VList/list.mjs +31 -0
- package/lib/components/VList/list.mjs.map +1 -0
- package/lib/components/VLocaleProvider/VLocaleProvider.css +3 -0
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +21 -10
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.sass +2 -0
- package/lib/components/VLocaleProvider/index.mjs +1 -1
- package/lib/components/VLocaleProvider/index.mjs.map +1 -1
- package/lib/components/VMain/VMain.css +29 -0
- package/lib/components/VMain/VMain.mjs +30 -20
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +18 -11
- package/lib/components/VMain/_variables.scss +4 -2
- package/lib/components/VMain/index.mjs +1 -1
- package/lib/components/VMain/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +14 -0
- package/lib/components/VMenu/VMenu.mjs +82 -447
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +16 -71
- package/lib/components/VMenu/_variables.scss +3 -3
- package/lib/components/VMenu/index.mjs +1 -3
- package/lib/components/VMenu/index.mjs.map +1 -1
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VMessages/VMessages.css +16 -0
- package/lib/components/VMessages/VMessages.mjs +43 -40
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +4 -10
- package/lib/components/VMessages/_variables.scss +3 -2
- package/lib/components/VMessages/index.mjs +1 -3
- package/lib/components/VMessages/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +88 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +166 -58
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +40 -33
- package/lib/components/VNavigationDrawer/_variables.scss +20 -11
- package/lib/components/VNavigationDrawer/index.mjs +1 -1
- package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +70 -0
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
- package/lib/components/VNavigationDrawer/touch.mjs +142 -0
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -0
- package/lib/components/VNoSsr/VNoSsr.mjs +23 -0
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -0
- package/lib/components/VNoSsr/index.mjs +2 -0
- package/lib/components/VNoSsr/index.mjs.map +1 -0
- package/lib/components/VOtpInput/VOtpInput.mjs +345 -0
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -0
- package/lib/components/VOtpInput/VOtpInput.sass +37 -0
- package/lib/components/VOtpInput/_variables.scss +4 -0
- package/lib/components/VOtpInput/index.mjs +4 -0
- package/lib/components/VOtpInput/index.mjs.map +1 -0
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverflowBtn/index.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +62 -0
- package/lib/components/VOverlay/VOverlay.mjs +250 -62
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +37 -19
- package/lib/components/VOverlay/_variables.scss +3 -3
- package/lib/components/VOverlay/index.mjs +1 -3
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +404 -0
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/requestNewFrame.mjs +28 -0
- package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -0
- package/lib/components/VOverlay/scrollStrategies.mjs +134 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/useActivator.mjs +248 -0
- package/lib/components/VOverlay/useActivator.mjs.map +1 -0
- package/lib/components/VOverlay/util/point.mjs +56 -0
- package/lib/components/VOverlay/util/point.mjs.map +1 -0
- package/lib/components/VPagination/VPagination.css +9 -0
- package/lib/components/VPagination/VPagination.mjs +282 -179
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +10 -77
- package/lib/components/VPagination/_variables.scss +1 -15
- package/lib/components/VPagination/index.mjs +1 -3
- package/lib/components/VPagination/index.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.css +7 -0
- package/lib/components/VParallax/VParallax.mjs +71 -77
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.sass +1 -32
- package/lib/components/VParallax/index.mjs +1 -3
- package/lib/components/VParallax/index.mjs.map +1 -1
- package/lib/components/VPicker/VPicker.mjs +5 -5
- package/lib/components/VPicker/VPicker.mjs.map +1 -1
- package/lib/components/VPicker/index.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.css +101 -0
- package/lib/components/VProgressCircular/VProgressCircular.mjs +111 -141
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +56 -36
- package/lib/components/VProgressCircular/_variables.scss +14 -5
- package/lib/components/VProgressCircular/index.mjs +1 -3
- package/lib/components/VProgressCircular/index.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +212 -0
- package/lib/components/VProgressLinear/VProgressLinear.mjs +140 -226
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +82 -157
- package/lib/components/VProgressLinear/_variables.scss +12 -3
- package/lib/components/VProgressLinear/index.mjs +1 -3
- package/lib/components/VProgressLinear/index.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +26 -0
- package/lib/components/VRadio/VRadio.mjs.map +1 -0
- package/lib/components/VRadio/index.mjs +2 -0
- package/lib/components/VRadio/index.mjs.map +1 -0
- package/lib/components/VRadioGroup/VRadioGroup.css +10 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs +87 -68
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +8 -36
- package/lib/components/VRadioGroup/_variables.scss +3 -4
- package/lib/components/VRadioGroup/index.mjs +1 -9
- package/lib/components/VRadioGroup/index.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +193 -206
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.mjs +1 -3
- package/lib/components/VRangeSlider/index.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +58 -0
- package/lib/components/VRating/VRating.mjs +200 -179
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +52 -18
- package/lib/components/VRating/_variables.scss +9 -4
- package/lib/components/VRating/index.mjs +1 -3
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.css +23 -0
- package/lib/components/VResponsive/VResponsive.mjs +28 -22
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +5 -7
- package/lib/components/VResponsive/index.mjs +1 -1
- package/lib/components/VResponsive/index.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +50 -0
- package/lib/components/VSelect/VSelect.mjs +221 -778
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +60 -152
- package/lib/components/VSelect/_variables.scss +8 -21
- package/lib/components/VSelect/index.mjs +1 -3
- package/lib/components/VSelect/index.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +98 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +216 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.sass +96 -0
- package/lib/components/VSelectionControl/_variables.scss +10 -0
- package/lib/components/VSelectionControl/index.mjs +2 -0
- package/lib/components/VSelectionControl/index.mjs.map +1 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +3 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +65 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +4 -0
- package/lib/components/VSelectionControlGroup/_variables.scss +1 -0
- package/lib/components/VSelectionControlGroup/index.mjs +2 -0
- package/lib/components/VSelectionControlGroup/index.mjs.map +1 -0
- package/lib/components/VSheet/VSheet.css +23 -0
- package/lib/components/VSheet/VSheet.mjs +26 -22
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +10 -7
- package/lib/components/VSheet/_variables.scss +17 -5
- package/lib/components/VSheet/index.mjs +1 -1
- package/lib/components/VSheet/index.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +8 -8
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +42 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +304 -355
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +20 -25
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +33 -0
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -0
- package/lib/components/VSlideGroup/_variables.scss +0 -2
- package/lib/components/VSlideGroup/helpers.mjs +43 -0
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -0
- package/lib/components/VSlideGroup/index.mjs +2 -9
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +53 -0
- package/lib/components/VSlider/VSlider.mjs +111 -538
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +37 -275
- package/lib/components/VSlider/VSliderThumb.css +146 -0
- package/lib/components/VSlider/VSliderThumb.mjs +166 -0
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -0
- package/lib/components/VSlider/VSliderThumb.sass +148 -0
- package/lib/components/VSlider/VSliderTrack.css +150 -0
- package/lib/components/VSlider/VSliderTrack.mjs +123 -0
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -0
- package/lib/components/VSlider/VSliderTrack.sass +157 -0
- package/lib/components/VSlider/_variables.scss +23 -14
- package/lib/components/VSlider/index.mjs +1 -3
- package/lib/components/VSlider/index.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +290 -0
- package/lib/components/VSlider/slider.mjs.map +1 -0
- package/lib/components/VSnackbar/VSnackbar.css +118 -0
- package/lib/components/VSnackbar/VSnackbar.mjs +113 -173
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +37 -92
- package/lib/components/VSnackbar/_variables.scss +21 -26
- package/lib/components/VSnackbar/index.mjs +1 -3
- package/lib/components/VSnackbar/index.mjs.map +1 -1
- package/lib/components/VSparkline/VSparkline.mjs +13 -13
- package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/path.mjs +7 -5
- package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
- package/lib/components/VSparkline/index.mjs.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs +4 -4
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.mjs +2 -2
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.sass +5 -1
- package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
- package/lib/components/VStepper/VStepperStep.mjs +1 -1
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VStepper/_variables.scss +6 -5
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.css +76 -0
- package/lib/components/VSwitch/VSwitch.mjs +105 -107
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +77 -130
- package/lib/components/VSwitch/_variables.scss +11 -23
- package/lib/components/VSwitch/index.mjs +1 -3
- package/lib/components/VSwitch/index.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +35 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +41 -38
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +13 -26
- package/lib/components/VSystemBar/_variables.scss +29 -18
- package/lib/components/VSystemBar/index.mjs +1 -1
- package/lib/components/VSystemBar/index.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +144 -0
- package/lib/components/VTable/VTable.mjs +55 -0
- package/lib/components/VTable/VTable.mjs.map +1 -0
- package/lib/components/VTable/VTable.sass +156 -0
- package/lib/components/VTable/_mixins.scss +25 -0
- package/lib/components/VTable/_variables.scss +23 -0
- package/lib/components/VTable/index.mjs +2 -0
- package/lib/components/VTable/index.mjs.map +1 -0
- package/lib/components/VTabs/VTab.css +32 -0
- package/lib/components/VTabs/VTab.mjs +110 -69
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +33 -0
- package/lib/components/VTabs/VTabs.css +70 -0
- package/lib/components/VTabs/VTabs.mjs +86 -280
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +39 -203
- package/lib/components/VTabs/_variables.scss +12 -18
- package/lib/components/VTabs/index.mjs +2 -15
- package/lib/components/VTabs/index.mjs.map +1 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +71 -0
- package/lib/components/VTextField/VTextField.mjs +171 -483
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +56 -493
- package/lib/components/VTextField/_variables.scss +10 -50
- package/lib/components/VTextField/index.mjs +1 -3
- package/lib/components/VTextField/index.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +41 -0
- package/lib/components/VTextarea/VTextarea.mjs +225 -69
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +41 -76
- package/lib/components/VTextarea/_variables.scss +2 -4
- package/lib/components/VTextarea/index.mjs +1 -3
- package/lib/components/VTextarea/index.mjs.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.css +4 -0
- package/lib/components/VThemeProvider/VThemeProvider.mjs +23 -18
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.mjs +1 -1
- package/lib/components/VThemeProvider/index.mjs.map +1 -1
- package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePicker.mjs +4 -4
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs +9 -9
- package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerTitle.mjs +2 -2
- package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
- package/lib/components/VTimePicker/index.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +431 -0
- package/lib/components/VTimeline/VTimeline.mjs +88 -34
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +385 -118
- package/lib/components/VTimeline/VTimelineDivider.mjs +83 -0
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -0
- package/lib/components/VTimeline/VTimelineItem.mjs +71 -91
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +31 -32
- package/lib/components/VTimeline/_variables.scss +32 -14
- package/lib/components/VTimeline/index.mjs +2 -9
- package/lib/components/VTimeline/index.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +130 -0
- package/lib/components/VToolbar/VToolbar.mjs +139 -141
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +73 -123
- package/lib/components/VToolbar/VToolbarItems.mjs +36 -0
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -0
- package/lib/components/VToolbar/VToolbarTitle.mjs +34 -0
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -0
- package/lib/components/VToolbar/_variables.scss +66 -16
- package/lib/components/VToolbar/index.mjs +3 -14
- package/lib/components/VToolbar/index.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.css +22 -0
- package/lib/components/VTooltip/VTooltip.mjs +81 -200
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +7 -15
- package/lib/components/VTooltip/_variables.scss +7 -6
- package/lib/components/VTooltip/index.mjs +1 -3
- package/lib/components/VTooltip/index.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeview.mjs +16 -9
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs +4 -2
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VTreeview/_mixins.sass +3 -3
- package/lib/components/VTreeview/index.mjs.map +1 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs +26 -0
- package/lib/components/VValidation/VValidation.mjs.map +1 -0
- package/lib/components/VValidation/index.mjs +2 -0
- package/lib/components/VValidation/index.mjs.map +1 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.css +70 -0
- package/lib/components/VWindow/VWindow.mjs +155 -236
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +27 -51
- package/lib/components/VWindow/VWindowItem.mjs +84 -100
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/_variables.scss +3 -3
- package/lib/components/VWindow/index.mjs +2 -9
- package/lib/components/VWindow/index.mjs.map +1 -1
- package/lib/components/index.d.ts +14748 -0
- package/lib/components/index.mjs +75 -65
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs +61 -16
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +163 -0
- package/lib/components/transitions/dialog-transition.mjs.map +1 -0
- package/lib/components/transitions/expand-transition.mjs +6 -4
- package/lib/components/transitions/expand-transition.mjs.map +1 -1
- package/lib/components/transitions/index.mjs +1 -6
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs +10 -9
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs +19 -26
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +42 -0
- package/lib/composables/defaults.mjs.map +1 -0
- package/lib/composables/delay.mjs +1 -3
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs +5 -4
- package/lib/composables/density.mjs.map +1 -1
- package/lib/composables/dimensions.mjs.map +1 -1
- package/lib/composables/display.mjs +17 -14
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/elevation.mjs +4 -3
- package/lib/composables/elevation.mjs.map +1 -1
- package/lib/composables/filter.mjs +105 -0
- package/lib/composables/filter.mjs.map +1 -0
- package/lib/composables/focus.mjs +35 -0
- package/lib/composables/focus.mjs.map +1 -0
- package/lib/composables/form.mjs +136 -0
- package/lib/composables/form.mjs.map +1 -0
- package/lib/composables/forwardRefs.mjs +72 -0
- package/lib/composables/forwardRefs.mjs.map +1 -0
- package/lib/composables/group.mjs +131 -45
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/hydration.mjs +12 -0
- package/lib/composables/hydration.mjs.map +1 -0
- package/lib/composables/icons.mjs +38 -32
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs +10 -0
- package/lib/composables/index.mjs.map +1 -0
- package/lib/composables/intersectionObserver.mjs +33 -0
- package/lib/composables/intersectionObserver.mjs.map +1 -0
- package/lib/composables/items.mjs +84 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +158 -71
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs +23 -0
- package/lib/composables/lazy.mjs.map +1 -0
- package/lib/composables/loader.mjs +39 -0
- package/lib/composables/loader.mjs.map +1 -0
- package/lib/composables/locale.mjs +41 -40
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/location.mjs +66 -0
- package/lib/composables/location.mjs.map +1 -0
- package/lib/composables/mutationObserver.mjs +41 -0
- package/lib/composables/mutationObserver.mjs.map +1 -0
- package/lib/composables/nested/nested.mjs +206 -0
- package/lib/composables/nested/nested.mjs.map +1 -0
- package/lib/composables/nested/openStrategies.mjs +76 -0
- package/lib/composables/nested/openStrategies.mjs.map +1 -0
- package/lib/composables/nested/selectStrategies.mjs +198 -0
- package/lib/composables/nested/selectStrategies.mjs.map +1 -0
- package/lib/composables/position.mjs +6 -26
- package/lib/composables/position.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +14 -8
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs +16 -0
- package/lib/composables/refs.mjs.map +1 -0
- package/lib/composables/resizeObserver.mjs +35 -0
- package/lib/composables/resizeObserver.mjs.map +1 -0
- package/lib/composables/rounded.mjs +10 -8
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/router.mjs +84 -0
- package/lib/composables/router.mjs.map +1 -0
- package/lib/composables/rtl.mjs +7 -9
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +11 -0
- package/lib/composables/scopeId.mjs.map +1 -0
- package/lib/composables/scroll.mjs +4 -5
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/size.mjs +20 -15
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +3 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +47 -0
- package/lib/composables/stack.mjs.map +1 -0
- package/lib/composables/tag.mjs.map +1 -1
- package/lib/composables/teleport.mjs +30 -0
- package/lib/composables/teleport.mjs.map +1 -0
- package/lib/composables/theme.mjs +194 -136
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +18 -0
- package/lib/composables/toggleScope.mjs.map +1 -0
- package/lib/composables/touch.mjs +127 -0
- package/lib/composables/touch.mjs.map +1 -0
- package/lib/composables/transition.mjs +20 -0
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +130 -0
- package/lib/composables/validation.mjs.map +1 -0
- package/lib/composables/variant.mjs +52 -0
- package/lib/composables/variant.mjs.map +1 -0
- package/lib/directives/click-outside/index.mjs +23 -11
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/color/index.mjs +1 -1
- package/lib/directives/color/index.mjs.map +1 -1
- package/lib/directives/index.d.ts +58 -0
- package/lib/directives/index.mjs +2 -2
- package/lib/directives/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs +26 -19
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/mutate/index.mjs +32 -35
- package/lib/directives/mutate/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs +10 -7
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.css +34 -0
- package/lib/directives/ripple/VRipple.sass +1 -1
- package/lib/directives/ripple/_variables.scss +4 -4
- package/lib/directives/ripple/index.mjs +36 -23
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs +10 -9
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs +20 -10
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +9 -6
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +80 -49
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +55 -0
- package/lib/iconsets/fa-svg.mjs.map +1 -1
- package/lib/iconsets/fa.d.ts +55 -0
- package/lib/iconsets/fa.mjs +1 -0
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +55 -0
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +55 -0
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +55 -0
- package/lib/iconsets/mdi-svg.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +55 -0
- package/lib/iconsets/mdi.mjs +4 -3
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +453 -0
- package/lib/locale/adapters/vue-i18n.mjs +62 -0
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -0
- package/lib/locale/adapters/vue-intl.mjs +65 -0
- package/lib/locale/adapters/vue-intl.mjs.map +1 -0
- package/lib/locale/af.mjs +10 -3
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +10 -3
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +10 -3
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +10 -3
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +17 -10
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +10 -3
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +11 -4
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +77 -0
- package/lib/locale/da.mjs.map +1 -0
- package/lib/locale/de.mjs +10 -3
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +10 -3
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +10 -3
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +11 -4
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +10 -3
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +10 -3
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +10 -3
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +12 -5
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +10 -3
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +10 -3
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +10 -3
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +10 -3
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +3321 -0
- package/lib/locale/index.mjs +1 -0
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs +13 -6
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +10 -3
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +10 -3
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +10 -3
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +10 -3
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +10 -3
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +10 -3
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +10 -3
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +10 -3
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +10 -3
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +10 -3
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +10 -3
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +10 -3
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +10 -3
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +10 -3
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +10 -3
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +10 -3
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +10 -3
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +10 -3
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +10 -3
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +10 -3
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +10 -3
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/services/goto/easing-patterns.mjs +0 -3
- package/lib/services/goto/easing-patterns.mjs.map +1 -1
- package/lib/services/goto/index.mjs +17 -17
- package/lib/services/goto/index.mjs.map +1 -1
- package/lib/services/goto/util.mjs +2 -2
- package/lib/services/goto/util.mjs.map +1 -1
- package/lib/styles/elements/_blockquote.sass +6 -4
- package/lib/styles/elements/_global.sass +12 -8
- package/lib/styles/elements/_index.sass +2 -6
- package/lib/styles/generic/_colors.scss +43 -15
- package/lib/styles/generic/_elevation.scss +3 -3
- package/lib/styles/generic/_index.scss +6 -6
- package/lib/styles/generic/_reset.scss +236 -226
- package/lib/styles/generic/_transitions.scss +25 -73
- package/lib/styles/main.css +18370 -0
- package/lib/styles/main.sass +4 -5
- package/lib/styles/settings/_colors.scss +431 -7
- package/lib/styles/settings/_elevations.scss +4 -4
- package/lib/styles/settings/_index.sass +4 -10
- package/lib/styles/settings/_utilities.scss +525 -463
- package/lib/styles/settings/_variables.scss +59 -64
- package/lib/styles/tools/_absolute.sass +8 -0
- package/lib/styles/tools/_border.sass +6 -1
- package/lib/styles/tools/_density.sass +5 -9
- package/lib/styles/tools/_display.sass +11 -0
- package/lib/styles/tools/_elevation.sass +4 -2
- package/lib/styles/tools/_functions.sass +32 -24
- package/lib/styles/tools/_index.sass +17 -22
- package/lib/styles/tools/_radius.sass +5 -2
- package/lib/styles/tools/_rtl.sass +2 -0
- package/lib/styles/tools/_sheet.sass +7 -4
- package/lib/styles/tools/_states.sass +27 -10
- package/lib/styles/tools/_theme.sass +3 -5
- package/lib/styles/tools/_typography.sass +6 -0
- package/lib/styles/tools/_utilities.sass +27 -24
- package/lib/styles/tools/_variant.sass +52 -0
- package/lib/styles/utilities/_display.sass +7 -6
- package/lib/styles/utilities/_index.sass +24 -22
- package/lib/util/anchor.mjs +56 -0
- package/lib/util/anchor.mjs.map +1 -0
- package/lib/util/animation.mjs +59 -0
- package/lib/util/animation.mjs.map +1 -0
- package/lib/util/box.mjs +44 -0
- package/lib/util/box.mjs.map +1 -0
- package/lib/util/color/APCA.mjs +85 -0
- package/lib/util/color/APCA.mjs.map +1 -0
- package/lib/util/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +12 -9
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/console.mjs +8 -7
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +19 -12
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/dateTimeUtils.mjs +3 -1
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +87 -0
- package/lib/util/defineComponent.mjs.map +1 -0
- package/lib/util/dom.mjs.map +1 -1
- package/lib/util/easing.mjs +5 -0
- package/lib/util/easing.mjs.map +1 -0
- package/lib/util/getCurrentInstance.mjs +38 -0
- package/lib/util/getCurrentInstance.mjs.map +1 -0
- package/lib/util/getScrollParent.mjs +26 -0
- package/lib/util/getScrollParent.mjs.map +1 -0
- package/lib/util/globals.mjs +1 -3
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +235 -47
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +7 -2
- package/lib/util/index.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +12 -0
- package/lib/util/injectSelf.mjs.map +1 -0
- package/lib/util/isFixedPosition.mjs +12 -0
- package/lib/util/isFixedPosition.mjs.map +1 -0
- package/lib/util/propsFactory.mjs.map +1 -1
- package/lib/util/useRender.mjs +4 -2
- package/lib/util/useRender.mjs.map +1 -1
- package/package.json +120 -42
- package/dist/vuetify.css.map +0 -1
- package/lib/components/VApp/_index.scss +0 -1
- package/lib/components/VAvatar/_index.scss +0 -2
- package/lib/components/VBadge/_index.scss +0 -2
- package/lib/components/VBanner/_index.scss +0 -2
- package/lib/components/VBtn/_index.scss +0 -3
- package/lib/components/VCheckbox/VSimpleCheckbox.mjs +0 -92
- package/lib/components/VCheckbox/VSimpleCheckbox.mjs.map +0 -1
- package/lib/components/VCheckbox/VSimpleCheckbox.sass +0 -16
- package/lib/components/VDataTable/VSimpleTable.mjs +0 -48
- package/lib/components/VDataTable/VSimpleTable.mjs.map +0 -1
- package/lib/components/VDataTable/VSimpleTable.sass +0 -179
- package/lib/components/VDivider/_index.scss +0 -2
- package/lib/components/VExpansionPanel/VExpansionPanelContent.mjs +0 -47
- package/lib/components/VExpansionPanel/VExpansionPanelContent.mjs.map +0 -1
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.mjs +0 -112
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.mjs.map +0 -1
- package/lib/components/VFooter/_index.scss +0 -2
- package/lib/components/VGrid/_index.scss +0 -2
- package/lib/components/VIcon/_index.scss +0 -2
- package/lib/components/VImg/_index.scss +0 -2
- package/lib/components/VLayout/_index.scss +0 -1
- package/lib/components/VList/VListGroup.sass +0 -111
- package/lib/components/VList/VListItemAvatar.mjs +0 -36
- package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
- package/lib/components/VList/VListItemGroup.mjs +0 -41
- package/lib/components/VList/VListItemGroup.mjs.map +0 -1
- package/lib/components/VList/VListItemGroup.sass +0 -5
- package/lib/components/VList/VListItemIcon.mjs +0 -21
- package/lib/components/VList/VListItemIcon.mjs.map +0 -1
- package/lib/components/VList/_mixins.sass +0 -18
- package/lib/components/VMain/_index.scss +0 -2
- package/lib/components/VNavigationDrawer/_index.scss +0 -2
- package/lib/components/VParallax/_variables.scss +0 -4
- package/lib/components/VRadioGroup/VRadio.mjs +0 -179
- package/lib/components/VRadioGroup/VRadio.mjs.map +0 -1
- package/lib/components/VRadioGroup/VRadio.sass +0 -25
- package/lib/components/VRangeSlider/VRangeSlider.sass +0 -19
- package/lib/components/VResponsive/_index.scss +0 -1
- package/lib/components/VSelect/VSelectList.mjs +0 -251
- package/lib/components/VSelect/VSelectList.mjs.map +0 -1
- package/lib/components/VSheet/_index.scss +0 -2
- package/lib/components/VSlideGroup/VSlideItem.mjs +0 -14
- package/lib/components/VSlideGroup/VSlideItem.mjs.map +0 -1
- package/lib/components/VSubheader/VSubheader.mjs +0 -31
- package/lib/components/VSubheader/VSubheader.mjs.map +0 -1
- package/lib/components/VSubheader/VSubheader.sass +0 -15
- package/lib/components/VSubheader/_variables.scss +0 -6
- package/lib/components/VSubheader/index.mjs +0 -4
- package/lib/components/VSubheader/index.mjs.map +0 -1
- package/lib/components/VSystemBar/_index.scss +0 -2
- package/lib/components/VTabs/VTabItem.mjs +0 -23
- package/lib/components/VTabs/VTabItem.mjs.map +0 -1
- package/lib/components/VTabs/VTabsBar.mjs +0 -86
- package/lib/components/VTabs/VTabsBar.mjs.map +0 -1
- package/lib/components/VTabs/VTabsItems.mjs +0 -37
- package/lib/components/VTabs/VTabsItems.mjs.map +0 -1
- package/lib/components/VTabs/VTabsSlider.mjs +0 -20
- package/lib/components/VTabs/VTabsSlider.mjs.map +0 -1
- package/lib/components/VTextField/_mixins.sass +0 -18
- package/lib/components/VToolbar/_index.scss +0 -2
- package/lib/entry.mjs +0 -4
- package/lib/entry.mjs.map +0 -1
- package/lib/globals.d.mjs +0 -2
- package/lib/globals.d.mjs.map +0 -1
- package/lib/mixins/activatable/index.mjs +0 -196
- package/lib/mixins/activatable/index.mjs.map +0 -1
- package/lib/mixins/applicationable/index.mjs +0 -72
- package/lib/mixins/applicationable/index.mjs.map +0 -1
- package/lib/mixins/binds-attrs/index.mjs +0 -42
- package/lib/mixins/binds-attrs/index.mjs.map +0 -1
- package/lib/mixins/bootable/index.mjs +0 -54
- package/lib/mixins/bootable/index.mjs.map +0 -1
- package/lib/mixins/button-group/index.mjs +0 -28
- package/lib/mixins/button-group/index.mjs.map +0 -1
- package/lib/mixins/colorable/index.mjs +0 -78
- package/lib/mixins/colorable/index.mjs.map +0 -1
- package/lib/mixins/comparable/index.mjs +0 -15
- package/lib/mixins/comparable/index.mjs.map +0 -1
- package/lib/mixins/dependent/index.mjs +0 -73
- package/lib/mixins/dependent/index.mjs.map +0 -1
- package/lib/mixins/detachable/index.mjs +0 -128
- package/lib/mixins/detachable/index.mjs.map +0 -1
- package/lib/mixins/elevatable/index.mjs +0 -26
- package/lib/mixins/elevatable/index.mjs.map +0 -1
- package/lib/mixins/filterable/index.mjs +0 -16
- package/lib/mixins/filterable/index.mjs.map +0 -1
- package/lib/mixins/intersectable/index.mjs +0 -53
- package/lib/mixins/intersectable/index.mjs.map +0 -1
- package/lib/mixins/loadable/index.mjs +0 -45
- package/lib/mixins/loadable/index.mjs.map +0 -1
- package/lib/mixins/localable/index.mjs +0 -17
- package/lib/mixins/localable/index.mjs.map +0 -1
- package/lib/mixins/menuable/index.mjs +0 -361
- package/lib/mixins/menuable/index.mjs.map +0 -1
- package/lib/mixins/mobile/index.mjs +0 -50
- package/lib/mixins/mobile/index.mjs.map +0 -1
- package/lib/mixins/overlayable/index.mjs +0 -201
- package/lib/mixins/overlayable/index.mjs.map +0 -1
- package/lib/mixins/picker/index.mjs +0 -75
- package/lib/mixins/picker/index.mjs.map +0 -1
- package/lib/mixins/picker-button/index.mjs +0 -35
- package/lib/mixins/picker-button/index.mjs.map +0 -1
- package/lib/mixins/proxyable/index.mjs +0 -50
- package/lib/mixins/proxyable/index.mjs.map +0 -1
- package/lib/mixins/returnable/index.mjs +0 -36
- package/lib/mixins/returnable/index.mjs.map +0 -1
- package/lib/mixins/rippleable/index.mjs +0 -35
- package/lib/mixins/rippleable/index.mjs.map +0 -1
- package/lib/mixins/roundable/index.mjs +0 -37
- package/lib/mixins/roundable/index.mjs.map +0 -1
- package/lib/mixins/routable/index.mjs +0 -146
- package/lib/mixins/routable/index.mjs.map +0 -1
- package/lib/mixins/selectable/index.mjs +0 -167
- package/lib/mixins/selectable/index.mjs.map +0 -1
- package/lib/mixins/stackable/index.mjs +0 -55
- package/lib/mixins/stackable/index.mjs.map +0 -1
- package/lib/mixins/themeable/index.mjs +0 -111
- package/lib/mixins/themeable/index.mjs.map +0 -1
- package/lib/mixins/toggleable/index.mjs +0 -40
- package/lib/mixins/toggleable/index.mjs.map +0 -1
- package/lib/mixins/transitionable/index.mjs +0 -13
- package/lib/mixins/transitionable/index.mjs.map +0 -1
- package/lib/mixins/translatable/index.mjs +0 -59
- package/lib/mixins/translatable/index.mjs.map +0 -1
- package/lib/mixins/validatable/index.mjs +0 -263
- package/lib/mixins/validatable/index.mjs.map +0 -1
- package/lib/presets/default/index.mjs +0 -71
- package/lib/presets/default/index.mjs.map +0 -1
- package/lib/services/application/index.mjs +0 -44
- package/lib/services/application/index.mjs.map +0 -1
- package/lib/services/breakpoint/index.mjs +0 -151
- package/lib/services/breakpoint/index.mjs.map +0 -1
- package/lib/services/index.mjs +0 -10
- package/lib/services/index.mjs.map +0 -1
- package/lib/services/lang/index.mjs +0 -69
- package/lib/services/lang/index.mjs.map +0 -1
- package/lib/services/service/index.mjs +0 -8
- package/lib/services/service/index.mjs.map +0 -1
- package/lib/styles/components/_index.sass +0 -1
- package/lib/styles/components/_selection-controls.sass +0 -119
- package/lib/styles/elements/_code.sass +0 -23
- package/lib/styles/elements/_headings.sass +0 -8
- package/lib/styles/elements/_lists.sass +0 -3
- package/lib/styles/elements/_typography.sass +0 -88
- package/lib/styles/settings/_dark.scss +0 -145
- package/lib/styles/settings/_light.scss +0 -126
- package/lib/styles/settings/_theme.scss +0 -1
- package/lib/styles/styles.sass +0 -2
- package/lib/styles/utilities/_text.sass +0 -8
- package/lib/util/makeProps.mjs +0 -52
- package/lib/util/makeProps.mjs.map +0 -1
- package/lib/util/useDirective.mjs +0 -7
- package/lib/util/useDirective.mjs.map +0 -1
- package/types/.npmignore +0 -2
- package/types/alacarte.d.ts +0 -49
- package/types/colors.d.ts +0 -107
- package/types/index.d.ts +0 -300
- package/types/lib.d.ts +0 -380
- package/types/services/application.d.ts +0 -27
- package/types/services/breakpoint.d.ts +0 -45
- package/types/services/goto.d.ts +0 -31
- package/types/services/icons.d.ts +0 -71
- package/types/services/index.d.ts +0 -16
- package/types/services/lang.d.ts +0 -19
- package/types/services/theme.d.ts +0 -83
package/dist/vuetify.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://Vuetify/webpack/universalModuleDefinition","webpack://Vuetify/./src/styles/main.sass","webpack://Vuetify/./src/components/VApp/VApp.sass","webpack://Vuetify/./src/util/console.ts","webpack://Vuetify/./src/util/helpers.ts","webpack://Vuetify/./src/util/color/transformSRGB.ts","webpack://Vuetify/./src/util/color/transformCIELAB.ts","webpack://Vuetify/./src/util/colorUtils.ts","webpack://Vuetify/./src/composables/theme.ts","webpack://Vuetify/./src/util/propsFactory.ts","webpack://Vuetify/./src/composables/layout.ts","webpack://Vuetify/./src/util/globals.ts","webpack://Vuetify/./src/composables/display.ts","webpack://Vuetify/./src/composables/icons.tsx","webpack://Vuetify/./src/locale/en.ts","webpack://Vuetify/./src/composables/locale.ts","webpack://Vuetify/./src/locale/index.ts","webpack://Vuetify/./src/composables/rtl.ts","webpack://Vuetify/./src/iconsets/mdi.ts","webpack://Vuetify/./src/framework.ts","webpack://Vuetify/./src/util/makeProps.ts","webpack://Vuetify/./src/components/VApp/VApp.tsx","webpack://Vuetify/./src/components/VAvatar/VAvatar.sass","webpack://Vuetify/./src/composables/rounded.ts","webpack://Vuetify/./src/composables/size.ts","webpack://Vuetify/./src/composables/tag.ts","webpack://Vuetify/./src/composables/color.ts","webpack://Vuetify/./src/components/VAvatar/VAvatar.tsx","webpack://Vuetify/./src/components/VBadge/VBadge.sass","webpack://Vuetify/./src/components/VIcon/VIcon.sass","webpack://Vuetify/./src/components/VIcon/VIcon.tsx","webpack://Vuetify/./src/composables/transition.ts","webpack://Vuetify/./src/components/VBadge/VBadge.tsx","webpack://Vuetify/./src/components/VBanner/VBanner.sass","webpack://Vuetify/./src/composables/border.ts","webpack://Vuetify/./src/composables/dimensions.ts","webpack://Vuetify/./src/composables/elevation.ts","webpack://Vuetify/./src/composables/position.ts","webpack://Vuetify/./src/components/VBanner/VBanner.tsx","webpack://Vuetify/./src/components/VBtn/VBtn.sass","webpack://Vuetify/./src/composables/density.ts","webpack://Vuetify/./src/directives/ripple/VRipple.sass","webpack://Vuetify/./src/directives/ripple/index.ts","webpack://Vuetify/./src/util/useDirective.ts","webpack://Vuetify/./src/components/VBtn/VBtn.tsx","webpack://Vuetify/./src/components/VDivider/VDivider.sass","webpack://Vuetify/./src/components/VDivider/VDivider.tsx","webpack://Vuetify/./src/components/VFooter/VFooter.sass","webpack://Vuetify/./src/components/VFooter/VFooter.tsx","webpack://Vuetify/./src/components/VGrid/VGrid.sass","webpack://Vuetify/./src/components/VGrid/VContainer.tsx","webpack://Vuetify/./src/components/VGrid/VCol.ts","webpack://Vuetify/./src/components/VGrid/VRow.ts","webpack://Vuetify/./src/util/createSimpleFunctional.ts","webpack://Vuetify/./src/components/VGrid/VSpacer.ts","webpack://Vuetify/./src/components/VGrid/index.ts","webpack://Vuetify/./src/components/VIcon/index.ts","webpack://Vuetify/./src/components/VImg/VImg.sass","webpack://Vuetify/./src/components/VResponsive/VResponsive.sass","webpack://Vuetify/./src/components/VResponsive/VResponsive.tsx","webpack://Vuetify/./src/directives/intersect/index.ts","webpack://Vuetify/./src/util/useRender.ts","webpack://Vuetify/./src/components/VImg/VImg.tsx","webpack://Vuetify/./src/components/VLayout/VLayout.sass","webpack://Vuetify/./src/components/VLayout/VLayout.tsx","webpack://Vuetify/./src/components/VLayout/VLayoutItem.tsx","webpack://Vuetify/./src/components/VLayout/index.ts","webpack://Vuetify/./src/components/VLocaleProvider/VLocaleProvider.tsx","webpack://Vuetify/./src/components/VMain/VMain.sass","webpack://Vuetify/./src/composables/ssrBoot.ts","webpack://Vuetify/./src/components/VMain/VMain.tsx","webpack://Vuetify/./src/components/VNavigationDrawer/VNavigationDrawer.sass","webpack://Vuetify/./src/composables/proxiedModel.ts","webpack://Vuetify/./src/components/VNavigationDrawer/VNavigationDrawer.tsx","webpack://Vuetify/./src/components/VSheet/VSheet.sass","webpack://Vuetify/./src/components/VSheet/VSheet.tsx","webpack://Vuetify/./src/components/VSystemBar/VSystemBar.sass","webpack://Vuetify/./src/components/VSystemBar/VSystemBar.tsx","webpack://Vuetify/./src/components/VThemeProvider/VThemeProvider.sass","webpack://Vuetify/./src/components/VThemeProvider/VThemeProvider.tsx","webpack://Vuetify/./src/components/transitions/createTransition.ts","webpack://Vuetify/./src/components/transitions/expand-transition.ts","webpack://Vuetify/./src/components/transitions/index.ts","webpack://Vuetify/./src/components/index.ts","webpack://Vuetify/./src/util/dom.ts","webpack://Vuetify/./src/directives/click-outside/index.ts","webpack://Vuetify/./src/directives/resize/index.ts","webpack://Vuetify/./src/directives/scroll/index.ts","webpack://Vuetify/./src/directives/touch/index.ts","webpack://Vuetify/./src/directives/index.ts","webpack://Vuetify/./src/entry-bundler.ts","webpack://Vuetify/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"amd\":\"vue\",\"root\":\"Vue\"}","webpack://Vuetify/webpack/bootstrap","webpack://Vuetify/webpack/runtime/define property getters","webpack://Vuetify/webpack/runtime/hasOwnProperty shorthand","webpack://Vuetify/webpack/runtime/make namespace object","webpack://Vuetify/webpack/startup"],"names":["createMessage","message","vm","parent","_isVue","$parent","$options","$_alreadyWarned","includes","push","generateComponentTrace","consoleInfo","newMessage","console","info","consoleWarn","warn","consoleError","error","deprecate","original","replacement","breaking","removed","classifyRE","classify","str","replace","c","toUpperCase","formatComponentName","includeFile","$root","options","cid","constructor","name","_componentTag","file","__file","match","tree","currentRecursiveSequence","length","last","map","i","repeat","Array","isArray","join","getNestedValue","obj","path","fallback","undefined","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","split","getPropertyFromItem","item","property","value","createRange","start","from","v","k","getZIndex","el","nodeType","Node","ELEMENT_NODE","index","window","getComputedStyle","getPropertyValue","parentNode","tagsToReplace","escapeHTML","tag","filterObjectOnKeys","filtered","key","convertToUnit","unit","isNaN","String","Number","isObject","keyCodes","freeze","enter","tab","delete","esc","space","up","down","left","right","end","home","del","backspace","insert","pageup","pagedown","shift","o","extract","properties","extracted","rest","entries","forEach","arrayDiff","diff","groupItems","items","groupBy","groupDesc","groups","current","val","wrapInArray","sortItems","sortBy","sortDesc","locale","customSorters","stringCollator","Intl","Collator","sensitivity","usage","sort","sortKey","sortA","sortB","customResult","s","toString","toLocaleLowerCase","compare","defaultFilter","search","indexOf","searchItems","toLowerCase","trim","filter","some","debounce","fn","delay","timeoutId","args","clearTimeout","setTimeout","throttle","limit","throttling","getPrefixedSlots","prefix","slots","startsWith","reduce","clamp","min","max","Math","padEnd","char","chunk","size","chunked","substr","humanReadableFileSize","bytes","binary","base","abs","toFixed","camelizeObjectKeys","camelize","mergeDeep","source","target","sourceProperty","targetProperty","fillArray","fill","getUid","_uid","flattenFragments","nodes","node","type","Fragment","children","flat","maybeTransition","data","vNodes","transition","h","Transition","mergeProps","randomHexColor","n","random","slice","toKebabCase","wrapInRef","x","isRef","ref","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","transform","matrix","round","toXYZ","r","g","delta","cielabForwardTransform","t","cbrt","cielabReverseTransform","transformedY","lab","Ln","isCssColor","color","test","colorToInt","substring","parseInt","TypeError","classToHex","colors","currentTheme","colorName","colorModifier","hexColor","intToHex","colorToHex","HSVAtoRGBA","hsva","f","RGBAtoHSVA","rgba","hsv","HSVAtoHSLA","l","sprime","HSLAtoHSVA","hsl","RGBAtoCSS","RGBtoCSS","RGBAtoHex","toHex","HexToRGBA","hex","HexToHSVA","HSVAtoHex","parseHex","parseGradient","gradient","values","RGBtoInt","colorToRGB","int","lighten","amount","CIELAB","sRGB","darken","getLuma","getContrast","first","second","l1","l2","light","dark","VuetifyThemeSymbol","Symbol","for","defaultThemeOptions","defaultTheme","variations","themes","background","surface","primary","secondary","success","warning","variables","parseThemeOptions","isDisabled","createTheme","parsedOptions","styleEl","computedThemes","computed","theme","genColorVariations","onColor","variation","genCssVariables","Error","lightOverlay","darkOverlay","genStyleElement","document","createElement","id","head","appendChild","createCssClass","selector","content","line","updateStyles","lines","themeName","firstTheme","innerHTML","watch","deep","immediate","setTheme","getTheme","themeClasses","hasColor","provideTheme","context","inject","internal","get","set","newContext","emit","newTheme","provide","useTheme","propsFactory","defaults","prop","isObjectDefinition","definition","default","VuetifyLayoutKey","makeLayoutProps","overlaps","fullHeight","Boolean","makeLayoutItemProps","priority","useMain","layout","useLayoutItem","position","styles","register","onBeforeUnmount","unregister","generateLayers","registered","positions","amounts","previousLayer","top","bottom","layers","layer","ids","createLayout","Map","priorities","computedOverlaps","overlap","topPosition","bottomPosition","topAmount","bottomAmount","sortedEntries","mainStyles","getLayoutItem","find","findIndex","isHorizontal","isOpposite","height","marginLeft","marginRight","marginTop","marginBottom","width","zIndex","layoutClasses","IS_NODE","process","IN_BROWSER","IS_DEBUG","env","DEBUG","IS_PROD","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","navigator","maxTouchPoints","VuetifyDisplaySymbol","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","getClientWidth","documentElement","clientWidth","innerWidth","getClientHeight","clientHeight","innerHeight","getPlatform","userAgent","regexp","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","ssr","touch","createDisplay","platform","state","reactive","onResize","watchEffect","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","addEventListener","passive","toRefs","useDisplay","display","VuetifyIconSymbol","makeIconProps","icon","required","VComponentIcon","defineComponent","makeProps","setup","VSvgIcon","inheritAttrs","attrs","VLigatureIcon","VClassIcon","defaultSets","svg","component","class","useIcon","icons","iconData","iconAlias","aliases","hasSet","setName","defaultSet","iconName","sets","badge","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","fileInput","counter","counterSize","timePicker","am","pm","pagination","wrapper","previous","page","currentPage","rating","VuetifyLocaleAdapterSymbol","VuetifyLocaleSymbol","provideLocale","adapter","createScope","useLocale","getScope","isLocaleAdapter","hasOwnProperty","createLocaleAdapter","app","createDefaultLocaleAdapter","rootInstance","createRoot","LANG_PREFIX","params","createTranslateFunction","messages","shortKey","currentLocale","fallbackLocale","rootScope","defaultLocale","en","currentScope","newScope","rtl","af","ar","bg","ca","ckb","cs","de","es","et","fa","fi","fr","hr","hu","he","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","VuetifyRtlSymbol","createRtl","localeScope","createRtlScope","isRtl","defaultRtl","rtlClasses","provideRtl","useRtl","complete","cancel","clear","checkboxOn","checkboxOff","checkboxIndeterminate","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","unfold","plus","minus","mdi","VuetifySymbol","useVuetify","vuetify","createVuetify","install","components","directives","directive","global","config","globalProperties","$vuetify","originalProp","isOptions","propDefinition","originalDefault","wrappedDefault","generateDefault","propName","localDefault","getCurrentInstance","globalDefault","componentDefault","actualDefault","isFactory","Function","makeRoundedProps","rounded","useRounded","roundedClasses","classes","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","makeTagProps","useColor","backgroundIsCssColor","textIsCssColor","text","colorClasses","colorStyles","backgroundColor","caretColor","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","toRef","disabled","slotIcon","slot","fontSize","makeTransitionProps","validator","bordered","dot","floating","inline","label","location","vertical","horizontal","modelValue","offsetX","offsetY","textColor","ctx","calculatePosition","offset","locationStyles","badgeAttrs","makeBorderProps","outlined","border","useBorder","borderClasses","makeDimensionProps","maxHeight","maxWidth","minHeight","minWidth","useDimension","dimensionStyles","makeElevationProps","elevation","useElevation","elevationClasses","positionValues","makePositionProps","absolute","fixed","usePosition","targets","positionClasses","positionStyles","avatar","singleLine","sticky","hasThumbnail","thumbnail","actions","allowedDensities","makeDensityProps","density","useDensity","densityClasses","rippleStop","DELAY_RIPPLE","style","webkitTransform","opacity","isTouchEvent","e","isKeyboardEvent","calculate","localX","localY","getBoundingClientRect","touches","clientX","clientY","radius","scale","_ripple","circle","center","sqrt","centerX","centerY","y","ripples","show","enabled","container","animation","className","dataset","previousPosition","classList","add","activated","performance","now","remove","hide","getElementsByClassName","isHiding","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","removeListeners","removeEventListener","mounted","unmounted","updated","oldValue","Ripple","useDirective","arg","plain","block","isContained","isElevated","withDirectives","inset","thickness","dividerStyles","role","fluid","breakpoints","breakpointProps","offsetProps","capitalize","orderProps","propMap","col","order","breakpointClass","breakpoint","cols","alignSelf","hasColClasses","ALIGNMENT","makeRowProps","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","dense","noGutters","createSimpleFunctional","klass","useAspectStyles","aspectStyles","ratio","aspectRatio","paddingBottom","contentClass","additional","handler","observer","IntersectionObserver","_observe","quiet","init","isIntersecting","entry","once","observe","unobserve","Intersect","useRender","render","alt","cover","eager","lazySrc","root","rootMargin","threshold","sizes","src","srcset","emits","currentSrc","image","naturalWidth","naturalHeight","normalisedSrc","aspect","onBeforeMount","nextTick","pollForSize","getSrc","lazyImg","Image","onLoad","onError","img","timeout","poll","imgHeight","imgWidth","endsWith","containClasses","__image","sources","appear","vShow","__preloadImage","__placeholder","placeholder","__error","intersect","localeInstance","useSsrBoot","isBooted","onMounted","requestAnimationFrame","ssrBootStyles","useProxiedModel","defaultValue","transformIn","transformOut","propIsDefined","vnode","newValue","disableResizeWatcher","expandOnHover","permanent","rail","railWidth","temporary","isActive","isHovering","isTemporary","layoutStyles","hasImg","translate","prepend","append","lightsOut","createCssTransition","origin","mode","group","hideOnLeave","leaveAbsolute","TransitionGroup","onBeforeEnter","transformOrigin","onLeave","createJavascriptTransition","functions","expandedParentClass","sizeProperty","offsetProperty","_parent","_initialStyle","overflow","onEnter","initialStyle","setProperty","offsetHeight","onAfterEnter","resetStyles","onEnterCancelled","onAfterLeave","onLeaveCancelled","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","ExpandTransitionGenerator","VExpandXTransition","attachedRoot","getRootNode","composed","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","elements","include","contains","closeConditional","_clickOutside","lastMousedownWasOutside","handleShadow","callback","body","ClickOutside","onClick","onMousedown","active","_onResize","Resize","self","querySelector","_onScroll","Scroll","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","touchstart","event","changedTouches","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","parentElement","uid","instance","$","handlers","_touchHandlers","create","eventName","Touch","framework"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;;;;;ACAA;;;ACAA;AACA;AAEA,SAASA,aAAT,CAAwBC,OAAxB,EAAyCC,EAAzC,EAAmDC,MAAnD,EAAgF;AAC9E;AAEA,MAAIA,MAAJ,EAAY;AACVD,MAAE,GAAG;AACHE,YAAM,EAAE,IADL;AAEHC,aAAO,EAAEF,MAFN;AAGHG,cAAQ,EAAEJ;AAHP,KAAL;AAKD;;AAED,MAAIA,EAAJ,EAAQ;AACN;AACAA,MAAE,CAACK,eAAH,GAAqBL,EAAE,CAACK,eAAH,IAAsB,EAA3C;AACA,QAAIL,EAAE,CAACK,eAAH,CAAmBC,QAAnB,CAA4BP,OAA5B,CAAJ,EAA0C;AAC1CC,MAAE,CAACK,eAAH,CAAmBE,IAAnB,CAAwBR,OAAxB;AACD;;AAED,SAAO,oBAAaA,OAAb,KACLC,EAAE,GAAGQ,sBAAsB,CAACR,EAAD,CAAzB,GAAgC,EAD7B,CAAP;AAGD;;AAEM,SAASS,WAAT,CAAsBV,OAAtB,EAAuCC,EAAvC,EAAiDC,MAAjD,EAAqE;AAC1E,QAAMS,UAAU,GAAGZ,aAAa,CAACC,OAAD,EAAUC,EAAV,EAAcC,MAAd,CAAhC;AACAS,YAAU,IAAI,IAAd,IAAsBC,OAAO,CAACC,IAAR,CAAaF,UAAb,CAAtB;AACD;AAEM,SAASG,WAAT,CAAsBd,OAAtB,EAAuCC,EAAvC,EAAiDC,MAAjD,EAAqE;AAC1E,QAAMS,UAAU,GAAGZ,aAAa,CAACC,OAAD,EAAUC,EAAV,EAAcC,MAAd,CAAhC;AACAS,YAAU,IAAI,IAAd,IAAsBC,OAAO,CAACG,IAAR,CAAaJ,UAAb,CAAtB;AACD;AAEM,SAASK,YAAT,CAAuBhB,OAAvB,EAAwCC,EAAxC,EAAkDC,MAAlD,EAAsE;AAC3E,QAAMS,UAAU,GAAGZ,aAAa,CAACC,OAAD,EAAUC,EAAV,EAAcC,MAAd,CAAhC;AACAS,YAAU,IAAI,IAAd,IAAsBC,OAAO,CAACK,KAAR,CAAcN,UAAd,CAAtB;AACD;AAEM,SAASO,SAAT,CAAoBC,QAApB,EAAsCC,WAAtC,EAA2DnB,EAA3D,EAAqEC,MAArE,EAAmF;AACxFY,aAAW,sBAAeK,QAAf,mCAAgDC,WAAhD,iBAAyEnB,EAAzE,EAA6EC,MAA7E,CAAX;AACD;AACM,SAASmB,QAAT,CAAmBF,QAAnB,EAAqCC,WAArC,EAA0DnB,EAA1D,EAAoEC,MAApE,EAAkF;AACvFc,cAAY,uBAAgBG,QAAhB,sCAAoDC,WAApD,iJAA6MnB,EAA7M,EAAiNC,MAAjN,CAAZ;AACD;AACM,SAASoB,OAAT,CAAkBH,QAAlB,EAAoClB,EAApC,EAA8CC,MAA9C,EAA4D;AACjEY,aAAW,sBAAeK,QAAf,kDAAsElB,EAAtE,EAA0EC,MAA1E,CAAX;AACD;AAED;AACA;AACA;;AAEA,MAAMqB,UAAU,GAAG,iBAAnB;;AACA,MAAMC,QAAQ,GAAIC,GAAD,IAAiBA,GAAG,CAClCC,OAD+B,CACvBH,UADuB,EACXI,CAAC,IAAIA,CAAC,CAACC,WAAF,EADM,EAE/BF,OAF+B,CAEvB,OAFuB,EAEd,EAFc,CAAlC;;AAIA,SAASG,mBAAT,CAA8B5B,EAA9B,EAAuC6B,WAAvC,EAAsE;AACpE,MAAI7B,EAAE,CAAC8B,KAAH,KAAa9B,EAAjB,EAAqB;AACnB,WAAO,QAAP;AACD;;AACD,QAAM+B,OAAO,GAAG,OAAO/B,EAAP,KAAc,UAAd,IAA4BA,EAAE,CAACgC,GAAH,IAAU,IAAtC,GACZhC,EAAE,CAAC+B,OADS,GAEZ/B,EAAE,CAACE,MAAH,GACEF,EAAE,CAACI,QAAH,IAAeJ,EAAE,CAACiC,WAAH,CAAeF,OADhC,GAEE/B,EAAE,IAAI,EAJZ;AAKA,MAAIkC,IAAI,GAAGH,OAAO,CAACG,IAAR,IAAgBH,OAAO,CAACI,aAAnC;AACA,QAAMC,IAAI,GAAGL,OAAO,CAACM,MAArB;;AACA,MAAI,CAACH,IAAD,IAASE,IAAb,EAAmB;AACjB,UAAME,KAAK,GAAGF,IAAI,CAACE,KAAL,CAAW,iBAAX,CAAd;AACAJ,QAAI,GAAGI,KAAH,oBAAGA,KAAK,CAAG,CAAH,CAAZ;AACD;;AAED,SACE,CAACJ,IAAI,cAAOX,QAAQ,CAACW,IAAD,CAAf,sBAAL,KACCE,IAAI,IAAIP,WAAW,KAAK,KAAxB,iBAAuCO,IAAvC,IAAgD,EADjD,CADF;AAID;;AAED,SAAS5B,sBAAT,CAAiCR,EAAjC,EAAkD;AAChD,MAAIA,EAAE,CAACE,MAAH,IAAaF,EAAE,CAACG,OAApB,EAA6B;AAC3B,UAAMoC,IAAW,GAAG,EAApB;AACA,QAAIC,wBAAwB,GAAG,CAA/B;;AACA,WAAOxC,EAAP,EAAW;AACT,UAAIuC,IAAI,CAACE,MAAL,GAAc,CAAlB,EAAqB;AACnB,cAAMC,IAAS,GAAGH,IAAI,CAACA,IAAI,CAACE,MAAL,GAAc,CAAf,CAAtB;;AACA,YAAIC,IAAI,CAACT,WAAL,KAAqBjC,EAAE,CAACiC,WAA5B,EAAyC;AACvCO,kCAAwB;AACxBxC,YAAE,GAAGA,EAAE,CAACG,OAAR;AACA;AACD,SAJD,MAIO,IAAIqC,wBAAwB,GAAG,CAA/B,EAAkC;AACvCD,cAAI,CAACA,IAAI,CAACE,MAAL,GAAc,CAAf,CAAJ,GAAwB,CAACC,IAAD,EAAOF,wBAAP,CAAxB;AACAA,kCAAwB,GAAG,CAA3B;AACD;AACF;;AACDD,UAAI,CAAChC,IAAL,CAAUP,EAAV;AACAA,QAAE,GAAGA,EAAE,CAACG,OAAR;AACD;;AACD,WAAO,qBAAqBoC,IAAI,CAC7BI,GADyB,CACrB,CAAC3C,EAAD,EAAK4C,CAAL,eACHA,CAAC,KAAK,CAAN,GAAU,OAAV,GAAoB,IAAIC,MAAJ,CAAW,IAAID,CAAC,GAAG,CAAnB,CADjB,SAGHE,KAAK,CAACC,OAAN,CAAc/C,EAAd,cACO4B,mBAAmB,CAAC5B,EAAE,CAAC,CAAD,CAAH,CAD1B,kBACyCA,EAAE,CAAC,CAAD,CAD3C,yBAEI4B,mBAAmB,CAAC5B,EAAD,CALpB,CADqB,EAQzBgD,IARyB,CAQpB,IARoB,CAA5B;AASD,GA3BD,MA2BO;AACL,mCAAwBpB,mBAAmB,CAAC5B,EAAD,CAA3C;AACD;AACF,C;;AC/GD;AAEO,SAASiD,cAAT,CAAyBC,GAAzB,EAAmCC,IAAnC,EAA8DC,QAA9D,EAAmF;AACxF,QAAMV,IAAI,GAAGS,IAAI,CAACV,MAAL,GAAc,CAA3B;AAEA,MAAIC,IAAI,GAAG,CAAX,EAAc,OAAOQ,GAAG,KAAKG,SAAR,GAAoBD,QAApB,GAA+BF,GAAtC;;AAEd,OAAK,IAAIN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,IAApB,EAA0BE,CAAC,EAA3B,EAA+B;AAC7B,QAAIM,GAAG,IAAI,IAAX,EAAiB;AACf,aAAOE,QAAP;AACD;;AACDF,OAAG,GAAGA,GAAG,CAACC,IAAI,CAACP,CAAD,CAAL,CAAT;AACD;;AAED,MAAIM,GAAG,IAAI,IAAX,EAAiB,OAAOE,QAAP;AAEjB,SAAOF,GAAG,CAACC,IAAI,CAACT,IAAD,CAAL,CAAH,KAAoBW,SAApB,GAAgCD,QAAhC,GAA2CF,GAAG,CAACC,IAAI,CAACT,IAAD,CAAL,CAArD;AACD;AAEM,SAASY,SAAT,CAAoBC,CAApB,EAA4BC,CAA5B,EAA6C;AAClD,MAAID,CAAC,KAAKC,CAAV,EAAa,OAAO,IAAP;;AAEb,MACED,CAAC,YAAYE,IAAb,IACAD,CAAC,YAAYC,IADb,IAEAF,CAAC,CAACG,OAAF,OAAgBF,CAAC,CAACE,OAAF,EAHlB,EAIE;AACA;AACA,WAAO,KAAP;AACD;;AAED,MAAIH,CAAC,KAAKI,MAAM,CAACJ,CAAD,CAAZ,IAAmBC,CAAC,KAAKG,MAAM,CAACH,CAAD,CAAnC,EAAwC;AACtC;AACA,WAAO,KAAP;AACD;;AAED,QAAMI,KAAK,GAAGD,MAAM,CAACE,IAAP,CAAYN,CAAZ,CAAd;;AAEA,MAAIK,KAAK,CAACnB,MAAN,KAAiBkB,MAAM,CAACE,IAAP,CAAYL,CAAZ,EAAef,MAApC,EAA4C;AAC1C;AACA,WAAO,KAAP;AACD;;AAED,SAAOmB,KAAK,CAACE,KAAN,CAAYC,CAAC,IAAIT,SAAS,CAACC,CAAC,CAACQ,CAAD,CAAF,EAAOP,CAAC,CAACO,CAAD,CAAR,CAA1B,CAAP;AACD;AAEM,SAASC,oBAAT,CAA+Bd,GAA/B,EAAyCC,IAAzC,EAAuDC,QAAvD,EAA4E;AACjF;AACA,MAAIF,GAAG,IAAI,IAAP,IAAe,CAACC,IAAhB,IAAwB,OAAOA,IAAP,KAAgB,QAA5C,EAAsD,OAAOC,QAAP;AACtD,MAAIF,GAAG,CAACC,IAAD,CAAH,KAAcE,SAAlB,EAA6B,OAAOH,GAAG,CAACC,IAAD,CAAV;AAC7BA,MAAI,GAAGA,IAAI,CAAC1B,OAAL,CAAa,YAAb,EAA2B,KAA3B,CAAP,CAJiF,CAIxC;;AACzC0B,MAAI,GAAGA,IAAI,CAAC1B,OAAL,CAAa,KAAb,EAAoB,EAApB,CAAP,CALiF,CAKlD;;AAC/B,SAAOwB,cAAc,CAACC,GAAD,EAAMC,IAAI,CAACc,KAAL,CAAW,GAAX,CAAN,EAAuBb,QAAvB,CAArB;AACD;AAEM,SAASc,mBAAT,CACLC,IADK,EAELC,QAFK,EAGLhB,QAHK,EAIA;AACL,MAAIgB,QAAQ,IAAI,IAAhB,EAAsB,OAAOD,IAAI,KAAKd,SAAT,GAAqBD,QAArB,GAAgCe,IAAvC;AAEtB,MAAIA,IAAI,KAAKR,MAAM,CAACQ,IAAD,CAAnB,EAA2B,OAAOf,QAAQ,KAAKC,SAAb,GAAyBc,IAAzB,GAAgCf,QAAvC;AAE3B,MAAI,OAAOgB,QAAP,KAAoB,QAAxB,EAAkC,OAAOJ,oBAAoB,CAACG,IAAD,EAAOC,QAAP,EAAiBhB,QAAjB,CAA3B;AAElC,MAAIN,KAAK,CAACC,OAAN,CAAcqB,QAAd,CAAJ,EAA6B,OAAOnB,cAAc,CAACkB,IAAD,EAAOC,QAAP,EAAiBhB,QAAjB,CAArB;AAE7B,MAAI,OAAOgB,QAAP,KAAoB,UAAxB,EAAoC,OAAOhB,QAAP;AAEpC,QAAMiB,KAAK,GAAGD,QAAQ,CAACD,IAAD,EAAOf,QAAP,CAAtB;AAEA,SAAO,OAAOiB,KAAP,KAAiB,WAAjB,GAA+BjB,QAA/B,GAA0CiB,KAAjD;AACD;AAEM,SAASC,WAAT,CAAsB7B,MAAtB,EAAsC8B,KAAK,GAAG,CAA9C,EAA2D;AAChE,SAAOzB,KAAK,CAAC0B,IAAN,CAAW;AAAE/B;AAAF,GAAX,EAAuB,CAACgC,CAAD,EAAIC,CAAJ,KAAUH,KAAK,GAAGG,CAAzC,CAAP;AACD;AAEM,SAASC,SAAT,CAAoBC,EAApB,EAAiD;AACtD,MAAI,CAACA,EAAD,IAAOA,EAAE,CAACC,QAAH,KAAgBC,IAAI,CAACC,YAAhC,EAA8C,OAAO,CAAP;AAE9C,QAAMC,KAAK,GAAG,CAACC,MAAM,CAACC,gBAAP,CAAwBN,EAAxB,EAA4BO,gBAA5B,CAA6C,SAA7C,CAAf;AAEA,MAAI,CAACH,KAAL,EAAY,OAAOL,SAAS,CAACC,EAAE,CAACQ,UAAJ,CAAhB;AACZ,SAAOJ,KAAP;AACD;AAED,MAAMK,aAAiC,GAAG;AACxC,OAAK,OADmC;AAExC,OAAK,MAFmC;AAGxC,OAAK;AAHmC,CAA1C;AAMO,SAASC,UAAT,CAAqB9D,GAArB,EAA0C;AAC/C,SAAOA,GAAG,CAACC,OAAJ,CAAY,QAAZ,EAAsB8D,GAAG,IAAIF,aAAa,CAACE,GAAD,CAAb,IAAsBA,GAAnD,CAAP;AACD;AAEM,SAASC,kBAAT,CAAmDtC,GAAnD,EAA2DW,IAA3D,EAA0F;AAC/F,QAAM4B,QAAQ,GAAG,EAAjB;;AAEA,OAAK,IAAI7C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,IAAI,CAACpB,MAAzB,EAAiCG,CAAC,EAAlC,EAAsC;AACpC,UAAM8C,GAAG,GAAG7B,IAAI,CAACjB,CAAD,CAAhB;;AACA,QAAI,OAAOM,GAAG,CAACwC,GAAD,CAAV,KAAoB,WAAxB,EAAqC;AACnCD,cAAQ,CAACC,GAAD,CAAR,GAAgBxC,GAAG,CAACwC,GAAD,CAAnB;AACD;AACF;;AAED,SAAOD,QAAP;AACD;AAEM,SAASE,aAAT,CAAwBnE,GAAxB,EAAiEoE,IAAI,GAAG,IAAxE,EAAkG;AACvG,MAAIpE,GAAG,IAAI,IAAP,IAAeA,GAAG,KAAK,EAA3B,EAA+B;AAC7B,WAAO6B,SAAP;AACD,GAFD,MAEO,IAAIwC,KAAK,CAAC,CAACrE,GAAF,CAAT,EAAkB;AACvB,WAAOsE,MAAM,CAACtE,GAAD,CAAb;AACD,GAFM,MAEA;AACL,qBAAUuE,MAAM,CAACvE,GAAD,CAAhB,SAAwBoE,IAAxB;AACD;AACF;AAEM,SAASI,QAAT,CAAmB9C,GAAnB,EAA4C;AACjD,SAAOA,GAAG,KAAK,IAAR,IAAgB,OAAOA,GAAP,KAAe,QAAtC;AACD,C,CAED;;AACO,MAAM+C,QAAQ,GAAGtC,MAAM,CAACuC,MAAP,CAAc;AACpCC,OAAK,EAAE,EAD6B;AAEpCC,KAAG,EAAE,CAF+B;AAGpCC,QAAM,EAAE,EAH4B;AAIpCC,KAAG,EAAE,EAJ+B;AAKpCC,OAAK,EAAE,EAL6B;AAMpCC,IAAE,EAAE,EANgC;AAOpCC,MAAI,EAAE,EAP8B;AAQpCC,MAAI,EAAE,EAR8B;AASpCC,OAAK,EAAE,EAT6B;AAUpCC,KAAG,EAAE,EAV+B;AAWpCC,MAAI,EAAE,EAX8B;AAYpCC,KAAG,EAAE,EAZ+B;AAapCC,WAAS,EAAE,CAbyB;AAcpCC,QAAM,EAAE,EAd4B;AAepCC,QAAM,EAAE,EAf4B;AAgBpCC,UAAQ,EAAE,EAhB0B;AAiBpCC,OAAK,EAAE;AAjB6B,CAAd,CAAjB;AAoBA,SAAStD,IAAT,CAAkBuD,CAAlB,EAAwB;AAC7B,SAAOzD,MAAM,CAACE,IAAP,CAAYuD,CAAZ,CAAP;AACD;AAEM,SAASC,OAAT,CAAkBnE,GAAlB,EAA4CoE,UAA5C,EAAkE;AACvE,QAAMC,SAA8B,GAAG,EAAvC;AACA,QAAMC,IAAyB,GAAG,EAAlC;AAEA7D,QAAM,CAAC8D,OAAP,CAAevE,GAAf,EAAoBwE,OAApB,CAA4B,CAAC,CAAChC,GAAD,EAAMrB,KAAN,CAAD,KAAkB;AAC5C,QAAIiD,UAAU,CAAChH,QAAX,CAAoBoF,GAApB,CAAJ,EAA8B;AAC5B6B,eAAS,CAAC7B,GAAD,CAAT,GAAiBrB,KAAjB;AACD,KAFD,MAEO;AACLmD,UAAI,CAAC9B,GAAD,CAAJ,GAAYrB,KAAZ;AACD;AACF,GAND;AAQA,SAAO,CAACkD,SAAD,EAAYC,IAAZ,CAAP;AACD;AAED;AACA;AACA;;AACO,SAASG,SAAT,CAAoBpE,CAApB,EAA8BC,CAA9B,EAA+C;AACpD,QAAMoE,IAAW,GAAG,EAApB;;AACA,OAAK,IAAIhF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGY,CAAC,CAACf,MAAtB,EAA8BG,CAAC,EAA/B,EAAmC;AACjC,QAAI,CAACW,CAAC,CAACjD,QAAF,CAAWkD,CAAC,CAACZ,CAAD,CAAZ,CAAL,EAAuBgF,IAAI,CAACrH,IAAL,CAAUiD,CAAC,CAACZ,CAAD,CAAX;AACxB;;AACD,SAAOgF,IAAP;AACD;AAEM,SAASC,UAAT,CACLC,KADK,EAELC,OAFK,EAGLC,SAHK,EAIW;AAChB,QAAMtC,GAAG,GAAGqC,OAAO,CAAC,CAAD,CAAnB;AACA,QAAME,MAAsB,GAAG,EAA/B;AACA,MAAIC,OAAJ;;AACA,OAAK,IAAItF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkF,KAAK,CAACrF,MAA1B,EAAkCG,CAAC,EAAnC,EAAuC;AACrC,UAAMuB,IAAI,GAAG2D,KAAK,CAAClF,CAAD,CAAlB;AACA,UAAMuF,GAAG,GAAGnE,oBAAoB,CAACG,IAAD,EAAOuB,GAAP,EAAY,IAAZ,CAAhC;;AACA,QAAIwC,OAAO,KAAKC,GAAhB,EAAqB;AACnBD,aAAO,GAAGC,GAAV;AACAF,YAAM,CAAC1H,IAAP,CAAY;AACV2B,YAAI,EAAEiG,GAAF,WAAEA,GAAF,GAAS,EADH;AAEVL,aAAK,EAAE;AAFG,OAAZ;AAID;;AACDG,UAAM,CAACA,MAAM,CAACxF,MAAP,GAAgB,CAAjB,CAAN,CAA0BqF,KAA1B,CAAgCvH,IAAhC,CAAqC4D,IAArC;AACD;;AACD,SAAO8D,MAAP;AACD;AAEM,SAASG,WAAT,CAAyB3D,CAAzB,EAA6D;AAClE,SAAOA,CAAC,IAAI,IAAL,GACH,EADG,GAEH3B,KAAK,CAACC,OAAN,CAAc0B,CAAd,IACEA,CADF,GACM,CAACA,CAAD,CAHV;AAID;AAEM,SAAS4D,SAAT,CACLP,KADK,EAELQ,MAFK,EAGLC,QAHK,EAILC,MAJK,EAKLC,aALK,EAMA;AACL,MAAIH,MAAM,KAAK,IAAX,IAAmB,CAACA,MAAM,CAAC7F,MAA/B,EAAuC,OAAOqF,KAAP;AACvC,QAAMY,cAAc,GAAG,IAAIC,IAAI,CAACC,QAAT,CAAkBJ,MAAlB,EAA0B;AAAEK,eAAW,EAAE,QAAf;AAAyBC,SAAK,EAAE;AAAhC,GAA1B,CAAvB;AAEA,SAAOhB,KAAK,CAACiB,IAAN,CAAW,CAACxF,CAAD,EAAIC,CAAJ,KAAU;AAC1B,SAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0F,MAAM,CAAC7F,MAA3B,EAAmCG,CAAC,EAApC,EAAwC;AACtC,YAAMoG,OAAO,GAAGV,MAAM,CAAC1F,CAAD,CAAtB;AAEA,UAAIqG,KAAK,GAAGjF,oBAAoB,CAACT,CAAD,EAAIyF,OAAJ,CAAhC;AACA,UAAIE,KAAK,GAAGlF,oBAAoB,CAACR,CAAD,EAAIwF,OAAJ,CAAhC;;AAEA,UAAIT,QAAQ,CAAC3F,CAAD,CAAZ,EAAiB;AACf,SAACqG,KAAD,EAAQC,KAAR,IAAiB,CAACA,KAAD,EAAQD,KAAR,CAAjB;AACD;;AAED,UAAIR,aAAJ,oBAAIA,aAAa,CAAGO,OAAH,CAAjB,EAA8B;AAC5B,cAAMG,YAAY,GAAGV,aAAa,CAACO,OAAD,CAAb,CAAuBC,KAAvB,EAA8BC,KAA9B,CAArB;AAEA,YAAI,CAACC,YAAL,EAAmB;AAEnB,eAAOA,YAAP;AACD,OAhBqC,CAkBtC;;;AACA,UAAIF,KAAK,KAAK,IAAV,IAAkBC,KAAK,KAAK,IAAhC,EAAsC;AACpC;AACD;;AAED,OAACD,KAAD,EAAQC,KAAR,IAAiB,CAACD,KAAD,EAAQC,KAAR,EAAevG,GAAf,CAAmByG,CAAC,IAAI,CAACA,CAAC,IAAI,EAAN,EAAUC,QAAV,GAAqBC,iBAArB,EAAxB,CAAjB;;AAEA,UAAIL,KAAK,KAAKC,KAAd,EAAqB;AACnB,YAAI,CAACrD,KAAK,CAACoD,KAAD,CAAN,IAAiB,CAACpD,KAAK,CAACqD,KAAD,CAA3B,EAAoC,OAAOnD,MAAM,CAACkD,KAAD,CAAN,GAAgBlD,MAAM,CAACmD,KAAD,CAA7B;AACpC,eAAOR,cAAc,CAACa,OAAf,CAAuBN,KAAvB,EAA8BC,KAA9B,CAAP;AACD;AACF;;AAED,WAAO,CAAP;AACD,GAjCM,CAAP;AAkCD;AAEM,SAASM,aAAT,CAAwBnF,KAAxB,EAAoCoF,MAApC,EAA2DtF,IAA3D,EAAsE;AAC3E,SAAOE,KAAK,IAAI,IAAT,IACLoF,MAAM,IAAI,IADL,IAEL,OAAOpF,KAAP,KAAiB,SAFZ,IAGLA,KAAK,CAACgF,QAAN,GAAiBC,iBAAjB,GAAqCI,OAArC,CAA6CD,MAAM,CAACH,iBAAP,EAA7C,MAA6E,CAAC,CAHhF;AAID;AAEM,SAASK,WAAT,CAA2C7B,KAA3C,EAAuD2B,MAAvD,EAA4E;AACjF,MAAI,CAACA,MAAL,EAAa,OAAO3B,KAAP;AACb2B,QAAM,GAAGA,MAAM,CAACJ,QAAP,GAAkBO,WAAlB,EAAT;AACA,MAAIH,MAAM,CAACI,IAAP,OAAkB,EAAtB,EAA0B,OAAO/B,KAAP;AAE1B,SAAOA,KAAK,CAACgC,MAAN,CAAc3F,IAAD,IAAeR,MAAM,CAACE,IAAP,CAAYM,IAAZ,EAAkB4F,IAAlB,CAAuBrE,GAAG,IAAI8D,aAAa,CAACxF,oBAAoB,CAACG,IAAD,EAAOuB,GAAP,CAArB,EAAkC+D,MAAlC,EAA0CtF,IAA1C,CAA3C,CAA5B,CAAP;AACD;AAEM,SAAS6F,QAAT,CAAmBC,EAAnB,EAAiCC,KAAjC,EAAgD;AACrD,MAAIC,SAAS,GAAG,CAAhB;AACA,SAAO,CAAC,GAAGC,IAAJ,KAAoB;AACzBC,gBAAY,CAACF,SAAD,CAAZ;AACAA,aAAS,GAAGG,UAAU,CAAC,MAAML,EAAE,CAAC,GAAGG,IAAJ,CAAT,EAAoBF,KAApB,CAAtB;AACD,GAHD;AAID;AAEM,SAASK,QAAT,CAAsDN,EAAtD,EAA6DO,KAA7D,EAA4E;AACjF,MAAIC,UAAU,GAAG,KAAjB;AACA,SAAO,CAAC,GAAGL,IAAJ,KAAkD;AACvD,QAAI,CAACK,UAAL,EAAiB;AACfA,gBAAU,GAAG,IAAb;AACAH,gBAAU,CAAC,MAAMG,UAAU,GAAG,KAApB,EAA2BD,KAA3B,CAAV;AACA,aAAOP,EAAE,CAAC,GAAGG,IAAJ,CAAT;AACD;AACF,GAND;AAOD;AAED;AACA;AACA;;AACO,SAASM,gBAAT,CAA2BC,MAA3B,EAA2CC,KAA3C,EAAgE;AACrE,SAAOjH,MAAM,CAACE,IAAP,CAAY+G,KAAZ,EACJd,MADI,CACGpF,CAAC,IAAIA,CAAC,CAACmG,UAAF,CAAaF,MAAb,CADR,EAEJG,MAFI,CAEoB,CAAC5H,GAAD,EAAMwB,CAAN,KAAY;AACnCxB,OAAG,CAACwB,CAAC,CAACjD,OAAF,CAAUkJ,MAAV,EAAkB,EAAlB,CAAD,CAAH,GAA6BC,KAAK,CAAClG,CAAD,CAAlC;AACA,WAAOxB,GAAP;AACD,GALI,EAKF,EALE,CAAP;AAMD;AAEM,SAAS6H,KAAT,CAAgB1G,KAAhB,EAA+B2G,GAAG,GAAG,CAArC,EAAwCC,GAAG,GAAG,CAA9C,EAAiD;AACtD,SAAOC,IAAI,CAACD,GAAL,CAASD,GAAT,EAAcE,IAAI,CAACF,GAAL,CAASC,GAAT,EAAc5G,KAAd,CAAd,CAAP;AACD;AAEM,SAAS8G,cAAT,CAAiB3J,GAAjB,EAA8BiB,MAA9B,EAA8C2I,IAAI,GAAG,GAArD,EAA0D;AAC/D,SAAO5J,GAAG,GAAG4J,IAAI,CAACvI,MAAL,CAAYqI,IAAI,CAACD,GAAL,CAAS,CAAT,EAAYxI,MAAM,GAAGjB,GAAG,CAACiB,MAAzB,CAAZ,CAAb;AACD;AAEM,SAAS4I,aAAT,CAAgB7J,GAAhB,EAA6B8J,IAAI,GAAG,CAApC,EAAuC;AAC5C,QAAMC,OAAiB,GAAG,EAA1B;AACA,MAAIvG,KAAK,GAAG,CAAZ;;AACA,SAAOA,KAAK,GAAGxD,GAAG,CAACiB,MAAnB,EAA2B;AACzB8I,WAAO,CAAChL,IAAR,CAAaiB,GAAG,CAACgK,MAAJ,CAAWxG,KAAX,EAAkBsG,IAAlB,CAAb;AACAtG,SAAK,IAAIsG,IAAT;AACD;;AACD,SAAOC,OAAP;AACD;AAEM,SAASE,qBAAT,CAAgCC,KAAhC,EAA+CC,MAAM,GAAG,KAAxD,EAAuE;AAC5E,QAAMC,IAAI,GAAGD,MAAM,GAAG,IAAH,GAAU,IAA7B;;AACA,MAAID,KAAK,GAAGE,IAAZ,EAAkB;AAChB,qBAAUF,KAAV;AACD;;AAED,QAAMf,MAAM,GAAGgB,MAAM,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,CAAH,GAAwB,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,CAA7C;AACA,MAAI/F,IAAI,GAAG,CAAC,CAAZ;;AACA,SAAOsF,IAAI,CAACW,GAAL,CAASH,KAAT,KAAmBE,IAAnB,IAA2BhG,IAAI,GAAG+E,MAAM,CAAClI,MAAP,GAAgB,CAAzD,EAA4D;AAC1DiJ,SAAK,IAAIE,IAAT;AACA,MAAEhG,IAAF;AACD;;AACD,mBAAU8F,KAAK,CAACI,OAAN,CAAc,CAAd,CAAV,cAA8BnB,MAAM,CAAC/E,IAAD,CAApC;AACD;AAEM,SAASmG,kBAAT,CAA6B7I,GAA7B,EAA0E;AAC/E,MAAI,CAACA,GAAL,EAAU,OAAO,EAAP;AAEV,SAAOS,MAAM,CAACE,IAAP,CAAYX,GAAZ,EAAiB4H,MAAjB,CAAwB,CAAC1D,CAAD,EAAS1B,GAAT,KAAyB;AACtD0B,KAAC,CAAC4E,QAAQ,CAACtG,GAAD,CAAT,CAAD,GAAmBxC,GAAG,CAACwC,GAAD,CAAtB;AACA,WAAO0B,CAAP;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;AAEM,SAAS6E,SAAT,CACLC,MAAuB,GAAG,EADrB,EAELC,MAAuB,GAAG,EAFrB,EAGL;AACA,OAAK,MAAMzG,GAAX,IAAkByG,MAAlB,EAA0B;AACxB,UAAMC,cAAc,GAAGF,MAAM,CAACxG,GAAD,CAA7B;AACA,UAAM2G,cAAc,GAAGF,MAAM,CAACzG,GAAD,CAA7B,CAFwB,CAIxB;AACA;;AACA,QACEM,QAAQ,CAACoG,cAAD,CAAR,IACApG,QAAQ,CAACqG,cAAD,CAFV,EAGE;AACAH,YAAM,CAACxG,GAAD,CAAN,GAAcuG,SAAS,CAACG,cAAD,EAAiBC,cAAjB,CAAvB;AAEA;AACD;;AAEDH,UAAM,CAACxG,GAAD,CAAN,GAAc2G,cAAd;AACD;;AAED,SAAOH,MAAP;AACD;AAEM,SAASI,SAAT,CAAuB7J,MAAvB,EAAuCS,GAAvC,EAA+C;AACpD,SAAOJ,KAAK,CAACL,MAAD,CAAL,CAAc8J,IAAd,CAAmBrJ,GAAnB,CAAP;AACD;AAEM,SAASsJ,MAAT,GAAmB;AACxB,SAAOA,MAAM,CAACC,IAAP,EAAP;AACD;AACDD,MAAM,CAACC,IAAP,GAAc,CAAd;AAEO,SAASC,gBAAT,CAA2BC,KAA3B,EAAoD;AACzD,SAAOA,KAAK,CAAChK,GAAN,CAAUiK,IAAI,IAAI;AACvB,QAAIA,IAAI,CAACC,IAAL,KAAcC,8DAAlB,EAA4B;AAC1B,aAAOJ,gBAAgB,CAACE,IAAI,CAACG,QAAN,CAAvB;AACD,KAFD,MAEO;AACL,aAAOH,IAAP;AACD;AACF,GANM,EAMJI,IANI,EAAP;AAOD;AAEM,SAASC,eAAT,CACLrJ,KADK,EAELsJ,IAFK,EAGLC,MAHK,EAIM;AACX,MAAI,CAACvJ,KAAK,CAACwJ,UAAP,IAAqB,OAAOxJ,KAAK,CAACwJ,UAAb,KAA4B,SAArD,EAAgE,OAAOD,MAAP;AAEhE,SAAOE,2DAAC,CACNC,gEADM,EAENC,oEAAU,CAAC,OAAO3J,KAAK,CAACwJ,UAAb,KAA4B,QAA5B,GAAuC;AAAElL,QAAI,EAAE0B,KAAK,CAACwJ;AAAd,GAAvC,GAAoExJ,KAAK,CAACwJ,UAA3E,EAA8FF,IAA9F,CAFJ,EAGN,MAAMC,MAHA,CAAR;AAKD;AAEM,MAAMK,cAAc,GAAG,MAAM;AAClC,QAAMC,CAAC,GAAG,CAACvC,IAAI,CAACwC,MAAL,KAAgB,OAAhB,GAA0B,OAA3B,EAAoCrE,QAApC,CAA6C,EAA7C,CAAV;AACA,SAAO,MAAMoE,CAAC,CAACE,KAAF,CAAQ,CAAR,EAAW,CAAX,CAAb;AACD,CAHM;AAKA,MAAMC,WAAW,GAAIpM,GAAD,IAAiBA,GAAG,CAACC,OAAJ,CAAY,UAAZ,EAAwBa,KAAK,eAAQA,KAAK,CAACsH,WAAN,EAAR,CAA7B,CAArC;AAMA,SAASiE,SAAT,CAAwBC,CAAxB,EAA8B;AACnC,SAAQC,+DAAK,CAACD,CAAD,CAAL,GAAWA,CAAX,GAAeE,6DAAG,CAACF,CAAD,CAA1B;AACD,C;;CC1ZD;;AACA,MAAMG,iBAAiB,GAAG,CACxB,CAAC,MAAD,EAAS,CAAC,MAAV,EAAkB,CAAC,MAAnB,CADwB,EAExB,CAAC,CAAC,MAAF,EAAU,MAAV,EAAkB,MAAlB,CAFwB,EAGxB,CAAC,MAAD,EAAS,CAAC,MAAV,EAAkB,MAAlB,CAHwB,CAA1B,C,CAMA;;AACA,MAAMC,oBAAoB,GAAIC,CAAD,IAC3BA,CAAC,IAAI,SAAL,GACIA,CAAC,GAAG,KADR,GAEI,QAAQA,CAAC,KAAK,IAAI,GAAT,CAAT,GAAyB,KAH/B,C,CAMA;;;AACA,MAAMC,iBAAiB,GAAG,CACxB,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,CADwB,EAExB,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,CAFwB,EAGxB,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,CAHwB,CAA1B,C,CAMA;;AACA,MAAMC,oBAAoB,GAAIF,CAAD,IAC3BA,CAAC,IAAI,OAAL,GACIA,CAAC,GAAG,KADR,GAEI,CAAC,CAACA,CAAC,GAAG,KAAL,IAAc,KAAf,KAAyB,GAH/B;;AAMO,SAASG,OAAT,CAAkBC,GAAlB,EAAsC;AAC3C,QAAMC,GAAG,GAAG1L,KAAK,CAAC,CAAD,CAAjB;AACA,QAAM2L,SAAS,GAAGP,oBAAlB;AACA,QAAMQ,MAAM,GAAGT,iBAAf,CAH2C,CAK3C;;AACA,OAAK,IAAIrL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuB,EAAEA,CAAzB,EAA4B;AAC1B4L,OAAG,CAAC5L,CAAD,CAAH,GAASsI,IAAI,CAACyD,KAAL,CAAW5D,KAAK,CAAC0D,SAAS,CACjCC,MAAM,CAAC9L,CAAD,CAAN,CAAU,CAAV,IAAe2L,GAAG,CAAC,CAAD,CAAlB,GACAG,MAAM,CAAC9L,CAAD,CAAN,CAAU,CAAV,IAAe2L,GAAG,CAAC,CAAD,CADlB,GAEAG,MAAM,CAAC9L,CAAD,CAAN,CAAU,CAAV,IAAe2L,GAAG,CAAC,CAAD,CAHe,CAAV,CAAL,GAIf,GAJI,CAAT;AAKD,GAZ0C,CAc3C;;;AACA,SAAO,CAACC,GAAG,CAAC,CAAD,CAAH,IAAU,EAAX,KAAkBA,GAAG,CAAC,CAAD,CAAH,IAAU,CAA5B,KAAkCA,GAAG,CAAC,CAAD,CAAH,IAAU,CAA5C,CAAP;AACD;AAEM,SAASI,KAAT,CAAgBJ,GAAhB,EAAoC;AACzC,QAAMD,GAAQ,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAjB;AACA,QAAME,SAAS,GAAGJ,oBAAlB;AACA,QAAMK,MAAM,GAAGN,iBAAf,CAHyC,CAKzC;;AACA,QAAMS,CAAC,GAAGJ,SAAS,CAAC,CAACD,GAAG,IAAI,EAAP,GAAY,IAAb,IAAqB,GAAtB,CAAnB;AACA,QAAMM,CAAC,GAAGL,SAAS,CAAC,CAACD,GAAG,IAAI,CAAP,GAAW,IAAZ,IAAoB,GAArB,CAAnB;AACA,QAAMhL,CAAC,GAAGiL,SAAS,CAAC,CAACD,GAAG,IAAI,CAAP,GAAW,IAAZ,IAAoB,GAArB,CAAnB,CARyC,CAUzC;;AACA,OAAK,IAAI5L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuB,EAAEA,CAAzB,EAA4B;AAC1B2L,OAAG,CAAC3L,CAAD,CAAH,GAAS8L,MAAM,CAAC9L,CAAD,CAAN,CAAU,CAAV,IAAeiM,CAAf,GAAmBH,MAAM,CAAC9L,CAAD,CAAN,CAAU,CAAV,IAAekM,CAAlC,GAAsCJ,MAAM,CAAC9L,CAAD,CAAN,CAAU,CAAV,IAAeY,CAA9D;AACD;;AAED,SAAO+K,GAAP;AACD,C;;AC/DD,MAAMQ,KAAK,GAAG,mBAAd,C,CAAkC;;AAElC,MAAMC,sBAAsB,GAAIC,CAAD,IAC7BA,CAAC,GAAGF,KAAK,IAAI,CAAb,GACI7D,IAAI,CAACgE,IAAL,CAAUD,CAAV,CADJ,GAEKA,CAAC,IAAI,IAAIF,KAAK,IAAI,CAAjB,CAAF,GAAyB,IAAI,EAHnC;;AAMA,MAAMI,sBAAsB,GAAIF,CAAD,IAC7BA,CAAC,GAAGF,KAAJ,GACIE,CAAC,IAAI,CADT,GAEK,IAAIF,KAAK,IAAI,CAAd,IAAoBE,CAAC,GAAG,IAAI,EAA5B,CAHN;;AAMO,SAASX,uBAAT,CAAkBC,GAAlB,EAAiC;AACtC,QAAME,SAAS,GAAGO,sBAAlB;AACA,QAAMI,YAAY,GAAGX,SAAS,CAACF,GAAG,CAAC,CAAD,CAAJ,CAA9B;AAEA,SAAO,CACL,MAAMa,YAAN,GAAqB,EADhB,EAEL,OAAOX,SAAS,CAACF,GAAG,CAAC,CAAD,CAAH,GAAS,OAAV,CAAT,GAA8Ba,YAArC,CAFK,EAGL,OAAOA,YAAY,GAAGX,SAAS,CAACF,GAAG,CAAC,CAAD,CAAH,GAAS,OAAV,CAA/B,CAHK,CAAP;AAKD;AAEM,SAASK,qBAAT,CAAgBS,GAAhB,EAA+B;AACpC,QAAMZ,SAAS,GAAGU,sBAAlB;AACA,QAAMG,EAAE,GAAG,CAACD,GAAG,CAAC,CAAD,CAAH,GAAS,EAAV,IAAgB,GAA3B;AACA,SAAO,CACLZ,SAAS,CAACa,EAAE,GAAGD,GAAG,CAAC,CAAD,CAAH,GAAS,GAAf,CAAT,GAA+B,OAD1B,EAELZ,SAAS,CAACa,EAAD,CAFJ,EAGLb,SAAS,CAACa,EAAE,GAAGD,GAAG,CAAC,CAAD,CAAH,GAAS,GAAf,CAAT,GAA+B,OAH1B,CAAP;AAKD,C;;ACnCD;AACA;AACA;AACA;CAGA;;AAgBO,SAASE,UAAT,CAAqBC,KAArB,EAA6D;AAClE,SAAO,CAAC,CAACA,KAAF,IAAW,6BAA6BC,IAA7B,CAAkCD,KAAlC,CAAlB;AACD;AAEM,SAASE,UAAT,CAAqBF,KAArB,EAA6C;AAClD,MAAIhB,GAAJ;;AAEA,MAAI,OAAOgB,KAAP,KAAiB,QAArB,EAA+B;AAC7BhB,OAAG,GAAGgB,KAAN;AACD,GAFD,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AACpC,QAAI9N,CAAC,GAAG8N,KAAK,CAAC3E,UAAN,CAAiB,GAAjB,IAAwB2E,KAAK,CAACG,SAAN,CAAgB,CAAhB,CAAxB,GAA6CH,KAArD;;AACA,QAAI9N,CAAC,CAACe,MAAF,KAAa,CAAjB,EAAoB;AAClBf,OAAC,GAAGA,CAAC,CAACuC,KAAF,CAAQ,EAAR,EAAYtB,GAAZ,CAAgByI,IAAI,IAAIA,IAAI,GAAGA,IAA/B,EAAqCpI,IAArC,CAA0C,EAA1C,CAAJ;AACD;;AACD,QAAItB,CAAC,CAACe,MAAF,KAAa,CAAjB,EAAoB;AAClB5B,iBAAW,YAAK2O,KAAL,gCAAX;AACD;;AACDhB,OAAG,GAAGoB,QAAQ,CAAClO,CAAD,EAAI,EAAJ,CAAd;AACD,GATM,MASA;AACL,UAAM,IAAImO,SAAJ,2DAAiEL,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwBA,KAAK,CAACvN,WAAN,CAAkBC,IAA3G,cAAN;AACD;;AAED,MAAIsM,GAAG,GAAG,CAAV,EAAa;AACX3N,eAAW,uCAAgC2O,KAAhC,OAAX;AACAhB,OAAG,GAAG,CAAN;AACD,GAHD,MAGO,IAAIA,GAAG,GAAG,QAAN,IAAkB3I,KAAK,CAAC2I,GAAD,CAA3B,EAAkC;AACvC3N,eAAW,YAAK2O,KAAL,gCAAX;AACAhB,OAAG,GAAG,QAAN;AACD;;AAED,SAAOA,GAAP;AACD;AAEM,SAASsB,UAAT,CACLN,KADK,EAELO,MAFK,EAGLC,YAHK,EAIG;AACR,QAAM,CAACC,SAAD,EAAYC,aAAZ,IAA6BV,KAAK,CACrCnG,QADgC,GACrBQ,IADqB,GACdpI,OADc,CACN,GADM,EACD,EADC,EACGwC,KADH,CACS,GADT,EACc,CADd,CAAnC;AAGA,MAAIkM,QAAQ,GAAG,EAAf;;AACA,MAAIF,SAAS,IAAIA,SAAS,IAAIF,MAA9B,EAAsC;AACpC,QAAIG,aAAa,IAAIA,aAAa,IAAIH,MAAM,CAACE,SAAD,CAA5C,EAAyD;AACvDE,cAAQ,GAAGJ,MAAM,CAACE,SAAD,CAAN,CAAkBC,aAAlB,CAAX;AACD,KAFD,MAEO,IAAI,UAAUH,MAAM,CAACE,SAAD,CAApB,EAAiC;AACtCE,cAAQ,GAAGJ,MAAM,CAACE,SAAD,CAAN,CAAkBrE,IAA7B;AACD;AACF,GAND,MAMO,IAAIqE,SAAS,IAAIA,SAAS,IAAID,YAA9B,EAA4C;AACjDG,YAAQ,GAAGH,YAAY,CAACC,SAAD,CAAvB;AACD;;AAED,SAAOE,QAAP;AACD;AAEM,SAASC,QAAT,CAAmBZ,KAAnB,EAA4C;AACjD,MAAIW,QAAgB,GAAGX,KAAK,CAACnG,QAAN,CAAe,EAAf,CAAvB;AAEA,MAAI8G,QAAQ,CAAC1N,MAAT,GAAkB,CAAtB,EAAyB0N,QAAQ,GAAG,IAAItN,MAAJ,CAAW,IAAIsN,QAAQ,CAAC1N,MAAxB,IAAkC0N,QAA7C;AAEzB,SAAO,MAAMA,QAAb;AACD;AAEM,SAASE,UAAT,CAAqBb,KAArB,EAA2C;AAChD,SAAOY,QAAQ,CAACV,UAAU,CAACF,KAAD,CAAX,CAAf;AACD;AAED;AACA;AACA;AACA;AACA;;AACO,SAASc,UAAT,CAAqBC,IAArB,EAAuC;AAC5C,QAAM;AAAElD,KAAF;AAAKjE,KAAL;AAAQ3E,KAAR;AAAWlB;AAAX,MAAiBgN,IAAvB;;AACA,QAAMC,CAAC,GAAI/C,CAAD,IAAe;AACvB,UAAM/I,CAAC,GAAG,CAAC+I,CAAC,GAAIJ,CAAC,GAAG,EAAV,IAAiB,CAA3B;AACA,WAAO5I,CAAC,GAAGA,CAAC,GAAG2E,CAAJ,GAAQ8B,IAAI,CAACD,GAAL,CAASC,IAAI,CAACF,GAAL,CAAStG,CAAT,EAAY,IAAIA,CAAhB,EAAmB,CAAnB,CAAT,EAAgC,CAAhC,CAAnB;AACD,GAHD;;AAKA,QAAM8J,GAAG,GAAG,CAACgC,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,EAAaA,CAAC,CAAC,CAAD,CAAd,EAAmB7N,GAAnB,CAAuB8B,CAAC,IAAIyG,IAAI,CAACyD,KAAL,CAAWlK,CAAC,GAAG,GAAf,CAA5B,CAAZ;AAEA,SAAO;AAAEoK,KAAC,EAAEL,GAAG,CAAC,CAAD,CAAR;AAAaM,KAAC,EAAEN,GAAG,CAAC,CAAD,CAAnB;AAAwBhL,KAAC,EAAEgL,GAAG,CAAC,CAAD,CAA9B;AAAmCjL;AAAnC,GAAP;AACD;AAED;AACA;AACA;AACA;AACA;;AACO,SAASkN,UAAT,CAAqBC,IAArB,EAAuC;AAC5C,MAAI,CAACA,IAAL,EAAW,OAAO;AAAErD,KAAC,EAAE,CAAL;AAAQjE,KAAC,EAAE,CAAX;AAAc3E,KAAC,EAAE,CAAjB;AAAoBlB,KAAC,EAAE;AAAvB,GAAP;AAEX,QAAMsL,CAAC,GAAG6B,IAAI,CAAC7B,CAAL,GAAS,GAAnB;AACA,QAAMC,CAAC,GAAG4B,IAAI,CAAC5B,CAAL,GAAS,GAAnB;AACA,QAAMtL,CAAC,GAAGkN,IAAI,CAAClN,CAAL,GAAS,GAAnB;AACA,QAAMyH,GAAG,GAAGC,IAAI,CAACD,GAAL,CAAS4D,CAAT,EAAYC,CAAZ,EAAetL,CAAf,CAAZ;AACA,QAAMwH,GAAG,GAAGE,IAAI,CAACF,GAAL,CAAS6D,CAAT,EAAYC,CAAZ,EAAetL,CAAf,CAAZ;AAEA,MAAI6J,CAAC,GAAG,CAAR;;AAEA,MAAIpC,GAAG,KAAKD,GAAZ,EAAiB;AACf,QAAIC,GAAG,KAAK4D,CAAZ,EAAe;AACbxB,OAAC,GAAG,MAAM,IAAK,CAACyB,CAAC,GAAGtL,CAAL,KAAWyH,GAAG,GAAGD,GAAjB,CAAX,CAAJ;AACD,KAFD,MAEO,IAAIC,GAAG,KAAK6D,CAAZ,EAAe;AACpBzB,OAAC,GAAG,MAAM,IAAK,CAAC7J,CAAC,GAAGqL,CAAL,KAAW5D,GAAG,GAAGD,GAAjB,CAAX,CAAJ;AACD,KAFM,MAEA,IAAIC,GAAG,KAAKzH,CAAZ,EAAe;AACpB6J,OAAC,GAAG,MAAM,IAAK,CAACwB,CAAC,GAAGC,CAAL,KAAW7D,GAAG,GAAGD,GAAjB,CAAX,CAAJ;AACD;AACF;;AAED,MAAIqC,CAAC,GAAG,CAAR,EAAWA,CAAC,GAAGA,CAAC,GAAG,GAAR;AAEX,QAAMjE,CAAC,GAAG6B,GAAG,KAAK,CAAR,GAAY,CAAZ,GAAgB,CAACA,GAAG,GAAGD,GAAP,IAAcC,GAAxC;AACA,QAAM0F,GAAG,GAAG,CAACtD,CAAD,EAAIjE,CAAJ,EAAO6B,GAAP,CAAZ;AAEA,SAAO;AAAEoC,KAAC,EAAEsD,GAAG,CAAC,CAAD,CAAR;AAAavH,KAAC,EAAEuH,GAAG,CAAC,CAAD,CAAnB;AAAwBlM,KAAC,EAAEkM,GAAG,CAAC,CAAD,CAA9B;AAAmCpN,KAAC,EAAEmN,IAAI,CAACnN;AAA3C,GAAP;AACD;AAEM,SAASqN,UAAT,CAAqBL,IAArB,EAAuC;AAC5C,QAAM;AAAElD,KAAF;AAAKjE,KAAL;AAAQ3E,KAAR;AAAWlB;AAAX,MAAiBgN,IAAvB;AAEA,QAAMM,CAAC,GAAGpM,CAAC,GAAIA,CAAC,GAAG2E,CAAJ,GAAQ,CAAvB;AAEA,QAAM0H,MAAM,GAAGD,CAAC,KAAK,CAAN,IAAWA,CAAC,KAAK,CAAjB,GAAqB,CAArB,GAAyB,CAACpM,CAAC,GAAGoM,CAAL,IAAU3F,IAAI,CAACF,GAAL,CAAS6F,CAAT,EAAY,IAAIA,CAAhB,CAAlD;AAEA,SAAO;AAAExD,KAAF;AAAKjE,KAAC,EAAE0H,MAAR;AAAgBD,KAAhB;AAAmBtN;AAAnB,GAAP;AACD;AAEM,SAASwN,UAAT,CAAqBC,GAArB,EAAsC;AAC3C,QAAM;AAAE3D,KAAF;AAAKjE,KAAL;AAAQyH,KAAR;AAAWtN;AAAX,MAAiByN,GAAvB;AAEA,QAAMvM,CAAC,GAAGoM,CAAC,GAAGzH,CAAC,GAAG8B,IAAI,CAACF,GAAL,CAAS6F,CAAT,EAAY,IAAIA,CAAhB,CAAlB;AAEA,QAAMC,MAAM,GAAGrM,CAAC,KAAK,CAAN,GAAU,CAAV,GAAc,IAAK,IAAIoM,CAAJ,GAAQpM,CAA1C;AAEA,SAAO;AAAE4I,KAAF;AAAKjE,KAAC,EAAE0H,MAAR;AAAgBrM,KAAhB;AAAmBlB;AAAnB,GAAP;AACD;AAEM,SAAS0N,SAAT,CAAoBP,IAApB,EAAwC;AAC7C,wBAAeA,IAAI,CAAC7B,CAApB,eAA0B6B,IAAI,CAAC5B,CAA/B,eAAqC4B,IAAI,CAAClN,CAA1C,eAAgDkN,IAAI,CAACnN,CAArD;AACD;AAEM,SAAS2N,QAAT,CAAmBR,IAAnB,EAAuC;AAC5C,SAAOO,SAAS,CAAC,EAAE,GAAGP,IAAL;AAAWnN,KAAC,EAAE;AAAd,GAAD,CAAhB;AACD;AAEM,SAAS4N,SAAT,CAAoBT,IAApB,EAAqC;AAC1C,QAAMU,KAAK,GAAI3M,CAAD,IAAe;AAC3B,UAAM4I,CAAC,GAAGnC,IAAI,CAACyD,KAAL,CAAWlK,CAAX,EAAc4E,QAAd,CAAuB,EAAvB,CAAV;AACA,WAAO,CAAC,KAAKmC,MAAL,CAAY,CAAZ,EAAe,IAAI6B,CAAC,CAAC5K,MAArB,IAA+B4K,CAAhC,EAAmC1L,WAAnC,EAAP;AACD,GAHD;;AAKA,oBAAW,CACTyP,KAAK,CAACV,IAAI,CAAC7B,CAAN,CADI,EAETuC,KAAK,CAACV,IAAI,CAAC5B,CAAN,CAFI,EAGTsC,KAAK,CAACV,IAAI,CAAClN,CAAN,CAHI,EAIT4N,KAAK,CAAClG,IAAI,CAACyD,KAAL,CAAW+B,IAAI,CAACnN,CAAL,GAAS,GAApB,CAAD,CAJI,EAKTP,IALS,CAKJ,EALI,CAAX;AAMD;AAEM,SAASqO,SAAT,CAAoBC,GAApB,EAAoC;AACzC,QAAMZ,IAAI,GAAGrF,KAAK,CAACiG,GAAG,CAAC3D,KAAJ,CAAU,CAAV,CAAD,EAAe,CAAf,CAAL,CAAuBhL,GAAvB,CAA4BjB,CAAD,IAAekO,QAAQ,CAAClO,CAAD,EAAI,EAAJ,CAAlD,CAAb;AAEA,SAAO;AACLmN,KAAC,EAAE6B,IAAI,CAAC,CAAD,CADF;AAEL5B,KAAC,EAAE4B,IAAI,CAAC,CAAD,CAFF;AAGLlN,KAAC,EAAEkN,IAAI,CAAC,CAAD,CAHF;AAILnN,KAAC,EAAE2H,IAAI,CAACyD,KAAL,CAAY+B,IAAI,CAAC,CAAD,CAAJ,GAAU,GAAX,GAAkB,GAA7B,IAAoC;AAJlC,GAAP;AAMD;AAEM,SAASa,SAAT,CAAoBD,GAApB,EAAoC;AACzC,QAAM9C,GAAG,GAAG6C,SAAS,CAACC,GAAD,CAArB;AACA,SAAOb,UAAU,CAACjC,GAAD,CAAjB;AACD;AAEM,SAASgD,SAAT,CAAoBjB,IAApB,EAAqC;AAC1C,SAAOY,SAAS,CAACb,UAAU,CAACC,IAAD,CAAX,CAAhB;AACD;AAEM,SAASkB,QAAT,CAAmBH,GAAnB,EAAqC;AAC1C,MAAIA,GAAG,CAACzG,UAAJ,CAAe,GAAf,CAAJ,EAAyB;AACvByG,OAAG,GAAGA,GAAG,CAAC3D,KAAJ,CAAU,CAAV,CAAN;AACD;;AAED2D,KAAG,GAAGA,GAAG,CAAC7P,OAAJ,CAAY,eAAZ,EAA6B,GAA7B,CAAN;;AAEA,MAAI6P,GAAG,CAAC7O,MAAJ,KAAe,CAAf,IAAoB6O,GAAG,CAAC7O,MAAJ,KAAe,CAAvC,EAA0C;AACxC6O,OAAG,GAAGA,GAAG,CAACrN,KAAJ,CAAU,EAAV,EAActB,GAAd,CAAkBmL,CAAC,IAAIA,CAAC,GAAGA,CAA3B,EAA8B9K,IAA9B,CAAmC,EAAnC,CAAN;AACD;;AAED,MAAIsO,GAAG,CAAC7O,MAAJ,KAAe,CAAnB,EAAsB;AACpB6O,OAAG,GAAGnG,MAAM,CAACmG,GAAD,EAAM,CAAN,EAAS,GAAT,CAAZ;AACD,GAFD,MAEO;AACLA,OAAG,GAAGnG,MAAM,CAACA,MAAM,CAACmG,GAAD,EAAM,CAAN,CAAP,EAAiB,CAAjB,EAAoB,GAApB,CAAZ;AACD;;AAED,SAAO,WAAIA,GAAJ,EAAU3P,WAAV,GAAwB6J,MAAxB,CAA+B,CAA/B,EAAkC,CAAlC,CAAP;AACD;AAEM,SAASkG,aAAT,CACLC,QADK,EAEL5B,MAFK,EAGLC,YAHK,EAIL;AACA,SAAO2B,QAAQ,CAAClQ,OAAT,CAAiB,oCAAjB,EAAuDqM,CAAC,IAAI;AACjE,WAAOgC,UAAU,CAAChC,CAAD,EAAIiC,MAAJ,EAAYC,YAAZ,CAAV,IAAuClC,CAA9C;AACD,GAFM,EAEJrM,OAFI,CAEI,2BAFJ,EAEiCqM,CAAC,IAAI;AAC3C,WAAO,UAAUnK,MAAM,CAACiO,MAAP,CAAcP,SAAS,CAACI,QAAQ,CAAC3D,CAAC,CAACrM,OAAF,CAAU,QAAV,EAAoB,EAApB,CAAD,CAAT,CAAvB,EAA4DkM,KAA5D,CAAkE,CAAlE,EAAqE,CAArE,EAAwE3K,IAAxE,CAA6E,GAA7E,CAAjB;AACD,GAJM,CAAP;AAKD;AAEM,SAAS6O,QAAT,CAAmBnB,IAAnB,EAAyC;AAC9C,SAAO,CAACA,IAAI,CAAC7B,CAAL,IAAU,EAAX,KAAkB6B,IAAI,CAAC5B,CAAL,IAAU,CAA5B,IAAiC4B,IAAI,CAAClN,CAA7C;AACD;AAEM,SAASsO,UAAT,CAAqBtC,KAArB,EAAoC;AACzC,QAAMuC,GAAG,GAAGrC,UAAU,CAACF,KAAD,CAAtB;AAEA,SAAO;AACLX,KAAC,EAAE,CAACkD,GAAG,GAAG,QAAP,KAAoB,EADlB;AAELjD,KAAC,EAAE,CAACiD,GAAG,GAAG,MAAP,KAAkB,CAFhB;AAGLvO,KAAC,EAAGuO,GAAG,GAAG;AAHL,GAAP;AAKD;AAEM,SAASC,OAAT,CAAkB3N,KAAlB,EAAmC4N,MAAnC,EAA6D;AAClE,QAAM5C,GAAG,GAAG6C,uBAAA,CAAeC,KAAA,CAAW9N,KAAX,CAAf,CAAZ,CADkE,CAElE;AACA;;AACAgL,KAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAH,GAAS4C,MAAM,GAAG,EAA3B;AAEA,SAAOE,OAAA,CAAaD,qBAAA,CAAa7C,GAAb,CAAb,CAAP;AACD;AAEM,SAAS+C,MAAT,CAAiB/N,KAAjB,EAAkC4N,MAAlC,EAA4D;AACjE,QAAM5C,GAAG,GAAG6C,uBAAA,CAAeC,KAAA,CAAW9N,KAAX,CAAf,CAAZ;AACAgL,KAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAH,GAAS4C,MAAM,GAAG,EAA3B;AAEA,SAAOE,OAAA,CAAaD,qBAAA,CAAa7C,GAAb,CAAb,CAAP;AACD;AAED;AACA;AACA;AACA;;AACO,SAASgD,OAAT,CAAkB7C,KAAlB,EAAgC;AACrC,QAAMhB,GAAG,GAAGkB,UAAU,CAACF,KAAD,CAAtB;AAEA,SAAO2C,KAAA,CAAW3D,GAAX,EAAgB,CAAhB,CAAP;AACD;AAED;AACA;AACA;AACA;;AACO,SAAS8D,WAAT,CAAsBC,KAAtB,EAAoCC,MAApC,EAAmD;AACxD,QAAMC,EAAE,GAAGJ,OAAO,CAACE,KAAD,CAAlB;AACA,QAAMG,EAAE,GAAGL,OAAO,CAACG,MAAD,CAAlB;AAEA,QAAMG,KAAK,GAAGzH,IAAI,CAACD,GAAL,CAASwH,EAAT,EAAaC,EAAb,CAAd;AACA,QAAME,IAAI,GAAG1H,IAAI,CAACF,GAAL,CAASyH,EAAT,EAAaC,EAAb,CAAb;AAEA,SAAO,CAACC,KAAK,GAAG,IAAT,KAAkBC,IAAI,GAAG,IAAzB,CAAP;AACD,C;;AC9RD;AACA;CAGA;;AA0EO,MAAMC,kBAA+C,GAAGC,MAAM,CAACC,GAAP,CAAW,eAAX,CAAxD;AAEP,MAAMC,mBAAiC,GAAG;AACxCC,cAAY,EAAE,OAD0B;AAExCC,YAAU,EAAE;AAAEnD,UAAM,EAAE,EAAV;AAAciC,WAAO,EAAE,CAAvB;AAA0BI,UAAM,EAAE;AAAlC,GAF4B;AAGxCe,QAAM,EAAE;AACNR,SAAK,EAAE;AACLC,UAAI,EAAE,KADD;AAEL7C,YAAM,EAAE;AACNqD,kBAAU,EAAE,SADN;AAENC,eAAO,EAAE,SAFH;AAGNC,eAAO,EAAE,SAHH;AAIN,4BAAoB,SAJd;AAKNC,iBAAS,EAAE,SALL;AAMN,8BAAsB,SANhB;AAONvS,aAAK,EAAE,SAPD;AAQNJ,YAAI,EAAE,SARA;AASN4S,eAAO,EAAE,SATH;AAUNC,eAAO,EAAE;AAVH,OAFH;AAcLC,eAAS,EAAE;AACT,wBAAgB,SADP;AAET,0BAAkB,IAFT;AAGT,4BAAoB,IAHX;AAIT,wBAAgB;AAJP;AAdN,KADD;AAsBNd,QAAI,EAAE;AACJA,UAAI,EAAE,IADF;AAEJ7C,YAAM,EAAE;AACNqD,kBAAU,EAAE,SADN;AAENC,eAAO,EAAE,SAFH;AAGNC,eAAO,EAAE,SAHH;AAIN,4BAAoB,SAJd;AAKNC,iBAAS,EAAE,SALL;AAMN,8BAAsB,SANhB;AAONvS,aAAK,EAAE,SAPD;AAQNJ,YAAI,EAAE,SARA;AASN4S,eAAO,EAAE,SATH;AAUNC,eAAO,EAAE;AAVH,OAFJ;AAcJC,eAAS,EAAE;AACT,wBAAgB,eADP;AAET,0BAAkB,IAFT;AAGT,4BAAoB,IAHX;AAIT,wBAAgB;AAJP;AAdP;AAtBA;AAHgC,CAA1C;;AAiDA,MAAMC,iBAAiB,GAAG,CAAC5R,OAAqB,GAAGiR,mBAAzB,KAAuE;AAC/F,MAAI,CAACjR,OAAL,EAAc,OAAO,EAAE,GAAGiR,mBAAL;AAA0BY,cAAU,EAAE;AAAtC,GAAP;AAEd,SAAO,EACL,GAAGZ,mBADE;AAEL,OAAGjR,OAFE;AAGLmR,cAAU,EAAE,CAAAnR,OAAO,QAAP,YAAAA,OAAO,CAAEmR,UAAT,KAAuB,IAAvB,IAA+B,CAAAnR,OAAO,QAAP,YAAAA,OAAO,CAAEmR,UAAT,MAAwB,KAAvD,GAA+DF,mBAAmB,CAACE,UAAnF,GAAgGnR,OAAO,CAACmR;AAH/G,GAAP;AAKD,CARD,C,CAUA;;;AACO,SAASW,WAAT,CAAsB9R,OAAtB,EAA6D;AAClE,QAAM+R,aAAa,GAAGH,iBAAiB,CAAC5R,OAAD,CAAvC;AACA,QAAMgS,OAAO,GAAG/F,6DAAG,EAAnB;AACA,QAAM9F,OAAO,GAAG8F,6DAAG,CAAC8F,aAAa,CAACb,YAAf,CAAnB;AACA,QAAME,MAAM,GAAGnF,6DAAG,CAAC8F,aAAa,CAACX,MAAf,CAAlB;AACA,QAAMD,UAAU,GAAGlF,6DAAG,CAAC8F,aAAa,CAACZ,UAAf,CAAtB;AAEA,QAAMc,cAAc,GAAGC,kEAAQ,CAAC,MAAM;AACpC,WAAOtQ,MAAM,CAACE,IAAP,CAAYsP,MAAM,CAAC9O,KAAnB,EAA0ByG,MAA1B,CAAiC,CAAC5H,GAAD,EAAMwC,GAAN,KAAc;AAAA;;AACpD,YAAMwO,KAAsB,GAAG,EAC7B,GAAGf,MAAM,CAAC9O,KAAP,CAAaqB,GAAb,CAD0B;AAE7BqK,cAAM,EAAE,EACN,GAAGoD,MAAM,CAAC9O,KAAP,CAAaqB,GAAb,EAAkBqK,MADf;AAEN,aAAG,0BAAC+D,aAAa,CAACZ,UAAd,CAAyBnD,MAA1B,oCAAoC,EAApC,EAAwCjF,MAAxC,CAA+C,CAAC5H,GAAD,EAAMsM,KAAN,KAAgB;AAChE,mBAAO,EAAE,GAAGtM,GAAL;AAAU,iBAAGiR,kBAAkB,CAAC3E,KAAD,EAAQ2D,MAAM,CAAC9O,KAAP,CAAaqB,GAAb,EAAkBqK,MAAlB,CAAyBP,KAAzB,CAAR;AAA/B,aAAP;AACD,WAFE,EAEA,EAFA;AAFG;AAFqB,OAA/B;;AAUA,WAAK,MAAMA,KAAX,IAAoB7L,MAAM,CAACE,IAAP,CAAYqQ,KAAK,CAACnE,MAAlB,CAApB,EAA+C;AAC7C,YAAI,WAAWN,IAAX,CAAgBD,KAAhB,KAA0B0E,KAAK,CAACnE,MAAN,cAAmBP,KAAnB,EAA9B,EAA2D;AAE3D,cAAM4E,OAAO,gBAAS5E,KAAT,CAAb;AACA0E,aAAK,CAACnE,MAAN,CAAaqE,OAAb,IAAwBhE,QAAQ,CAACiC,OAAO,CAAC6B,KAAK,CAACnE,MAAN,CAAaP,KAAb,CAAD,CAAP,GAAgC,IAAhC,GAAuC,GAAvC,GAA6C,QAA9C,CAAhC;AACD;;AAEDtM,SAAG,CAACwC,GAAD,CAAH,GAAWwO,KAAX;AAEA,aAAOhR,GAAP;AACD,KArBM,EAqBJ,EArBI,CAAP;AAsBD,GAvB8B,CAA/B;;AAyBA,WAASiR,kBAAT,CAA6BjS,IAA7B,EAA2CsN,KAA3C,EAA0D;AACxD,UAAMtM,GAA2B,GAAG,EAApC;;AACA,SAAK,MAAMmR,SAAX,IAAyB,CAAC,SAAD,EAAY,QAAZ,CAAzB,EAA0D;AACxD,YAAMpK,EAAE,GAAGoK,SAAS,KAAK,SAAd,GAA0BrC,OAA1B,GAAoCI,MAA/C;;AACA,WAAK,MAAMH,MAAX,IAAqB3N,WAAW,CAAC4O,UAAU,CAAC7O,KAAX,CAAiBgQ,SAAjB,CAAD,EAA8B,CAA9B,CAAhC,EAAkE;AAChEnR,WAAG,WAAIhB,IAAJ,cAAYmS,SAAZ,cAAyBpC,MAAzB,EAAH,GAAwC7B,QAAQ,CAACnG,EAAE,CAACyF,UAAU,CAACF,KAAD,CAAX,EAAoByC,MAApB,CAAH,CAAhD;AACD;AACF;;AAED,WAAO/O,GAAP;AACD;;AAED,WAASoR,eAAT,CAA0BpS,IAA1B,EAAwC;AACtC,UAAMgS,KAAK,GAAGF,cAAc,CAAC3P,KAAf,CAAqBnC,IAArB,CAAd;AAEA,QAAI,CAACgS,KAAL,EAAY,MAAM,IAAIK,KAAJ,gCAAkCrS,IAAlC,EAAN;AAEZ,UAAMsS,YAAY,GAAGN,KAAK,CAACtB,IAAN,GAAa,CAAb,GAAiB,CAAtC;AACA,UAAM6B,WAAW,GAAGP,KAAK,CAACtB,IAAN,GAAa,CAAb,GAAiB,CAArC;AAEA,UAAMc,SAAmB,GAAG,EAA5B;;AACA,SAAK,MAAM,CAAChO,GAAD,EAAMrB,KAAN,CAAX,IAA2BV,MAAM,CAAC8D,OAAP,CAAeyM,KAAK,CAACnE,MAArB,CAA3B,EAAyD;AACvD,YAAMvB,GAAG,GAAGsD,UAAU,CAACzN,KAAD,CAAtB;AACAqP,eAAS,CAACnT,IAAV,qBAA4BmF,GAA5B,eAAoC8I,GAAG,CAACK,CAAxC,cAA6CL,GAAG,CAACM,CAAjD,cAAsDN,GAAG,CAAChL,CAA1D;;AACA,UAAI,CAACkC,GAAG,CAACmF,UAAJ,CAAe,KAAf,CAAL,EAA4B;AAC1B6I,iBAAS,CAACnT,IAAV,qBAA4BmF,GAA5B,kCAAuD2M,OAAO,CAAChO,KAAD,CAAP,GAAiB,IAAjB,GAAwBmQ,YAAxB,GAAuCC,WAA9F;AACD;AACF;;AAED,WAAOf,SAAP;AACD;;AAED,WAASgB,eAAT,GAA4B;AAC1B,QAAI,OAAOC,QAAP,KAAoB,WAApB,IAAmCZ,OAAO,CAAC1P,KAA/C,EAAsD;AAEtD,UAAMO,EAAE,GAAG+P,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAX;AACAhQ,MAAE,CAACiI,IAAH,GAAU,UAAV;AACAjI,MAAE,CAACiQ,EAAH,GAAQ,0BAAR;AAEAd,WAAO,CAAC1P,KAAR,GAAgBO,EAAhB;AACA+P,YAAQ,CAACG,IAAT,CAAcC,WAAd,CAA0BhB,OAAO,CAAC1P,KAAlC;AACD;;AAED,WAAS2Q,cAAT,CAAyBC,QAAzB,EAA2CC,OAA3C,EAA8D;AAC5D,WAAO,WACFD,QADE,WAEL,GAAGC,OAAO,CAACvS,GAAR,CAAYwS,IAAI,gBAASA,IAAT,QAAhB,CAFE,EAGL,KAHK,CAAP;AAKD;;AAED,WAASC,YAAT,GAAyB;AACvB,QAAItB,aAAa,CAACF,UAAlB,EAA8B;AAE9Bc,mBAAe;AAEf,UAAMW,KAAK,GAAG,EAAd;;AAEA,SAAK,MAAMC,SAAX,IAAwB3R,MAAM,CAACE,IAAP,CAAYmQ,cAAc,CAAC3P,KAA3B,CAAxB,EAA2D;AACzD,YAAMqP,SAAS,GAAGM,cAAc,CAAC3P,KAAf,CAAqBiR,SAArB,EAAgC5B,SAAlD;AAEA2B,WAAK,CAAC9U,IAAN,CAAW,GAAGyU,cAAc,qBAAcM,SAAd,GAA2B,CACrD,GAAGhB,eAAe,CAACgB,SAAD,CADmC,EAErD,GAAG3R,MAAM,CAACE,IAAP,CAAY6P,SAAZ,EAAuB/Q,GAAvB,CAA2B+C,GAAG,IAAI;AACnC,6BAAcA,GAAd,eAAsBgO,SAAS,CAAChO,GAAD,CAA/B;AACD,OAFE,CAFkD,CAA3B,CAA5B;AAMD,KAhBsB,CAkBvB;AACA;;;AACA,UAAM6P,UAAU,GAAG5R,MAAM,CAACE,IAAP,CAAYmQ,cAAc,CAAC3P,KAA3B,EAAkC,CAAlC,CAAnB;;AACA,SAAK,MAAMqB,GAAX,IAAkB/B,MAAM,CAACE,IAAP,CAAYmQ,cAAc,CAAC3P,KAAf,CAAqBkR,UAArB,EAAiCxF,MAA7C,CAAlB,EAAwE;AACtE,UAAI,WAAWN,IAAX,CAAgB/J,GAAhB,CAAJ,EAA0B;AACxB2P,aAAK,CAAC9U,IAAN,CAAW,GAAGyU,cAAc,YAAKtP,GAAL,GAAY,oCAA6BA,GAA7B,QAAZ,CAA5B;AACD,OAFD,MAEO;AACL2P,aAAK,CAAC9U,IAAN,CACE,GAAGyU,cAAc,eAAQtP,GAAR,GAAe,uDACiBA,GADjB,mEAEGA,GAFH,+CAGCA,GAHD,QAAf,CADnB,EAME,GAAGsP,cAAc,iBAAUtP,GAAV,GAAiB,oCAA6BA,GAA7B,QAAjB,CANnB,EAOE,GAAGsP,cAAc,mBAAYtP,GAAZ,GAAmB,2CAAoCA,GAApC,OAAnB,CAPnB;AASD;AACF;;AAED,QAAIqO,OAAO,CAAC1P,KAAZ,EAAmB0P,OAAO,CAAC1P,KAAR,CAAcmR,SAAd,GAA0BH,KAAK,CAAC1S,GAAN,CAAU,CAACnB,GAAD,EAAMoB,CAAN,KAAYA,CAAC,KAAK,CAAN,GAAUpB,GAAV,iBAAuBA,GAAvB,CAAtB,EAAoDwB,IAApD,CAAyD,EAAzD,CAA1B;AACpB;;AAEDyS,iEAAK,CAACtC,MAAD,EAASiC,YAAT,EAAuB;AAAEM,QAAI,EAAE,IAAR;AAAcC,aAAS,EAAE;AAAzB,GAAvB,CAAL;AAEA,SAAO;AACL/B,cAAU,EAAEE,aAAa,CAACF,UADrB;AAELT,UAAM,EAAEa,cAFH;AAGL4B,YAAQ,EAAE,CAAClQ,GAAD,EAAcwO,KAAd,KAAyCf,MAAM,CAAC9O,KAAP,CAAaqB,GAAb,IAAoBwO,KAHlE;AAIL2B,YAAQ,EAAGnQ,GAAD,IAAiBsO,cAAc,CAAC3P,KAAf,CAAqBqB,GAArB,CAJtB;AAKLwC,WALK;AAML4N,gBAAY,EAAE7B,kEAAQ,CAAC,MAAMH,aAAa,CAACF,UAAd,GAA2B,EAA3B,sBAA4C1L,OAAO,CAAC7D,KAApD,CAAP,CANjB;AAOL0R,YAAQ,EAAGvG,KAAD,IAAmB,CAAC,CAACwE,cAAc,CAAC3P,KAAf,CAAqB6D,OAAO,CAAC7D,KAA7B,EAAoC0L,MAApC,CAA2CP,KAA3C;AAP1B,GAAP;AASD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASwG,YAAT,CAAuBpS,KAA+C,GAAG,EAAzE,EAA6EqS,OAA7E,EAAoG;AACzG,QAAM/B,KAAK,GAAGgC,gEAAM,CAACrD,kBAAD,EAAqB,IAArB,CAApB;AAEA,MAAI,CAACqB,KAAL,EAAY,MAAM,IAAIK,KAAJ,CAAU,wCAAV,CAAN;AAEZ,QAAM4B,QAAQ,GAAGnI,6DAAG,CAAgB,IAAhB,CAApB;AACA,QAAM9F,OAAO,GAAG+L,kEAAQ,CAAS;AAC/BmC,OAAG,EAAE,MAAM;AAAA;;AACT,wCAAOD,QAAQ,CAAC9R,KAAhB,8BAAyBT,KAAK,CAACsQ,KAA/B,mBAAwCA,KAAxC,oBAAwCA,KAAK,CAAEhM,OAAP,CAAe7D,KAAvD;AACD,KAH8B;;AAI/BgS,OAAG,CAAEhS,KAAF,EAAiB;AAClB,UAAI6P,KAAK,IAAI,CAACtQ,KAAK,CAACsQ,KAAhB,IAAyB,CAACtQ,KAAK,CAAC0S,UAApC,EAAgD;AAC9CpC,aAAK,CAAChM,OAAN,CAAc7D,KAAd,GAAsBA,KAAtB;AACD,OAFD,MAEO;AACL8R,gBAAQ,CAAC9R,KAAT,GAAiBA,KAAjB;AACA4R,eAAO,CAACM,IAAR,CAAa,cAAb,EAA6BlS,KAA7B;AACD;AACF;;AAX8B,GAAT,CAAxB;AAcA,QAAMyR,YAAY,GAAG7B,kEAAQ,CAAC,MAAMC,KAAK,CAACN,UAAN,GAAmB,EAAnB,sBAAoC1L,OAAO,CAAC7D,KAA5C,CAAP,CAA7B;AACA,QAAMmS,QAAuB,GAAG,EAC9B,GAAGtC,KAD2B;AAE9BhM,WAF8B;AAG9B4N;AAH8B,GAAhC;AAMAW,mEAAO,CAAC5D,kBAAD,EAAqB2D,QAArB,CAAP;AAEA,SAAOA,QAAP;AACD;AAED;AACA;AACA;;AACO,SAASE,QAAT,GAAqB;AAC1B,QAAMxC,KAAK,GAAGgC,gEAAM,CAACrD,kBAAD,CAApB;AAEA,MAAI,CAACqB,KAAL,EAAY,MAAM,IAAIK,KAAJ,CAAU,wCAAV,CAAN;AAEZ,SAAOL,KAAP;AACD,C;;AClUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,SAASyC,YAAT,CAEJ/S,KAFI,EAEiBsI,MAFjB,EAEkC;AACvC,SACE0K,QADK,IAEqC;AAC1C,WAAOjT,MAAM,CAACE,IAAP,CAAYD,KAAZ,EAAmBkH,MAAnB,CAA+B,CAAC5H,GAAD,EAAM2T,IAAN,KAAe;AACnD,YAAMC,kBAAkB,GAAG,OAAOlT,KAAK,CAACiT,IAAD,CAAZ,KAAuB,QAAvB,IAAmCjT,KAAK,CAACiT,IAAD,CAAL,IAAe,IAAlD,IAA0D,CAAC/T,KAAK,CAACC,OAAN,CAAca,KAAK,CAACiT,IAAD,CAAnB,CAAtF;AACA,YAAME,UAAU,GAAGD,kBAAkB,GAAGlT,KAAK,CAACiT,IAAD,CAAR,GAAiB;AAAEhK,YAAI,EAAEjJ,KAAK,CAACiT,IAAD;AAAb,OAAtD;;AAEA,UAAID,QAAQ,IAAIC,IAAI,IAAID,QAAxB,EAAkC;AAChC1T,WAAG,CAAC2T,IAAD,CAAH,GAAY,EACV,GAAGE,UADO;AAEVC,iBAAO,EAAEJ,QAAQ,CAACC,IAAD;AAFP,SAAZ;AAID,OALD,MAKO;AACL3T,WAAG,CAAC2T,IAAD,CAAH,GAAYE,UAAZ;AACD;;AAED,UAAI7K,MAAJ,EAAY;AACVhJ,WAAG,CAAC2T,IAAD,CAAH,CAAU3K,MAAV,GAAmBA,MAAnB;AACD;;AAED,aAAOhJ,GAAP;AACD,KAlBM,EAkBJ,EAlBI,CAAP;AAmBD,GAtBD;AAuBD,C;;ACtDD;AACA;CAGA;;AAsBO,MAAM+T,gBAA6C,GAAGnE,MAAM,CAACC,GAAP,CAAW,gBAAX,CAAtD;AAEA,MAAMmE,eAAe,GAAGP,YAAY,CAAC;AAC1CQ,UAAQ,EAAE;AACRtK,QAAI,EAAE/J,KADE;AAERkU,WAAO,EAAE,MAAO;AAFR,GADgC;AAK1CI,YAAU,EAAEC;AAL8B,CAAD,EAMxC,QANwC,CAApC,C,CAQP;;AACO,MAAMC,mBAAmB,GAAGX,YAAY,CAAC;AAC9CzU,MAAI,EAAE;AACJ2K,QAAI,EAAE/G;AADF,GADwC;AAI9CyR,UAAQ,EAAE;AACR1K,QAAI,EAAE9G,MADE;AAERiR,WAAO,EAAE;AAFD,GAJoC;AAQ9C1L,MAAI,EAAE;AACJuB,QAAI,EAAE,CAAC9G,MAAD,EAASD,MAAT,CADF;AAEJkR,WAAO,EAAE;AAFL;AARwC,CAAD,EAY5C,aAZ4C,CAAxC;AAcA,SAASQ,OAAT,GAAoB;AACzB,QAAMC,MAAM,GAAGvB,gEAAM,CAACe,gBAAD,CAArB;AAEA,MAAI,CAACQ,MAAL,EAAa,MAAM,IAAIlD,KAAJ,CAAU,wCAAV,CAAN;AAEb,SAAOkD,MAAP;AACD;AAEM,SAASC,aAAT,CACLxV,IADK,EAELqV,QAFK,EAGLI,QAHK,EAIL1F,MAJK,EAKL;AACA,QAAMwF,MAAM,GAAGvB,gEAAM,CAACe,gBAAD,CAArB;AAEA,MAAI,CAACQ,MAAL,EAAa,MAAM,IAAIlD,KAAJ,CAAU,wCAAV,CAAN;AAEb,QAAMM,EAAE,GAAG3S,IAAH,WAAGA,IAAH,yBAA0BsK,MAAM,EAAhC,CAAR;AAEA,QAAMoL,MAAM,GAAGH,MAAM,CAACI,QAAP,CAAgBhD,EAAhB,EAAoB0C,QAApB,EAA8BI,QAA9B,EAAwC1F,MAAxC,CAAf;AAEA6F,2EAAe,CAAC,MAAML,MAAM,CAACM,UAAP,CAAkBlD,EAAlB,CAAP,CAAf;AAEA,SAAO+C,MAAP;AACD;;AAED,MAAMI,cAAc,GAAG,CACrBP,MADqB,EAErBQ,UAFqB,EAGrBC,SAHqB,EAIrBC,OAJqB,KAKlB;AACH,MAAIC,aAAa,GAAG;AAAEC,OAAG,EAAE,CAAP;AAAU3R,QAAI,EAAE,CAAhB;AAAmBC,SAAK,EAAE,CAA1B;AAA6B2R,UAAM,EAAE;AAArC,GAApB;AACA,QAAMC,MAAM,GAAG,CAAC;AAAE1D,MAAE,EAAE,EAAN;AAAU2D,SAAK,EAAE,EAAE,GAAGJ;AAAL;AAAjB,GAAD,CAAf;AACA,QAAMK,GAAG,GAAG,CAAChB,MAAM,CAAChV,MAAR,GAAiBwV,UAAjB,GAA8BR,MAAM,CAAC9U,GAAP,CAAWkO,CAAC,IAAIA,CAAC,CAAC5M,KAAF,CAAQ,GAAR,EAAa,CAAb,CAAhB,EAAiC6F,MAAjC,CAAwC+G,CAAC,IAAIoH,UAAU,CAAC3X,QAAX,CAAoBuQ,CAApB,CAA7C,CAA1C;;AACA,OAAK,MAAMgE,EAAX,IAAiB4D,GAAjB,EAAsB;AACpB,UAAMd,QAAQ,GAAGO,SAAS,CAAC9B,GAAV,CAAcvB,EAAd,CAAjB;AACA,UAAM5C,MAAM,GAAGkG,OAAO,CAAC/B,GAAR,CAAYvB,EAAZ,CAAf;AACA,QAAI,CAAC8C,QAAD,IAAa,CAAC1F,MAAlB,EAA0B;AAE1B,UAAMuG,KAAK,GAAG,EACZ,GAAGJ,aADS;AAEZ,OAACT,QAAQ,CAACtT,KAAV,GAAkBuL,QAAQ,CAACwI,aAAa,CAACT,QAAQ,CAACtT,KAAV,CAAd,EAAgC,EAAhC,CAAR,GAA8CuL,QAAQ,CAACqC,MAAM,CAAC5N,KAAR,EAAe,EAAf;AAF5D,KAAd;AAKAkU,UAAM,CAAChY,IAAP,CAAY;AACVsU,QADU;AAEV2D;AAFU,KAAZ;AAKAJ,iBAAa,GAAGI,KAAhB;AACD;;AAED,SAAOD,MAAP;AACD,CA5BD,C,CA8BA;;;AACO,SAASG,YAAT,CAAuB9U,KAAvB,EAA0E;AAC/E,QAAMqU,UAAU,GAAGjK,6DAAG,CAAW,EAAX,CAAtB;AACA,QAAMkK,SAAS,GAAG,IAAIS,GAAJ,EAAlB;AACA,QAAMR,OAAO,GAAG,IAAIQ,GAAJ,EAAhB;AACA,QAAMC,UAAU,GAAG,IAAID,GAAJ,EAAnB;AAEA,QAAME,gBAAgB,GAAG5E,kEAAQ,CAAC,MAAM;AAAA;;AACtC,UAAMtR,GAAG,GAAG,IAAIgW,GAAJ,EAAZ;AACA,UAAMxB,QAAQ,sBAAGvT,KAAK,CAACuT,QAAT,8BAAqB,EAAnC;;AACA,SAAK,MAAM2B,OAAX,IAAsB3B,QAAQ,CAACrN,MAAT,CAAgB3F,IAAI,IAAIA,IAAI,CAAC7D,QAAL,CAAc,GAAd,CAAxB,CAAtB,EAAmE;AACjE,YAAM,CAAC+X,GAAD,EAAMC,MAAN,IAAgBQ,OAAO,CAAC7U,KAAR,CAAc,GAAd,CAAtB;AACA,UAAI,CAACgU,UAAU,CAAC5T,KAAX,CAAiB/D,QAAjB,CAA0B+X,GAA1B,CAAD,IAAmC,CAACJ,UAAU,CAAC5T,KAAX,CAAiB/D,QAAjB,CAA0BgY,MAA1B,CAAxC,EAA2E;AAE3E,YAAMS,WAAW,GAAGb,SAAS,CAAC9B,GAAV,CAAciC,GAAd,CAApB;AACA,YAAMW,cAAc,GAAGd,SAAS,CAAC9B,GAAV,CAAckC,MAAd,CAAvB;AACA,YAAMW,SAAS,GAAGd,OAAO,CAAC/B,GAAR,CAAYiC,GAAZ,CAAlB;AACA,YAAMa,YAAY,GAAGf,OAAO,CAAC/B,GAAR,CAAYkC,MAAZ,CAArB;AAEA,UAAI,CAACS,WAAD,IAAgB,CAACC,cAAjB,IAAmC,CAACC,SAApC,IAAiD,CAACC,YAAtD,EAAoE;AAEpEvW,SAAG,CAAC0T,GAAJ,CAAQiC,MAAR,EAAgB;AAAEX,gBAAQ,EAAEoB,WAAW,CAAC1U,KAAxB;AAA+B4N,cAAM,EAAErC,QAAQ,CAACqJ,SAAS,CAAC5U,KAAX,EAAkB,EAAlB;AAA/C,OAAhB;AACA1B,SAAG,CAAC0T,GAAJ,CAAQgC,GAAR,EAAa;AAAEV,gBAAQ,EAAEqB,cAAc,CAAC3U,KAA3B;AAAkC4N,cAAM,EAAE,CAACrC,QAAQ,CAACsJ,YAAY,CAAC7U,KAAd,EAAqB,EAArB;AAAnD,OAAb;AACD;;AAED,WAAO1B,GAAP;AACD,GAnBgC,CAAjC;AAqBA,QAAM4V,MAAM,GAAGtE,kEAAQ,CAAC,MAAM;AAC5B,UAAMxM,OAAO,GAAG,CAAC,GAAGmR,UAAU,CAACnR,OAAX,EAAJ,CAAhB;AACA,UAAM0R,aAAa,GAAG1R,OAAO,CAACsB,IAAR,CAAa,CAAC,GAAGxF,CAAH,CAAD,EAAQ,GAAGC,CAAH,CAAR,KAAkBD,CAAC,CAACc,KAAF,GAAUb,CAAC,CAACa,KAA3C,EAAkD1B,GAAlD,CAAsD,CAAC,CAACkS,EAAD,CAAD,KAAUA,EAAhE,CAAtB;AACA,WAAOmD,cAAc,CAACmB,aAAD,EAAgBlB,UAAU,CAAC5T,KAA3B,EAAkC6T,SAAlC,EAA6CC,OAA7C,CAArB;AACD,GAJsB,CAAvB;AAMA,QAAMiB,UAAU,GAAGnF,kEAAQ,CAAC,MAAM;AAChC,UAAMuE,KAAK,GAAGD,MAAM,CAAClU,KAAP,CAAakU,MAAM,CAAClU,KAAP,CAAa5B,MAAb,GAAsB,CAAnC,EAAsC+V,KAApD;AAEA,WAAO;AACLb,cAAQ,EAAE,UADL;AAELjR,UAAI,EAAEf,aAAa,CAAC6S,KAAK,CAAC9R,IAAP,CAFd;AAGLC,WAAK,EAAEhB,aAAa,CAAC6S,KAAK,CAAC7R,KAAP,CAHf;AAIL0R,SAAG,EAAE1S,aAAa,CAAC6S,KAAK,CAACH,GAAP,CAJb;AAKLC,YAAM,EAAE3S,aAAa,CAAC6S,KAAK,CAACF,MAAP;AALhB,KAAP;AAOD,GAV0B,CAA3B;AAYA,QAAMxQ,KAAK,GAAGmM,kEAAQ,CAAC,MAAM;AAC3B,WAAOsE,MAAM,CAAClU,KAAP,CAAasJ,KAAb,CAAmB,CAAnB,EAAsBhL,GAAtB,CAA0B,CAAC;AAAEkS;AAAF,KAAD,EAAS7P,KAAT,KAAmB;AAClD,YAAM;AAAEwT;AAAF,UAAYD,MAAM,CAAClU,KAAP,CAAaW,KAAb,CAAlB;AACA,YAAMsG,IAAI,GAAG6M,OAAO,CAAC/B,GAAR,CAAYvB,EAAZ,CAAb;AAEA,aAAO;AACLA,UADK;AAEL,WAAG2D,KAFE;AAGLlN,YAAI,EAAEvF,MAAM,CAACuF,IAAI,CAAEjH,KAAP;AAHP,OAAP;AAKD,KATM,CAAP;AAUD,GAXqB,CAAtB;;AAaA,QAAMgV,aAAa,GAAIxE,EAAD,IAAgB;AACpC,WAAO/M,KAAK,CAACzD,KAAN,CAAYiV,IAAZ,CAAiBnV,IAAI,IAAIA,IAAI,CAAC0Q,EAAL,KAAYA,EAArC,CAAP;AACD,GAFD;;AAIA4B,mEAAO,CAACQ,gBAAD,EAAmB;AACxBY,YAAQ,EAAE,CAAChD,EAAD,EAAa0C,QAAb,EAAoCI,QAApC,EAA6D1F,MAA7D,KAA8F;AACtG2G,gBAAU,CAACvC,GAAX,CAAexB,EAAf,EAAmB0C,QAAnB;AACAW,eAAS,CAAC7B,GAAV,CAAcxB,EAAd,EAAkB8C,QAAlB;AACAQ,aAAO,CAAC9B,GAAR,CAAYxB,EAAZ,EAAgB5C,MAAhB;AACAgG,gBAAU,CAAC5T,KAAX,CAAiB9D,IAAjB,CAAsBsU,EAAtB;AAEA,aAAOZ,kEAAQ,CAAC,MAAM;AAAA;;AACpB,cAAMjP,KAAK,GAAG8C,KAAK,CAACzD,KAAN,CAAYkV,SAAZ,CAAsB3W,CAAC,IAAIA,CAAC,CAACiS,EAAF,KAASA,EAApC,CAAd;AAEA,YAAI7P,KAAK,GAAG,CAAZ,EAAe,MAAM,IAAIuP,KAAJ,yBAA0BM,EAA1B,oCAAN;AAEf,cAAM1Q,IAAI,GAAG2D,KAAK,CAACzD,KAAN,CAAYW,KAAZ,CAAb;AAEA,YAAI,CAACb,IAAL,EAAW,MAAM,IAAIoQ,KAAJ,wCAAyCM,EAAzC,EAAN;AAEX,cAAMiE,OAAO,GAAGD,gBAAgB,CAACxU,KAAjB,CAAuB+R,GAAvB,CAA2BvB,EAA3B,CAAhB;;AACA,YAAIiE,OAAJ,EAAa;AACX3U,cAAI,CAAC2U,OAAO,CAACnB,QAAT,CAAJ,IAA0BmB,OAAO,CAAC7G,MAAlC;AACD;;AAED,cAAMuH,YAAY,GAAG7B,QAAQ,CAACtT,KAAT,KAAmB,MAAnB,IAA6BsT,QAAQ,CAACtT,KAAT,KAAmB,OAArE;AACA,cAAMoV,UAAU,GAAG9B,QAAQ,CAACtT,KAAT,KAAmB,OAAtC;AAEA,cAAM4N,MAAM,GAAGkG,OAAO,CAAC/B,GAAR,CAAYvB,EAAZ,CAAf;AAEA,eAAO;AACL,WAAC8C,QAAQ,CAACtT,KAAV,GAAkB,CADb;AAELqV,gBAAM,EAAEF,YAAY,yBAAkBrV,IAAI,CAACkU,GAAvB,kBAAkClU,IAAI,CAACmU,MAAvC,sCAAwDrG,MAAxD,oBAAwDA,MAAM,CAAE5N,KAAhE,4BAAyE,CAAzE,OAFf;AAGLsV,oBAAU,EAAEF,UAAU,GAAGpW,SAAH,aAAkBc,IAAI,CAACuC,IAAvB,OAHjB;AAILkT,qBAAW,EAAEH,UAAU,aAAMtV,IAAI,CAACwC,KAAX,UAAuBtD,SAJzC;AAKLwW,mBAAS,EAAElC,QAAQ,CAACtT,KAAT,KAAmB,QAAnB,aAAiCF,IAAI,CAACkU,GAAtC,UAAgDhV,SALtD;AAMLyW,sBAAY,EAAEnC,QAAQ,CAACtT,KAAT,KAAmB,KAAnB,aAA8BF,IAAI,CAACmU,MAAnC,UAAgDjV,SANzD;AAOLsU,kBAAQ,EAAE,UAPL;AAQLoC,eAAK,EAAE,CAACP,YAAD,yBAA+BrV,IAAI,CAACuC,IAApC,kBAAgDvC,IAAI,CAACwC,KAArD,uCAAqEsL,MAArE,oBAAqEA,MAAM,CAAE5N,KAA7E,6BAAsF,CAAtF,OARF;AASL2V,gBAAM,EAAEzB,MAAM,CAAClU,KAAP,CAAa5B,MAAb,GAAsBuC;AATzB,SAAP;AAWD,OA9Bc,CAAf;AA+BD,KAtCuB;AAuCxB+S,cAAU,EAAGlD,EAAD,IAAgB;AAC1BqD,eAAS,CAAC7R,MAAV,CAAiBwO,EAAjB;AACAsD,aAAO,CAAC9R,MAAR,CAAewO,EAAf;AACA+D,gBAAU,CAACvS,MAAX,CAAkBwO,EAAlB;AACAoD,gBAAU,CAAC5T,KAAX,GAAmB4T,UAAU,CAAC5T,KAAX,CAAiByF,MAAjB,CAAwBrF,CAAC,IAAIA,CAAC,KAAKoQ,EAAnC,CAAnB;AACD,KA5CuB;AA6CxBuE,cA7CwB;AA8CxBC,iBA9CwB;AA+CxBvR;AA/CwB,GAAnB,CAAP;AAkDA,SAAO;AAAEmS,iBAAa,EAAEjM,6DAAG,CAAC,UAAD,CAApB;AAAkCqL,iBAAlC;AAAiDvR;AAAjD,GAAP;AACD,C;;AC9NM,MAAMoS,OAAO,GAAG,OAAOC,OAAP,KAAmB,WAAnC;AACA,MAAMC,UAAU,GAAG,OAAOnV,MAAP,KAAkB,WAArC;AACA,MAAMoV,QAAQ,GAAGH,OAAO,IAAIC,OAAO,CAACG,GAAR,CAAYC,KAAZ,KAAsB,MAAlD;AACA,MAAMC,OAAO,GAAGN,OAAO,IAAIC,YAAA,KAAyB,YAApD;AACA,MAAMM,qBAAqB,GAAGL,UAAU,IAAI,0BAA0BnV,MAAtE;AACA,MAAMyV,cAAc,GAAGN,UAAU,KAAK,kBAAkBnV,MAAlB,IAA4BA,MAAM,CAAC0V,SAAP,CAAiBC,cAAjB,GAAkC,CAAnE,CAAjC,C;;ACLP;AACA;CAGA;;CAGA;;AAgEO,MAAMC,oBAA2D,GAAG/H,MAAM,CAACC,GAAP,CAAW,iBAAX,CAApE;AAEP,MAAM+H,qBAAqC,GAAG;AAC5CC,kBAAgB,EAAE,IAD0B;AAE5CC,YAAU,EAAE;AACVC,MAAE,EAAE,CADM;AAEVC,MAAE,EAAE,GAFM;AAGVC,MAAE,EAAE,GAHM;AAIVC,MAAE,EAAE,IAJM;AAKVC,MAAE,EAAE,IALM;AAMVC,OAAG,EAAE;AANK;AAFgC,CAA9C;;AAYA,MAAMC,mBAAmB,GAAG,CAACxZ,OAAuB,GAAG+Y,qBAA3B,KAAqD;AAC/E,SAAO7O,SAAS,CAAC6O,qBAAD,EAAwB/Y,OAAxB,CAAhB;AACD,CAFD,C,CAIA;AACA;;;AACA,SAASyZ,cAAT,GAA2B;AACzB,SAAOpB,UAAU,GAAGlP,IAAI,CAACD,GAAL,CAClB0J,QAAQ,CAAC8G,eAAT,CAA0BC,WADR,EAElBzW,MAAM,CAAC0W,UAFW,CAAH,GAGb,CAHJ,CADyB,CAInB;AACP;;AAED,SAASC,eAAT,GAA4B;AAC1B,SAAOxB,UAAU,GAAGlP,IAAI,CAACD,GAAL,CAClB0J,QAAQ,CAAC8G,eAAT,CAA0BI,YADR,EAElB5W,MAAM,CAAC6W,WAFW,CAAH,GAGb,CAHJ,CAD0B,CAIpB;AACP;;AAED,SAASC,WAAT,GAAyC;AACvC,QAAMC,SAAS,GAAG5B,UAAU,GAAGnV,MAAM,CAAC0V,SAAP,CAAiBqB,SAApB,GAAgC,KAA5D;;AAEA,WAAS1Z,KAAT,CAAgB2Z,MAAhB,EAAgC;AAC9B,WAAO5E,OAAO,CAAC2E,SAAS,CAAC1Z,KAAV,CAAgB2Z,MAAhB,CAAD,CAAd;AACD;;AAED,QAAMC,OAAO,GAAG5Z,KAAK,CAAC,UAAD,CAArB;AACA,QAAM6Z,GAAG,GAAG7Z,KAAK,CAAC,mBAAD,CAAjB;AACA,QAAM8Z,OAAO,GAAG9Z,KAAK,CAAC,UAAD,CAArB;AACA,QAAM+Z,QAAQ,GAAG/Z,KAAK,CAAC,WAAD,CAAtB;AACA,QAAMga,MAAM,GAAGha,KAAK,CAAC,SAAD,CAApB;AACA,QAAMia,IAAI,GAAGja,KAAK,CAAC,OAAD,CAAlB;AACA,QAAMka,OAAO,GAAGla,KAAK,CAAC,UAAD,CAArB;AACA,QAAMma,KAAK,GAAGna,KAAK,CAAC,QAAD,CAAnB;AACA,QAAMoa,GAAG,GAAGpa,KAAK,CAAC,MAAD,CAAjB;AACA,QAAMqa,GAAG,GAAGra,KAAK,CAAC,MAAD,CAAjB;AACA,QAAMsa,KAAK,GAAGta,KAAK,CAAC,QAAD,CAAnB;AACA,QAAMua,GAAG,GAAGva,KAAK,CAAC,MAAD,CAAjB;AAEA,SAAO;AACL4Z,WADK;AAELC,OAFK;AAGLC,WAHK;AAILC,YAJK;AAKLC,UALK;AAMLC,QANK;AAOLC,WAPK;AAQLC,SARK;AASLC,OATK;AAULC,OAVK;AAWLC,SAXK;AAYLE,SAAK,EAAEpC,cAZF;AAaLmC;AAbK,GAAP;AAeD;;AAEM,SAASE,aAAT,CAAwBhb,OAAxB,EAA2E;AAChF,QAAM;AAAEiZ,cAAF;AAAcD;AAAd,MAAmCQ,mBAAmB,CAACxZ,OAAD,CAA5D;AAEA,QAAM2X,MAAM,GAAG1L,6DAAG,CAAC4N,eAAe,EAAhB,CAAlB;AACA,QAAMoB,QAAQ,GAAGjB,WAAW,EAA5B;AACA,QAAMkB,KAAK,GAAGC,kEAAQ,CAAC,EAAD,CAAtB;AACA,QAAMnD,KAAK,GAAG/L,6DAAG,CAACwN,cAAc,EAAf,CAAjB;;AAEA,WAAS2B,QAAT,GAAqB;AACnBzD,UAAM,CAACrV,KAAP,GAAeuX,eAAe,EAA9B;AACA7B,SAAK,CAAC1V,KAAN,GAAcmX,cAAc,EAA5B;AACD,GAX+E,CAahF;;;AACA4B,uEAAW,CAAC,MAAM;AAChB,UAAMnC,EAAE,GAAGlB,KAAK,CAAC1V,KAAN,GAAc2W,UAAU,CAACE,EAApC;AACA,UAAMA,EAAE,GAAGnB,KAAK,CAAC1V,KAAN,GAAc2W,UAAU,CAACG,EAAzB,IAA+B,CAACF,EAA3C;AACA,UAAME,EAAE,GAAGpB,KAAK,CAAC1V,KAAN,GAAc2W,UAAU,CAACI,EAAzB,IAA+B,EAAEF,EAAE,IAAID,EAAR,CAA1C;AACA,UAAMG,EAAE,GAAGrB,KAAK,CAAC1V,KAAN,GAAc2W,UAAU,CAACK,EAAzB,IAA+B,EAAEF,EAAE,IAAID,EAAN,IAAYD,EAAd,CAA1C;AACA,UAAMI,EAAE,GAAGtB,KAAK,CAAC1V,KAAN,GAAc2W,UAAU,CAACM,GAAzB,IAAgC,EAAEF,EAAE,IAAID,EAAN,IAAYD,EAAZ,IAAkBD,EAApB,CAA3C;AACA,UAAMK,GAAG,GAAGvB,KAAK,CAAC1V,KAAN,IAAe2W,UAAU,CAACM,GAAtC;AACA,UAAMpZ,IAAI,GACR+Y,EAAE,GAAG,IAAH,GACAC,EAAE,GAAG,IAAH,GACFC,EAAE,GAAG,IAAH,GACFC,EAAE,GAAG,IAAH,GACFC,EAAE,GAAG,IAAH,GACF,KANJ;AAOA,UAAMgC,eAAe,GAAG,OAAOtC,gBAAP,KAA4B,QAA5B,GAAuCA,gBAAvC,GAA0DC,UAAU,CAACD,gBAAD,CAA5F;AACA,UAAMuC,MAAM,GAAG,CAACN,QAAQ,CAACH,GAAV,GACX9C,KAAK,CAAC1V,KAAN,GAAcgZ,eADH,GAEXL,QAAQ,CAACd,OAAT,IAAoBc,QAAQ,CAACb,GAA7B,IAAoCa,QAAQ,CAACP,KAFjD;AAIAQ,SAAK,CAAChC,EAAN,GAAWA,EAAX;AACAgC,SAAK,CAAC/B,EAAN,GAAWA,EAAX;AACA+B,SAAK,CAAC9B,EAAN,GAAWA,EAAX;AACA8B,SAAK,CAAC7B,EAAN,GAAWA,EAAX;AACA6B,SAAK,CAAC5B,EAAN,GAAWA,EAAX;AACA4B,SAAK,CAAC3B,GAAN,GAAYA,GAAZ;AACA2B,SAAK,CAACM,OAAN,GAAgB,CAACtC,EAAjB;AACAgC,SAAK,CAACO,OAAN,GAAgB,EAAEvC,EAAE,IAAIC,EAAR,CAAhB;AACA+B,SAAK,CAACQ,OAAN,GAAgB,EAAExC,EAAE,IAAIC,EAAN,IAAYC,EAAd,CAAhB;AACA8B,SAAK,CAACS,OAAN,GAAgB,EAAEzC,EAAE,IAAIC,EAAN,IAAYC,EAAZ,IAAkBC,EAApB,CAAhB;AACA6B,SAAK,CAACU,SAAN,GAAkB,EAAExC,EAAE,IAAIC,EAAN,IAAYC,EAAZ,IAAkBC,GAApB,CAAlB;AACA2B,SAAK,CAACW,SAAN,GAAkB,EAAExC,EAAE,IAAIC,EAAN,IAAYC,GAAd,CAAlB;AACA2B,SAAK,CAACY,SAAN,GAAkB,EAAExC,EAAE,IAAIC,GAAR,CAAlB;AACA2B,SAAK,CAACa,SAAN,GAAkB,CAACxC,GAAnB;AACA2B,SAAK,CAAC/a,IAAN,GAAaA,IAAb;AACA+a,SAAK,CAACvD,MAAN,GAAeA,MAAM,CAACrV,KAAtB;AACA4Y,SAAK,CAAClD,KAAN,GAAcA,KAAK,CAAC1V,KAApB;AACA4Y,SAAK,CAACK,MAAN,GAAeA,MAAf;AACAL,SAAK,CAAClC,gBAAN,GAAyBA,gBAAzB;AACAkC,SAAK,CAACD,QAAN,GAAiBA,QAAjB;AACAC,SAAK,CAACjC,UAAN,GAAmBA,UAAnB;AACD,GAxCU,CAAX;;AA0CA,MAAIZ,UAAJ,EAAgB;AACdnV,UAAM,CAAC8Y,gBAAP,CAAwB,QAAxB,EAAkCZ,QAAlC,EAA4C;AAAEa,aAAO,EAAE;AAAX,KAA5C;AACD;;AAED,SAAOC,gEAAM,CAAChB,KAAD,CAAb;AACD;AAEM,SAASiB,UAAT,GAAuB;AAC5B,QAAMC,OAAO,GAAGjI,gEAAM,CAAC2E,oBAAD,CAAtB;AAEA,MAAI,CAACsD,OAAL,EAAc,MAAM,IAAI5J,KAAJ,CAAU,0CAAV,CAAN;AAEd,SAAO4J,OAAP;AACD,C;;;ACnND;AACA;AACA;CAGA;;AAiEO,MAAMC,iBAA4C,GAAGtL,MAAM,CAACC,GAAP,CAAW,eAAX,CAArD;AAEA,MAAMsL,aAAa,GAAG1H,YAAY,CAAC;AACxC2H,MAAI,EAAE;AACJzR,QAAI,EAAE,CAAC/G,MAAD,EAASnC,MAAT,CADF;AAEJ4a,YAAQ,EAAE;AAFN,GADkC;AAKxC;AACAhZ,KAAG,EAAE;AACHsH,QAAI,EAAE/G,MADH;AAEHyY,YAAQ,EAAE;AAFP;AANmC,CAAD,EAUtC,MAVsC,CAAlC;AAYA,MAAMC,cAAc,GAAGC,yEAAe,CAAC;AAC5Cvc,MAAI,EAAE,gBADsC;AAG5C0B,OAAK,EAAE8a,SAAS,CAACL,aAAa,EAAd,CAH4B;;AAK5CM,OAAK,CAAE/a,KAAF,EAAS;AACZ,WAAO,MAAM;AACX;AAAA;AAAA;AAKD,KAND;AAOD;;AAb2C,CAAD,CAAtC;AAgBA,MAAMgb,QAAQ,GAAGH,yEAAe,CAAC;AACtCvc,MAAI,EAAE,UADgC;AAGtC2c,cAAY,EAAE,KAHwB;AAKtCjb,OAAK,EAAE8a,SAAS,CAACL,aAAa,EAAd,CALsB;;AAOtCM,OAAK,CAAE/a,KAAF,EAAS;AAAEkb;AAAF,GAAT,EAAoB;AACvB,WAAO,MAAM;AACX,mKACkBA,KADlB;AAAA,iBACkC;AADlC;AAAA;AAAA,mBAGY,aAHZ;AAAA,mBAIY,4BAJZ;AAAA,qBAKc,WALd;AAAA,kBAMW,KANX;AAAA,yBAOkB;AAPlB;AAAA,eASgBlb,KAAK,CAAC0a;AATtB;AAAA;AAaD,KAdD;AAeD;;AAvBqC,CAAD,CAAhC;AA0BA,MAAMS,aAAa,GAAGN,yEAAe,CAAC;AAC3Cvc,MAAI,EAAE,eADqC;AAG3C0B,OAAK,EAAE8a,SAAS,CAACL,aAAa,EAAd,CAH2B;;AAK3CM,OAAK,CAAE/a,KAAF,EAAS;AACZ,WAAO,MAAM;AACX;AAAA,wBAAoBA,KAAK,CAAC0a,IAA1B;AAAA;AACD,KAFD;AAGD;;AAT0C,CAAD,CAArC;AAYA,MAAMU,UAAU,GAAGP,yEAAe,CAAC;AACxCvc,MAAI,EAAE,YADkC;AAGxC0B,OAAK,EAAE8a,SAAS,CAACL,aAAa,EAAd,CAHwB;;AAKxCM,OAAK,CAAE/a,KAAF,EAAS;AACZ,WAAO,MAAM;AACX;AAAA,iBAA0BA,KAAK,CAAC0a;AAAhC;AACD,KAFD;AAGD;;AATuC,CAAD,CAAlC;AAYA,MAAMW,WAAoC,GAAG;AAClDC,KAAG,EAAE;AACHC,aAAS,EAAEP;AADR,GAD6C;AAIlDQ,OAAK,EAAE;AACLD,aAAS,EAAEH;AADN;AAJ2C,CAA7C,C,CASP;;AACO,MAAMK,OAAO,GAAIzb,KAAD,IAA2D;AAChF,QAAM0b,KAAK,GAAGpJ,gEAAM,CAACkI,iBAAD,CAApB;AAEA,MAAI,CAACkB,KAAL,EAAY,MAAM,IAAI/K,KAAJ,CAAU,gCAAV,CAAN;AAEZ,QAAMgL,QAA2B,GAAGtL,kEAAQ,CAAC,MAAM;AACjD,UAAMuL,SAAS,GAAGzR,+DAAK,CAACnK,KAAD,CAAL,GAAeA,KAAK,CAACS,KAArB,GAA6BT,KAAK,CAAC0a,IAArD;AAEA,QAAI,CAACkB,SAAL,EAAgB,MAAM,IAAIjL,KAAJ,CAAU,iCAAV,CAAN;AAEhB,QAAI+J,IAA2B,GAAGkB,SAAlC;;AAEA,QAAI,OAAOA,SAAP,KAAqB,QAArB,IAAiCA,SAAS,CAAClf,QAAV,CAAmB,GAAnB,CAArC,EAA8D;AAAA;;AAC5Dge,UAAI,qBAAGgB,KAAK,CAACG,OAAT,qBAAG,eAAgBD,SAAS,CAAC7R,KAAV,CAAgB6R,SAAS,CAAC9V,OAAV,CAAkB,GAAlB,IAAyB,CAAzC,CAAhB,CAAP;AACD;;AAED,QAAI,CAAC4U,IAAL,EAAW,MAAM,IAAI/J,KAAJ,yCAA0CiL,SAA1C,QAAN;;AAEX,QAAI,OAAOlB,IAAP,KAAgB,QAApB,EAA8B;AAC5B,aAAO;AACLa,iBAAS,EAAEX,cADN;AAELF;AAFK,OAAP;AAID;;AAED,UAAMoB,MAAM,GAAGpB,IAAI,CAAChe,QAAL,CAAc,GAAd,CAAf;AACA,UAAMqf,OAAO,GAAGD,MAAM,GAAGpB,IAAI,CAACra,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAH,GAAwBqb,KAAK,CAACM,UAApD;AACA,UAAMC,QAAQ,GAAGH,MAAM,GAAGpB,IAAI,CAACra,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAH,GAAwBqa,IAA/C;AACA,UAAMjI,GAAG,GAAGiJ,KAAK,CAACQ,IAAN,CAAWH,OAAX,WAAWA,OAAX,GAAsBL,KAAK,CAACM,UAA5B,CAAZ;;AAEA,QAAI,CAACvJ,GAAL,EAAU;AACR,YAAM,IAAI9B,KAAJ,qCAAsCoL,OAAtC,QAAN;AACD;;AAED,WAAO;AACLR,eAAS,EAAE9I,GAAG,CAAC8I,SADV;AAELb,UAAI,EAAEuB;AAFD,KAAP;AAID,GAjC2C,CAA5C;AAmCA,SAAO;AAAEN;AAAF,GAAP;AACD,CAzCM,C;;AChKP,uCAAe;AACbQ,OAAK,EAAE,OADM;AAEbC,OAAK,EAAE,OAFM;AAGbC,cAAY,EAAE;AACZC,iBAAa,EAAE,2BADH;AAEZC,eAAW,EAAE;AAFD,GAHD;AAObC,WAAS,EAAE;AACTC,oBAAgB,EAAE,gBADT;AAETC,aAAS,EAAE;AACTC,oBAAc,EAAE,oBADP;AAETC,mBAAa,EAAE,mBAFN;AAGTC,cAAQ,EAAE,aAHD;AAITC,kBAAY,EAAE,6BAJL;AAKTC,wBAAkB,EAAE,8BALX;AAMTC,uBAAiB,EAAE;AANV,KAFF;AAUTtY,UAAM,EAAE;AAVC,GAPE;AAmBbuY,YAAU,EAAE;AACVR,oBAAgB,EAAE,iBADR;AAEVS,mBAAe,EAAE,KAFP;AAGVC,YAAQ,EAAE,WAHA;AAIVC,YAAQ,EAAE,eAJA;AAKVC,aAAS,EAAE,YALD;AAMVC,YAAQ,EAAE,WANA;AAOVC,YAAQ,EAAE;AAPA,GAnBC;AA4BbC,YAAU,EAAE;AACVC,iBAAa,EAAE,cADL;AAEVC,sBAAkB,EAAE,YAFV;AAGVC,qBAAiB,EAAE,WAHT;AAIVC,sBAAkB,EAAE,gBAJV;AAKVC,qBAAiB,EAAE;AALT,GA5BC;AAmCbC,YAAU,EAAE,mBAnCC;AAoCbC,UAAQ,EAAE;AACRC,QAAI,EAAE,iBADE;AAERC,QAAI,EAAE,aAFE;AAGRvB,aAAS,EAAE;AACTwB,eAAS,EAAE;AADF;AAHH,GApCG;AA2CbC,UAAQ,EAAE;AACRC,cAAU,EAAE;AADJ,GA3CG;AA8CbC,WAAS,EAAE;AACTC,WAAO,EAAE,WADA;AAETC,eAAW,EAAE;AAFJ,GA9CE;AAkDbC,YAAU,EAAE;AACVC,MAAE,EAAE,IADM;AAEVC,MAAE,EAAE;AAFM,GAlDC;AAsDbC,YAAU,EAAE;AACVjC,aAAS,EAAE;AACTkC,aAAO,EAAE,uBADA;AAETX,UAAI,EAAE,WAFG;AAGTY,cAAQ,EAAE,eAHD;AAITC,UAAI,EAAE,eAJG;AAKTC,iBAAW,EAAE;AALJ;AADD,GAtDC;AA+DbC,QAAM,EAAE;AACNtC,aAAS,EAAE;AACThC,UAAI,EAAE;AADG;AADL;AA/DK,CAAf,E;;ACAA;AACA;CAIA;;AAiCO,MAAMuE,0BAAuD,GAAG/P,MAAM,CAACC,GAAP,CAAW,wBAAX,CAAhE;AACA,MAAM+P,mBAAiD,GAAGhQ,MAAM,CAACC,GAAP,CAAW,gBAAX,CAA1D;AAEA,SAASgQ,aAAT,CAAwBnf,KAAxB,EAA6C;AAClD,QAAMof,OAAO,GAAG9M,gEAAM,CAAC2M,0BAAD,CAAtB;AAEA,MAAI,CAACG,OAAL,EAAc,MAAM,IAAIzO,KAAJ,CAAU,kDAAV,CAAN;AAEd,SAAOyO,OAAO,CAACC,WAAR,CAAoBrf,KAApB,CAAP;AACD;AAEM,SAASsf,SAAT,GAAsB;AAC3B,QAAMF,OAAO,GAAG9M,MAAM,CAAC2M,0BAAD,CAAtB;AAEA,MAAI,CAACG,OAAL,EAAc,MAAM,IAAIzO,KAAJ,CAAU,kDAAV,CAAN;AAEd,SAAOyO,OAAO,CAACG,QAAR,EAAP;AACD;;AAED,SAASC,eAAT,CAA0BtV,CAA1B,EAAsD;AACpD,SAAO,CAAC,CAACA,CAAF,IAAOA,CAAC,CAACuV,cAAF,CAAiB,UAAjB,CAAP,IAAuCvV,CAAC,CAACuV,cAAF,CAAiB,aAAjB,CAAvC,IAA0EvV,CAAC,CAACuV,cAAF,CAAiB,YAAjB,CAAjF;AACD;;AAEM,SAASC,mBAAT,CAA8BC,GAA9B,EAAwCxhB,OAAxC,EAAiF;AACtF,QAAMihB,OAAO,GAAGI,eAAe,CAACrhB,OAAD,CAAf,GAA2BA,OAA3B,GAAqCyhB,0BAA0B,CAACzhB,OAAD,CAA/E;AAEA,QAAM0hB,YAAY,GAAGT,OAAO,CAACU,UAAR,CAAmBH,GAAnB,CAArB;AAEA,SAAO;AAAEP,WAAF;AAAWS;AAAX,GAAP;AACD;AAED,MAAME,WAAW,GAAG,WAApB;;AAEA,MAAMliB,OAAO,GAAG,CAACD,GAAD,EAAcoiB,MAAd,KAAoC;AAClD,SAAOpiB,GAAG,CAACC,OAAJ,CAAY,YAAZ,EAA0B,CAACa,KAAD,EAAgB0C,KAAhB,KAAkC;AACjE;AACA,WAAOc,MAAM,CAAC8d,MAAM,CAAC,CAAC5e,KAAF,CAAP,CAAb;AACD,GAHM,CAAP;AAID,CALD;;AAOA,MAAM6e,uBAAuB,GAAG,CAC9B3b,OAD8B,EAE9B9E,QAF8B,EAG9B0gB,QAH8B,KAI3B;AACH,SAAO,CAACpe,GAAD,EAAc,GAAGke,MAAjB,KAAuC;AAC5C,QAAI,CAACle,GAAG,CAACmF,UAAJ,CAAe8Y,WAAf,CAAL,EAAkC;AAChC,aAAOliB,OAAO,CAACiE,GAAD,EAAMke,MAAN,CAAd;AACD;;AAED,UAAMG,QAAQ,GAAGre,GAAG,CAACjE,OAAJ,CAAYkiB,WAAZ,EAAyB,EAAzB,CAAjB;AACA,UAAMK,aAAa,GAAG9b,OAAO,CAAC7D,KAAR,IAAiByf,QAAQ,CAACzf,KAAT,CAAe6D,OAAO,CAAC7D,KAAvB,CAAvC;AACA,UAAM4f,cAAc,GAAG7gB,QAAQ,CAACiB,KAAT,IAAkByf,QAAQ,CAACzf,KAAT,CAAejB,QAAQ,CAACiB,KAAxB,CAAzC;AAEA,QAAI7C,GAAW,GAAGwC,oBAAoB,CAACggB,aAAD,EAAgBD,QAAhB,EAA0B,IAA1B,CAAtC;;AAEA,QAAI,CAACviB,GAAL,EAAU;AACRX,iBAAW,6BAAqB6E,GAArB,+BAA2CwC,OAAO,CAAC7D,KAAnD,gCAAX;AACA7C,SAAG,GAAGwC,oBAAoB,CAACigB,cAAD,EAAiBF,QAAjB,EAA2B,IAA3B,CAA1B;AACD;;AAED,QAAI,CAACviB,GAAL,EAAU;AACRT,kBAAY,6BAAqB2E,GAArB,8BAAZ;AACAlE,SAAG,GAAGkE,GAAN;AACD;;AAED,QAAI,OAAOlE,GAAP,KAAe,QAAnB,EAA6B;AAC3BT,kBAAY,6BAAqB2E,GAArB,+BAAZ;AACAlE,SAAG,GAAGkE,GAAN;AACD;;AAED,WAAOjE,OAAO,CAACD,GAAD,EAAMoiB,MAAN,CAAd;AACD,GA3BD;AA4BD,CAjCD;;AAmCO,SAASJ,0BAAT,CAAqCzhB,OAArC,EAA6E;AAClF,QAAMkhB,WAAW,GAAIlhB,OAAD,IAId;AACJ,UAAMmG,OAAO,GAAG2F,SAAS,CAAC9L,OAAO,CAACmG,OAAT,CAAzB;AACA,UAAM9E,QAAQ,GAAGyK,SAAS,CAAC9L,OAAO,CAACqB,QAAT,CAA1B;AACA,UAAM0gB,QAAQ,GAAGjW,SAAS,CAAC9L,OAAO,CAAC+hB,QAAT,CAA1B;AAEA,WAAO;AAAE5b,aAAF;AAAW9E,cAAX;AAAqB0gB,cAArB;AAA+B7U,OAAC,EAAE4U,uBAAuB,CAAC3b,OAAD,EAAU9E,QAAV,EAAoB0gB,QAApB;AAAzD,KAAP;AACD,GAVD;;AAYA,SAAO;AACLJ,cAAU,EAAEH,GAAG,IAAI;AAAA;;AACjB,YAAMW,SAAS,GAAGjB,WAAW,CAAC;AAC5B/a,eAAO,2BAAEnG,OAAF,oBAAEA,OAAO,CAAEoiB,aAAX,oCAA4B,IADP;AAE5B/gB,gBAAQ,2BAAErB,OAAF,oBAAEA,OAAO,CAAEkiB,cAAX,oCAA6B,IAFT;AAG5BH,gBAAQ,uBAAE/hB,OAAF,oBAAEA,OAAO,CAAE+hB,QAAX,gCAAuB;AAAEM,YAAEA;AAAJ;AAHH,OAAD,CAA7B;AAMAb,SAAG,CAAC9M,OAAJ,CAAYqM,mBAAZ,EAAiCoB,SAAjC;AAEA,aAAOA,SAAP;AACD,KAXI;AAYLf,YAAQ,EAAE,MAAM;AACd,YAAMkB,YAAY,GAAGnO,gEAAM,CAAC4M,mBAAD,CAA3B;AAEA,UAAI,CAACuB,YAAL,EAAmB,MAAM,IAAI9P,KAAJ,CAAU,mDAAV,CAAN;AAEnB,aAAO8P,YAAP;AACD,KAlBI;AAmBLpB,eAAW,EAAElhB,OAAO,IAAI;AACtB,YAAMsiB,YAAY,GAAGnO,gEAAM,CAAC4M,mBAAD,CAA3B;AAEA,UAAI,CAACuB,YAAL,EAAmB,MAAM,IAAI9P,KAAJ,CAAU,mDAAV,CAAN;AAEnB,YAAM+P,QAAQ,GAAGrB,WAAW,CAAC;AAC3B/a,eAAO,EAAE+L,kEAAQ,CAAC;AAAA;;AAAA,oCAAMlS,OAAN,oBAAMA,OAAO,CAAEyG,MAAf,8BAAyB6b,YAAY,CAACnc,OAAb,CAAqB7D,KAA9C;AAAA,SAAD,CADU;AAE3BjB,gBAAQ,EAAE6Q,kEAAQ,CAAC;AAAA;;AAAA,qCAAMlS,OAAN,oBAAMA,OAAO,CAAEyG,MAAf,+BAAyB6b,YAAY,CAACjhB,QAAb,CAAsBiB,KAA/C;AAAA,SAAD,CAFS;AAG3Byf,gBAAQ,EAAE7P,kEAAQ,CAAC;AAAA;;AAAA,uCAAMlS,OAAN,oBAAMA,OAAO,CAAE+hB,QAAf,iCAA2BO,YAAY,CAACP,QAAb,CAAsBzf,KAAjD;AAAA,SAAD;AAHS,OAAD,CAA5B;AAMAoS,uEAAO,CAACqM,mBAAD,EAAsBwB,QAAtB,CAAP;AAEA,aAAOA,QAAP;AACD;AAjCI,GAAP;AAmCD,C;;ACjKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAMC,GAAG,GAAG;AACjBC,IAAE,EAAE,KADa;AAEjBC,IAAE,EAAE,IAFa;AAGjBC,IAAE,EAAE,KAHa;AAIjBC,IAAE,EAAE,KAJa;AAKjBC,KAAG,EAAE,KALY;AAMjBC,IAAE,EAAE,KANa;AAOjBC,IAAE,EAAE,KAPa;AAQjBlgB,IAAE,EAAE,KARa;AASjBwf,IAAE,EAAE,KATa;AAUjBW,IAAE,EAAE,KAVa;AAWjBC,IAAE,EAAE,KAXa;AAYjBC,IAAE,EAAE,KAZa;AAajBC,IAAE,EAAE,KAba;AAcjBC,IAAE,EAAE,KAda;AAejBC,IAAE,EAAE,KAfa;AAgBjBC,IAAE,EAAE,KAhBa;AAiBjBC,IAAE,EAAE,IAjBa;AAkBjBzQ,IAAE,EAAE,KAlBa;AAmBjB0Q,IAAE,EAAE,KAnBa;AAoBjBC,IAAE,EAAE,KApBa;AAqBjBC,IAAE,EAAE,KArBa;AAsBjBC,IAAE,EAAE,KAtBa;AAuBjBC,IAAE,EAAE,KAvBa;AAwBjBC,IAAE,EAAE,KAxBa;AAyBjBC,IAAE,EAAE,KAzBa;AA0BjBC,IAAE,EAAE,KA1Ba;AA2BjBC,IAAE,EAAE,KA3Ba;AA4BjBC,IAAE,EAAE,KA5Ba;AA6BjBC,IAAE,EAAE,KA7Ba;AA8BjBC,IAAE,EAAE,KA9Ba;AA+BjBC,IAAE,EAAE,KA/Ba;AAgCjBC,QAAM,EAAE,KAhCS;AAiCjBC,QAAM,EAAE,KAjCS;AAkCjBC,IAAE,EAAE,KAlCa;AAmCjBC,IAAE,EAAE,KAnCa;AAoCjBC,IAAE,EAAE,KApCa;AAqCjBC,IAAE,EAAE,KArCa;AAsCjBC,IAAE,EAAE,KAtCa;AAuCjBC,IAAE,EAAE,KAvCa;AAwCjBC,QAAM,EAAE,KAxCS;AAyCjBC,QAAM,EAAE;AAzCS,CAAZ,C;;AC1CP;CAGA;;AAmBO,MAAMC,gBAA2C,GAAGhU,MAAM,CAACC,GAAP,CAAW,aAAX,CAApD;AAEA,SAASgU,SAAT,CAAoBC,WAApB,EAAiDjlB,OAAjD,EAAuE;AAAA;;AAC5E,SAAOklB,cAAc,CAAC;AACpB1C,OAAG,EAAE,EACH,GAAGA,GADA;AAEH,0BAAIxiB,OAAJ,oBAAIA,OAAO,CAAEwiB,GAAb,2BAAoB,EAApB;AAFG,KADe;AAKpB2C,SAAK,EAAElZ,6DAAG,wBAACjM,OAAD,oBAACA,OAAO,CAAEolB,UAAV,kCAAwB,KAAxB,CALU;AAMpBC,cAAU,EAAEpZ,6DAAG,CAAC,EAAD;AANK,GAAD,EAOlBgZ,WAPkB,CAArB;AAQD;AAEM,SAASC,cAAT,CAAyB5C,YAAzB,EAAoD2C,WAApD,EAAiFjlB,OAAjF,EAAkH;AACvH,QAAMmlB,KAAK,GAAGjT,kEAAQ,CAAC,MAAM;AAC3B,QAAI,QAAOlS,OAAP,oBAAOA,OAAO,CAAEwiB,GAAhB,MAAwB,SAA5B,EAAuC,OAAOxiB,OAAO,CAACwiB,GAAf;;AACvC,QAAIyC,WAAW,CAAC9e,OAAZ,CAAoB7D,KAApB,IAA6BggB,YAAY,CAACE,GAAb,CAAiBlB,cAAjB,CAAgC2D,WAAW,CAAC9e,OAAZ,CAAoB7D,KAApD,CAAjC,EAA6F;AAC3F,aAAOggB,YAAY,CAACE,GAAb,CAAiByC,WAAW,CAAC9e,OAAZ,CAAoB7D,KAArC,CAAP;AACD;;AAED,WAAOggB,YAAY,CAAC6C,KAAb,CAAmB7iB,KAA1B;AACD,GAPqB,CAAtB;AASA,SAAO;AACL6iB,SADK;AAEL3C,OAAG,EAAEF,YAAY,CAACE,GAFb;AAGL6C,cAAU,EAAEnT,kEAAQ,CAAC,6BAAsBiT,KAAK,CAAC7iB,KAAN,GAAc,KAAd,GAAsB,KAA5C,CAAD;AAHf,GAAP;AAKD;AAEM,SAASgjB,UAAT,CAAqBzjB,KAArB,EAAsCojB,WAAtC,EAAmE;AACxE,QAAM3C,YAAY,GAAGnO,gEAAM,CAAC4Q,gBAAD,CAA3B;AAEA,MAAI,CAACzC,YAAL,EAAmB,MAAM,IAAI9P,KAAJ,CAAU,gDAAV,CAAN;AAEnB,QAAM+P,QAAQ,GAAG2C,cAAc,CAAC5C,YAAD,EAAe2C,WAAf,EAA4BpjB,KAA5B,CAA/B;AAEA6S,mEAAO,CAACqQ,gBAAD,EAAmBxC,QAAnB,CAAP;AAEA,SAAOA,QAAP;AACD;AAEM,SAASgD,MAAT,GAAmB;AACxB,QAAMjD,YAAY,GAAGnO,gEAAM,CAAC4Q,gBAAD,CAA3B;AAEA,MAAI,CAACzC,YAAL,EAAmB,MAAM,IAAI9P,KAAJ,CAAU,gDAAV,CAAN;AAEnB,SAAO8P,YAAP;AACD,C;;ACtED;CAGA;;CAGA;;AAGA,MAAM5E,OAAoB,GAAG;AAC3B8H,UAAQ,EAAE,WADiB;AAE3BC,QAAM,EAAE,kBAFmB;AAG3BxH,OAAK,EAAE,WAHoB;AAI3B3Z,QAAM,EAAE,kBAJmB;AAIC;AAC5BohB,OAAK,EAAE,WALoB;AAM3BjU,SAAO,EAAE,kBANkB;AAO3B5S,MAAI,EAAE,iBAPqB;AAQ3B6S,SAAO,EAAE,iBARkB;AAS3BzS,OAAK,EAAE,WAToB;AAU3B4gB,MAAI,EAAE,kBAVqB;AAW3BC,MAAI,EAAE,mBAXqB;AAY3B6F,YAAU,EAAE,qBAZe;AAa3BC,aAAW,EAAE,4BAbc;AAc3BC,uBAAqB,EAAE,eAdI;AAe3B9F,WAAS,EAAE,YAfgB;AAeF;AACzB/Y,MAAI,EAAE,cAhBqB;AAiB3B8e,QAAM,EAAE,kBAjBmB;AAkB3BC,MAAI,EAAE,UAlBqB;AAmB3BC,UAAQ,EAAE,eAnBiB;AAoB3BC,UAAQ,EAAE,eApBiB;AAqB3BC,SAAO,EAAE,qBArBkB;AAsB3BC,UAAQ,EAAE,oBAtBiB;AAuB3BC,MAAI,EAAE,YAvBqB;AAwB3BC,aAAW,EAAE,kBAxBc;AAyB3BC,YAAU,EAAE,UAzBe;AA0B3BC,YAAU,EAAE,oBA1Be;AA2B3BC,SAAO,EAAE,YA3BkB;AA4B3BhW,OAAK,EAAE,gBA5BoB;AA6B3B7P,MAAI,EAAE,eA7BqB;AA8B3B8lB,QAAM,EAAE,4BA9BmB;AA+B3BpmB,MAAI,EAAE,eA/BqB;AAgC3BqmB,MAAI,EAAE,UAhCqB;AAiC3BC,OAAK,EAAE;AAjCoB,CAA7B;AAoCA,MAAMC,GAAY,GAAG;AACnB;AACAxJ,WAAS,EAAGvb,KAAD,IAAgByJ,2DAAC,CAAC2R,UAAD,EAAa,EAAE,GAAGpb,KAAL;AAAYwb,SAAK,EAAE;AAAnB,GAAb;AAFT,CAArB;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AA2BO,MAAMwJ,aAA4C,GAAG9V,MAAM,CAACC,GAAP,CAAW,SAAX,CAArD;AAEA,MAAM8V,UAAU,GAAG,MAAM;AAC9B,QAAMC,OAAO,GAAG5S,gEAAM,CAAC0S,aAAD,CAAtB;;AAEA,MAAI,CAACE,OAAL,EAAc;AACZ,UAAM,IAAIvU,KAAJ,CAAU,4CAAV,CAAN;AACD;;AAED,SAAOuU,OAAP;AACD,CARM;AAUA,MAAMC,aAAa,GAAG,CAAChnB,OAAuB,GAAG,EAA3B,KAAkC;AAC7D,QAAMinB,OAAO,GAAIzF,GAAD,IAAc;AAC5B,UAAM;AACJ0F,gBAAU,GAAG,EADT;AAEJC,gBAAU,GAAG,EAFT;AAGJtS,cAAQ,GAAG,EAHP;AAIJ0I,WAAK,GAAG;AAJJ,QAKFvd,OALJ;;AAOA,SAAK,MAAM2D,GAAX,IAAkBwjB,UAAlB,EAA8B;AAC5B,YAAMC,SAAS,GAAGD,UAAU,CAACxjB,GAAD,CAA5B;AAEA6d,SAAG,CAAC4F,SAAJ,CAAczjB,GAAd,EAAmByjB,SAAnB;AACD;;AAED,SAAK,MAAMzjB,GAAX,IAAkBujB,UAAlB,EAA8B;AAC5B,YAAM9J,SAAS,GAAG8J,UAAU,CAACvjB,GAAD,CAA5B;AAEA6d,SAAG,CAACpE,SAAJ,CAAczZ,GAAd,EAAmByZ,SAAnB;AACD;;AAED,UAAM2J,OAAwB,GAAG;AAC/BlS,cAAQ,EAAE;AACRwS,cAAM,EAAE,EADA;AAER,WAAGxS;AAFK;AADqB,KAAjC;AAOA2M,OAAG,CAAC9M,OAAJ,CAAYmS,aAAZ,EAA2BE,OAA3B;AACAvF,OAAG,CAAC9M,OAAJ,CAAYoE,oBAAZ,EAAkCkC,aAAa,CAAChb,OAAO,CAACoc,OAAT,CAA/C;AACAoF,OAAG,CAAC9M,OAAJ,CAAY5D,kBAAZ,EAAgCgB,WAAW,CAAC9R,OAAO,CAACmS,KAAT,CAA3C;AACAqP,OAAG,CAAC9M,OAAJ,CAAY2H,iBAAZ,EAA+BnS,SAAS,CAAC;AACvC2T,gBAAU,EAAE,KAD2B;AAEvCE,UAAI,EAAE,EACJ,GAAGb,WADC;AAEJ0J,WAAGA;AAFC,OAFiC;AAMvClJ,aAAOA;AANgC,KAAD,EAOrCH,KAPqC,CAAxC;AAQA,UAAM;AAAE0D,aAAF;AAAWS;AAAX,QAA4BH,mBAAmB,CAACC,GAAD,EAAMxhB,OAAN,oBAAMA,OAAO,CAAEyG,MAAf,CAArD;AACA+a,OAAG,CAAC9M,OAAJ,CAAYoM,0BAAZ,EAAwCG,OAAxC;AACAO,OAAG,CAAC9M,OAAJ,CAAYqQ,gBAAZ,EAA8BC,SAAS,CAACtD,YAAD,EAAe1hB,OAAf,oBAAeA,OAAO,CAAEyG,MAAxB,CAAvC;AACA+a,OAAG,CAAC8F,MAAJ,CAAWC,gBAAX,CAA4BC,QAA5B,GAAuCT,OAAvC;AACD,GA1CD;;AA4CA,SAAO;AAAEE;AAAF,GAAP;AACD,CA9CM,C;;AChDP;AACA;AACA;AACA;CAGA;;AAGO,SAAStK,SAAT,CAA+E9a,KAA/E,EAAyF;AAC9F,OAAK,MAAM8B,GAAX,IAAkB9B,KAAlB,EAAyB;AACvB,UAAM4lB,YAAY,GAAG5lB,KAAK,CAAC8B,GAAD,CAA1B;AACA,UAAM+jB,SAAS,GAAG,EAAED,YAAY,IAAI,IAAhB,IAAwB1mB,KAAK,CAACC,OAAN,CAAcymB,YAAd,CAAxB,IAAuD,OAAOA,YAAP,KAAwB,UAAjF,CAAlB;AAEA,UAAME,cAAc,GAAID,SAAS,GAAGD,YAAH,GAAkB;AAAE3c,UAAI,EAAE2c;AAAR,KAAnD;AACA,UAAMG,eAAe,GAAGD,cAAc,CAACrG,cAAf,CAA8B,SAA9B,IACpBqG,cAAc,CAAC1S,OADK,GAEpB0S,cAAc,CAAC7c,IAAf,KAAwBwK,OAAxB,IAAoCvU,KAAK,CAACC,OAAN,CAAc2mB,cAAc,CAAC7c,IAA7B,KAAsC6c,cAAc,CAAC7c,IAAf,CAAoBvM,QAApB,CAA6B+W,OAA7B,CAA1E,GACE,KADF,GAEEhU,SAJN;AAMA,UAAMumB,cAAc,GAAGC,eAAe,CAACnkB,GAAD,EAAMikB,eAAN,EAAuBD,cAAc,CAAC7c,IAAtC,CAAtC;AAEAjJ,SAAK,CAAC8B,GAAD,CAAL,GAAa,EACX,GAAGgkB,cADQ;AAEX1S,aAAO,EAAE4S;AAFE,KAAb;AAID;;AAED,SAAOhmB,KAAP;AACD;;AAED,SAASimB,eAAT,CAA0BC,QAA1B,EAA4CC,YAA5C,EAA+Dld,IAA/D,EAA0E;AACxE,SAAQjJ,KAAD,IAAoC;AAAA;;AACzC,UAAM5D,EAAE,GAAGgqB,4EAAkB,EAA7B;;AAEA,QAAI,CAAChqB,EAAL,EAAS;AACPa,iBAAW,CAAC,6EAAD,CAAX;AAEA,aAAOkpB,YAAP;AACD;;AAED,QAAI,CAAC/pB,EAAE,CAAC6M,IAAH,CAAQ3K,IAAb,EAAmB;AACjBrB,iBAAW,CAAC,kFAAD,CAAX;AAEA,aAAOkpB,YAAP;AACD;;AAED,UAAMjB,OAAO,GAAGD,UAAU,EAA1B;AACA,UAAMoB,aAAa,GAAGnB,OAAO,CAAClS,QAAR,CAAiBwS,MAAjB,CAAwBU,QAAxB,CAAtB;AACA,UAAMI,gBAAgB,4BAAGpB,OAAO,CAAClS,QAAR,CAAiB5W,EAAE,CAAC6M,IAAH,CAAQ3K,IAAzB,CAAH,qBAAG,sBAAiC4nB,QAAjC,CAAzB;AACA,UAAMK,aAAa,GAAG,OAAOD,gBAAP,KAA4B,WAA5B,GAClBA,gBADkB,GAElB,OAAOD,aAAP,KAAyB,WAAzB,GACEA,aADF,GAEEF,YAJN;AAMA,WAAOK,SAAS,CAACD,aAAD,EAAgBtd,IAAhB,CAAT,GAAiCsd,aAAa,CAACvmB,KAAD,CAA9C,GAAwDumB,aAA/D;AACD,GAzBD;AA0BD,C,CAED;;;AACA,SAASC,SAAT,CAAoBjiB,GAApB,EAA8B0E,IAA9B,EAAyC;AACvC,SAAO,OAAO1E,GAAP,KAAe,UAAf,IAA6B,CAACC,WAAW,CAACyE,IAAD,CAAX,CAAkBvM,QAAlB,CAA2B+pB,QAA3B,CAArC;AACD,C;;;AChED;CAGA;;AACA;CAGA;;AACA;AACA;AACA;AAEA,yCAAe5L,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,MADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfxK,SAAK,EAAEpO,MADQ;AAEf,OAAGoR,eAAe;AAFH,GAAD,CAHa;;AAQ7ByH,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEuD;AAAF,QAAoBvB,YAAY,CAAC9U,KAAD,CAAtC;AACA,UAAM;AAAEwjB;AAAF,QAAiBE,MAAM,EAA7B;AAEA,WAAO,MAAM;AAAN,eAEI,CACL,eADK,EAELxR,YAAY,CAACzR,KAFR,EAGL4V,aAAa,CAAC5V,KAHT,EAIL+iB,UAAU,CAAC/iB,KAJN,CAFJ;AAAA,kBAQM;AARN;AAAA,eAUQ;AAVR,QAWCuG,KAAK,CAACoM,OAXP,oBAWCpM,KAAK,CAACoM,OAAN,EAXD,OAAP;AAeD;;AA5B4B,CAAD,CAA9B,E;;;;ACZA;;;ACAA;AACA;CAGA;;AAKA;AACO,MAAMsT,gBAAgB,GAAG3T,YAAY,CAAC;AAC3C4T,SAAO,EAAE;AACP1d,QAAI,EAAE,CAACwK,OAAD,EAAUtR,MAAV,EAAkBD,MAAlB,CADC;AAEPkR,WAAO,EAAE3T;AAFF;AADkC,CAAD,EAKzC,SALyC,CAArC;AAOA,SAASmnB,UAAT,CAAqB5mB,KAArB,EAA0C1B,IAA1C,EAAwD;AAC7D,QAAMuoB,cAAc,GAAGxW,kEAAQ,CAAC,MAAM;AACpC,UAAMyW,OAAiB,GAAG,EAA1B;;AAEA,QAAI9mB,KAAK,CAAC2mB,OAAN,KAAkB,IAAlB,IAA0B3mB,KAAK,CAAC2mB,OAAN,KAAkB,EAAhD,EAAoD;AAClDG,aAAO,CAACnqB,IAAR,WAAgB2B,IAAhB;AACD,KAFD,MAEO,IACL,OAAO0B,KAAK,CAAC2mB,OAAb,KAAyB,QAAzB,IACA3mB,KAAK,CAAC2mB,OAAN,KAAkB,CAFb,EAGL;AACA,WAAK,MAAMlmB,KAAX,IAAoByB,MAAM,CAAClC,KAAK,CAAC2mB,OAAP,CAAN,CAAsBtmB,KAAtB,CAA4B,GAA5B,CAApB,EAAsD;AACpDymB,eAAO,CAACnqB,IAAR,mBAAwB8D,KAAxB;AACD;AACF;;AAED,WAAOqmB,OAAP;AACD,GAf8B,CAA/B;AAiBA,SAAO;AAAED;AAAF,GAAP;AACD,C;;ACpCD;AACA;CAGA;;AACA,MAAME,eAAe,GAAG,CAAC,SAAD,EAAY,OAAZ,EAAqB,SAArB,EAAgC,OAAhC,EAAyC,SAAzC,CAAxB;AAMA;AACO,MAAMC,aAAa,GAAGjU,YAAY,CAAC;AACxCrL,MAAI,EAAE;AACJuB,QAAI,EAAE,CAAC/G,MAAD,EAASC,MAAT,CADF;AAEJiR,WAAO,EAAE;AAFL;AADkC,CAAD,EAKtC,MALsC,CAAlC;AAOA,SAAS6T,OAAT,CAAkBjnB,KAAlB,EAAoC1B,IAApC,EAAkD;AACvD,QAAM4oB,WAAW,GAAG7W,kEAAQ,CAAC,MAAM;AACjC,WAAO0W,eAAe,CAACrqB,QAAhB,CAAyBsD,KAAK,CAAC0H,IAA/B,cACApJ,IADA,oBACc0B,KAAK,CAAC0H,IADpB,IAEH,IAFJ;AAGD,GAJ2B,CAA5B;AAMA,QAAMyf,UAAU,GAAG9W,kEAAQ,CAAC,MAAM;AAChC,WAAO,CAAC0W,eAAe,CAACrqB,QAAhB,CAAyBsD,KAAK,CAAC0H,IAA/B,CAAD,IAAmD1H,KAAK,CAAC0H,IAAzD,GACF;AACDyO,WAAK,EAAEpU,aAAa,CAAC/B,KAAK,CAAC0H,IAAP,CADnB;AAEDoO,YAAM,EAAE/T,aAAa,CAAC/B,KAAK,CAAC0H,IAAP;AAFpB,KADE,GAIA,IAJP;AAKD,GAN0B,CAA3B;AAQA,SAAO;AAAEwf,eAAF;AAAeC;AAAf,GAAP;AACD,C;;ACnCD;CAGA;;AAKA;AACO,MAAMC,YAAY,GAAGrU,YAAY,CAAC;AACvCpR,KAAG,EAAE;AACHsH,QAAI,EAAE/G,MADH;AAEHkR,WAAO,EAAE;AAFN;AADkC,CAAD,EAKrC,KALqC,CAAjC,C;;ACTP;AACA;CAGA;;AAeA;AACO,SAASiU,QAAT,CAAmBlb,MAAnB,EAAgF;AACrF,QAAMmb,oBAAoB,GAAGjX,kEAAQ,CAAC,MAAM1E,UAAU,CAACQ,MAAM,CAAC1L,KAAP,CAAa+O,UAAd,CAAjB,CAArC;AACA,QAAM+X,cAAc,GAAGlX,kEAAQ,CAAC,MAAM1E,UAAU,CAACQ,MAAM,CAAC1L,KAAP,CAAa+mB,IAAd,CAAjB,CAA/B;AAEA,QAAMC,YAAY,GAAGpX,kEAAQ,CAAC,MAAM;AAClC,UAAMyW,OAAiB,GAAG,EAA1B;;AAEA,QAAI3a,MAAM,CAAC1L,KAAP,CAAa+O,UAAb,IAA2B,CAAC8X,oBAAoB,CAAC7mB,KAArD,EAA4D;AAC1DqmB,aAAO,CAACnqB,IAAR,cAAmBwP,MAAM,CAAC1L,KAAP,CAAa+O,UAAhC;AACD;;AAED,QAAIrD,MAAM,CAAC1L,KAAP,CAAa+mB,IAAb,IAAqB,CAACD,cAAc,CAAC9mB,KAAzC,EAAgD;AAC9CqmB,aAAO,CAACnqB,IAAR,gBAAqBwP,MAAM,CAAC1L,KAAP,CAAa+mB,IAAlC;AACD;;AAED,WAAOV,OAAP;AACD,GAZ4B,CAA7B;AAcA,QAAMY,WAAW,GAAGrX,kEAAQ,CAAC,MAAM;AACjC,UAAM2D,MAAqB,GAAG,EAA9B;;AAEA,QAAI7H,MAAM,CAAC1L,KAAP,CAAa+O,UAAb,IAA2B8X,oBAAoB,CAAC7mB,KAApD,EAA2D;AACzDuT,YAAM,CAAC2T,eAAP,GAAyBxb,MAAM,CAAC1L,KAAP,CAAa+O,UAAtC;AACD;;AAED,QAAIrD,MAAM,CAAC1L,KAAP,CAAa+mB,IAAb,IAAqBD,cAAc,CAAC9mB,KAAxC,EAA+C;AAC7CuT,YAAM,CAACpI,KAAP,GAAeO,MAAM,CAAC1L,KAAP,CAAa+mB,IAA5B;AACAxT,YAAM,CAAC4T,UAAP,GAAoBzb,MAAM,CAAC1L,KAAP,CAAa+mB,IAAjC;AACD;;AAED,WAAOxT,MAAP;AACD,GAb2B,CAA5B;AAeA,SAAO;AAAEyT,gBAAF;AAAgBC;AAAhB,GAAP;AACD;AAIM,SAASG,YAAT,CACL7nB,KADK,EAEL1B,IAFK,EAGU;AACf,QAAM6N,MAAM,GAAGkE,kEAAQ,CAAC,OAAO;AAC7BmX,QAAI,EAAErd,+DAAK,CAACnK,KAAD,CAAL,GAAeA,KAAK,CAACS,KAArB,GAA8BnC,IAAI,GAAG0B,KAAK,CAAC1B,IAAD,CAAR,GAAiB;AAD5B,GAAP,CAAD,CAAvB;AAIA,QAAM;AACJmpB,gBAAY,EAAEK,gBADV;AAEJJ,eAAW,EAAEK;AAFT,MAGFV,QAAQ,CAAClb,MAAD,CAHZ;AAKA,SAAO;AAAE2b,oBAAF;AAAoBC;AAApB,GAAP;AACD;AAIM,SAASC,kBAAT,CACLhoB,KADK,EAEL1B,IAFK,EAGgB;AACrB,QAAM6N,MAAM,GAAGkE,kEAAQ,CAAC,OAAO;AAC7Bb,cAAU,EAAErF,+DAAK,CAACnK,KAAD,CAAL,GAAeA,KAAK,CAACS,KAArB,GAA8BnC,IAAI,GAAG0B,KAAK,CAAC1B,IAAD,CAAR,GAAiB;AADlC,GAAP,CAAD,CAAvB;AAIA,QAAM;AACJmpB,gBAAY,EAAEQ,sBADV;AAEJP,eAAW,EAAEQ;AAFT,MAGFb,QAAQ,CAAClb,MAAD,CAHZ;AAKA,SAAO;AAAE8b,0BAAF;AAA0BC;AAA1B,GAAP;AACD,C;;;AC1FD;CAGA;;AACA;AACA;AACA;CAGA;;AACA;AACA;AAEA,4CAAerN,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,SADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACflP,SAAK,EAAE1J,MADQ;AAEfY,QAAI,EAAE2Q,OAFS;AAGf1Q,SAAK,EAAE0Q,OAHQ;AAIf,OAAGiT,gBAAgB,EAJJ;AAKf,OAAGM,aAAa,EALD;AAMf,OAAGI,YAAY;AANA,GAAD,CAHa;;AAY7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEihB,4BAAF;AAA0BC;AAA1B,QAAoDF,kBAAkB,CAACG,+DAAK,CAACnoB,KAAD,EAAQ,OAAR,CAAN,CAA5E;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,UAAR,CAArC;AACA,UAAM;AAAEknB,iBAAF;AAAeC;AAAf,QAA8BF,OAAO,CAACjnB,KAAD,EAAQ,UAAR,CAA3C;AAEA,WAAO,MAAM;AAAN,eAEI,CACL,UADK,EAEL;AACE,0BAAkBA,KAAK,CAAC8C,IAD1B;AAEE,2BAAmB9C,KAAK,CAAC+C;AAF3B,OAFK,EAMLklB,sBAAsB,CAACxnB,KANlB,EAOLomB,cAAc,CAACpmB,KAPV,EAQLymB,WAAW,CAACzmB,KARP,CAFJ;AAAA,eAYI,CACLynB,qBAAqB,CAACznB,KADjB,EAEL0mB,UAAU,CAAC1mB,KAFN;AAZJ,YAgBOuG,KAhBP;AAAA;AAAA,6BAAP;AAmBD;;AApC4B,CAAD,CAA9B,E;;;;ACbA;;;ACAA;;;;ACAA;CAGA;;AACA;AACA;AACA;CAGA;;AACA;CAGA;;AAIA,0CAAe6T,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,OADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACflP,SAAK,EAAE1J,MADQ;AAEfkmB,YAAQ,EAAE3U,OAFK;AAGf3Q,QAAI,EAAE2Q,OAHS;AAIf1Q,SAAK,EAAE0Q,OAJQ;AAKfiH,QAAI,EAAE;AACJzR,UAAI,EAAE,CAAC/G,MAAD,EAASnC,MAAT;AADF,KALS;AAQf,OAAGinB,aAAa,EARD;AASf,OAAGI,YAAY,CAAC;AAAEzlB,SAAG,EAAE;AAAP,KAAD;AATA,GAAD,CAHa;;AAe7BoZ,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,QAAIqhB,QAAJ;;AACA,QAAIrhB,KAAK,CAACoM,OAAV,EAAmB;AACjBiV,cAAQ,GAAGhY,kEAAQ,CAAC,MAAM;AAAA;;AACxB,cAAMiY,IAAI,GAAGthB,KAAK,CAACoM,OAAT,oBAAGpM,KAAK,CAACoM,OAAN,EAAb;AACA,YAAI,CAACkV,IAAL,EAAW;AAEX,wCAAOxf,gBAAgB,CAACwf,IAAD,CAAhB,CAAuBpiB,MAAvB,CAA8B8C,IAAI,IACvCA,IAAI,CAACG,QAAL,IAAiB,OAAOH,IAAI,CAACG,QAAZ,KAAyB,QADrC,EAEL,CAFK,CAAP,qBAAO,sBAEDA,QAFN;AAGD,OAPkB,CAAnB;AAQD;;AAED,UAAM;AAAEwS;AAAF,QAAeF,OAAO,CAAC4M,QAAQ,IAAIroB,KAAb,CAA5B;AACA,UAAM;AAAEknB;AAAF,QAAkBD,OAAO,CAACjnB,KAAD,EAAQ,QAAR,CAA/B;AACA,UAAM;AAAE8nB,sBAAF;AAAoBC;AAApB,QAAwCF,YAAY,CAACM,+DAAK,CAACnoB,KAAD,EAAQ,OAAR,CAAN,CAA1D;AAEA,WAAO,MAAM;AACX;AAAA,eAEUA,KAAK,CAAC2B,GAFhB;AAAA,gBAGWga,QAAQ,CAAClb,KAAT,CAAeia,IAH1B;AAAA,iBAIW,CACL,QADK,EAEL,aAFK,EAGLwM,WAAW,CAACzmB,KAHP,EAILqnB,gBAAgB,CAACrnB,KAJZ,EAKL;AACE,8BAAoBT,KAAK,CAACooB,QAD5B;AAEE,0BAAgBpoB,KAAK,CAAC8C,IAFxB;AAGE,2BAAiB9C,KAAK,CAAC+C;AAHzB,SALK,CAJX;AAAA,iBAeW,CACL,CAACmkB,WAAW,CAACzmB,KAAb,GAAsB;AACpB8nB,kBAAQ,EAAExmB,aAAa,CAAC/B,KAAK,CAAC0H,IAAP,CADH;AAEpByO,eAAK,EAAEpU,aAAa,CAAC/B,KAAK,CAAC0H,IAAP,CAFA;AAGpBoO,gBAAM,EAAE/T,aAAa,CAAC/B,KAAK,CAAC0H,IAAP;AAHD,SAAtB,GAIKjI,SALA,EAMLsoB,eAAe,CAACtnB,KANX,CAfX;AAAA,uBAuBgB;AAvBhB;AA0BD,KA3BD;AA4BD;;AA5D4B,CAAD,CAA9B,E;;ACjBA;CAGA;;AAGO,MAAM+nB,mBAAmB,GAAGzV,YAAY,CAAC;AAC9CvJ,YAAU,EAAE;AACVP,QAAI,EAAE,CAACwK,OAAD,EAAUvR,MAAV,EAAkBnC,MAAlB,CADI;AAEVqT,WAAO,EAAE,iBAFC;AAGVqV,aAAS,EAAElkB,GAAG,IAAIA,GAAG,KAAK;AAHhB;AADkC,CAAD,EAM5C,YAN4C,CAAxC,C;;;ACNP;CAGA;;CAGA;;AACA;AACA;AACA;CAGA;;AACA;AACA;AAEA,2CAAesW,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,QADuB;AAG7B2c,cAAY,EAAE,KAHe;AAK7Bjb,OAAK,EAAE8a,SAAS,CAAC;AACf4N,YAAQ,EAAEjV,OADK;AAEf7H,SAAK,EAAE;AACL3C,UAAI,EAAE/G,MADD;AAELkR,aAAO,EAAE;AAFJ,KAFQ;AAMf9B,WAAO,EAAEpP,MANM;AAOfymB,OAAG,EAAElV,OAPU;AAQfmV,YAAQ,EAAEnV,OARK;AASfiH,QAAI,EAAExY,MATS;AAUf2mB,UAAM,EAAEpV,OAVO;AAWfqV,SAAK,EAAE;AACL7f,UAAI,EAAE/G,MADD;AAELkR,aAAO,EAAE;AAFJ,KAXQ;AAef2V,YAAQ,EAAE;AACR9f,UAAI,EAAE/G,MADE;AAERkR,aAAO,EAAE,WAFD;AAGRqV,eAAS,EAAGhoB,KAAD,IAAmB;AAC5B,cAAM,CAACuoB,QAAD,EAAWC,UAAX,IAAyB,CAACxoB,KAAD,WAACA,KAAD,GAAU,EAAV,EAAcJ,KAAd,CAAoB,GAApB,CAA/B;AAEA,eACE,CAAC,KAAD,EAAQ,QAAR,EAAkB3D,QAAlB,CAA2BssB,QAA3B,KACA,CAAC,MAAD,EAAS,OAAT,EAAkBtsB,QAAlB,CAA2BusB,UAA3B,CAFF;AAID;AAVO,KAfK;AA2Bf5hB,OAAG,EAAE,CAAClF,MAAD,EAASD,MAAT,CA3BU;AA4BfgnB,cAAU,EAAE;AACVjgB,UAAI,EAAEwK,OADI;AAEVL,aAAO,EAAE;AAFC,KA5BG;AAgCf+V,WAAO,EAAE,CAAChnB,MAAD,EAASD,MAAT,CAhCM;AAiCfknB,WAAO,EAAE,CAACjnB,MAAD,EAASD,MAAT,CAjCM;AAkCfmnB,aAAS,EAAEnnB,MAlCI;AAmCf,OAAGwkB,gBAAgB,EAnCJ;AAoCf,OAAGU,YAAY,EApCA;AAqCf,OAAGoB,mBAAmB,CAAC;AAAEhf,gBAAU,EAAE;AAAd,KAAD;AArCP,GAAD,CALa;;AA6C7BuR,OAAK,CAAE/a,KAAF,EAASspB,GAAT,EAAc;AACjB,UAAM;AAAErB,4BAAF;AAA0BC;AAA1B,QAAoDF,kBAAkB,CAACG,+DAAK,CAACnoB,KAAD,EAAQ,OAAR,CAAN,CAA5E;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,SAAR,CAArC;AACA,UAAM;AAAE8nB,sBAAF;AAAoBC;AAApB,QAAwCF,YAAY,CAACM,+DAAK,CAACnoB,KAAD,EAAQ,WAAR,CAAN,CAA1D;AAEA,UAAM+T,QAAQ,GAAG1D,kEAAQ,CAAC,MAAM;AAC9B,aAAOrQ,KAAK,CAAC4oB,QAAN,GACF5oB,KAAK,CAAC2oB,GAAN,GAAY,CAAZ,GAAgB,CADd,GAEF3oB,KAAK,CAAC2oB,GAAN,GAAY,CAAZ,GAAgB,EAFrB;AAGD,KAJwB,CAAzB;;AAMA,aAASY,iBAAT,CAA4BC,MAA5B,EAAsD;AACpD,mCAAsBznB,aAAa,CAACgS,QAAQ,CAACtT,KAAT,GAAiBuL,QAAQ,CAACwd,MAAD,WAACA,MAAD,GAAW,CAAX,EAAc,EAAd,CAA1B,CAAnC;AACD;;AAED,UAAMC,cAAc,GAAGpZ,kEAAQ,CAAC,MAAM;AAAA;;AACpC,YAAM,CAAC2Y,QAAD,EAAWC,UAAX,IAAyB,oBAACjpB,KAAK,CAAC+oB,QAAP,8BAAmB,EAAnB,EAAuB1oB,KAAvB,CAA6B,GAA7B,CAA/B,CADoC,CAGpC;;AAEA,YAAM2T,MAAM,GAAG;AACbU,cAAM,EAAE,MADK;AAEb5R,YAAI,EAAE,MAFO;AAGbC,aAAK,EAAE,MAHM;AAIb0R,WAAG,EAAE;AAJQ,OAAf;;AAOA,UAAI,CAACzU,KAAK,CAAC6oB,MAAX,EAAmB;AACjB7U,cAAM,CAACiV,UAAU,KAAK,MAAf,GAAwB,OAAxB,GAAkC,MAAnC,CAAN,GAAmDM,iBAAiB,CAACvpB,KAAK,CAACmpB,OAAP,CAApE;AACAnV,cAAM,CAACgV,QAAQ,KAAK,KAAb,GAAqB,QAArB,GAAgC,KAAjC,CAAN,GAAgDO,iBAAiB,CAACvpB,KAAK,CAACopB,OAAP,CAAjE;AACD;;AAED,aAAOpV,MAAP;AACD,KAlB8B,CAA/B;AAoBA,WAAO,MAAM;AACX,YAAMvT,KAAK,GAAG0B,MAAM,CAACnC,KAAK,CAACsR,OAAP,CAApB;AACA,YAAMA,OAAO,GAAI,CAACtR,KAAK,CAACqH,GAAP,IAAcpF,KAAK,CAACxB,KAAD,CAApB,GAA+BT,KAAK,CAACsR,OAArC,GACZ7Q,KAAK,IAAIT,KAAK,CAACqH,GAAf,GAAqB5G,KAArB,aACGT,KAAK,CAACqH,GADT,MADJ;AAIA,YAAM,CAACqiB,UAAD,EAAaxO,KAAb,IAAsBzX,OAAO,CAAC6lB,GAAG,CAACpO,KAAL,EAAY,CAC7C,aAD6C,EAE7C,YAF6C,EAG7C,WAH6C,EAI7C,MAJ6C,EAK7C,OAL6C,CAAZ,CAAnC;AAQA;AAAA,iBAEW,CACL,SADK,EAEL;AACE,+BAAqBlb,KAAK,CAAC0oB,QAD7B;AAEE,0BAAgB1oB,KAAK,CAAC2oB,GAFxB;AAGE,+BAAqB3oB,KAAK,CAAC4oB,QAH7B;AAIE,6BAAmB5oB,KAAK,CAAC6oB;AAJ3B,SAFK;AAFX,SAWS3N,KAXT;AAAA;AAAA,mBAae;AAbf,YAcQoO,GAAG,CAACtiB,KAAJ,CAAUoM,OAdlB,oBAcQkW,GAAG,CAACtiB,KAAJ,CAAUoM,OAAV,EAdR,EAiBQ/J,eAAe,CACbrJ,KADa,EAEb,EAFa,2EAAC;AAAD,mBAKJ,CACL,gBADK,EAELioB,sBAAsB,CAACxnB,KAFlB,EAGLomB,cAAc,CAACpmB,KAHV,EAILqnB,gBAAgB,CAACrnB,KAJZ,CALI;AAAA,mBAWJ,CACLynB,qBAAqB,CAACznB,KADjB,EAELgpB,cAAc,CAAChpB,KAFV,EAGLsnB,eAAe,CAACtnB,KAHX,CAXI;AAAA,yBAgBC,MAhBD;AAAA,wBAiBA,oBAjBA;AAAA,uBAkBD,QAlBC;AAAA,kBAmBN;AAnBM,WAoBNipB,UApBM,IAuBT1pB,KAAK,CAAC2oB,GAAN,GAAYlpB,SAAZ,GACE6pB,GAAG,CAACtiB,KAAJ,CAAUmV,KAAV,GAAkBmN,GAAG,CAACtiB,KAAJ,CAAUmV,KAA5B,oBAAkBmN,GAAG,CAACtiB,KAAJ,CAAUmV,KAAV,EAAlB,GACAnc,KAAK,CAAC0a,IAAN;AAAA,kBAA0B1a,KAAK,CAAC0a;AAAhC;AAAA,mBACY;AADZ,YACgCpJ,OADhC,EAzBO,uEAIFtR,KAAK,CAACkpB,UAJJ,IAjBvB;AAAA;AAmDD,KAjED;AAkED;;AAlJ4B,CAAD,CAA9B,E;;;;AChBA;;;ACAA;AACA;CAGA;;AAMA;AACO,MAAMS,eAAe,GAAG5W,YAAY,CAAC;AAC1C6W,UAAQ,EAAEnW,OADgC;AAE1CoW,QAAM,EAAE,CAACpW,OAAD,EAAUtR,MAAV,EAAkBD,MAAlB;AAFkC,CAAD,EAGxC,QAHwC,CAApC;AAKA,SAAS4nB,SAAT,CAAoB9pB,KAApB,EAAwC1B,IAAxC,EAAsD;AAC3D,QAAMyrB,aAAa,GAAG1Z,kEAAQ,CAAC,MAAM;AACnC,UAAMyW,OAAiB,GAAG,EAA1B;;AAEA,QAAI9mB,KAAK,CAAC4pB,QAAN,IAAkB5pB,KAAK,CAAC6pB,MAAN,KAAiB,IAAnC,IAA2C7pB,KAAK,CAAC6pB,MAAN,KAAiB,EAAhE,EAAoE;AAClE/C,aAAO,CAACnqB,IAAR,WAAgB2B,IAAhB;AACD,KAFD,MAEO,IACL,OAAO0B,KAAK,CAAC6pB,MAAb,KAAwB,QAAxB,IACA7pB,KAAK,CAAC6pB,MAAN,KAAiB,CAFZ,EAGL;AACA,WAAK,MAAMppB,KAAX,IAAoByB,MAAM,CAAClC,KAAK,CAAC6pB,MAAP,CAAN,CAAqBxpB,KAArB,CAA2B,GAA3B,CAApB,EAAqD;AACnDymB,eAAO,CAACnqB,IAAR,kBAAuB8D,KAAvB;AACD;AACF;;AAED,WAAOqmB,OAAP;AACD,GAf6B,CAA9B;AAiBA,SAAO;AAAEiD;AAAF,GAAP;AACD,C;;ACnCD;AACA;CAGA;;AAUA;AACO,MAAMC,kBAAkB,GAAGjX,YAAY,CAAC;AAC7C+C,QAAM,EAAE,CAAC3T,MAAD,EAASD,MAAT,CADqC;AAE7C+nB,WAAS,EAAE,CAAC9nB,MAAD,EAASD,MAAT,CAFkC;AAG7CgoB,UAAQ,EAAE,CAAC/nB,MAAD,EAASD,MAAT,CAHmC;AAI7CioB,WAAS,EAAE,CAAChoB,MAAD,EAASD,MAAT,CAJkC;AAK7CkoB,UAAQ,EAAE,CAACjoB,MAAD,EAASD,MAAT,CALmC;AAM7CiU,OAAK,EAAE,CAAChU,MAAD,EAASD,MAAT;AANsC,CAAD,EAO3C,WAP2C,CAAvC;AASA,SAASmoB,YAAT,CAAuBrqB,KAAvB,EAA8C;AACnD,QAAMsqB,eAAe,GAAGja,kEAAQ,CAAC,OAAO;AACtCyF,UAAM,EAAE/T,aAAa,CAAC/B,KAAK,CAAC8V,MAAP,CADiB;AAEtCmU,aAAS,EAAEloB,aAAa,CAAC/B,KAAK,CAACiqB,SAAP,CAFc;AAGtCC,YAAQ,EAAEnoB,aAAa,CAAC/B,KAAK,CAACkqB,QAAP,CAHe;AAItCC,aAAS,EAAEpoB,aAAa,CAAC/B,KAAK,CAACmqB,SAAP,CAJc;AAKtCC,YAAQ,EAAEroB,aAAa,CAAC/B,KAAK,CAACoqB,QAAP,CALe;AAMtCjU,SAAK,EAAEpU,aAAa,CAAC/B,KAAK,CAACmW,KAAP;AANkB,GAAP,CAAD,CAAhC;AASA,SAAO;AAAEmU;AAAF,GAAP;AACD,C;;ACnCD;AACA;CAGA;;AAKA;AACO,MAAMC,kBAAkB,GAAGxX,YAAY,CAAC;AAC7CyX,WAAS,EAAE;AACTvhB,QAAI,EAAE,CAAC9G,MAAD,EAASD,MAAT,CADG;;AAETumB,aAAS,CAAE5nB,CAAF,EAAU;AACjB,YAAMJ,KAAK,GAAGuL,QAAQ,CAACnL,CAAD,CAAtB;AAEA,aACE,CAACoB,KAAK,CAACxB,KAAD,CAAN,IACAA,KAAK,IAAI,CADT,IAEA;AACA;AACAA,WAAK,IAAI,EALX;AAOD;;AAZQ;AADkC,CAAD,EAe3C,WAf2C,CAAvC;AAiBA,SAASgqB,YAAT,CAAuBzqB,KAAvB,EAA8C;AACnD,QAAM0qB,gBAAgB,GAAGra,kEAAQ,CAAC,MAAM;AACtC,UAAMyW,OAAiB,GAAG,EAA1B;AAEA,QAAI9mB,KAAK,CAACwqB,SAAN,IAAmB,IAAvB,EAA6B,OAAO1D,OAAP;AAE7BA,WAAO,CAACnqB,IAAR,qBAA0BqD,KAAK,CAACwqB,SAAhC;AAEA,WAAO1D,OAAP;AACD,GARgC,CAAjC;AAUA,SAAO;AAAE4D;AAAF,GAAP;AACD,C;;ACvCD;AACA;CAGA;;AAGA,MAAMC,cAAc,GAAG,CAAC,QAAD,EAAW,UAAX,EAAuB,OAAvB,EAAgC,UAAhC,EAA4C,QAA5C,CAAvB;AAcA;AACO,MAAMC,iBAAiB,GAAG7X,YAAY,CAAC;AAC5C8X,UAAQ,EAAEpX,OADkC;AAE5CiB,QAAM,EAAE,CAACjB,OAAD,EAAUtR,MAAV,EAAkBD,MAAlB,CAFoC;AAG5C4oB,OAAK,EAAErX,OAHqC;AAI5C3Q,MAAI,EAAE,CAAC2Q,OAAD,EAAUtR,MAAV,EAAkBD,MAAlB,CAJsC;AAK5C6R,UAAQ,EAAE;AACR9K,QAAI,EAAE/G,MADE;AAERumB,aAAS;AAAE;AAA4B5nB,KAAD,IAAY8pB,cAAc,CAACjuB,QAAf,CAAwBmE,CAAxB;AAF1C,GALkC;AAS5CkC,OAAK,EAAE,CAAC0Q,OAAD,EAAUtR,MAAV,EAAkBD,MAAlB,CATqC;AAU5CuS,KAAG,EAAE,CAAChB,OAAD,EAAUtR,MAAV,EAAkBD,MAAlB;AAVuC,CAAD,EAW1C,UAX0C,CAAtC;AAaA,SAAS6oB,WAAT,CAAsB/qB,KAAtB,EAA4C1B,IAA5C,EAA0D;AAC/D,QAAM0sB,OAAO,GAAG,CAAC,KAAD,EAAQ,OAAR,EAAiB,QAAjB,EAA2B,MAA3B,CAAhB;AAEA,QAAMC,eAAe,GAAG5a,kEAAQ,CAAC,MAAM;AACrC,QAAIrQ,KAAK,CAAC8qB,KAAV,EAAiB,iBAAUxsB,IAAV;AACjB,QAAI0B,KAAK,CAAC6qB,QAAV,EAAoB,iBAAUvsB,IAAV;AAEpB,WAAO0B,KAAK,CAAC+T,QAAN,sBAA6B/T,KAAK,CAAC+T,QAAnC,IAAgDtU,SAAvD;AACD,GAL+B,CAAhC;AAOA,QAAMyrB,cAAc,GAAG7a,kEAAQ,CAAC,MAAM;AACpC,UAAM2D,MAAuD,GAAG,EAAhE;;AAEA,SAAK,MAAMzL,MAAX,IAAqByiB,OAArB,EAA8B;AAC5B,YAAM/X,IAAI,GAAGjT,KAAK,CAACuI,MAAD,CAAlB;AAEA,UAAI0K,IAAI,IAAI,IAAR,IAAgBA,IAAI,KAAK,KAA7B,EAAoC;AAEpCe,YAAM,CAACzL,MAAD,CAAN,GAAiBxG,aAAa,CAACkR,IAAI,KAAK,IAAT,GAAgB,GAAhB,GAAsB/Q,MAAM,CAAC+Q,IAAD,CAA7B,CAA9B;AACD;;AAED,WAAOe,MAAP;AACD,GAZ8B,CAA/B;AAcA,SAAO;AAAEiX,mBAAF;AAAmBC;AAAnB,GAAP;AACD,C;;;AC5DD;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AAEA,4CAAerQ,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,SADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfqQ,UAAM,EAAEjpB,MADO;AAEfwY,QAAI,EAAExY,MAFS;AAGfwX,UAAM,EAAEjG,OAHO;AAIf2X,cAAU,EAAE3X,OAJG;AAKf4X,UAAM,EAAE5X,OALO;AAMf,OAAGkW,eAAe,EANH;AAOf,OAAGK,kBAAkB,EAPN;AAQf,OAAGO,kBAAkB,EARN;AASf,OAAGK,iBAAiB,EATL;AAUf,OAAGlE,gBAAgB,EAVJ;AAWf,OAAGU,YAAY;AAXA,GAAD,CAHa;;AAiB7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEiX;AAAF,QAAoBD,SAAS,CAAC9pB,KAAD,EAAQ,UAAR,CAAnC;AACA,UAAM;AAAEsqB;AAAF,QAAsBD,YAAY,CAACrqB,KAAD,CAAxC;AACA,UAAM;AAAE0qB;AAAF,QAAuBD,YAAY,CAACzqB,KAAD,CAAzC;AACA,UAAM;AAAEirB,qBAAF;AAAmBC;AAAnB,QAAsCH,WAAW,CAAC/qB,KAAD,EAAQ,UAAR,CAAvD;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,UAAR,CAArC;AAEA,WAAO,MAAM;AACX,YAAMsrB,YAAY,GAAI,CAAC,CAACtrB,KAAK,CAACmrB,MAAR,IAAkB,CAAC,CAACnrB,KAAK,CAAC0a,IAA1B,IAAkC,CAAC,CAAC1T,KAAK,CAACukB,SAAhE;AAEA;AAAA,iBAEW,CACL,UADK,EAEL;AACE,qCAA2BD,YAD7B;AAEE,iCAAuBtrB,KAAK,CAAC0Z,MAF/B;AAGE,mCAAyB1Z,KAAK,CAACorB,UAHjC;AAIE,8BAAoBprB,KAAK,CAACqrB;AAJ5B,SAFK,EAQLnZ,YAAY,CAACzR,KARR,EASLspB,aAAa,CAACtpB,KATT,EAULomB,cAAc,CAACpmB,KAVV,EAWLiqB,gBAAgB,CAACjqB,KAXZ,EAYLwqB,eAAe,CAACxqB,KAZX,CAFX;AAAA,iBAgBW,CACL6pB,eAAe,CAAC7pB,KADX,EAELyqB,cAAc,CAACzqB,KAFV,CAhBX;AAAA,gBAoBS;AApBT;AAAA;AAAA,mBAsBe;AAtBf;AAAA,mBAuBiB;AAvBjB,YAwBU6qB,YAAY,IAAI;AAAJ,mBACD;AADC,YAERtkB,KAAK,CAACukB,SAFE,oBAERvkB,KAAK,CAACukB,SAAN,EAFQ,EAGRvrB,KAAK,CAACmrB,MAAN;AAAA,mBACW,kBADX;AAAA,iBACoCnrB,KAAK,CAACmrB,MAD1C;AAAA,iBACuD;AADvD,4BAHQ,EAMRnrB,KAAK,CAAC0a,IAAN;AAAA,mBAAuB;AAAvB,YAA0C1a,KAAK,CAAC0a,IAAhD,EANQ,EAxBtB;AAAA,mBAiCmB;AAjCnB,YAiCsC1T,KAAK,CAACoM,OAjC5C,oBAiCsCpM,KAAK,CAACoM,OAAN,EAjCtC,MAmCQpM,KAAK,CAACwkB,OAAN;AAAA,mBACW;AADX,YACiCxkB,KAAK,CAACwkB,OADvC,oBACiCxkB,KAAK,CAACwkB,OAAN,EADjC,EAnCR;AAAA;AAyCD,KA5CD;AA6CD;;AAtE4B,CAAD,CAA9B,E;;;;AChBA;;;ACAA;AACA;CAGA;;AAGA,MAAMC,gBAAgB,GAAG,CAAC,SAAD,EAAY,aAAZ,EAA2B,SAA3B,CAAzB;AAQA;AACO,MAAMC,gBAAgB,GAAG3Y,YAAY,CAAC;AAC3C4Y,SAAO,EAAE;AACP1iB,QAAI,EAAE/G,MADC;AAEPkR,WAAO,EAAE,SAFF;AAGPqV,aAAS,EAAG5nB,CAAD,IAAY4qB,gBAAgB,CAAC/uB,QAAjB,CAA0BmE,CAA1B;AAHhB;AADkC,CAAD,EAMzC,SANyC,CAArC;AAQA,SAAS+qB,UAAT,CAAqB5rB,KAArB,EAA0C1B,IAA1C,EAAwD;AAC7D,QAAMutB,cAAc,GAAGxb,kEAAQ,CAAC,MAAM;AACpC,qBAAU/R,IAAV,uBAA2B0B,KAAK,CAAC2rB,OAAjC;AACD,GAF8B,CAA/B;AAIA,SAAO;AAAEE;AAAF,GAAP;AACD,C;;AC9BD;;;ACAA;CAGA;;CAGA;;AAMA,MAAMC,UAAU,GAAG5c,MAAM,CAAC,YAAD,CAAzB;AAIA,MAAM6c,YAAY,GAAG,EAArB;;AAEA,SAASlhB,SAAT,CAAoB7J,EAApB,EAAqCP,KAArC,EAAoD;AAClDO,IAAE,CAACgrB,KAAH,CAASnhB,SAAT,GAAqBpK,KAArB;AACAO,IAAE,CAACgrB,KAAH,CAASC,eAAT,GAA2BxrB,KAA3B;AACD;;AAED,SAASyrB,OAAT,CAAkBlrB,EAAlB,EAAmCP,KAAnC,EAAkD;AAChDO,IAAE,CAACgrB,KAAH,CAASE,OAAT,kBAA2BzrB,KAA3B;AACD;;AAgBD,SAAS0rB,YAAT,CAAuBC,CAAvB,EAA+D;AAC7D,SAAOA,CAAC,CAAC/tB,WAAF,CAAcC,IAAd,KAAuB,YAA9B;AACD;;AAED,SAAS+tB,eAAT,CAA0BD,CAA1B,EAAqE;AACnE,SAAOA,CAAC,CAAC/tB,WAAF,CAAcC,IAAd,KAAuB,eAA9B;AACD;;AAED,MAAMguB,SAAS,GAAG,CAChBF,CADgB,EAEhBprB,EAFgB,EAGhBP,KAAoB,GAAG,EAHP,KAIb;AAAA;;AACH,MAAI8rB,MAAM,GAAG,CAAb;AACA,MAAIC,MAAM,GAAG,CAAb;;AAEA,MAAI,CAACH,eAAe,CAACD,CAAD,CAApB,EAAyB;AACvB,UAAM5C,MAAM,GAAGxoB,EAAE,CAACyrB,qBAAH,EAAf;AACA,UAAMlkB,MAAM,GAAG4jB,YAAY,CAACC,CAAD,CAAZ,GAAkBA,CAAC,CAACM,OAAF,CAAUN,CAAC,CAACM,OAAF,CAAU7tB,MAAV,GAAmB,CAA7B,CAAlB,GAAoDutB,CAAnE;AAEAG,UAAM,GAAGhkB,MAAM,CAACokB,OAAP,GAAiBnD,MAAM,CAAC1mB,IAAjC;AACA0pB,UAAM,GAAGjkB,MAAM,CAACqkB,OAAP,GAAiBpD,MAAM,CAAC/U,GAAjC;AACD;;AAED,MAAIoY,MAAM,GAAG,CAAb;AACA,MAAIC,KAAK,GAAG,GAAZ;;AACA,qBAAI9rB,EAAE,CAAC+rB,OAAP,qBAAI,YAAYC,MAAhB,EAAwB;AACtBF,SAAK,GAAG,IAAR;AACAD,UAAM,GAAG7rB,EAAE,CAAC8W,WAAH,GAAiB,CAA1B;AACA+U,UAAM,GAAGpsB,KAAK,CAACwsB,MAAN,GAAeJ,MAAf,GAAwBA,MAAM,GAAGvlB,IAAI,CAAC4lB,IAAL,CAAU,CAACX,MAAM,GAAGM,MAAV,KAAqB,CAArB,GAAyB,CAACL,MAAM,GAAGK,MAAV,KAAqB,CAAxD,IAA6D,CAAvG;AACD,GAJD,MAIO;AACLA,UAAM,GAAGvlB,IAAI,CAAC4lB,IAAL,CAAUlsB,EAAE,CAAC8W,WAAH,IAAkB,CAAlB,GAAsB9W,EAAE,CAACiX,YAAH,IAAmB,CAAnD,IAAwD,CAAjE;AACD;;AAED,QAAMkV,OAAO,aAAM,CAACnsB,EAAE,CAAC8W,WAAH,GAAkB+U,MAAM,GAAG,CAA5B,IAAkC,CAAxC,OAAb;AACA,QAAMO,OAAO,aAAM,CAACpsB,EAAE,CAACiX,YAAH,GAAmB4U,MAAM,GAAG,CAA7B,IAAmC,CAAzC,OAAb;AAEA,QAAM3iB,CAAC,GAAGzJ,KAAK,CAACwsB,MAAN,GAAeE,OAAf,aAA4BZ,MAAM,GAAGM,MAArC,OAAV;AACA,QAAMQ,CAAC,GAAG5sB,KAAK,CAACwsB,MAAN,GAAeG,OAAf,aAA4BZ,MAAM,GAAGK,MAArC,OAAV;AAEA,SAAO;AAAEA,UAAF;AAAUC,SAAV;AAAiB5iB,KAAjB;AAAoBmjB,KAApB;AAAuBF,WAAvB;AAAgCC;AAAhC,GAAP;AACD,CAjCD;;AAmCA,MAAME,OAAO,GAAG;AACd;AACAC,MAAI,CACFnB,CADE,EAEFprB,EAFE,EAGFP,KAAoB,GAAG,EAHrB,EAIF;AAAA;;AACA,QAAI,EAACO,EAAD,oCAACA,EAAE,CAAE+rB,OAAL,qBAAC,aAAaS,OAAd,CAAJ,EAA2B;AACzB;AACD;;AAED,UAAMC,SAAS,GAAG1c,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAlB;AACA,UAAM0c,SAAS,GAAG3c,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAlB;AAEAyc,aAAS,CAACtc,WAAV,CAAsBuc,SAAtB;AACAD,aAAS,CAACE,SAAV,GAAsB,qBAAtB;;AAEA,QAAIltB,KAAK,CAAC+a,KAAV,EAAiB;AACfiS,eAAS,CAACE,SAAV,eAA2BltB,KAAK,CAAC+a,KAAjC;AACD;;AAED,UAAM;AAAEqR,YAAF;AAAUC,WAAV;AAAiB5iB,OAAjB;AAAoBmjB,OAApB;AAAuBF,aAAvB;AAAgCC;AAAhC,QAA4Cd,SAAS,CAACF,CAAD,EAAIprB,EAAJ,EAAQP,KAAR,CAA3D;AAEA,UAAMiH,IAAI,aAAMmlB,MAAM,GAAG,CAAf,OAAV;AACAa,aAAS,CAACC,SAAV,GAAsB,qBAAtB;AACAD,aAAS,CAAC1B,KAAV,CAAgB7V,KAAhB,GAAwBzO,IAAxB;AACAgmB,aAAS,CAAC1B,KAAV,CAAgBlW,MAAhB,GAAyBpO,IAAzB;AAEA1G,MAAE,CAACmQ,WAAH,CAAesc,SAAf;AAEA,UAAMpd,QAAQ,GAAGhP,MAAM,CAACC,gBAAP,CAAwBN,EAAxB,CAAjB;;AACA,QAAIqP,QAAQ,IAAIA,QAAQ,CAAC0D,QAAT,KAAsB,QAAtC,EAAgD;AAC9C/S,QAAE,CAACgrB,KAAH,CAASjY,QAAT,GAAoB,UAApB;AACA/S,QAAE,CAAC4sB,OAAH,CAAWC,gBAAX,GAA8B,QAA9B;AACD;;AAEDH,aAAS,CAACI,SAAV,CAAoBC,GAApB,CAAwB,4BAAxB;AACAL,aAAS,CAACI,SAAV,CAAoBC,GAApB,CAAwB,8BAAxB;AACAljB,aAAS,CAAC6iB,SAAD,sBAAyBxjB,CAAzB,eAA+BmjB,CAA/B,uBAA6CP,KAA7C,cAAsDA,KAAtD,cAA+DA,KAA/D,OAAT;AACAZ,WAAO,CAACwB,SAAD,EAAY,CAAZ,CAAP;AACAA,aAAS,CAACE,OAAV,CAAkBI,SAAlB,GAA8B9rB,MAAM,CAAC+rB,WAAW,CAACC,GAAZ,EAAD,CAApC;AAEAxnB,cAAU,CAAC,MAAM;AACfgnB,eAAS,CAACI,SAAV,CAAoBK,MAApB,CAA2B,4BAA3B;AACAT,eAAS,CAACI,SAAV,CAAoBC,GAApB,CAAwB,yBAAxB;AACAljB,eAAS,CAAC6iB,SAAD,sBAAyBP,OAAzB,eAAqCC,OAArC,sBAAT;AACAlB,aAAO,CAACwB,SAAD,EAAY,IAAZ,CAAP;AACD,KALS,EAKP,CALO,CAAV;AAMD,GAhDa;;AAkDdU,MAAI,CAAEptB,EAAF,EAA0B;AAAA;;AAC5B,QAAI,EAACA,EAAD,oCAACA,EAAE,CAAE+rB,OAAL,qBAAC,aAAaS,OAAd,CAAJ,EAA2B;AAE3B,UAAMF,OAAO,GAAGtsB,EAAE,CAACqtB,sBAAH,CAA0B,qBAA1B,CAAhB;AAEA,QAAIf,OAAO,CAACzuB,MAAR,KAAmB,CAAvB,EAA0B;AAC1B,UAAM6uB,SAAS,GAAGJ,OAAO,CAACA,OAAO,CAACzuB,MAAR,GAAiB,CAAlB,CAAzB;AAEA,QAAI6uB,SAAS,CAACE,OAAV,CAAkBU,QAAtB,EAAgC,OAAhC,KACKZ,SAAS,CAACE,OAAV,CAAkBU,QAAlB,GAA6B,MAA7B;AAEL,UAAMtqB,IAAI,GAAGiqB,WAAW,CAACC,GAAZ,KAAoB/rB,MAAM,CAACurB,SAAS,CAACE,OAAV,CAAkBI,SAAnB,CAAvC;AACA,UAAM1nB,KAAK,GAAGgB,IAAI,CAACD,GAAL,CAAS,MAAMrD,IAAf,EAAqB,CAArB,CAAd;AAEA0C,cAAU,CAAC,MAAM;AACfgnB,eAAS,CAACI,SAAV,CAAoBK,MAApB,CAA2B,yBAA3B;AACAT,eAAS,CAACI,SAAV,CAAoBC,GAApB,CAAwB,0BAAxB;AACA7B,aAAO,CAACwB,SAAD,EAAY,CAAZ,CAAP;AAEAhnB,gBAAU,CAAC,MAAM;AACf,cAAM4mB,OAAO,GAAGtsB,EAAE,CAACqtB,sBAAH,CAA0B,qBAA1B,CAAhB;;AACA,YAAIf,OAAO,CAACzuB,MAAR,KAAmB,CAAnB,IAAwBmC,EAAE,CAAC4sB,OAAH,CAAWC,gBAAvC,EAAyD;AACvD7sB,YAAE,CAACgrB,KAAH,CAASjY,QAAT,GAAoB/S,EAAE,CAAC4sB,OAAH,CAAWC,gBAA/B;AACA,iBAAO7sB,EAAE,CAAC4sB,OAAH,CAAWC,gBAAlB;AACD;;AAEDH,iBAAS,CAAClsB,UAAV,IAAwBR,EAAE,CAACutB,WAAH,CAAeb,SAAS,CAAClsB,UAAzB,CAAxB;AACD,OARS,EAQP,GARO,CAAV;AASD,KAdS,EAcP8E,KAdO,CAAV;AAeD;;AA/Ea,CAAhB;;AAkFA,SAASkoB,eAAT,CAA0B/tB,KAA1B,EAAqD;AACnD,SAAO,OAAOA,KAAP,KAAiB,WAAjB,IAAgC,CAAC,CAACA,KAAzC;AACD;;AAED,SAASguB,UAAT,CAAqBrC,CAArB,EAA4C;AAC1C,QAAM3rB,KAAoB,GAAG,EAA7B;AACA,QAAMiuB,OAAO,GAAGtC,CAAC,CAACuC,aAAlB;AAEA,MAAI,EAACD,OAAD,oBAACA,OAAO,CAAE3B,OAAV,KAAqB2B,OAAO,CAAC3B,OAAR,CAAgB6B,OAArC,IAAgDxC,CAAC,CAACN,UAAD,CAArD,EAAmE,OAJzB,CAM1C;;AACAM,GAAC,CAACN,UAAD,CAAD,GAAgB,IAAhB;;AAEA,MAAIK,YAAY,CAACC,CAAD,CAAhB,EAAqB;AACnBsC,WAAO,CAAC3B,OAAR,CAAgB6B,OAAhB,GAA0B,IAA1B;AACAF,WAAO,CAAC3B,OAAR,CAAgB8B,OAAhB,GAA0B,IAA1B;AACD,GAHD,MAGO;AACL;AACA;AACA;AACA;AACA,QAAIH,OAAO,CAAC3B,OAAR,CAAgB8B,OAApB,EAA6B;AAC9B;;AAEDpuB,OAAK,CAACwsB,MAAN,GAAeyB,OAAO,CAAC3B,OAAR,CAAgB+B,QAAhB,IAA4BzC,eAAe,CAACD,CAAD,CAA1D;;AACA,MAAIsC,OAAO,CAAC3B,OAAR,CAAgBvR,KAApB,EAA2B;AACzB/a,SAAK,CAAC+a,KAAN,GAAckT,OAAO,CAAC3B,OAAR,CAAgBvR,KAA9B;AACD;;AAED,MAAI2Q,YAAY,CAACC,CAAD,CAAhB,EAAqB;AACnB;AACA,QAAIsC,OAAO,CAAC3B,OAAR,CAAgBgC,eAApB,EAAqC;;AAErCL,WAAO,CAAC3B,OAAR,CAAgBgC,eAAhB,GAAkC,MAAM;AACtCzB,aAAO,CAACC,IAAR,CAAanB,CAAb,EAAgBsC,OAAhB,EAAyBjuB,KAAzB;AACD,KAFD;;AAGAiuB,WAAO,CAAC3B,OAAR,CAAgBiC,SAAhB,GAA4B3tB,MAAM,CAACqF,UAAP,CAAkB,MAAM;AAAA;;AAClD,UAAIgoB,OAAJ,wCAAIA,OAAO,CAAE3B,OAAb,qBAAI,iBAAkBgC,eAAtB,EAAuC;AACrCL,eAAO,CAAC3B,OAAR,CAAgBgC,eAAhB;;AACAL,eAAO,CAAC3B,OAAR,CAAgBgC,eAAhB,GAAkC,IAAlC;AACD;AACF,KAL2B,EAKzBhD,YALyB,CAA5B;AAMD,GAbD,MAaO;AACLuB,WAAO,CAACC,IAAR,CAAanB,CAAb,EAAgBsC,OAAhB,EAAyBjuB,KAAzB;AACD;AACF;;AAED,SAASwuB,UAAT,CAAqB7C,CAArB,EAA+B;AAC7B,QAAMsC,OAAO,GAAGtC,CAAC,CAACuC,aAAlB;AACA,MAAI,CAACD,OAAD,IAAY,CAACA,OAAO,CAAC3B,OAAzB,EAAkC;AAElC1rB,QAAM,CAACoF,YAAP,CAAoBioB,OAAO,CAAC3B,OAAR,CAAgBiC,SAApC,EAJ6B,CAM7B;AACA;;AACA,MAAI5C,CAAC,CAACnjB,IAAF,KAAW,UAAX,IAAyBylB,OAAO,CAAC3B,OAAR,CAAgBgC,eAA7C,EAA8D;AAC5DL,WAAO,CAAC3B,OAAR,CAAgBgC,eAAhB;;AACAL,WAAO,CAAC3B,OAAR,CAAgBgC,eAAhB,GAAkC,IAAlC,CAF4D,CAI5D;;AACAL,WAAO,CAAC3B,OAAR,CAAgBiC,SAAhB,GAA4BtoB,UAAU,CAAC,MAAM;AAC3CuoB,gBAAU,CAAC7C,CAAD,CAAV;AACD,KAFqC,CAAtC;AAGA;AACD;;AAED/qB,QAAM,CAACqF,UAAP,CAAkB,MAAM;AACtB,QAAIgoB,OAAO,CAAC3B,OAAZ,EAAqB;AACnB2B,aAAO,CAAC3B,OAAR,CAAgB6B,OAAhB,GAA0B,KAA1B;AACD;AACF,GAJD;AAKAtB,SAAO,CAACc,IAAR,CAAaM,OAAb;AACD;;AAED,SAASQ,gBAAT,CAA2B9C,CAA3B,EAAuD;AACrD,QAAMsC,OAAO,GAAGtC,CAAC,CAACuC,aAAlB;AAEA,MAAI,CAACD,OAAD,IAAY,CAACA,OAAO,CAAC3B,OAAzB,EAAkC;;AAElC,MAAI2B,OAAO,CAAC3B,OAAR,CAAgBgC,eAApB,EAAqC;AACnCL,WAAO,CAAC3B,OAAR,CAAgBgC,eAAhB,GAAkC,IAAlC;AACD;;AAED1tB,QAAM,CAACoF,YAAP,CAAoBioB,OAAO,CAAC3B,OAAR,CAAgBiC,SAApC;AACD;;AAED,IAAIG,cAAc,GAAG,KAArB;;AAEA,SAASC,kBAAT,CAA6BhD,CAA7B,EAA+C;AAC7C,MAAI,CAAC+C,cAAD,KAAoB/C,CAAC,CAACiD,OAAF,KAAchtB,cAAd,IAAgC+pB,CAAC,CAACiD,OAAF,KAAchtB,cAAlE,CAAJ,EAAuF;AACrF8sB,kBAAc,GAAG,IAAjB;AACAV,cAAU,CAACrC,CAAD,CAAV;AACD;AACF;;AAED,SAASkD,kBAAT,CAA6BlD,CAA7B,EAA+C;AAC7C+C,gBAAc,GAAG,KAAjB;AACAF,YAAU,CAAC7C,CAAD,CAAV;AACD;;AAED,SAASmD,eAAT,CAA0BnD,CAA1B,EAAyC;AACvC,MAAI+C,cAAJ,EAAoB;AAClBA,kBAAc,GAAG,KAAjB;AACAF,cAAU,CAAC7C,CAAD,CAAV;AACD;AACF;;AAED,SAASoD,YAAT,CAAuBxuB,EAAvB,EAAwCyuB,OAAxC,EAAyEC,UAAzE,EAA8F;AAAA;;AAC5F,QAAM;AAAEjvB,SAAF;AAASkvB;AAAT,MAAuBF,OAA7B;AACA,QAAMjC,OAAO,GAAGgB,eAAe,CAAC/tB,KAAD,CAA/B;;AACA,MAAI,CAAC+sB,OAAL,EAAc;AACZF,WAAO,CAACc,IAAR,CAAaptB,EAAb;AACD;;AAEDA,IAAE,CAAC+rB,OAAH,mBAAa/rB,EAAE,CAAC+rB,OAAhB,2BAA2B,EAA3B;AACA/rB,IAAE,CAAC+rB,OAAH,CAAWS,OAAX,GAAqBA,OAArB;AACAxsB,IAAE,CAAC+rB,OAAH,CAAW+B,QAAX,GAAsBa,SAAS,CAAC1C,MAAhC;AACAjsB,IAAE,CAAC+rB,OAAH,CAAWC,MAAX,GAAoB2C,SAAS,CAAC3C,MAA9B;;AACA,MAAI5qB,QAAQ,CAAC3B,KAAD,CAAR,IAAmBA,KAAK,CAAC+a,KAA7B,EAAoC;AAClCxa,MAAE,CAAC+rB,OAAH,CAAWvR,KAAX,GAAmB/a,KAAK,CAAC+a,KAAzB;AACD;;AAED,MAAIgS,OAAO,IAAI,CAACkC,UAAhB,EAA4B;AAC1B1uB,MAAE,CAACmZ,gBAAH,CAAoB,YAApB,EAAkCsU,UAAlC,EAA8C;AAAErU,aAAO,EAAE;AAAX,KAA9C;AACApZ,MAAE,CAACmZ,gBAAH,CAAoB,UAApB,EAAgC8U,UAAhC,EAA4C;AAAE7U,aAAO,EAAE;AAAX,KAA5C;AACApZ,MAAE,CAACmZ,gBAAH,CAAoB,WAApB,EAAiC+U,gBAAjC,EAAmD;AAAE9U,aAAO,EAAE;AAAX,KAAnD;AACApZ,MAAE,CAACmZ,gBAAH,CAAoB,aAApB,EAAmC8U,UAAnC;AAEAjuB,MAAE,CAACmZ,gBAAH,CAAoB,WAApB,EAAiCsU,UAAjC;AACAztB,MAAE,CAACmZ,gBAAH,CAAoB,SAApB,EAA+B8U,UAA/B;AACAjuB,MAAE,CAACmZ,gBAAH,CAAoB,YAApB,EAAkC8U,UAAlC;AAEAjuB,MAAE,CAACmZ,gBAAH,CAAoB,SAApB,EAA+BiV,kBAA/B;AACApuB,MAAE,CAACmZ,gBAAH,CAAoB,OAApB,EAA6BmV,kBAA7B;AAEAtuB,MAAE,CAACmZ,gBAAH,CAAoB,MAApB,EAA4BoV,eAA5B,EAb0B,CAe1B;;AACAvuB,MAAE,CAACmZ,gBAAH,CAAoB,WAApB,EAAiC8U,UAAjC,EAA6C;AAAE7U,aAAO,EAAE;AAAX,KAA7C;AACD,GAjBD,MAiBO,IAAI,CAACoT,OAAD,IAAYkC,UAAhB,EAA4B;AACjCE,mBAAe,CAAC5uB,EAAD,CAAf;AACD;AACF;;AAED,SAAS4uB,eAAT,CAA0B5uB,EAA1B,EAA2C;AACzCA,IAAE,CAAC6uB,mBAAH,CAAuB,WAAvB,EAAoCpB,UAApC;AACAztB,IAAE,CAAC6uB,mBAAH,CAAuB,YAAvB,EAAqCpB,UAArC;AACAztB,IAAE,CAAC6uB,mBAAH,CAAuB,UAAvB,EAAmCZ,UAAnC;AACAjuB,IAAE,CAAC6uB,mBAAH,CAAuB,WAAvB,EAAoCX,gBAApC;AACAluB,IAAE,CAAC6uB,mBAAH,CAAuB,aAAvB,EAAsCZ,UAAtC;AACAjuB,IAAE,CAAC6uB,mBAAH,CAAuB,SAAvB,EAAkCZ,UAAlC;AACAjuB,IAAE,CAAC6uB,mBAAH,CAAuB,YAAvB,EAAqCZ,UAArC;AACAjuB,IAAE,CAAC6uB,mBAAH,CAAuB,SAAvB,EAAkCT,kBAAlC;AACApuB,IAAE,CAAC6uB,mBAAH,CAAuB,OAAvB,EAAgCP,kBAAhC;AACAtuB,IAAE,CAAC6uB,mBAAH,CAAuB,WAAvB,EAAoCZ,UAApC;AACAjuB,IAAE,CAAC6uB,mBAAH,CAAuB,MAAvB,EAA+BN,eAA/B;AACD;;AAED,SAASO,OAAT,CAAkB9uB,EAAlB,EAAmCyuB,OAAnC,EAA8D;AAC5DD,cAAY,CAACxuB,EAAD,EAAKyuB,OAAL,EAAc,KAAd,CAAZ;AACD;;AAED,SAASM,SAAT,CAAoB/uB,EAApB,EAAqC;AACnC,SAAOA,EAAE,CAAC+rB,OAAV;AACA6C,iBAAe,CAAC5uB,EAAD,CAAf;AACD;;AAED,SAASgvB,OAAT,CAAkBhvB,EAAlB,EAAmCyuB,OAAnC,EAA8D;AAC5D,MAAIA,OAAO,CAAChvB,KAAR,KAAkBgvB,OAAO,CAACQ,QAA9B,EAAwC;AACtC;AACD;;AAED,QAAMP,UAAU,GAAGlB,eAAe,CAACiB,OAAO,CAACQ,QAAT,CAAlC;AACAT,cAAY,CAACxuB,EAAD,EAAKyuB,OAAL,EAAcC,UAAd,CAAZ;AACD;;AAEM,MAAMQ,MAAuB,GAAG;AACrCJ,SADqC;AAErCC,WAFqC;AAGrCC;AAHqC,CAAhC;AAMP,2CAAeE,sDAAf,I;;ACrVA;AACA;AACA;AACO,SAASC,YAAT,CAA2C5K,SAA3C,EAAiEkK,OAAjE,EAAkH;AACvH,SAAO,CACLlK,SADK,EAELkK,OAAO,CAAChvB,KAFH,EAGLgvB,OAAO,CAACW,GAHH,EAILX,OAAO,CAACE,SAJH,CAAP;AAMD,C;;;ACjBD;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;CAGA;;CAGA;;AACA;AACA;AAEA;AAEA,yCAAe9U,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,MADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACf0M,QAAI,EAAE/T,OADS;AAEfrK,QAAI,EAAEqK,OAFS;AAGf4c,SAAK,EAAE5c,OAHQ;AAIfiH,QAAI,EAAE,CAACjH,OAAD,EAAUvR,MAAV,CAJS;AAMfouB,SAAK,EAAE7c,OANQ;AAQf7H,SAAK,EAAE;AACL3C,UAAI,EAAE/G,MADD;AAELkR,aAAO,EAAE;AAFJ,KARQ;AAYfgV,YAAQ,EAAE3U,OAZK;AAaf,OAAGkW,eAAe,EAbH;AAcf,OAAGjD,gBAAgB,EAdJ;AAef,OAAGgF,gBAAgB,EAfJ;AAgBf,OAAG1B,kBAAkB,EAhBN;AAiBf,OAAGO,kBAAkB,EAjBN;AAkBf,OAAGK,iBAAiB,EAlBL;AAmBf,OAAG5D,aAAa,EAnBD;AAoBf,OAAGI,YAAY,CAAC;AAAEzlB,SAAG,EAAE;AAAP,KAAD;AApBA,GAAD,CAHa;;AA0B7BoZ,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEiX;AAAF,QAAoBD,SAAS,CAAC9pB,KAAD,EAAQ,OAAR,CAAnC;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,OAAR,CAArC;AACA,UAAM;AAAE6rB;AAAF,QAAqBD,UAAU,CAAC5rB,KAAD,EAAQ,OAAR,CAArC;AACA,UAAM;AAAEsqB;AAAF,QAAsBD,YAAY,CAACrqB,KAAD,CAAxC;AACA,UAAM;AAAE0qB;AAAF,QAAuBD,YAAY,CAACzqB,KAAD,CAAzC;AACA,UAAM;AAAEirB,qBAAF;AAAmBC;AAAnB,QAAsCH,WAAW,CAAC/qB,KAAD,EAAQ,OAAR,CAAvD;AACA,UAAM;AAAEknB;AAAF,QAAkBD,OAAO,CAACjnB,KAAD,EAAQ,OAAR,CAA/B;AAEA,UAAMuwB,WAAW,GAAGlgB,kEAAQ,CAAC,MAAM;AACjC,aAAO,EAAErQ,KAAK,CAACwnB,IAAN,IAAcxnB,KAAK,CAACqwB,KAApB,IAA6BrwB,KAAK,CAAC0a,IAAnC,IAA2C1a,KAAK,CAAC4pB,QAAjD,IAA6D5pB,KAAK,CAAC6pB,MAAN,KAAiB,KAAhF,CAAP;AACD,KAF2B,CAA5B;AAIA,UAAM2G,UAAU,GAAGngB,kEAAQ,CAAC,MAAM;AAChC,aAAOkgB,WAAW,CAAC9vB,KAAZ,IAAqB,EAAET,KAAK,CAACooB,QAAN,IAAkBpoB,KAAK,CAACoJ,IAA1B,CAA5B;AACD,KAF0B,CAA3B;AAIA,UAAM;AAAEqe,kBAAF;AAAgBC;AAAhB,QAAgCL,QAAQ,CAAChX,kEAAQ,CAAC,OAAO;AAC7D,OAACkgB,WAAW,CAAC9vB,KAAZ,GAAoB,YAApB,GAAmC,MAApC,GAA6CT,KAAK,CAAC4L;AADU,KAAP,CAAD,CAAT,CAA9C;AAIA,WAAO,MAAM6kB,wEAAc,CAAC;AAAD,cAElB,QAFkB;AAAA,eAGhB,CACL,OADK,EAEL;AACE,4BAAoBF,WAAW,CAAC9vB,KADlC;AAEE,2BAAmB+vB,UAAU,CAAC/vB,KAFhC;AAGE,uBAAe,CAAC,CAACT,KAAK,CAAC0a,IAHzB;AAIE,wBAAgB1a,KAAK,CAACqwB,KAJxB;AAKE,wBAAgBrwB,KAAK,CAACswB,KALxB;AAME,2BAAmBtwB,KAAK,CAACooB;AAN3B,OAFK,EAULlW,YAAY,CAACzR,KAVR,EAWLspB,aAAa,CAACtpB,KAXT,EAYLgnB,YAAY,CAAChnB,KAZR,EAaLorB,cAAc,CAACprB,KAbV,EAcLiqB,gBAAgB,CAACjqB,KAdZ,EAeLwqB,eAAe,CAACxqB,KAfX,EAgBLomB,cAAc,CAACpmB,KAhBV,EAiBLymB,WAAW,CAACzmB,KAjBP,CAHgB;AAAA,eAsBhB,CACLinB,WAAW,CAACjnB,KADP,EAEL6pB,eAAe,CAAC7pB,KAFX,EAGLyqB,cAAc,CAACzqB,KAHV,CAtBgB;AAAA,kBA2BZT,KAAK,CAACooB;AA3BM;AAAA;AAAA,iBA6BX;AA7BW,gBA+BrB,OAAOpoB,KAAK,CAAC0a,IAAb,KAAsB,SAAtB,GACE1T,KAAK,CAACoM,OADR,oBACEpM,KAAK,CAACoM,OAAN,EADF;AAAA,gBAEgBpT,KAAK,CAAC0a,IAFtB;AAAA,gBAEoC1a,KAAK,CAAC0H;AAF1C,mCA/BqB;AAAA;AAAA,2CAoCzB,CAACyoB,YAAY,CAAyBD,MAAzB,EAAiC;AAC5CzvB,WAAK,EAAE,CAACT,KAAK,CAACooB,QAD8B;AAE5CuH,eAAS,EAAE;AAAE1C,cAAM,EAAE,CAAC,CAACjtB,KAAK,CAAC0a;AAAlB;AAFiC,KAAjC,CAAb,CApCyB,CAA3B;AAyCD;;AAzF4B,CAAD,CAA9B,E;;;;AC1BA;;;;ACAA;CAGA;;AACA;CAGA;;CAGA;;AAIA,6CAAeG,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,UADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACf4V,SAAK,EAAEjd,OADQ;AAEf5U,UAAM,EAAE,CAACsD,MAAD,EAASD,MAAT,CAFO;AAGfyuB,aAAS,EAAE,CAACxuB,MAAD,EAASD,MAAT,CAHI;AAIf8mB,YAAQ,EAAEvV;AAJK,GAAD,CAHa;;AAU7BsH,OAAK,CAAE/a,KAAF,EAAS;AAAEkb;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEhJ;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM8d,aAAa,GAAGvgB,kEAAQ,CAAC,MAAM;AACnC,YAAM2D,MAAqB,GAAG,EAA9B;;AAEA,UAAIhU,KAAK,CAACnB,MAAV,EAAkB;AAChBmV,cAAM,CAAChU,KAAK,CAACgpB,QAAN,GAAiB,WAAjB,GAA+B,UAAhC,CAAN,GAAoDjnB,aAAa,CAAC/B,KAAK,CAACnB,MAAP,CAAjE;AACD;;AAED,UAAImB,KAAK,CAAC2wB,SAAV,EAAqB;AACnB3c,cAAM,CAAChU,KAAK,CAACgpB,QAAN,GAAiB,kBAAjB,GAAsC,gBAAvC,CAAN,GAAiEjnB,aAAa,CAAC/B,KAAK,CAAC2wB,SAAP,CAA9E;AACD;;AAED,aAAO3c,MAAP;AACD,KAZ6B,CAA9B;AAcA,WAAO,MAAM;AACX;AAAA,iBAEW,CACL;AACE,uBAAa,IADf;AAEE,8BAAoBhU,KAAK,CAAC0wB,KAF5B;AAGE,iCAAuB1wB,KAAK,CAACgpB;AAH/B,SADK,EAML9W,YAAY,CAACzR,KANR,CAFX;AAAA,iBAUYmwB,aAAa,CAACnwB,KAV1B;AAAA,4BAYM,CAACya,KAAK,CAAC2V,IAAP,IAAe3V,KAAK,CAAC2V,IAAN,KAAe,WAA9B,GACI7wB,KAAK,CAACgpB,QAAN,GAAiB,UAAjB,GAA8B,YADlC,GAEIvpB,SAdV;AAAA,0BAgBayb,KAAK,CAAC2V,IAAN,IAAc,WAhB3B;AAAA;AAmBD,KApBD;AAqBD;;AA/C4B,CAAD,CAA9B,E;;;;ACdA;;;;ACAA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AAEA,4CAAehW,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,SADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC,EACf,GAAG6O,eAAe,EADH;AAEf,OAAGK,kBAAkB,EAFN;AAGf,OAAGO,kBAAkB,EAHN;AAIf,OAAGK,iBAAiB,EAJL;AAKf,OAAGlE,gBAAgB,EALJ;AAMf,OAAGU,YAAY,EANA;AAOf,OAAGA,YAAY,CAAC;AAAEzlB,SAAG,EAAE;AAAP,KAAD;AAPA,GAAD,CAHa;;AAa7BoZ,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEiX;AAAF,QAAoBD,SAAS,CAAC9pB,KAAD,EAAQ,UAAR,CAAnC;AACA,UAAM;AAAEsqB;AAAF,QAAsBD,YAAY,CAACrqB,KAAD,CAAxC;AACA,UAAM;AAAE0qB;AAAF,QAAuBD,YAAY,CAACzqB,KAAD,CAAzC;AACA,UAAM;AAAEirB,qBAAF;AAAmBC;AAAnB,QAAsCH,WAAW,CAAC/qB,KAAD,EAAQ,UAAR,CAAvD;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,UAAR,CAArC;AAEA,WAAO,MAAM;AAAN,eAEI,CACL,UADK,EAELkS,YAAY,CAACzR,KAFR,EAGLspB,aAAa,CAACtpB,KAHT,EAILiqB,gBAAgB,CAACjqB,KAJZ,EAKLwqB,eAAe,CAACxqB,KALX,EAMLomB,cAAc,CAACpmB,KANV,CAFJ;AAAA,eAUI,CAEL6pB,eAAe,CAAC7pB,KAFX,EAGLyqB,cAAc,CAACzqB,KAHV;AAVJ,YAeOuG,KAfP;AAAA;AAAA,6BAAP;AAkBD;;AAvC4B,CAAD,CAA9B,E;;;;AChBA;;;;ACAA;CAGA;;CAGA;;AACA;AACA;AAEA,+CAAe6T,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,YADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfgW,SAAK,EAAE;AACL7nB,UAAI,EAAEwK,OADD;AAELL,aAAO,EAAE;AAFJ,KADQ;AAKf,OAAGgU,YAAY;AALA,GAAD,CAHa;;AAW7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,WAAO,MAAM;AAAN,eAEI,CACL,aADK,EAEL;AAAE,8BAAsBhH,KAAK,CAAC8wB;AAA9B,OAFK;AAFJ,YAMO9pB,KANP;AAAA;AAAA,oBAAP;AASD;;AArB4B,CAAD,CAA9B,E;;ACVA;CAGA;;CAGA;;AACA;CAGA;;AAGA,MAAM+pB,WAAW,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,KAAzB,CAApB,C,CAA6D;;AAE7D,MAAMC,eAAe,GAAG,CAAC,MAAM;AAC7B,SAAOD,WAAW,CAAC7pB,MAAZ,CAAmB,CAAClH,KAAD,EAAQuE,GAAR,KAAgB;AACxCvE,SAAK,CAACuE,GAAD,CAAL,GAAa;AACX0E,UAAI,EAAE,CAACwK,OAAD,EAAUvR,MAAV,EAAkBC,MAAlB,CADK;AAEXiR,aAAO,EAAE;AAFE,KAAb;AAIA,WAAOpT,KAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD,CARuB,GAAxB;;AAUA,MAAMixB,WAAW,GAAG,CAAC,MAAM;AACzB,SAAOF,WAAW,CAAC7pB,MAAZ,CAAmB,CAAClH,KAAD,EAAQuE,GAAR,KAAgB;AACxCvE,SAAK,CAAC,WAAWkxB,oEAAU,CAAC3sB,GAAD,CAAtB,CAAL,GAAoC;AAClC0E,UAAI,EAAE,CAAC/G,MAAD,EAASC,MAAT,CAD4B;AAElCiR,aAAO,EAAE;AAFyB,KAApC;AAIA,WAAOpT,KAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD,CARmB,GAApB;;AAUA,MAAMmxB,UAAU,GAAG,CAAC,MAAM;AACxB,SAAOJ,WAAW,CAAC7pB,MAAZ,CAAmB,CAAClH,KAAD,EAAQuE,GAAR,KAAgB;AACxCvE,SAAK,CAAC,UAAUkxB,oEAAU,CAAC3sB,GAAD,CAArB,CAAL,GAAmC;AACjC0E,UAAI,EAAE,CAAC/G,MAAD,EAASC,MAAT,CAD2B;AAEjCiR,aAAO,EAAE;AAFwB,KAAnC;AAIA,WAAOpT,KAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD,CARkB,GAAnB;;AAUA,MAAMoxB,OAAO,GAAG;AACdC,KAAG,EAAEtxB,MAAM,CAACE,IAAP,CAAY+wB,eAAZ,CADS;AAEdxH,QAAM,EAAEzpB,MAAM,CAACE,IAAP,CAAYgxB,WAAZ,CAFM;AAGdK,OAAK,EAAEvxB,MAAM,CAACE,IAAP,CAAYkxB,UAAZ;AAHO,CAAhB;;AAMA,SAASI,eAAT,CAA0BtoB,IAA1B,EAAsDgK,IAAtD,EAAoE1O,GAApE,EAAoG;AAClG,MAAIopB,SAAiB,GAAG1kB,IAAxB;;AACA,MAAI1E,GAAG,IAAI,IAAP,IAAeA,GAAG,KAAK,KAA3B,EAAkC;AAChC,WAAO9E,SAAP;AACD;;AACD,MAAIwT,IAAJ,EAAU;AACR,UAAMue,UAAU,GAAGve,IAAI,CAACpV,OAAL,CAAaoL,IAAb,EAAmB,EAAnB,CAAnB;AACA0kB,aAAS,eAAQ6D,UAAR,CAAT;AACD;;AACD,MAAIvoB,IAAI,KAAK,KAAb,EAAoB;AAClB0kB,aAAS,GAAG,OAAOA,SAAnB;AACD,GAXiG,CAYlG;AACA;AACA;;;AACA,MAAI1kB,IAAI,KAAK,KAAT,KAAmB1E,GAAG,KAAK,EAAR,IAAcA,GAAG,KAAK,IAAzC,CAAJ,EAAoD;AAClD;AACA,WAAOopB,SAAS,CAAC3nB,WAAV,EAAP;AACD,GAlBiG,CAmBlG;;;AACA2nB,WAAS,eAAQppB,GAAR,CAAT;AACA,SAAOopB,SAAS,CAAC3nB,WAAV,EAAP;AACD;;AAED,yCAAe6U,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,MADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACf2W,QAAI,EAAE;AACJxoB,UAAI,EAAE,CAACwK,OAAD,EAAUvR,MAAV,EAAkBC,MAAlB,CADF;AAEJiR,aAAO,EAAE;AAFL,KADS;AAKf,OAAG4d,eALY;AAMfxH,UAAM,EAAE;AACNvgB,UAAI,EAAE,CAAC/G,MAAD,EAASC,MAAT,CADA;AAENiR,aAAO,EAAE;AAFH,KANO;AAUf,OAAG6d,WAVY;AAWfK,SAAK,EAAE;AACLroB,UAAI,EAAE,CAAC/G,MAAD,EAASC,MAAT,CADD;AAELiR,aAAO,EAAE;AAFJ,KAXQ;AAef,OAAG+d,UAfY;AAgBfO,aAAS,EAAE;AACTzoB,UAAI,EAAE/G,MADG;AAETkR,aAAO,EAAE,IAFA;AAGTqV,eAAS,EAAG7qB,GAAD,IAAc,CAAC,MAAD,EAAS,OAAT,EAAkB,KAAlB,EAAyB,QAAzB,EAAmC,UAAnC,EAA+C,SAA/C,EAA0DlB,QAA1D,CAAmEkB,GAAnE;AAHhB,KAhBI;AAqBf,OAAGwpB,YAAY;AArBA,GAAD,CAHa;;AA2B7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM8f,OAAO,GAAGzW,kEAAQ,CAAC,MAAM;AAC7B,YAAMyd,SAAgB,GAAG,EAAzB,CAD6B,CAG7B;;AACA,UAAI7kB,IAAJ;;AACA,WAAKA,IAAL,IAAamoB,OAAb,EAAsB;AACpBA,eAAO,CAACnoB,IAAD,CAAP,CAAcnF,OAAd,CAAsBmP,IAAI,IAAI;AAC5B,gBAAMxS,KAAgC,GAAIT,KAAD,CAAeiT,IAAf,CAAzC;AACA,gBAAM0a,SAAS,GAAG4D,eAAe,CAACtoB,IAAD,EAAOgK,IAAP,EAAaxS,KAAb,CAAjC;AACA,cAAIktB,SAAJ,EAAeG,SAAS,CAAEnxB,IAAX,CAAgBgxB,SAAhB;AAChB,SAJD;AAKD;;AAED,YAAMgE,aAAa,GAAG7D,SAAS,CAAC3nB,IAAV,CAAewnB,SAAS,IAAIA,SAAS,CAAC1mB,UAAV,CAAqB,QAArB,CAA5B,CAAtB;AAEA6mB,eAAS,CAACnxB,IAAV,CAAe;AACb;AACA,iBAAS,CAACg1B,aAAD,IAAkB,CAAC3xB,KAAK,CAACyxB,IAFrB;AAGb,yBAAUzxB,KAAK,CAACyxB,IAAhB,IAAyBzxB,KAAK,CAACyxB,IAHlB;AAIb,0BAAWzxB,KAAK,CAACwpB,MAAjB,IAA4BxpB,KAAK,CAACwpB,MAJrB;AAKb,yBAAUxpB,KAAK,CAACsxB,KAAhB,IAA0BtxB,KAAK,CAACsxB,KALnB;AAMb,8BAAetxB,KAAK,CAAC0xB,SAArB,IAAmC1xB,KAAK,CAAC0xB;AAN5B,OAAf;AASA,aAAO5D,SAAP;AACD,KAzBuB,CAAxB;AA2BA,WAAO,MAAMrkB,2DAAC,CAACzJ,KAAK,CAAC2B,GAAP,EAAY;AACxB6Z,WAAK,EAAEsL,OAAO,CAACrmB;AADS,KAAZ,EAEXuG,KAAK,CAACoM,OAFK,oBAEXpM,KAAK,CAACoM,OAAN,EAFW,CAAd;AAGD;;AA1D4B,CAAD,CAA9B,E;;AC3EA;CAGA;;CAGA;;AACA;CAGA;;AAGA,MAAM2d,gBAAW,GAAG,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,KAAzB,CAApB,C,CAA6D;;AAE7D,MAAMa,SAAS,GAAG,CAAC,OAAD,EAAU,KAAV,EAAiB,QAAjB,CAAlB;;AAEA,SAASC,YAAT,CAAuB9qB,MAAvB,EAAuC+qB,GAAvC,EAAsE;AACpE,SAAOf,gBAAW,CAAC7pB,MAAZ,CAAmB,CAAClH,KAAD,EAAQuE,GAAR,KAAgB;AACxCvE,SAAK,CAAC+G,MAAM,GAAGmqB,oEAAU,CAAC3sB,GAAD,CAApB,CAAL,GAAkCutB,GAAG,EAArC;AACA,WAAO9xB,KAAP;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;;AAED,MAAM+xB,cAAc,GAAIn0B,GAAD,IAAc,CAAC,GAAGg0B,SAAJ,EAAe,UAAf,EAA2B,SAA3B,EAAsCl1B,QAAtC,CAA+CkB,GAA/C,CAArC;;AACA,MAAMo0B,UAAU,GAAGH,YAAY,CAAC,OAAD,EAAU,OAAO;AAC9C5oB,MAAI,EAAE/G,MADwC;AAE9CkR,SAAO,EAAE,IAFqC;AAG9CqV,WAAS,EAAEsJ;AAHmC,CAAP,CAAV,CAA/B;;AAMA,MAAME,gBAAgB,GAAIr0B,GAAD,IAAc,CAAC,GAAGg0B,SAAJ,EAAe,eAAf,EAAgC,cAAhC,EAAgDl1B,QAAhD,CAAyDkB,GAAzD,CAAvC;;AACA,MAAMs0B,YAAY,GAAGL,YAAY,CAAC,SAAD,EAAY,OAAO;AAClD5oB,MAAI,EAAE/G,MAD4C;AAElDkR,SAAO,EAAE,IAFyC;AAGlDqV,WAAS,EAAEwJ;AAHuC,CAAP,CAAZ,CAAjC;;AAMA,MAAME,qBAAqB,GAAIv0B,GAAD,IAAc,CAAC,GAAGg0B,SAAJ,EAAe,eAAf,EAAgC,cAAhC,EAAgD,SAAhD,EAA2Dl1B,QAA3D,CAAoEkB,GAApE,CAA5C;;AACA,MAAMw0B,iBAAiB,GAAGP,YAAY,CAAC,cAAD,EAAiB,OAAO;AAC5D5oB,MAAI,EAAE/G,MADsD;AAE5DkR,SAAO,EAAE,IAFmD;AAG5DqV,WAAS,EAAE0J;AAHiD,CAAP,CAAjB,CAAtC;AAMA,MAAMf,YAAO,GAAG;AACdiB,OAAK,EAAEtyB,MAAM,CAACE,IAAP,CAAY+xB,UAAZ,CADO;AAEdM,SAAO,EAAEvyB,MAAM,CAACE,IAAP,CAAYiyB,YAAZ,CAFK;AAGdK,cAAY,EAAExyB,MAAM,CAACE,IAAP,CAAYmyB,iBAAZ;AAHA,CAAhB;AAMA,MAAMI,QAAQ,GAAG;AACfH,OAAK,EAAE,OADQ;AAEfC,SAAO,EAAE,SAFM;AAGfC,cAAY,EAAE;AAHC,CAAjB;;AAMA,SAAShB,oBAAT,CAA0BtoB,IAA1B,EAAsDgK,IAAtD,EAAoE1O,GAApE,EAAiF;AAC/E,MAAIopB,SAAS,GAAG6E,QAAQ,CAACvpB,IAAD,CAAxB;;AACA,MAAI1E,GAAG,IAAI,IAAX,EAAiB;AACf,WAAO9E,SAAP;AACD;;AACD,MAAIwT,IAAJ,EAAU;AACR;AACA,UAAMue,UAAU,GAAGve,IAAI,CAACpV,OAAL,CAAaoL,IAAb,EAAmB,EAAnB,CAAnB;AACA0kB,aAAS,eAAQ6D,UAAR,CAAT;AACD,GAT8E,CAU/E;;;AACA7D,WAAS,eAAQppB,GAAR,CAAT;AACA,SAAOopB,SAAS,CAAC3nB,WAAV,EAAP;AACD;;AAED,yCAAe6U,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,MADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACf2X,SAAK,EAAEhf,OADQ;AAEfif,aAAS,EAAEjf,OAFI;AAGf4e,SAAK,EAAE;AACLppB,UAAI,EAAE/G,MADD;AAELkR,aAAO,EAAE,IAFJ;AAGLqV,eAAS,EAAEsJ;AAHN,KAHQ;AAQf,OAAGC,UARY;AASfM,WAAO,EAAE;AACPrpB,UAAI,EAAE/G,MADC;AAEPkR,aAAO,EAAE,IAFF;AAGPqV,eAAS,EAAEwJ;AAHJ,KATM;AAcf,OAAGC,YAdY;AAefK,gBAAY,EAAE;AACZtpB,UAAI,EAAE/G,MADM;AAEZkR,aAAO,EAAE,IAFG;AAGZqV,eAAS,EAAE0J;AAHC,KAfC;AAoBf,OAAGC,iBApBY;AAqBf,OAAGhL,YAAY;AArBA,GAAD,CAHa;;AA2B7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM8f,OAAO,GAAGzW,kEAAQ,CAAC,MAAM;AAC7B,YAAMyd,SAAgB,GAAG,EAAzB,CAD6B,CAG7B;;AACA,UAAI7kB,IAAJ;;AACA,WAAKA,IAAL,IAAamoB,YAAb,EAAsB;AACpBA,oBAAO,CAACnoB,IAAD,CAAP,CAAcnF,OAAd,CAAsBmP,IAAI,IAAI;AAC5B,gBAAMxS,KAAa,GAAIT,KAAD,CAAeiT,IAAf,CAAtB;AACA,gBAAM0a,SAAS,GAAG4D,oBAAe,CAACtoB,IAAD,EAAOgK,IAAP,EAAaxS,KAAb,CAAjC;AACA,cAAIktB,SAAJ,EAAeG,SAAS,CAAEnxB,IAAX,CAAgBgxB,SAAhB;AAChB,SAJD;AAKD;;AAEDG,eAAS,CAACnxB,IAAV,CAAe;AACb,6BAAqBqD,KAAK,CAAC0yB,SADd;AAEb,wBAAgB1yB,KAAK,CAACyyB,KAFT;AAGb,yBAAUzyB,KAAK,CAACqyB,KAAhB,IAA0BryB,KAAK,CAACqyB,KAHnB;AAIb,2BAAYryB,KAAK,CAACsyB,OAAlB,IAA8BtyB,KAAK,CAACsyB,OAJvB;AAKb,iCAAkBtyB,KAAK,CAACuyB,YAAxB,IAAyCvyB,KAAK,CAACuyB;AALlC,OAAf;AAQA,aAAOzE,SAAP;AACD,KAtBuB,CAAxB;AAwBA,WAAO,MAAMrkB,2DAAC,CAACzJ,KAAK,CAAC2B,GAAP,EAAY;AACxB6Z,WAAK,EAAE,CAAC,OAAD,EAAUsL,OAAO,CAACrmB,KAAlB;AADiB,KAAZ,EAEXuG,KAAK,CAACoM,OAFK,oBAEXpM,KAAK,CAACoM,OAAN,EAFW,CAAd;AAGD;;AAvD4B,CAAD,CAA9B,E;;ACxEA;AACA;AAEO,SAASuf,sBAAT,CACLC,KADK,EAELjxB,GAAG,GAAG,KAFD,EAGLrD,IAHK,EAIL;AACA,SAAOuc,yEAAe,CAAC;AACrBvc,QAAI,EAAEA,IAAF,WAAEA,IAAF,GAAU4yB,oEAAU,CAAC9oB,kEAAQ,CAACwqB,KAAK,CAAC/0B,OAAN,CAAc,KAAd,EAAqB,GAArB,CAAD,CAAT,CADH;AAGrBmC,SAAK,EAAE8a,SAAS,CAAC;AACfnZ,SAAG,EAAE;AACHsH,YAAI,EAAE/G,MADH;AAEHkR,eAAO,EAAEzR;AAFN;AADU,KAAD,CAHK;;AAUrBoZ,SAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,KAAT,EAAoB;AACvB,aAAO,MAAMyC,2DAAC,CAACzJ,KAAK,CAAC2B,GAAP,EAAY;AACxB6Z,aAAK,EAAEoX;AADiB,OAAZ,EAEX5rB,KAAK,CAACoM,OAFK,oBAEXpM,KAAK,CAACoM,OAAN,EAFW,CAAd;AAGD;;AAdoB,GAAD,CAAtB;AAgBD,C;;ACxBD;AAEA,4CAAeuf,sBAAsB,CAAC,aAAD,EAAgB,KAAhB,EAAuB,SAAvB,CAArC,E;;ACFA;AACA;AACA;;;ACFA;;;ACAA;;;ACAA;;;;ACAA;CAGA;;AACA;AACA;CAGA;;AACO,SAASE,eAAT,CAA0B7yB,KAA1B,EAAoE;AACzE,SAAO;AACL8yB,gBAAY,EAAEziB,kEAAQ,CAAC,MAAM;AAC3B,YAAM0iB,KAAK,GAAG5wB,MAAM,CAACnC,KAAK,CAACgzB,WAAP,CAApB;AAEA,aAAOD,KAAK,GACR;AAAEE,qBAAa,EAAE/wB,MAAM,CAAC,IAAI6wB,KAAJ,GAAY,GAAb,CAAN,GAA0B;AAA3C,OADQ,GAERtzB,SAFJ;AAGD,KANqB;AADjB,GAAP;AASD;AAED,gDAAeob,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,aADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfkY,eAAW,EAAE,CAAC9wB,MAAD,EAASC,MAAT,CADE;AAEf+wB,gBAAY,EAAEhxB,MAFC;AAGf,OAAG8nB,kBAAkB;AAHN,GAAD,CAHa;;AAS7BjP,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEsjB;AAAF,QAAsBD,YAAY,CAACrqB,KAAD,CAAxC;AACA,UAAM;AAAE8yB;AAAF,QAAmBD,eAAe,CAAC7yB,KAAD,CAAxC;AAEA,WAAO,MAAM;AAAN,eACM,cADN;AAAA,eAC6BsqB,eAAe,CAAC7pB;AAD7C;AAAA,eAEQ,qBAFR;AAAA,eAEsCqyB,YAAY,CAACryB;AAFnD,iBAGDuG,KAAK,CAACmsB,UAHL,oBAGDnsB,KAAK,CAACmsB,UAAN,EAHC;AAAA,eAIS,CAAC,uBAAD,EAA0BnzB,KAAK,CAACkzB,YAAhC;AAJT,QAI0DlsB,KAAK,CAACoM,OAJhE,oBAI0DpM,KAAK,CAACoM,OAAN,EAJ1D,UAAP;AAOD;;AApB4B,CAAD,CAA9B,E;;ACrBA;AAoBA,SAAS0c,iBAAT,CAAkB9uB,EAAlB,EAAmCyuB,OAAnC,EAAqE;AACnE,QAAME,SAAS,GAAGF,OAAO,CAACE,SAAR,IAAqB,EAAvC;AACA,QAAMlvB,KAAK,GAAGgvB,OAAO,CAAChvB,KAAtB;AACA,QAAM;AAAE2yB,WAAF;AAAWj1B;AAAX,MAAuB,OAAOsC,KAAP,KAAiB,QAAjB,GACzBA,KADyB,GAEzB;AAAE2yB,WAAO,EAAE3yB,KAAX;AAAkBtC,WAAO,EAAE;AAA3B,GAFJ;AAIA,QAAMk1B,QAAQ,GAAG,IAAIC,oBAAJ,CAAyB,CACxCzvB,OAAoC,GAAG,EADC,EAExCwvB,QAFwC,KAGrC;AACH;AACA,QAAI,CAACryB,EAAE,CAACuyB,QAAR,EAAkB,OAFf,CAEsB;AAEzB;AACA;;AACA,QACEH,OAAO,KACL,CAACzD,SAAS,CAAC6D,KAAX,IACAxyB,EAAE,CAACuyB,QAAH,CAAYE,IAFP,CADT,EAKE;AACA,YAAMC,cAAc,GAAGjgB,OAAO,CAAC5P,OAAO,CAAC6R,IAAR,CAAaie,KAAK,IAAIA,KAAK,CAACD,cAA5B,CAAD,CAA9B;AAEAN,aAAO,CAACM,cAAD,EAAiB7vB,OAAjB,EAA0BwvB,QAA1B,CAAP;AACD,KAfE,CAiBH;AACA;;;AACA,QAAIryB,EAAE,CAACuyB,QAAH,CAAYE,IAAZ,IAAoB9D,SAAS,CAACiE,IAAlC,EAAwC7D,mBAAS,CAAC/uB,EAAD,CAAT,CAAxC,CACA;AADA,SAEMA,EAAE,CAACuyB,QAAH,CAAYE,IAAZ,GAAmB,IAApB;AACN,GAzBgB,EAyBdt1B,OAzBc,CAAjB;AA2BA6C,IAAE,CAACuyB,QAAH,GAAc;AAAEE,QAAI,EAAE,KAAR;AAAeJ;AAAf,GAAd;AAEAA,UAAQ,CAACQ,OAAT,CAAiB7yB,EAAjB;AACD;;AAED,SAAS+uB,mBAAT,CAAoB/uB,EAApB,EAAqC;AACnC;AACA,MAAI,CAACA,EAAE,CAACuyB,QAAR,EAAkB;;AAElBvyB,IAAE,CAACuyB,QAAH,CAAYF,QAAZ,CAAqBS,SAArB,CAA+B9yB,EAA/B;;AACA,SAAOA,EAAE,CAACuyB,QAAV;AACD;;AAEM,MAAMQ,SAAuC,GAAG;AACrDjE,SADqD;AAErDC;AAFqD,CAAhD;AAKP,8CAAegE,SAAf,E;;ACxEA;AAGO,SAASC,SAAT,CAAoBC,MAApB,EAA+C;AACpD,QAAM73B,EAAE,GAAGgqB,4EAAkB,EAA7B;AACAhqB,IAAE,CAAC63B,MAAH,GAAYA,MAAZ;AACD,C;;;CCJD;;CAaA;;CAGA;;AACA;AAGA;CAGA;;CASA;;AAWA,yCAAepZ,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,MADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfkY,eAAW,EAAE,CAAC9wB,MAAD,EAASC,MAAT,CADE;AAEf+xB,OAAG,EAAEhyB,MAFU;AAGfiyB,SAAK,EAAE1gB,OAHQ;AAIf2gB,SAAK,EAAE3gB,OAJQ;AAKf4gB,WAAO,EAAEnyB,MALM;AAMf/D,WAAO,EAAE;AACP8K,UAAI,EAAElJ,MADC;AAEP;AACA;AACAqT,aAAO,EAAE,OAAO;AACdkhB,YAAI,EAAE70B,SADQ;AAEd80B,kBAAU,EAAE90B,SAFE;AAGd+0B,iBAAS,EAAE/0B;AAHG,OAAP;AAJF,KANM;AAgBfsU,YAAQ,EAAE;AACR9K,UAAI,EAAE/G,MADE;AAERkR,aAAO,EAAE;AAFD,KAhBK;AAoBfqhB,SAAK,EAAEvyB,MApBQ;AAqBfwyB,OAAG,EAAE;AACHzrB,UAAI,EAAE,CAAC/G,MAAD,EAASnC,MAAT,CADH;AAEHqT,aAAO,EAAE;AAFN,KArBU;AAyBfuhB,UAAM,EAAEzyB,MAzBO;AA0Bf,OAAGsmB,mBAAmB;AA1BP,GAAD,CAHa;AAgC7BoM,OAAK,EAAE,CAAC,WAAD,EAAc,MAAd,EAAsB,OAAtB,CAhCsB;;AAkC7B7Z,OAAK,CAAE/a,KAAF,EAAS;AAAE2S,QAAF;AAAQ3L;AAAR,GAAT,EAA0B;AAC7B,UAAM6tB,UAAU,GAAGzqB,6DAAG,CAAC,EAAD,CAAtB,CAD6B,CACF;;AAC3B,UAAM0qB,KAAK,GAAG1qB,6DAAG,EAAjB;AACA,UAAMiP,KAAK,GAAGjP,6DAAG,CAA0C,MAA1C,CAAjB;AACA,UAAM2qB,YAAY,GAAG3qB,6DAAG,EAAxB;AACA,UAAM4qB,aAAa,GAAG5qB,6DAAG,EAAzB;AAEA,UAAM6qB,aAAa,GAAG5kB,kEAAQ,CAAY,MAAM;AAC9C,aAAOrQ,KAAK,CAAC00B,GAAN,IAAa,OAAO10B,KAAK,CAAC00B,GAAb,KAAqB,QAAlC,GACH;AACAA,WAAG,EAAE10B,KAAK,CAAC00B,GAAN,CAAUA,GADf;AAEAC,cAAM,EAAE30B,KAAK,CAAC20B,MAAN,IAAgB30B,KAAK,CAAC00B,GAAN,CAAUC,MAFlC;AAGAN,eAAO,EAAEr0B,KAAK,CAACq0B,OAAN,IAAiBr0B,KAAK,CAAC00B,GAAN,CAAUL,OAHpC;AAIAa,cAAM,EAAE/yB,MAAM,CAACnC,KAAK,CAACgzB,WAAN,IAAqBhzB,KAAK,CAAC00B,GAAN,CAAUQ,MAAhC;AAJd,OADG,GAMD;AACFR,WAAG,EAAE10B,KAAK,CAAC00B,GADT;AAEFC,cAAM,EAAE30B,KAAK,CAAC20B,MAFZ;AAGFN,eAAO,EAAEr0B,KAAK,CAACq0B,OAHb;AAIFa,cAAM,EAAE/yB,MAAM,CAACnC,KAAK,CAACgzB,WAAN,IAAqB,CAAtB;AAJZ,OANN;AAYD,KAb6B,CAA9B;AAcA,UAAMA,WAAW,GAAG3iB,kEAAQ,CAAC,MAAM;AACjC,aAAO4kB,aAAa,CAACx0B,KAAd,CAAoBy0B,MAApB,IAA8BH,YAAY,CAACt0B,KAAb,GAAsBu0B,aAAa,CAACv0B,KAAlE,IAA4E,CAAnF;AACD,KAF2B,CAA5B;AAIAoR,mEAAK,CAAC,MAAM7R,KAAK,CAAC00B,GAAb,EAAkB,MAAM;AAC3BjB,UAAI,CAACpa,KAAK,CAAC5Y,KAAN,KAAgB,MAAjB,CAAJ;AACD,KAFI,CAAL,CAzB6B,CA4B7B;;AAEA00B,2EAAa,CAAC,MAAM1B,IAAI,EAAX,CAAb;;AAEA,aAASA,IAAT,CAAeC,cAAf,EAAyC;AACvC;AACA;AACA;AACA,UACE7c,qBAAqB,IACrB,CAAC6c,cADD,IAEA,CAAC1zB,KAAK,CAACo0B,KAHT,EAIE;AAEF/a,WAAK,CAAC5Y,KAAN,GAAc,SAAd;AACA20B,wEAAQ,CAAC,MAAM;AAAA;;AACbziB,YAAI,CAAC,WAAD,EAAc,iBAAAmiB,KAAK,CAACr0B,KAAN,kCAAao0B,UAAb,KAA2BI,aAAa,CAACx0B,KAAd,CAAoBi0B,GAA7D,CAAJ;AACA,YAAI,CAAC1B,WAAW,CAACvyB,KAAjB,EAAwB40B,WAAW,CAACP,KAAK,CAACr0B,KAAP,CAAX;AACxB60B,cAAM;AACP,OAJO,CAAR;;AAMA,UAAIL,aAAa,CAACx0B,KAAd,CAAoB4zB,OAAxB,EAAiC;AAC/B,cAAMkB,OAAO,GAAG,IAAIC,KAAJ,EAAhB;AACAD,eAAO,CAACb,GAAR,GAAcO,aAAa,CAACx0B,KAAd,CAAoB4zB,OAAlC;AACAgB,mBAAW,CAACE,OAAD,EAAU,IAAV,CAAX;AACD;AACF;;AAED,aAASE,MAAT,GAAmB;AAAA;;AACjBH,YAAM;AACNjc,WAAK,CAAC5Y,KAAN,GAAc,QAAd;AACAkS,UAAI,CAAC,MAAD,EAAS,kBAAAmiB,KAAK,CAACr0B,KAAN,mCAAao0B,UAAb,KAA2BI,aAAa,CAACx0B,KAAd,CAAoBi0B,GAAxD,CAAJ;AACD;;AAED,aAASgB,OAAT,GAAoB;AAAA;;AAClBrc,WAAK,CAAC5Y,KAAN,GAAc,OAAd;AACAkS,UAAI,CAAC,OAAD,EAAU,kBAAAmiB,KAAK,CAACr0B,KAAN,mCAAao0B,UAAb,KAA2BI,aAAa,CAACx0B,KAAd,CAAoBi0B,GAAzD,CAAJ;AACD;;AAED,aAASY,MAAT,GAAmB;AACjB,YAAMK,GAAG,GAAGb,KAAK,CAACr0B,KAAlB;AACA,UAAIk1B,GAAJ,EAASd,UAAU,CAACp0B,KAAX,GAAmBk1B,GAAG,CAACd,UAAJ,IAAkBc,GAAG,CAACjB,GAAzC;AACV;;AAED,aAASW,WAAT,CAAsBM,GAAtB,EAA6CC,OAAsB,GAAG,GAAtE,EAA2E;AACzE,YAAMC,IAAI,GAAG,MAAM;AACjB,cAAM;AAAEb,uBAAa,EAAEc,SAAjB;AAA4Bf,sBAAY,EAAEgB;AAA1C,YAAuDJ,GAA7D;;AAEA,YAAIG,SAAS,IAAIC,QAAjB,EAA2B;AACzBhB,sBAAY,CAACt0B,KAAb,GAAqBs1B,QAArB;AACAf,uBAAa,CAACv0B,KAAd,GAAsBq1B,SAAtB;AACD,SAHD,MAGO,IAAI,CAACH,GAAG,CAAChS,QAAL,IAAiBtK,KAAK,CAAC5Y,KAAN,KAAgB,SAAjC,IAA8Cm1B,OAAO,IAAI,IAA7D,EAAmE;AACxElvB,oBAAU,CAACmvB,IAAD,EAAOD,OAAP,CAAV;AACD,SAFM,MAEA,IAAID,GAAG,CAACd,UAAJ,CAAemB,QAAf,CAAwB,MAAxB,KAAmCL,GAAG,CAACd,UAAJ,CAAe5tB,UAAf,CAA0B,oBAA1B,CAAvC,EAAwF;AAC7F8tB,sBAAY,CAACt0B,KAAb,GAAqB,CAArB;AACAu0B,uBAAa,CAACv0B,KAAd,GAAsB,CAAtB;AACD;AACF,OAZD;;AAcAo1B,UAAI;AACL;;AAED,UAAMI,cAAc,GAAG5lB,kEAAQ,CAAC,OAAO;AACrC,2BAAqBrQ,KAAK,CAACm0B,KADU;AAErC,6BAAuB,CAACn0B,KAAK,CAACm0B;AAFO,KAAP,CAAD,CAA/B;;AAKA,UAAM+B,OAAO,GAAG7lB,kEAAQ,CAAC,MAAM;AAC7B,UAAI,CAAC4kB,aAAa,CAACx0B,KAAd,CAAoBi0B,GAArB,IAA4Brb,KAAK,CAAC5Y,KAAN,KAAgB,MAAhD,EAAwD;AAExD,YAAMk1B,GAAG,GAAGlsB,2DAAC,CAAC,KAAD,EAAQ;AACnB+R,aAAK,EAAE,CAAC,YAAD,EAAeya,cAAc,CAACx1B,KAA9B,CADY;AAEnBi0B,WAAG,EAAEO,aAAa,CAACx0B,KAAd,CAAoBi0B,GAFN;AAGnBC,cAAM,EAAEM,aAAa,CAACx0B,KAAd,CAAoBk0B,MAHT;AAInBF,aAAK,EAAEz0B,KAAK,CAACy0B,KAJM;AAKnBrqB,WAAG,EAAE0qB,KALc;AAMnBW,cANmB;AAOnBC;AAPmB,OAAR,CAAb;AAUA,YAAMS,OAAO,GAAGnvB,KAAK,CAACmvB,OAAT,oBAAGnvB,KAAK,CAACmvB,OAAN,EAAhB;AAEA,aAAO9sB,eAAe,CACpBrJ,KADoB,EAEpB;AAAEo2B,cAAM,EAAE;AAAV,OAFoB,EAGpB3F,wEAAc,CACZ0F,OAAO;AAAA,iBACY;AADZ,UAC8BA,OAD9B,EACuCR,GADvC,KAEHA,GAHQ,EAIZ,CAAC,CAACU,2DAAD,EAAQhd,KAAK,CAAC5Y,KAAN,KAAgB,QAAxB,CAAD,CAJY,CAHM,CAAtB;AAUD,KAzBuB,CAAxB;;AA2BA,UAAM61B,cAAc,GAAGjmB,kEAAQ,CAAC,MAAM;AACpC,aAAOhH,eAAe,CACpBrJ,KADoB,EAEpB,EAFoB,EAGpBi1B,aAAa,CAACx0B,KAAd,CAAoB4zB,OAApB,IAA+Bhb,KAAK,CAAC5Y,KAAN,KAAgB,QAA/C;AAAA,iBAEW,CAAC,YAAD,EAAe,qBAAf,EAAsCw1B,cAAc,CAACx1B,KAArD,CAFX;AAAA,eAGUw0B,aAAa,CAACx0B,KAAd,CAAoB4zB,OAH9B;AAAA,eAIQ;AAJR,8BAMI50B,SATgB,CAAtB;AAWD,KAZ8B,CAA/B;;AAcA,UAAM82B,aAAa,GAAGlmB,kEAAQ,CAAC,MAAM;AACnC,UAAI,CAACrJ,KAAK,CAACwvB,WAAX,EAAwB;AAExB,YAAMA,WAAW,GAAGnd,KAAK,CAAC5Y,KAAN,KAAgB,SAAhB,IAA8B4Y,KAAK,CAAC5Y,KAAN,KAAgB,OAAhB,IAA2B,CAACuG,KAAK,CAAC5J,KAAhE;AAAA,iBACL;AADK,UACkB4J,KAAK,CAACwvB,WAAN,EADlB,KAEhB/2B,SAFJ;AAIA,aAAO4J,eAAe,CAACrJ,KAAD,EAAQ;AAAEo2B,cAAM,EAAE;AAAV,OAAR,EAA0BI,WAA1B,CAAtB;AACD,KAR6B,CAA9B;;AAUA,UAAMC,OAAO,GAAGpmB,kEAAQ,CAAC,MAAM;AAC7B,UAAI,CAACrJ,KAAK,CAAC5J,KAAX,EAAkB;AAElB,YAAMA,KAAK,GAAGic,KAAK,CAAC5Y,KAAN,KAAgB,OAAhB;AAAA,iBACC;AADD,UACkBuG,KAAK,CAAC5J,KAAN,EADlB,KAEVqC,SAFJ;AAIA,aAAO4J,eAAe,CAACrJ,KAAD,EAAQ;AAAEo2B,cAAM,EAAE;AAAV,OAAR,EAA0Bh5B,KAA1B,CAAtB;AACD,KARuB,CAAxB;;AAUA42B,aAAS,CAAC,MAAMvD,wEAAc,CAAC;AAAD,eAEpB,OAFoB;AAAA,qBAGZuC,WAAW,CAACvyB,KAHA;AAAA,oBAIbT,KAAK,CAACk0B,GAJO;AAAA,cAKnBl0B,KAAK,CAACk0B,GAAN,GAAY,KAAZ,GAAoBz0B;AALD;AAOxB0zB,gBAAU,EAAE,MAAM,CAAC+C,OAAO,CAACz1B,KAAT,EAAgB61B,cAAc,CAAC71B,KAA/B,EAAsC81B,aAAa,CAAC91B,KAApD,EAA2Dg2B,OAAO,CAACh2B,KAAnE,CAPM;AAQxB2S,aAAO,EAAEpM,KAAK,CAACoM,OARS;AAAA;AAAA,kDAW5B,CAAC+c,YAAY,CAA0BuG,SAA1B,EAAqC;AAChDj2B,WAAK,EAAE;AACL2yB,eAAO,EAAEK,IADJ;AAELt1B,eAAO,EAAE6B,KAAK,CAAC7B;AAFV,OADyC;AAKhDwxB,eAAS,EAAE;AAAEiE,YAAI,EAAE;AAAR;AALqC,KAArC,CAAb,CAX4B,CAArB,CAAT;AAoBA,WAAO;AACLiB,gBADK;AAELC,WAFK;AAGLzb,WAHK;AAIL0b,kBAJK;AAKLC;AALK,KAAP;AAOD;;AAzN4B,CAAD,CAA9B,E;;;;AC7CA;;;;ACAA;CAGA;;AACA;CAGA;;AACA;AAEA,4CAAena,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,SADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAACxH,eAAe,EAAhB,CAHa;;AAK7ByH,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEqP,mBAAF;AAAiBZ,mBAAjB;AAAgCvR;AAAhC,QAA0C4Q,YAAY,CAAC9U,KAAD,CAA5D;AAEAg0B,aAAS,CAAC,MAAM;AAAN,eAEC3d,aAAa,CAAC5V,KAFf;AAAA,eAGC;AACLqV,cAAM,EAAE9V,KAAK,CAACwT,UAAN,GAAmB,OAAnB,GAA6B/T;AADhC;AAHD,QAMLuH,KAAK,CAACoM,OAND,oBAMLpM,KAAK,CAACoM,OAAN,EANK,KAAD,CAAT;AASA,WAAO;AACLqC,mBADK;AAELvR;AAFK,KAAP;AAID;;AArB4B,CAAD,CAA9B,E;;;ACVA;CAGA;;AACA;CAGA;;AAGA,gDAAe2W,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,aADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACf/G,YAAQ,EAAE;AACR9K,UAAI,EAAE/G,MADE;AAERyY,cAAQ,EAAE;AAFF,KADK;AAKf,OAAGjH,mBAAmB;AALP,GAAD,CAHa;;AAW7BqH,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAMgN,MAAM,GAAGF,aAAa,CAC1B9T,KAAK,CAAC1B,IADoB,EAE1B6pB,+DAAK,CAACnoB,KAAD,EAAQ,UAAR,CAFqB,EAG1BqQ,kEAAQ,CAAC;AAAA;;AAAA,gCAAMrQ,KAAK,CAAC+T,QAAZ,8BAAwB,MAAxB;AAAA,KAAD,CAHkB,EAI1BoU,+DAAK,CAACnoB,KAAD,EAAQ,MAAR,CAJqB,CAA5B;AAOA,WAAO,MAAM;AAAN,eACQgU,MAAM,CAACvT;AADf,aAAP;AAGD;;AAtB4B,CAAD,CAA9B,E;;ACVA;;;;ACAA;AACA;AACA;AACA;AAEA,oDAAeoa,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,iBADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACflW,UAAM,EAAE1C,MADO;AAEfme,kBAAc,EAAEne,MAFD;AAGfge,YAAQ,EAAEngB,MAHK;AAIf4gB,OAAG,EAAE;AACH1X,UAAI,EAAEwK,OADH;AAEHL,aAAO,EAAE3T;AAFN;AAJU,GAAD,CAHa;;AAa7Bsb,OAAK,CAAE/a,KAAF,EAASspB,GAAT,EAAc;AACjB,UAAMqN,cAAc,GAAGxX,aAAa,CAACnf,KAAD,CAApC;AACA,UAAM;AAAEwjB;AAAF,QAAiBC,UAAU,CAACzjB,KAAD,EAAQ22B,cAAR,CAAjC;AAEA,WAAO,MAAM;AAAN,eAAkBnT,UAAU,CAAC/iB;AAA7B,QAAqC6oB,GAAG,CAACtiB,KAAJ,CAAUoM,OAA/C,oBAAqCkW,GAAG,CAACtiB,KAAJ,CAAUoM,OAAV,EAArC,KAAP;AACD;;AAlB4B,CAAD,CAA9B,E;;;;ACLA;;;ACAA;CAGA;;AACO,SAASwjB,UAAT,GAAuB;AAC5B,QAAMC,QAAQ,GAAGzsB,6DAAG,CAAC,KAAD,CAApB;AAEA0sB,qEAAS,CAAC,MAAM;AACdz1B,UAAM,CAAC01B,qBAAP,CAA6B,MAAM;AACjCF,cAAQ,CAACp2B,KAAT,GAAiB,IAAjB;AACD,KAFD;AAGD,GAJQ,CAAT;AAMA,QAAMu2B,aAAa,GAAG3mB,kEAAQ,CAAC,MAAM,CAACwmB,QAAQ,CAACp2B,KAAV,GAAmB;AACtD+I,cAAU,EAAE;AAD0C,GAAnB,GAEhC/J,SAFyB,CAA9B;AAIA,SAAO;AAAEu3B;AAAF,GAAP;AACD,C;;;AClBD;CAGA;;AACA;AACA;CAGA;;AACA;AACA;AAEA,0CAAenc,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,OADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAACsM,YAAY,CAAC;AAAEzlB,OAAG,EAAE;AAAP,GAAD,CAAb,CAHa;;AAK7BoZ,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEwO;AAAF,QAAiB5B,OAAO,EAA9B;AACA,UAAM;AAAEojB;AAAF,QAAoBJ,UAAU,EAApC;AAEA,WAAO,MAAM;AAAN,eAEG,QAFH;AAAA,eAGI,CACLphB,UAAU,CAAC/U,KADN,EAELu2B,aAAa,CAACv2B,KAFT;AAHJ;AAAA;AAAA,iBAQQ;AARR,UASCuG,KAAK,CAACoM,OATP,oBASCpM,KAAK,CAACoM,OAAN,EATD;AAAA,oBAAP;AAaD;;AAtB4B,CAAD,CAA9B,E;;;;ACZA;;;ACAA;AACA;CAGA;;AAGA;AACO,SAAS6jB,eAAT,CAKLj3B,KALK,EAMLiT,IANK,EAOLikB,YAPK,EAQLC,WAA2C,GAAIt2B,CAAD,IAAYA,CARrD,EASLu2B,YAA2C,GAAIv2B,CAAD,IAAYA,CATrD,EAUL;AACA,QAAMzE,EAAE,GAAGgqB,4EAAkB,EAA7B;AAEA,MAAI,CAAChqB,EAAL,EAASe,YAAY,CAAC,6DAAD,CAAZ;AAET,QAAMk6B,aAAa,GAAGhnB,kEAAQ,CAAC,MAAM;AAAA;;AACnC,WAAO,CAAC,EACN,OAAOrQ,KAAK,CAACiT,IAAD,CAAZ,KAAuB,WAAvB,KACC,CAAA7W,EAAE,QAAF,+BAAAA,EAAE,CAAEk7B,KAAJ,CAAUt3B,KAAV,qCAAiByf,cAAjB,CAAgCxM,IAAhC,OAAyC7W,EAAzC,wCAAyCA,EAAE,CAAEk7B,KAAJ,CAAUt3B,KAAnD,qBAAyC,iBAAiByf,cAAjB,CAAgCzV,WAAW,CAACiJ,IAAD,CAA3C,CAAzC,CADD,CADM,CAAR;AAID,GAL6B,CAA9B;AAOA,QAAMV,QAAQ,GAAGnI,6DAAG,CAAC+sB,WAAW,CAACE,aAAa,CAAC52B,KAAd,GAAsBT,KAAK,CAACiT,IAAD,CAA3B,GAAoCikB,YAArC,CAAZ,CAApB;AAEA,SAAO7mB,kEAAQ,CAAQ;AACrBmC,OAAG,GAAI;AACL,UAAI6kB,aAAa,CAAC52B,KAAlB,EAAyB,OAAO02B,WAAW,CAACn3B,KAAK,CAACiT,IAAD,CAAN,CAAlB,CAAzB,KACK,OAAOV,QAAQ,CAAC9R,KAAhB;AACN,KAJoB;;AAKrBgS,OAAG,CAAE8kB,QAAF,EAAY;AACbhlB,cAAQ,CAAC9R,KAAT,GAAiB82B,QAAjB;AACAn7B,QAAE,QAAF,YAAAA,EAAE,CAAEuW,IAAJ,kBAAmBM,IAAnB,GAA2BmkB,YAAY,CAACG,QAAD,CAAvC;AACD;;AARoB,GAAR,CAAf;AAUD,C;;;AC1CD;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AACA;AAEA,sDAAe1c,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,mBADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACf0c,wBAAoB,EAAE/jB,OADP;AAEfgkB,iBAAa,EAAEhkB,OAFA;AAGfyV,cAAU,EAAE;AACVjgB,UAAI,EAAEwK,OADI;AAEVL,aAAO,EAAE;AAFC,KAHG;AAOfskB,aAAS,EAAEjkB,OAPI;AAQfkkB,QAAI,EAAElkB,OARS;AASfmkB,aAAS,EAAE;AACT3uB,UAAI,EAAE,CAAC9G,MAAD,EAASD,MAAT,CADG;AAETkR,aAAO,EAAE;AAFA,KATI;AAafshB,OAAG,EAAExyB,MAbU;AAcf21B,aAAS,EAAEpkB,OAdI;AAef0C,SAAK,EAAE;AACLlN,UAAI,EAAE,CAAC9G,MAAD,EAASD,MAAT,CADD;AAELkR,aAAO,EAAE;AAFJ,KAfQ;AAmBf,OAAGuW,eAAe,EAnBH;AAoBf,OAAGY,kBAAkB,EApBN;AAqBf,OAAG7W,mBAAmB,EArBP;AAsBf,OAAGkX,iBAAiB,EAtBL;AAuBf,OAAGlE,gBAAgB,EAvBJ;AAwBf,OAAGU,YAAY,CAAC;AAAEzlB,SAAG,EAAE;AAAP,KAAD;AAxBA,GAAD,CAHa;;AA8B7BoZ,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEiX;AAAF,QAAoBD,SAAS,CAAC9pB,KAAD,EAAQ,qBAAR,CAAnC;AACA,UAAM;AAAE0qB;AAAF,QAAuBD,YAAY,CAACzqB,KAAD,CAAzC;AACA,UAAM;AAAE0Z;AAAF,QAAaY,UAAU,EAA7B;AACA,UAAM;AAAE2Q,qBAAF;AAAmBC;AAAnB,QAAsCH,WAAW,CAAC/qB,KAAD,EAAQ,qBAAR,CAAvD;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,qBAAR,CAArC;AAEA,UAAM83B,QAAQ,GAAGb,eAAe,CAACj3B,KAAD,EAAQ,YAAR,CAAhC;AACA,UAAM+3B,UAAU,GAAG3tB,6DAAG,CAAC,KAAD,CAAtB;AACA,UAAM1C,IAAI,GAAG2I,kEAAQ,CAAC,MAAMlO,MAAM,CAACnC,KAAK,CAAC23B,IAAN,GAAa33B,KAAK,CAAC43B,SAAnB,GAA+B53B,KAAK,CAACmW,KAAtC,CAAb,CAArB;AACA,UAAMA,KAAK,GAAG9F,kEAAQ,CAAC,MAAM;AAC3B,aAAQrQ,KAAK,CAAC23B,IAAN,IAAc33B,KAAK,CAACy3B,aAApB,IAAqCM,UAAU,CAACt3B,KAAjD,GACHT,KAAK,CAACmW,KADH,GAEHzO,IAAI,CAACjH,KAFT;AAGD,KAJqB,CAAtB;AAKA,UAAMu3B,WAAW,GAAG3nB,kEAAQ,CAAC,MAAM,CAACrQ,KAAK,CAAC03B,SAAP,KAAqBhe,MAAM,CAACjZ,KAAP,IAAgBT,KAAK,CAAC63B,SAA3C,CAAP,CAA5B;AACA,UAAMI,YAAY,GAAGnkB,aAAa,CAChC9T,KAAK,CAAC1B,IAD0B,EAEhC6pB,+DAAK,CAACnoB,KAAD,EAAQ,UAAR,CAF2B,EAGhCqQ,kEAAQ,CAAC,MAAMrQ,KAAK,CAAC+C,KAAN,GAAc,OAAd,GAAwB,MAA/B,CAHwB,EAIhCsN,kEAAQ,CAAC,MAAM,CAAC2nB,WAAW,CAACv3B,KAAb,IAAsBq3B,QAAQ,CAACr3B,KAA/B,GAAuCiH,IAAI,CAACjH,KAA5C,GAAoD,CAA3D,CAJwB,CAAlC;;AAOA,QAAI,CAACT,KAAK,CAACw3B,oBAAX,EAAiC;AAC/B3lB,qEAAK,CAAC6H,MAAD,EAASnV,GAAG,IAAI,CAACvE,KAAK,CAAC03B,SAAP,KAAqBI,QAAQ,CAACr3B,KAAT,GAAiB,CAAC8D,GAAvC,CAAhB,CAAL;AACD;;AAEDsN,mEAAK,CAAC7R,KAAD,EAAQuE,GAAG,IAAI;AAClB,UAAIA,GAAG,CAACmzB,SAAR,EAAmBI,QAAQ,CAACr3B,KAAT,GAAiB,IAAjB;AACpB,KAFI,CAAL;AAIA00B,2EAAa,CAAC,MAAM;AAClB,UAAIn1B,KAAK,CAACkpB,UAAN,IAAoB,IAAxB,EAA8B;AAE9B4O,cAAQ,CAACr3B,KAAT,GAAiB,CAACiZ,MAAM,CAACjZ,KAAzB;AACD,KAJY,CAAb;AAMA,WAAO,MAAM;AACX,YAAMy3B,MAAM,GAAIlxB,KAAK,CAAC2uB,GAAN,IAAa31B,KAAK,CAAC00B,GAAnC;AACA,YAAMyD,SAAS,GACb,CAAC,CAACn4B,KAAK,CAAC03B,SAAP,IAAoB,CAACI,QAAQ,CAACr3B,KAA9B,GAAsC,GAAtC,GAA4C,CAA7C,KACC,CAACT,KAAK,CAAC+C,KAAP,IAAgB,CAAC/C,KAAK,CAAC0U,MAAvB,GAAgC,CAAC,CAAjC,GAAqC,CADtC,CADF;AAKA;AAAA,wBAEmB,MAAOqjB,UAAU,CAACt3B,KAAX,GAAmB,IAF7C;AAAA,wBAGmB,MAAOs3B,UAAU,CAACt3B,KAAX,GAAmB,KAH7C;AAAA,iBAIW,CACL,qBADK,EAEL;AACE,yCAA+BT,KAAK,CAAC0U,MADvC;AAEE,sCAA4B1U,KAAK,CAAC+C,KAFpC;AAGE,kDAAwC/C,KAAK,CAACy3B,aAHhD;AAIE,8CAAoCM,UAAU,CAACt3B,KAJjD;AAKE,uCAA6BT,KAAK,CAAC23B,IALrC;AAME,wCAA8B33B,KAAK,CAAC8C,IAAN,IAAc,CAAC9C,KAAK,CAAC+C,KANrD;AAOE,4CAAkCi1B,WAAW,CAACv3B;AAPhD,SAFK,EAWLyR,YAAY,CAACzR,KAXR,EAYLspB,aAAa,CAACtpB,KAZT,EAaLiqB,gBAAgB,CAACjqB,KAbZ,EAcLwqB,eAAe,CAACxqB,KAdX,EAeLomB,cAAc,CAACpmB,KAfV,CAJX;AAAA,iBAqBW,CACLw3B,YAAY,CAACx3B,KADR,EAELyqB,cAAc,CAACzqB,KAFV,EAGL;AACEoK,mBAAS,qBAAc7K,KAAK,CAAC0U,MAAN,GAAe,GAAf,GAAqB,GAAnC,cAA0C3S,aAAa,CAACo2B,SAAD,EAAY,GAAZ,CAAvD,MADX;AAEEhiB,eAAK,EAAEpU,aAAa,CAACoU,KAAK,CAAC1V,KAAP;AAFtB,SAHK;AArBX;AAAA,wBA8BMy3B,MAAM,IAAI;AAAJ,mBACK;AADL,YAEFlxB,KAAK,CAAC2uB,GAAN,GACE3uB,KAAK,CAAC2uB,GADR,oBACE3uB,KAAK,CAAC2uB,GAAN,CAAY;AAAEjB,aAAG,EAAE10B,KAAK,CAAC00B;AAAb,SAAZ,CADF;AAAA,iBAEc10B,KAAK,CAAC00B,GAFpB;AAAA,iBAE8B;AAF9B,4BAFE,EA9BZ,EAuCM1tB,KAAK,CAACoxB,OAAN;AAAA,mBACW;AADX,YAEIpxB,KAAK,CAACoxB,OAFV,oBAEIpxB,KAAK,CAACoxB,OAAN,EAFJ,EAvCN;AAAA,mBA6Ce;AA7Cf,YA8CQpxB,KAAK,CAACoM,OA9Cd,oBA8CQpM,KAAK,CAACoM,OAAN,EA9CR,IAiDMpM,KAAK,CAACqxB,MAAN;AAAA,mBACW;AADX,YAEIrxB,KAAK,CAACqxB,MAFV,oBAEIrxB,KAAK,CAACqxB,MAAN,EAFJ,EAjDN;AAAA;AAAA;AAwDD,KA/DD;AAgED;;AApI4B,CAAD,CAA9B,E;;;;ACnBA;;;;ACAA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AAEA,2CAAexd,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,QADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACflP,SAAK,EAAE1J,MADQ;AAEf,OAAGynB,eAAe,EAFH;AAGf,OAAGK,kBAAkB,EAHN;AAIf,OAAGO,kBAAkB,EAJN;AAKf,OAAGK,iBAAiB,EALL;AAMf,OAAGlE,gBAAgB,EANJ;AAOf,OAAGU,YAAY;AAPA,GAAD,CAHa;;AAa7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEmV,4BAAF;AAA0BC;AAA1B,QAAoDF,kBAAkB,CAACG,+DAAK,CAACnoB,KAAD,EAAQ,OAAR,CAAN,CAA5E;AACA,UAAM;AAAE+pB;AAAF,QAAoBD,SAAS,CAAC9pB,KAAD,EAAQ,SAAR,CAAnC;AACA,UAAM;AAAEsqB;AAAF,QAAsBD,YAAY,CAACrqB,KAAD,CAAxC;AACA,UAAM;AAAE0qB;AAAF,QAAuBD,YAAY,CAACzqB,KAAD,CAAzC;AACA,UAAM;AAAEirB,qBAAF;AAAmBC;AAAnB,QAAsCH,WAAW,CAAC/qB,KAAD,EAAQ,SAAR,CAAvD;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,SAAR,CAArC;AAEA,WAAO,MAAM;AAAN,eAEI,CACL,SADK,EAELkS,YAAY,CAACzR,KAFR,EAGLwnB,sBAAsB,CAACxnB,KAHlB,EAILspB,aAAa,CAACtpB,KAJT,EAKLiqB,gBAAgB,CAACjqB,KALZ,EAMLwqB,eAAe,CAACxqB,KANX,EAOLomB,cAAc,CAACpmB,KAPV,CAFJ;AAAA,eAWI,CACLynB,qBAAqB,CAACznB,KADjB,EAEL6pB,eAAe,CAAC7pB,KAFX,EAGLyqB,cAAc,CAACzqB,KAHV;AAXJ,YAgBOuG,KAhBP;AAAA;AAAA,6BAAP;AAmBD;;AAzC4B,CAAD,CAA9B,E;;;;;;ACjBA;;;;ACAA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AAEA,+CAAe6T,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,YADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfwd,aAAS,EAAE7kB,OADI;AAEfpS,UAAM,EAAEoS,OAFO;AAGf,OAAGkW,eAAe,EAHH;AAIf,OAAGK,kBAAkB,EAJN;AAKf,OAAGO,kBAAkB,EALN;AAMf,OAAGK,iBAAiB,EANL;AAOf,OAAGlE,gBAAgB,EAPJ;AAQf,OAAGU,YAAY;AARA,GAAD,CAHa;;AAc7BrM,OAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,GAAT,EAAoB;AACvB,UAAM;AAAEkL;AAAF,QAAmBY,QAAQ,EAAjC;AACA,UAAM;AAAEiX;AAAF,QAAoBD,SAAS,CAAC9pB,KAAD,EAAQ,cAAR,CAAnC;AACA,UAAM;AAAEsqB;AAAF,QAAsBD,YAAY,CAACrqB,KAAD,CAAxC;AACA,UAAM;AAAE0qB;AAAF,QAAuBD,YAAY,CAACzqB,KAAD,CAAzC;AACA,UAAM;AAAEirB,qBAAF;AAAmBC;AAAnB,QAAsCH,WAAW,CAAC/qB,KAAD,EAAQ,cAAR,CAAvD;AACA,UAAM;AAAE6mB;AAAF,QAAqBD,UAAU,CAAC5mB,KAAD,EAAQ,cAAR,CAArC;AAEA,WAAO,MAAM;AAAN,eAEI,CACL;AACE,wBAAgB,IADlB;AAEE,oCAA4BA,KAAK,CAACs4B,SAFpC;AAGE,gCAAwBt4B,KAAK,CAACqB;AAHhC,OADK,EAML6Q,YAAY,CAACzR,KANR,EAOLspB,aAAa,CAACtpB,KAPT,EAQLiqB,gBAAgB,CAACjqB,KARZ,EASLwqB,eAAe,CAACxqB,KATX,EAULomB,cAAc,CAACpmB,KAVV,CAFJ;AAAA,eAcI,CACL6pB,eAAe,CAAC7pB,KADX,EAELyqB,cAAc,CAACzqB,KAFV;AAdJ,YAkBOuG,KAlBP;AAAA;AAAA,6BAAP;AAqBD;;AA3C4B,CAAD,CAA9B,E;;;;AChBA;;;;ACAA;CAGA;;AACA;AACA;AACA;AAEA,mDAAe6T,yEAAe,CAAC;AAC7Bvc,MAAI,EAAE,gBADuB;AAG7B0B,OAAK,EAAE8a,SAAS,CAAC;AACfxK,SAAK,EAAE;AACLrH,UAAI,EAAE/G;AADD,KADQ;AAIf;AACAwQ,cAAU,EAAE;AACVzJ,UAAI,EAAEwK;AADI;AALG,GAAD,CAHa;;AAa7BsH,OAAK,CAAE/a,KAAF,EAASqS,OAAT,EAAkB;AACrB,UAAM;AAAEH;AAAF,QAAmBE,YAAY,CAACpS,KAAD,EAAQqS,OAAR,CAArC;AAEA,WAAO,MAAM;AACX;AAAA,iBACc,CAAC,kBAAD,EAAqBH,YAAY,CAACzR,KAAlC;AADd,8FAEW4R,OAAO,CAACrL,KAAR,CAAcoM,OAFzB,oBAEWf,OAAO,CAACrL,KAAR,CAAcoM,OAAd,EAFX;AAKD,KAND;AAOD;;AAvB4B,CAAD,CAA9B,E;;;;ACRA;AACA;CAGA;;AAGO,SAASmlB,mBAAT,CACLj6B,IADK,EAELk6B,MAAM,GAAG,cAFJ,EAGLC,IAHK,EAIL;AACA,SAAO5d,yEAAe,CAAC;AACrBvc,QADqB;AAGrB0B,SAAK,EAAE8a,SAAS,CAAC;AACf4d,WAAK,EAAEjlB,OADQ;AAEfklB,iBAAW,EAAEllB,OAFE;AAGfmlB,mBAAa,EAAEnlB,OAHA;AAIfglB,UAAI,EAAE;AACJxvB,YAAI,EAAE/G,MADF;AAEJkR,eAAO,EAAEqlB;AAFL,OAJS;AAQfD,YAAM,EAAE;AACNvvB,YAAI,EAAE/G,MADA;AAENkR,eAAO,EAAEolB;AAFH;AARO,KAAD,CAHK;;AAiBrBzd,SAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,KAAT,EAAoB;AACvB,aAAO,MAAM;AACX,cAAMrF,GAAG,GAAG3B,KAAK,CAAC04B,KAAN,GAAcG,qEAAd,GAAgCnvB,gEAA5C;AAEA,eAAOD,2DAAC,CAAC9H,GAAD,EAA6B;AACnCrD,cADmC;AAEnCm6B,cAAI,EAAEz4B,KAAK,CAACy4B,IAFuB;;AAGnCK,uBAAa,CAAE93B,EAAF,EAAmB;AAC9BA,cAAE,CAACgrB,KAAH,CAAS+M,eAAT,GAA2B/4B,KAAK,CAACw4B,MAAjC;AACD,WALkC;;AAMnCQ,iBAAO,CAAEh4B,EAAF,EAAmB;AACxB,gBAAIhB,KAAK,CAAC44B,aAAV,EAAyB53B,EAAE,CAACgrB,KAAH,CAASjY,QAAT,GAAoB,UAApB;AACzB,gBAAI/T,KAAK,CAAC24B,WAAV,EAAuB33B,EAAE,CAACgrB,KAAH,CAASzR,OAAT,GAAmB,MAAnB;AACxB;;AATkC,SAA7B,EAULvT,KAAK,CAACoM,OAVD,CAAR;AAWD,OAdD;AAeD;;AAjCoB,GAAD,CAAtB;AAmCD;AAEM,SAAS6lB,0BAAT,CACL36B,IADK,EAEL46B,SAFK,EAGLT,IAAI,GAAG,QAHF,EAIL;AACA,SAAO5d,yEAAe,CAAC;AACrBvc,QADqB;AAGrB0B,SAAK,EAAE8a,SAAS,CAAC;AACf2d,UAAI,EAAE;AACJxvB,YAAI,EAAE/G,MADF;AAEJkR,eAAO,EAAEqlB;AAFL;AADS,KAAD,CAHK;;AAUrB1d,SAAK,CAAE/a,KAAF,EAAS;AAAEgH;AAAF,KAAT,EAAoB;AACvB,aAAO,MAAM;AACX,eAAOyC,2DAAC,CAACC,gEAAD,EAAa;AACnBpL,cADmB;AAEnB;AACA,aAAG46B;AAHgB,SAAb,EAILlyB,KAAK,CAACoM,OAJD,CAAR;AAKD,OAND;AAOD;;AAlBoB,GAAD,CAAtB;AAoBD,C;;AC1ED;AACA;AAYA,6BAAe,SAAS,kBAAC+lB,mBAAmB,GAAG,EAAhC,EAAoCjvB,CAAC,GAAG,KAAxC,EAA+C;AAC5D,QAAMkvB,YAAY,GAAGlvB,CAAC,GAAG,OAAH,GAAa,QAAnC;AACA,QAAMmvB,cAAc,GAAGjxB,kEAAQ,kBAAWgxB,YAAX,EAA/B;AAEA,SAAO;AACLN,iBAAa,CAAE93B,EAAF,EAAyB;AACpCA,QAAE,CAACs4B,OAAH,GAAat4B,EAAE,CAACQ,UAAhB;AACAR,QAAE,CAACu4B,aAAH,GAAmB;AACjB/vB,kBAAU,EAAExI,EAAE,CAACgrB,KAAH,CAASxiB,UADJ;AAEjBgwB,gBAAQ,EAAEx4B,EAAE,CAACgrB,KAAH,CAASwN,QAFF;AAGjB,SAACJ,YAAD,GAAgBp4B,EAAE,CAACgrB,KAAH,CAASoN,YAAT;AAHC,OAAnB;AAKD,KARI;;AAULK,WAAO,CAAEz4B,EAAF,EAAyB;AAC9B,YAAM04B,YAAY,GAAG14B,EAAE,CAACu4B,aAAxB;AAEAv4B,QAAE,CAACgrB,KAAH,CAAS2N,WAAT,CAAqB,YAArB,EAAmC,MAAnC,EAA2C,WAA3C,EAH8B,CAI9B;;AACA34B,QAAE,CAACgrB,KAAH,CAASwN,QAAT,GAAoB,QAApB;AACA,YAAMhQ,MAAM,aAAMxoB,EAAE,CAACq4B,cAAD,CAAR,OAAZ;AAEAr4B,QAAE,CAACgrB,KAAH,CAASoN,YAAT,IAAyB,GAAzB;AAEA,WAAKp4B,EAAE,CAAC44B,YAAR,CAV8B,CAUT;;AAErB54B,QAAE,CAACgrB,KAAH,CAASxiB,UAAT,GAAsBkwB,YAAY,CAAClwB,UAAnC;;AAEA,UAAI2vB,mBAAmB,IAAIn4B,EAAE,CAACs4B,OAA9B,EAAuC;AACrCt4B,UAAE,CAACs4B,OAAH,CAAWxL,SAAX,CAAqBC,GAArB,CAAyBoL,mBAAzB;AACD;;AAEDpC,2BAAqB,CAAC,MAAM;AAC1B/1B,UAAE,CAACgrB,KAAH,CAASoN,YAAT,IAAyB5P,MAAzB;AACD,OAFoB,CAArB;AAGD,KA/BI;;AAiCLqQ,gBAAY,EAAEC,WAjCT;AAkCLC,oBAAgB,EAAED,WAlCb;;AAoCLd,WAAO,CAAEh4B,EAAF,EAAyB;AAC9BA,QAAE,CAACu4B,aAAH,GAAmB;AACjB/vB,kBAAU,EAAE,EADK;AAEjBgwB,gBAAQ,EAAEx4B,EAAE,CAACgrB,KAAH,CAASwN,QAFF;AAGjB,SAACJ,YAAD,GAAgBp4B,EAAE,CAACgrB,KAAH,CAASoN,YAAT;AAHC,OAAnB;AAMAp4B,QAAE,CAACgrB,KAAH,CAASwN,QAAT,GAAoB,QAApB;AACAx4B,QAAE,CAACgrB,KAAH,CAASoN,YAAT,cAA4Bp4B,EAAE,CAACq4B,cAAD,CAA9B;AACA,WAAKr4B,EAAE,CAAC44B,YAAR,CAT8B,CAST;;AAErB7C,2BAAqB,CAAC,MAAO/1B,EAAE,CAACgrB,KAAH,CAASoN,YAAT,IAAyB,GAAjC,CAArB;AACD,KAhDI;;AAkDLY,gBAlDK;AAmDLC,oBAAgB,EAAED;AAnDb,GAAP;;AAsDA,WAASA,YAAT,CAAuBh5B,EAAvB,EAA8C;AAC5C,QAAIm4B,mBAAmB,IAAIn4B,EAAE,CAACs4B,OAA9B,EAAuC;AACrCt4B,QAAE,CAACs4B,OAAH,CAAWxL,SAAX,CAAqBK,MAArB,CAA4BgL,mBAA5B;AACD;;AACDW,eAAW,CAAC94B,EAAD,CAAX;AACD;;AAED,WAAS84B,WAAT,CAAsB94B,EAAtB,EAA6C;AAC3C,UAAM0G,IAAI,GAAG1G,EAAE,CAACu4B,aAAH,CAAkBH,YAAlB,CAAb;AACAp4B,MAAE,CAACgrB,KAAH,CAASwN,QAAT,GAAoBx4B,EAAE,CAACu4B,aAAH,CAAkBC,QAAtC;AACA,QAAI9xB,IAAI,IAAI,IAAZ,EAAkB1G,EAAE,CAACgrB,KAAH,CAASoN,YAAT,IAAyB1xB,IAAzB;AAClB,WAAO1G,EAAE,CAACu4B,aAAV;AACD;AACF,C;;ACpFD;CAOA;;AACO,MAAMW,mBAAmB,GAAG3B,mBAAmB,CAAC,qBAAD,CAA/C;AACA,MAAM4B,0BAA0B,GAAG5B,mBAAmB,CAAC,6BAAD,CAAtD;AACA,MAAM6B,cAAc,GAAG7B,mBAAmB,CAAC,gBAAD,CAA1C;AACA,MAAM8B,qBAAqB,GAAG9B,mBAAmB,CAAC,wBAAD,CAAjD;AACA,MAAM+B,eAAe,GAAG/B,mBAAmB,CAAC,iBAAD,CAA3C;AACA,MAAMgC,cAAc,GAAGhC,mBAAmB,CAAC,gBAAD,EAAmB,eAAnB,EAAoC,QAApC,CAA1C,C,CAEP;;AACO,MAAMiC,iBAAiB,GAAGjC,mBAAmB,CAAC,mBAAD,CAA7C;AACA,MAAMkC,uBAAuB,GAAGlC,mBAAmB,CAAC,0BAAD,CAAnD;AACA,MAAMmC,oBAAoB,GAAGnC,mBAAmB,CAAC,uBAAD,CAAhD;AACA,MAAMoC,eAAe,GAAGpC,mBAAmB,CAAC,iBAAD,CAA3C;AACA,MAAMqC,gBAAgB,GAAGrC,mBAAmB,CAAC,kBAAD,CAA5C;AACA,MAAMsC,kBAAkB,GAAGtC,mBAAmB,CAAC,qBAAD,CAA9C;AACA,MAAMuC,yBAAyB,GAAGvC,mBAAmB,CAAC,6BAAD,CAArD;AACA,MAAMwC,kBAAkB,GAAGxC,mBAAmB,CAAC,qBAAD,CAA9C;AACA,MAAMyC,yBAAyB,GAAGzC,mBAAmB,CAAC,6BAAD,CAArD;AACA,MAAM0C,iBAAiB,GAAG1C,mBAAmB,CAAC,oBAAD,CAA7C;AACA,MAAM2C,wBAAwB,GAAG3C,mBAAmB,CAAC,4BAAD,CAApD;AACA,MAAM4C,iBAAiB,GAAG5C,mBAAmB,CAAC,oBAAD,CAA7C;AACA,MAAM6C,wBAAwB,GAAG7C,mBAAmB,CAAC,4BAAD,CAApD,C,CAEP;;AACO,MAAM8C,iBAAiB,GAAGpC,0BAA0B,CAAC,mBAAD,EAAsBqC,iBAAyB,EAA/C,CAApD;AACA,MAAMC,kBAAkB,GAAGtC,0BAA0B,CAAC,qBAAD,EAAwBqC,iBAAyB,CAAC,EAAD,EAAK,IAAL,CAAjD,CAArD,C;;CC/BP;AACA;AACA;;AACA;AACA;CAEA;AACA;AACA;AACA;;CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;CAEA;AACA;;CAEA;;CAEA;;AACA;CAEA;AACA;AACA;;AACA;CAEA;AACA;;CAEA;AACA;;CAEA;AACA;AACA;;CAEA;AACA;AACA;AACA;AACA;AACA;AACA;;CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;CAEA;AACA;AACA;;CAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACjFA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAT,CAAuBxyB,IAAvB,EAAqE;AAC1E;AACA,MAAI,OAAOA,IAAI,CAACyyB,WAAZ,KAA4B,UAAhC,EAA4C;AAC1C;AACA,WAAOzyB,IAAI,CAACxH,UAAZ,EAAwBwH,IAAI,GAAGA,IAAI,CAACxH,UAAZ,CAFkB,CAI1C;;;AACA,QAAIwH,IAAI,KAAK+H,QAAb,EAAuB,OAAO,IAAP;AAEvB,WAAOA,QAAP;AACD;;AAED,QAAMujB,IAAI,GAAGtrB,IAAI,CAACyyB,WAAL,EAAb,CAZ0E,CAc1E;;AACA,MAAInH,IAAI,KAAKvjB,QAAT,IAAqBujB,IAAI,CAACmH,WAAL,CAAiB;AAAEC,YAAQ,EAAE;AAAZ,GAAjB,MAAyC3qB,QAAlE,EAA4E,OAAO,IAAP;AAE5E,SAAOujB,IAAP;AACD,C;;ACvBD;;AAaA,SAASqH,kBAAT,GAA+B;AAC7B,SAAO,IAAP;AACD;;AAED,SAASC,UAAT,CAAqBxP,CAArB,EAAsCprB,EAAtC,EAAuDyuB,OAAvD,EAAuG;AACrG;AACA;AACA;AACA;AACA,MAAI,CAACrD,CAAD,IAAMyP,aAAa,CAACzP,CAAD,EAAIqD,OAAJ,CAAb,KAA8B,KAAxC,EAA+C,OAAO,KAAP,CALsD,CAOrG;AACA;AACA;;AACA,QAAM6E,IAAI,GAAGkH,YAAY,CAACx6B,EAAD,CAAzB;AACA,MAAIszB,IAAI,YAAYwH,UAAhB,IAA8BxH,IAAI,CAACyH,IAAL,KAAc3P,CAAC,CAAC7jB,MAAlD,EAA0D,OAAO,KAAP,CAX2C,CAarG;AACA;;AACA,QAAMyzB,QAAQ,GAAG,CAAE,OAAOvM,OAAO,CAAChvB,KAAf,KAAyB,QAAzB,IAAqCgvB,OAAO,CAAChvB,KAAR,CAAcw7B,OAApD,KAAiE,MAAM,EAAvE,CAAD,GAAjB,CAfqG,CAgBrG;;;AACAD,UAAQ,CAACr/B,IAAT,CAAcqE,EAAd,EAjBqG,CAmBrG;AACA;AACA;AACA;AACA;;AACA,SAAO,CAACg7B,QAAQ,CAAC71B,IAAT,CAAcnF,EAAE,IAAIA,EAAE,CAACk7B,QAAH,CAAY9P,CAAC,CAAC7jB,MAAd,CAApB,CAAR;AACD;;AAED,SAASszB,aAAT,CAAwBzP,CAAxB,EAAyCqD,OAAzC,EAAgG;AAC9F,QAAMqI,QAAQ,GAAI,OAAOrI,OAAO,CAAChvB,KAAf,KAAyB,QAAzB,IAAqCgvB,OAAO,CAAChvB,KAAR,CAAc07B,gBAApD,IAAyER,kBAA1F;AAEA,SAAO7D,QAAQ,CAAC1L,CAAD,CAAf;AACD;;AAED,SAAS7G,SAAT,CAAoB6G,CAApB,EAAqCprB,EAArC,EAAsDyuB,OAAtD,EAA6F;AAC3F,QAAM2D,OAAO,GAAG,OAAO3D,OAAO,CAAChvB,KAAf,KAAyB,UAAzB,GAAsCgvB,OAAO,CAAChvB,KAA9C,GAAsDgvB,OAAO,CAAChvB,KAAR,CAAc2yB,OAApF;AAEApyB,IAAE,CAACo7B,aAAH,CAAkBC,uBAAlB,IAA6CT,UAAU,CAACxP,CAAD,EAAIprB,EAAJ,EAAQyuB,OAAR,CAAvD,IAA2E/oB,UAAU,CAAC,MAAM;AAC1Fm1B,iBAAa,CAACzP,CAAD,EAAIqD,OAAJ,CAAb,IAA6B2D,OAA7B,IAAwCA,OAAO,CAAChH,CAAD,CAA/C;AACD,GAFoF,EAElF,CAFkF,CAArF;AAGD;;AAED,SAASkQ,YAAT,CAAuBt7B,EAAvB,EAAwCu7B,QAAxC,EAAkE;AAChE,QAAMjI,IAAI,GAAGkH,YAAY,CAACx6B,EAAD,CAAzB;AAEAu7B,UAAQ,CAACxrB,QAAQ,CAACyrB,IAAV,CAAR;;AAEA,MAAIlI,IAAI,YAAYwH,UAApB,EAAgC;AAC9BS,YAAQ,CAACjI,IAAD,CAAR;AACD;AACF;;AAEM,MAAMmI,YAAY,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA3M,SAAO,CAAE9uB,EAAF,EAAmByuB,OAAnB,EAA0D;AAC/D,UAAMiN,OAAO,GAAItQ,CAAD,IAAc7G,SAAS,CAAC6G,CAAD,EAAoBprB,EAApB,EAAwByuB,OAAxB,CAAvC;;AACA,UAAMkN,WAAW,GAAIvQ,CAAD,IAAc;AAChCprB,QAAE,CAACo7B,aAAH,CAAkBC,uBAAlB,GAA4CT,UAAU,CAACxP,CAAD,EAAoBprB,EAApB,EAAwByuB,OAAxB,CAAtD;AACD,KAFD;;AAIA6M,gBAAY,CAACt7B,EAAD,EAAM2e,GAAD,IAAsB;AACrCA,SAAG,CAACxF,gBAAJ,CAAqB,OAArB,EAA8BuiB,OAA9B,EAAuC,IAAvC;AACA/c,SAAG,CAACxF,gBAAJ,CAAqB,WAArB,EAAkCwiB,WAAlC,EAA+C,IAA/C;AACD,KAHW,CAAZ;AAKA37B,MAAE,CAACo7B,aAAH,GAAmB;AACjBC,6BAAuB,EAAE,IADR;AAEjBK,aAFiB;AAGjBC;AAHiB,KAAnB;AAKD,GAtByB;;AAwB1B5M,WAAS,CAAE/uB,EAAF,EAAmB;AAC1B,QAAI,CAACA,EAAE,CAACo7B,aAAR,EAAuB;AAEvBE,gBAAY,CAACt7B,EAAD,EAAM2e,GAAD,IAAsB;AACrC,UAAI,CAACA,GAAD,IAAQ,CAAC3e,EAAE,CAACo7B,aAAhB,EAA+B;AAC/Bzc,SAAG,CAACkQ,mBAAJ,CAAwB,OAAxB,EAAiC7uB,EAAE,CAACo7B,aAAH,CAAiBM,OAAlD,EAA2D,IAA3D;AACA/c,SAAG,CAACkQ,mBAAJ,CAAwB,WAAxB,EAAqC7uB,EAAE,CAACo7B,aAAH,CAAiBO,WAAtD,EAAmE,IAAnE;AACD,KAJW,CAAZ;AAMA,WAAO37B,EAAE,CAACo7B,aAAV;AACD;;AAlCyB,CAArB;AAqCP,kDAAeK,4DAAf,I;;AC/FA,SAAS3M,cAAT,CAAkB9uB,EAAlB,EAAmCyuB,OAAnC,EAAoE;AAAA;;AAClE,QAAM2D,OAAO,GAAG3D,OAAO,CAAChvB,KAAxB;AACA,QAAMtC,OAAgC,GAAG;AACvCic,WAAO,EAAE,wBAACqV,OAAO,CAACE,SAAT,qBAAC,mBAAmBiN,MAApB;AAD8B,GAAzC;AAIAv7B,QAAM,CAAC8Y,gBAAP,CAAwB,QAAxB,EAAkCiZ,OAAlC,EAA2Cj1B,OAA3C;AACA6C,IAAE,CAAC67B,SAAH,GAAe;AACbzJ,WADa;AAEbj1B;AAFa,GAAf;;AAKA,MAAI,yBAACsxB,OAAO,CAACE,SAAT,qBAAC,oBAAmB6D,KAApB,CAAJ,EAA+B;AAC7BJ,WAAO;AACR;AACF;;AAED,SAASrD,gBAAT,CAAoB/uB,EAApB,EAAqC;AACnC,MAAI,CAACA,EAAE,CAAC67B,SAAR,EAAmB;AAEnB,QAAM;AAAEzJ,WAAF;AAAWj1B;AAAX,MAAuB6C,EAAE,CAAC67B,SAAhC;AACAx7B,QAAM,CAACwuB,mBAAP,CAA2B,QAA3B,EAAqCuD,OAArC,EAA8Cj1B,OAA9C;AACA,SAAO6C,EAAE,CAAC67B,SAAV;AACD;;AAEM,MAAMC,MAAuB,GAAG;AACrChN,SADqC;AAErCC;AAFqC,CAAhC;AAKP,2CAAe+M,sDAAf,I;;AC5BA,SAAShN,cAAT,CAAkB9uB,EAAlB,EAAmCyuB,OAAnC,EAAoE;AAAA;;AAClE,QAAM;AAAEsN,QAAI,GAAG;AAAT,4BAAmBtN,OAAO,CAACE,SAA3B,iCAAwC,EAA9C;AACA,QAAMlvB,KAAK,GAAGgvB,OAAO,CAAChvB,KAAtB;AACA,QAAMtC,OAAO,GAAI,OAAOsC,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACtC,OAApC,IAAgD;AAAEic,WAAO,EAAE;AAAX,GAAhE;AACA,QAAMgZ,OAAO,GAAG,OAAO3yB,KAAP,KAAiB,UAAjB,IAA+B,iBAAiBA,KAAhD,GAAwDA,KAAxD,GAAgEA,KAAK,CAAC2yB,OAAtF;AAEA,QAAM7qB,MAAM,GAAGw0B,IAAI,GACf/7B,EADe,GAEfyuB,OAAO,CAACW,GAAR,GACErf,QAAQ,CAACisB,aAAT,CAAuBvN,OAAO,CAACW,GAA/B,CADF,GAEE/uB,MAJN;AAMA,MAAI,CAACkH,MAAL,EAAa;AAEbA,QAAM,CAAC4R,gBAAP,CAAwB,QAAxB,EAAkCiZ,OAAlC,EAA2Cj1B,OAA3C;AAEA6C,IAAE,CAACi8B,SAAH,GAAe;AACb7J,WADa;AAEbj1B,WAFa;AAGb;AACAoK,UAAM,EAAEw0B,IAAI,GAAGt9B,SAAH,GAAe8I;AAJd,GAAf;AAMD;;AAED,SAASwnB,gBAAT,CAAoB/uB,EAApB,EAAqC;AACnC,MAAI,CAACA,EAAE,CAACi8B,SAAR,EAAmB;AAEnB,QAAM;AAAE7J,WAAF;AAAWj1B,WAAX;AAAoBoK,UAAM,GAAGvH;AAA7B,MAAoCA,EAAE,CAACi8B,SAA7C;AAEA10B,QAAM,CAACsnB,mBAAP,CAA2B,QAA3B,EAAqCuD,OAArC,EAA8Cj1B,OAA9C;AACA,SAAO6C,EAAE,CAACi8B,SAAV;AACD;;AAED,SAASjN,cAAT,CAAkBhvB,EAAlB,EAAmCyuB,OAAnC,EAAoE;AAClE,MAAIA,OAAO,CAAChvB,KAAR,KAAkBgvB,OAAO,CAACQ,QAA9B,EAAwC;AAExCF,kBAAS,CAAC/uB,EAAD,CAAT;AACA8uB,gBAAO,CAAC9uB,EAAD,EAAKyuB,OAAL,CAAP;AACD;;AAEM,MAAMyN,MAAM,GAAG;AACpBpN,SADoB;AAEpBC,WAFoB;AAGpBC;AAHoB,CAAf;AAMP,sDAAekN,sDAAf,I;;AC1DA;AAWA;AACA;;AAYA,MAAMC,aAAa,GAAIve,OAAD,IAA2B;AAC/C,QAAM;AAAEwe,eAAF;AAAeC,aAAf;AAA0BC,eAA1B;AAAuCC;AAAvC,MAAqD3e,OAA3D;AACA,QAAM4e,QAAQ,GAAG,GAAjB;AACA,QAAMC,WAAW,GAAG,EAApB;AACA7e,SAAO,CAACuK,OAAR,GAAkBkU,SAAS,GAAGD,WAA9B;AACAxe,SAAO,CAACwK,OAAR,GAAkBmU,SAAS,GAAGD,WAA9B;;AAEA,MAAIh2B,IAAI,CAACW,GAAL,CAAS2W,OAAO,CAACwK,OAAjB,IAA4BoU,QAAQ,GAAGl2B,IAAI,CAACW,GAAL,CAAS2W,OAAO,CAACuK,OAAjB,CAA3C,EAAsE;AACpEvK,WAAO,CAAC9b,IAAR,IAAiBu6B,SAAS,GAAGD,WAAW,GAAGK,WAA3C,IAA2D7e,OAAO,CAAC9b,IAAR,CAAa8b,OAAb,CAA3D;AACAA,WAAO,CAAC7b,KAAR,IAAkBs6B,SAAS,GAAGD,WAAW,GAAGK,WAA5C,IAA4D7e,OAAO,CAAC7b,KAAR,CAAc6b,OAAd,CAA5D;AACD;;AAED,MAAItX,IAAI,CAACW,GAAL,CAAS2W,OAAO,CAACuK,OAAjB,IAA4BqU,QAAQ,GAAGl2B,IAAI,CAACW,GAAL,CAAS2W,OAAO,CAACwK,OAAjB,CAA3C,EAAsE;AACpExK,WAAO,CAAChc,EAAR,IAAe26B,SAAS,GAAGD,WAAW,GAAGG,WAAzC,IAAyD7e,OAAO,CAAChc,EAAR,CAAWgc,OAAX,CAAzD;AACAA,WAAO,CAAC/b,IAAR,IAAiB06B,SAAS,GAAGD,WAAW,GAAGG,WAA3C,IAA2D7e,OAAO,CAAC/b,IAAR,CAAa+b,OAAb,CAA3D;AACD;AACF,CAhBD;;AAkBA,SAAS8e,UAAT,CAAqBC,KAArB,EAAwC/e,OAAxC,EAA+D;AAC7D,QAAM1F,KAAK,GAAGykB,KAAK,CAACC,cAAN,CAAqB,CAArB,CAAd;AACAhf,SAAO,CAACwe,WAAR,GAAsBlkB,KAAK,CAACyT,OAA5B;AACA/N,SAAO,CAAC0e,WAAR,GAAsBpkB,KAAK,CAAC0T,OAA5B;AAEAhO,SAAO,CAACje,KAAR,oBAAAie,OAAO,CAACje,KAAR,CAAgB,EAAE,GAAGg9B,KAAL;AAAY,OAAG/e;AAAf,GAAhB;AACD;;AAED,SAASif,QAAT,CAAmBF,KAAnB,EAAsC/e,OAAtC,EAA6D;AAC3D,QAAM1F,KAAK,GAAGykB,KAAK,CAACC,cAAN,CAAqB,CAArB,CAAd;AACAhf,SAAO,CAACye,SAAR,GAAoBnkB,KAAK,CAACyT,OAA1B;AACA/N,SAAO,CAAC2e,SAAR,GAAoBrkB,KAAK,CAAC0T,OAA1B;AAEAhO,SAAO,CAAC5b,GAAR,oBAAA4b,OAAO,CAAC5b,GAAR,CAAc,EAAE,GAAG26B,KAAL;AAAY,OAAG/e;AAAf,GAAd;AAEAue,eAAa,CAACve,OAAD,CAAb;AACD;;AAED,SAASkf,SAAT,CAAoBH,KAApB,EAAuC/e,OAAvC,EAA8D;AAC5D,QAAM1F,KAAK,GAAGykB,KAAK,CAACC,cAAN,CAAqB,CAArB,CAAd;AACAhf,SAAO,CAACmf,UAAR,GAAqB7kB,KAAK,CAACyT,OAA3B;AACA/N,SAAO,CAACof,UAAR,GAAqB9kB,KAAK,CAAC0T,OAA3B;AAEAhO,SAAO,CAACqf,IAAR,oBAAArf,OAAO,CAACqf,IAAR,CAAe,EAAE,GAAGN,KAAL;AAAY,OAAG/e;AAAf,GAAf;AACD;;AAED,SAASsf,cAAT,CAAyBz9B,KAAoB,GAAG,EAAhD,EAAyE;AACvE,QAAMme,OAAO,GAAG;AACdwe,eAAW,EAAE,CADC;AAEdE,eAAW,EAAE,CAFC;AAGdD,aAAS,EAAE,CAHG;AAIdE,aAAS,EAAE,CAJG;AAKdQ,cAAU,EAAE,CALE;AAMdC,cAAU,EAAE,CANE;AAOd7U,WAAO,EAAE,CAPK;AAQdC,WAAO,EAAE,CARK;AASdtmB,QAAI,EAAErC,KAAK,CAACqC,IATE;AAUdC,SAAK,EAAEtC,KAAK,CAACsC,KAVC;AAWdH,MAAE,EAAEnC,KAAK,CAACmC,EAXI;AAYdC,QAAI,EAAEpC,KAAK,CAACoC,IAZE;AAadlC,SAAK,EAAEF,KAAK,CAACE,KAbC;AAcds9B,QAAI,EAAEx9B,KAAK,CAACw9B,IAdE;AAedj7B,OAAG,EAAEvC,KAAK,CAACuC;AAfG,GAAhB;AAkBA,SAAO;AACL06B,cAAU,EAAGtR,CAAD,IAAmBsR,UAAU,CAACtR,CAAD,EAAIxN,OAAJ,CADpC;AAELif,YAAQ,EAAGzR,CAAD,IAAmByR,QAAQ,CAACzR,CAAD,EAAIxN,OAAJ,CAFhC;AAGLkf,aAAS,EAAG1R,CAAD,IAAmB0R,SAAS,CAAC1R,CAAD,EAAIxN,OAAJ;AAHlC,GAAP;AAKD;;AAED,SAASkR,aAAT,CAAkB9uB,EAAlB,EAAmCyuB,OAAnC,EAAmE;AAAA;;AACjE,QAAMhvB,KAAK,GAAGgvB,OAAO,CAAChvB,KAAtB;AACA,QAAM8H,MAAM,GAAG,CAAA9H,KAAK,QAAL,YAAAA,KAAK,CAAEpE,MAAP,IAAgB2E,EAAE,CAACm9B,aAAnB,GAAmCn9B,EAAlD;AACA,QAAM7C,OAAO,qBAAGsC,KAAH,oBAAGA,KAAK,CAAEtC,OAAV,6BAAqB;AAAEic,WAAO,EAAE;AAAX,GAAlC;AACA,QAAMgkB,GAAG,wBAAG3O,OAAO,CAAC4O,QAAX,qBAAG,kBAAkBC,CAAlB,CAAoBF,GAAhC,CAJiE,CAI7B;;AAEpC,MAAI,CAAC71B,MAAD,IAAW,CAAC61B,GAAhB,EAAqB;AAErB,QAAMG,QAAQ,GAAGL,cAAc,CAACzO,OAAO,CAAChvB,KAAT,CAA/B;AAEA8H,QAAM,CAACi2B,cAAP,4BAAwBj2B,MAAM,CAACi2B,cAA/B,oCAAiDz+B,MAAM,CAAC0+B,MAAP,CAAc,IAAd,CAAjD;AACAl2B,QAAM,CAACi2B,cAAP,CAAuBJ,GAAvB,IAA8BG,QAA9B;AAEAt+B,MAAI,CAACs+B,QAAD,CAAJ,CAAez6B,OAAf,CAAuB46B,SAAS,IAAI;AAClCn2B,UAAM,CAAC4R,gBAAP,CAAwBukB,SAAxB,EAAmCH,QAAQ,CAACG,SAAD,CAA3C,EAAwDvgC,OAAxD;AACD,GAFD;AAGD;;AAED,SAAS4xB,eAAT,CAAoB/uB,EAApB,EAAqCyuB,OAArC,EAAqE;AAAA;;AACnE,QAAMlnB,MAAM,GAAG,mBAAAknB,OAAO,CAAChvB,KAAR,oCAAepE,MAAf,IAAwB2E,EAAE,CAACm9B,aAA3B,GAA2Cn9B,EAA1D;AACA,QAAMo9B,GAAG,yBAAG3O,OAAO,CAAC4O,QAAX,qBAAG,mBAAkBC,CAAlB,CAAoBF,GAAhC;AAEA,MAAI,EAAC71B,MAAD,oBAACA,MAAM,CAAEi2B,cAAT,KAA2B,CAACJ,GAAhC,EAAqC;AAErC,QAAMG,QAAQ,GAAGh2B,MAAM,CAACi2B,cAAP,CAAsBJ,GAAtB,CAAjB;AAEAn+B,MAAI,CAACs+B,QAAD,CAAJ,CAAez6B,OAAf,CAAuB46B,SAAS,IAAI;AAClCn2B,UAAM,CAACsnB,mBAAP,CAA2B6O,SAA3B,EAAsCH,QAAQ,CAACG,SAAD,CAA9C;AACD,GAFD;AAIA,SAAOn2B,MAAM,CAACi2B,cAAP,CAAsBJ,GAAtB,CAAP;AACD;;AAEM,MAAMO,KAAsB,GAAG;AACpC7O,SADoC;AAEpCC;AAFoC,CAA/B;AAKP,0CAAe4O,qDAAf,I;;CCnIA;;CAEA;;AACA;AACA;AACA;;;ACNA;AACA;AACA;AACA;AAEA;AACA;AAEO,MAAMxZ,2BAAa,GAAG,CAAChnB,OAAiC,GAAG,EAArC,KAA4C;AACvE,SAAOygC,aAAA,CAAwB;AAAEvZ,cAAF;AAAcC,cAAd;AAA0B,OAAGnnB;AAA7B,GAAxB,CAAP;AACD,CAFM,C;;;;;;;ACRP,kD;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCrBA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;UCNA;UACA;UACA;UACA","file":"vuetify.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Vuetify\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"Vuetify\"] = factory(root[\"Vue\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE__982__) {\nreturn ","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","/* eslint-disable no-console */\n// import Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n // if (Vuetify.config.silent) return\n\n if (parent) {\n vm = {\n _isVue: true,\n $parent: parent,\n $options: vm,\n }\n }\n\n if (vm) {\n // Only show each message once per instance\n vm.$_alreadyWarned = vm.$_alreadyWarned || []\n if (vm.$_alreadyWarned.includes(message)) return\n vm.$_alreadyWarned.push(message)\n }\n\n return `[Vuetify] ${message}` + (\n vm ? generateComponentTrace(vm) : ''\n )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any, includeFile?: boolean): string {\n if (vm.$root === vm) {\n return '<Root>'\n }\n const options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {}\n let name = options.name || options._componentTag\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match?.[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : `<Anonymous>`) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nfunction generateComponentTrace (vm: any): string {\n if (vm._isVue && vm.$parent) {\n const tree: any[] = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (tree.length > 0) {\n const last: any = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm)})`\n }\n}\n","import type { DataTableCompareFunction, ItemGroup, SelectItemKey } from 'vuetify/types'\nimport type { Ref, Slots, TransitionProps, VNode } from 'vue'\nimport { camelize, Fragment, h, isRef, mergeProps, ref, Transition } from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nconst tagsToReplace: Dictionary<string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n}\n\nexport function escapeHTML (str: string): string {\n return str.replace(/[&<>]/g, tag => tagsToReplace[tag] || tag)\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\nexport function extract (obj: Dictionary<unknown>, properties: string[]) {\n const extracted: Dictionary<unknown> = {}\n const rest: Dictionary<unknown> = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n if (properties.includes(key)) {\n extracted[key] = value\n } else {\n rest[key] = value\n }\n })\n\n return [extracted, rest]\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (var i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v : [v]\n}\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\n/**\n * Filters slots to only those starting with `prefix`, removing the prefix\n */\nexport function getPrefixedSlots (prefix: string, slots: Slots): Slots {\n return Object.keys(slots)\n .filter(k => k.startsWith(prefix))\n .reduce<Writable<Slots>>((obj, k) => {\n obj[k.replace(prefix, '')] = slots[k]\n return obj\n }, {})\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\nexport function getUid () {\n return getUid._uid++\n}\ngetUid._uid = 0\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport function maybeTransition <T extends VNode | VNode[] | undefined> (\n props: { transition?: string | boolean | TransitionProps },\n data: TransitionProps,\n vNodes: T\n): VNode | T {\n if (!props.transition || typeof props.transition === 'boolean') return vNodes\n\n return h(\n Transition,\n mergeProps(typeof props.transition === 'string' ? { name: props.transition } : props.transition as any, data as any),\n () => vNodes\n )\n}\n\nexport const randomHexColor = () => {\n const n = (Math.random() * 0xfffff * 1000000).toString(16)\n return '#' + n.slice(0, 6)\n}\n\nexport const toKebabCase = (str: string) => str.replace(/([A-Z])/g, match => `-${match.toLowerCase()}`)\n\nexport type MaybeRef<T> = T | Ref<T>\n\nexport type ExtractMaybeRef<P> = P extends MaybeRef<infer T> ? T : P;\n\nexport function wrapInRef <T> (x: T) {\n return (isRef(x) ? x : ref(x)) as Ref<ExtractMaybeRef<T>>\n}\n","import type { ColorInt, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): ColorInt {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n // Rescale back to [0, 255]\n return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0)\n}\n\nexport function toXYZ (rgb: ColorInt): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n const r = transform((rgb >> 16 & 0xff) / 255)\n const g = transform((rgb >> 8 & 0xff) / 255)\n const b = transform((rgb >> 0 & 0xff) / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","import type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { VuetifyThemeVariant } from 'types/services/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n let rgb\n\n if (typeof color === 'number') {\n rgb = color\n } else if (typeof color === 'string') {\n let c = color.startsWith('#') ? color.substring(1) : color\n if (c.length === 3) {\n c = c.split('').map(char => char + char).join('')\n }\n if (c.length !== 6) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n }\n rgb = parseInt(c, 16)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n\n if (rgb < 0) {\n consoleWarn(`Colors cannot be negative: '${color}'`)\n rgb = 0\n } else if (rgb > 0xffffff || isNaN(rgb)) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n rgb = 0xffffff\n }\n\n return rgb\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<VuetifyThemeVariant>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n let hexColor: string = color.toString(16)\n\n if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n const toHex = (v: number) => {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n }\n\n return `#${[\n toHex(rgba.r),\n toHex(rgba.g),\n toHex(rgba.b),\n toHex(Math.round(rgba.a * 255)),\n ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n return {\n r: rgba[0],\n g: rgba[1],\n b: rgba[2],\n a: Math.round((rgba[3] / 255) * 100) / 100,\n }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n const rgb = HexToRGBA(hex)\n return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<VuetifyThemeVariant>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\nexport function colorToRGB (color: string) {\n const int = colorToInt(color)\n\n return {\n r: (int & 0xFF0000) >> 16,\n g: (int & 0xFF00) >> 8,\n b: (int & 0xFF),\n }\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n // TODO: why this false positive?\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = colorToInt(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n","// Utilities\nimport { colorToInt, colorToRGB, createRange, darken, getLuma, intToHex, lighten } from '@/util'\nimport { computed, inject, provide, ref, watch } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref, SetupContext } from 'vue'\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\ninterface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\ninterface ThemeDefinitionColors extends BaseColors, Partial<OnColors> {\n [key: string]: string | undefined\n}\n\nexport interface ThemeDefinition {\n dark: boolean\n colors: ThemeDefinitionColors\n variables: Record<string, string | number>\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeOptions {\n isDisabled: boolean\n defaultTheme: string\n variations: VariationsOptions\n themes: Record<string, ThemeDefinition>\n}\n\nexport type ThemeOptions = false | {\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n}\n\nexport interface ThemeInstance {\n isDisabled: boolean\n themes: Ref<Record<string, InternalThemeDefinition>>\n current: Ref<string>\n themeClasses: Ref<string>\n setTheme: (key: string, theme: ThemeDefinition) => void\n getTheme: (key: string) => InternalThemeDefinition\n hasColor: (color: string) => boolean\n}\n\nexport const VuetifyThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nconst defaultThemeOptions: ThemeOptions = {\n defaultTheme: 'light',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n primary: '#6200EE',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '0, 0, 0',\n 'border-opacity': 0.12,\n 'disabled-opacity': 0.38,\n 'icon-opacity': 0.54,\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#121212',\n primary: '#BB86FC',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC5',\n 'secondary-darken-1': '#03DAC5',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '255, 255, 255',\n 'border-opacity': 0.12,\n 'disabled-opacity': 0.38,\n 'icon-opacity': 0.70,\n },\n },\n },\n}\n\nconst parseThemeOptions = (options: ThemeOptions = defaultThemeOptions): InternalThemeOptions => {\n if (!options) return { ...defaultThemeOptions, isDisabled: true } as InternalThemeOptions\n\n return {\n ...defaultThemeOptions,\n ...options,\n variations: options?.variations == null || options?.variations === false ? defaultThemeOptions.variations : options.variations,\n } as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance {\n const parsedOptions = parseThemeOptions(options)\n const styleEl = ref<HTMLStyleElement>()\n const current = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n const variations = ref(parsedOptions.variations)\n\n const computedThemes = computed(() => {\n return Object.keys(themes.value).reduce((obj, key) => {\n const theme: ThemeDefinition = {\n ...themes.value[key],\n colors: {\n ...themes.value[key].colors,\n ...(parsedOptions.variations.colors ?? []).reduce((obj, color) => {\n return { ...obj, ...genColorVariations(color, themes.value[key].colors[color]!) }\n }, {}),\n },\n }\n\n for (const color of Object.keys(theme.colors)) {\n if (/on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n theme.colors[onColor] = intToHex(getLuma(theme.colors[color]!) > 0.18 ? 0x0 : 0xffffff)\n }\n\n obj[key] = theme as InternalThemeDefinition\n\n return obj\n }, {} as Record<string, InternalThemeDefinition>)\n })\n\n function genColorVariations (name: string, color: string) {\n const obj: Record<string, string> = {}\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(variations.value[variation], 1)) {\n obj[`${name}-${variation}-${amount}`] = intToHex(fn(colorToInt(color), amount))\n }\n }\n\n return obj\n }\n\n function genCssVariables (name: string) {\n const theme = computedThemes.value[name]\n\n if (!theme) throw new Error(`Could not find theme ${name}`)\n\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = colorToRGB(value!)\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n return variables\n }\n\n function genStyleElement () {\n if (typeof document === 'undefined' || styleEl.value) return\n\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n\n styleEl.value = el\n document.head.appendChild(styleEl.value)\n }\n\n function createCssClass (selector: string, content: string[]) {\n return [\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n ]\n }\n\n function updateStyles () {\n if (parsedOptions.isDisabled) return\n\n genStyleElement()\n\n const lines = []\n\n for (const themeName of Object.keys(computedThemes.value)) {\n const variables = computedThemes.value[themeName].variables\n\n lines.push(...createCssClass(`.v-theme--${themeName}`, [\n ...genCssVariables(themeName),\n ...Object.keys(variables).map(key => {\n return `--v-${key}: ${variables[key]}`\n }),\n ]))\n }\n\n // Assumption is that all theme objects have the same keys, so it doesn't matter which one\n // we use since the values are all css variables.\n const firstTheme = Object.keys(computedThemes.value)[0]\n for (const key of Object.keys(computedThemes.value[firstTheme].colors)) {\n if (/on-[a-z]/.test(key)) {\n lines.push(...createCssClass(`.${key}`, [`color: rgb(var(--v-theme-${key}))`]))\n } else {\n lines.push(\n ...createCssClass(`.bg-${key}`, [\n `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n `background: rgb(var(--v-theme-${key}))`,\n `color: rgb(var(--v-theme-on-${key}))`,\n ]),\n ...createCssClass(`.text-${key}`, [`color: rgb(var(--v-theme-${key}))`]),\n ...createCssClass(`.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]),\n )\n }\n }\n\n if (styleEl.value) styleEl.value.innerHTML = lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n }\n\n watch(themes, updateStyles, { deep: true, immediate: true })\n\n return {\n isDisabled: parsedOptions.isDisabled,\n themes: computedThemes,\n setTheme: (key: string, theme: ThemeDefinition) => themes.value[key] = theme,\n getTheme: (key: string) => computedThemes.value[key],\n current,\n themeClasses: computed(() => parsedOptions.isDisabled ? '' : `v-theme--${current.value}`),\n hasColor: (color: string) => !!computedThemes.value[current.value].colors[color],\n }\n}\n\n/**\n * Used to either set up and provide a new theme instance, or to pass\n * along the closest available already provided instance.\n *\n * A new theme instance will be created if either `theme` prop is provided,\n * or if `newContext` prop is true\n */\nexport function provideTheme (props: { theme?: string, newContext?: boolean } = {}, context: SetupContext) {\n const theme = inject(VuetifyThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const internal = ref<string | null>(null)\n const current = computed<string>({\n get: () => {\n return internal.value ?? props.theme ?? theme?.current.value\n },\n set (value: string) {\n if (theme && !props.theme && !props.newContext) {\n theme.current.value = value\n } else {\n internal.value = value\n context.emit('update:theme', value)\n }\n },\n })\n\n const themeClasses = computed(() => theme.isDisabled ? '' : `v-theme--${current.value}`)\n const newTheme: ThemeInstance = {\n ...theme,\n current,\n themeClasses,\n }\n\n provide(VuetifyThemeSymbol, newTheme)\n\n return newTheme\n}\n\n/**\n * Injects and returns closest available provided theme instance.\n */\nexport function useTheme () {\n const theme = inject(VuetifyThemeSymbol)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n","import type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record<keyof props, any>) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source?: string) {\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\n defaults?: Defaults\n ): AppendDefault<PropsOptions, Defaults> => {\n return Object.keys(props).reduce<any>((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Dictionary<unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n : {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n}\n\ntype MergeDefault<T, D> = unknown extends D ? InferPropType<T> : (NonNullable<InferPropType<T>> | D)\n\n/**\n * Like `Partial<T>` but doesn't care what the value is\n */\ntype PartialKeys<T> = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType<T> = T extends null\n ? any // null & true would fail to infer\n : T extends { type: null | true }\n ? any // As TS issue https://github.com/Microsoft/TypeScript/issues/14829 // somehow `ObjectConstructor` when inferred from { (): T } becomes `any` // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n : T extends ObjectConstructor | { type: ObjectConstructor }\n ? Record<string, any>\n : T extends BooleanConstructor | { type: BooleanConstructor }\n ? boolean\n : T extends Prop<infer V, infer D> ? (unknown extends V ? D : V) : T\n","// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { convertToUnit, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ntype LayoutItem = {\n id: string\n top: number\n bottom: number\n left: number\n right: number\n size: number\n}\n\ninterface LayoutProvide {\n register: (id: string, priority: Ref<number>, position: Ref<Position>, amount: Ref<number | string>) => Ref<Record<string, unknown>>\n unregister: (id: string) => void\n mainStyles: Ref<Record<string, unknown>>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n priority: {\n type: Number,\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 300,\n },\n}, 'layout-item')\n\nexport function useMain () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n return layout\n}\n\nexport function useLayoutItem (\n name: string | undefined,\n priority: Ref<number>,\n position: Ref<Position>,\n amount: Ref<number | string>\n) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n const id = name ?? `layout-item-${getUid()}`\n\n const styles = layout.register(id, priority, position, amount)\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return styles\n}\n\nconst generateLayers = (\n layout: string[],\n registered: string[],\n positions: Map<string, Ref<Position>>,\n amounts: Map<string, Ref<number | string>>\n) => {\n let previousLayer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n const ids = !layout.length ? registered : layout.map(l => l.split(':')[0]).filter(l => registered.includes(l))\n for (const id of ids) {\n const position = positions.get(id)\n const amount = amounts.get(id)\n if (!position || !amount) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + parseInt(amount.value, 10),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\n// TODO: Remove undefined from layout and overlaps when vue typing for required: true prop is fixed\nexport function createLayout (props: { layout?: string[], overlaps?: string[] }) {\n const registered = ref<string[]>([])\n const positions = new Map<string, Ref<Position>>()\n const amounts = new Map<string, Ref<number | string>>()\n const priorities = new Map<string, Ref<number>>()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = amounts.get(top)\n const bottomAmount = amounts.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const entries = [...priorities.entries()]\n const sortedEntries = entries.sort(([, a], [, b]) => a.value - b.value).map(([id]) => id)\n return generateLayers(sortedEntries, registered.value, positions, amounts)\n })\n\n const mainStyles = computed(() => {\n const layer = layers.value[layers.value.length - 1].layer\n\n return {\n position: 'absolute',\n left: convertToUnit(layer.left),\n right: convertToUnit(layer.right),\n top: convertToUnit(layer.top),\n bottom: convertToUnit(layer.bottom),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = amounts.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n provide(VuetifyLayoutKey, {\n register: (id: string, priority: Ref<number>, position: Ref<Position>, amount: Ref<number | string>) => {\n priorities.set(id, priority)\n positions.set(id, position)\n amounts.set(id, amount)\n registered.value.push(id)\n\n return computed(() => {\n const index = items.value.findIndex(i => i.id === id)\n\n if (index < 0) throw new Error(`Layout item \"${id}\" is missing from layout prop`)\n\n const item = items.value[index]\n\n if (!item) throw new Error(`Could not find layout item \"${id}`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOpposite = position.value === 'right'\n\n const amount = amounts.get(id)\n\n return {\n [position.value]: 0,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : `${amount?.value ?? 0}px`,\n marginLeft: isOpposite ? undefined : `${item.left}px`,\n marginRight: isOpposite ? `${item.right}px` : undefined,\n marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,\n marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n position: 'absolute',\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : `${amount?.value ?? 0}px`,\n zIndex: layers.value.length - index,\n }\n })\n },\n unregister: (id: string) => {\n positions.delete(id)\n amounts.delete(id)\n priorities.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainStyles,\n getLayoutItem,\n items,\n })\n\n return { layoutClasses: ref('v-layout'), getLayoutItem, items }\n}\n","export const IS_NODE = typeof process !== 'undefined'\nexport const IN_BROWSER = typeof window !== 'undefined'\nexport const IS_DEBUG = IS_NODE && process.env.DEBUG === 'true'\nexport const IS_PROD = IS_NODE && process.env.NODE_ENV === 'production'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\n","// Utilities\nimport { inject, reactive, ref, toRefs, watchEffect } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Globals\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, ToRefs } from 'vue'\n\nexport type DisplayBreakpoint = keyof DisplayThresholds\n\nexport interface DisplayThresholds {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n xxl: number\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: boolean\n sm: boolean\n md: boolean\n lg: boolean\n xl: boolean\n xxl: boolean\n smAndUp: boolean\n mdAndUp: boolean\n lgAndUp: boolean\n xlAndUp: boolean\n smAndDown: boolean\n mdAndDown: boolean\n lgAndDown: boolean\n xlAndDown: boolean\n name: DisplayBreakpoint\n height: number\n width: number\n mobile: boolean\n mobileBreakpoint: number | DisplayBreakpoint\n platform: DisplayPlatform\n thresholds: DisplayThresholds\n}\n\nexport const VuetifyDisplaySymbol: InjectionKey<ToRefs<DisplayInstance>> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\n// Cross-browser support as described in:\n// https://stackoverflow.com/questions/1248081\nfunction getClientWidth () {\n return IN_BROWSER ? Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth\n ) : 0 // SSR\n}\n\nfunction getClientHeight () {\n return IN_BROWSER ? Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight\n ) : 0 // SSR\n}\n\nfunction getPlatform (): DisplayPlatform {\n const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n const ssr = match(/ssr/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr,\n }\n}\n\nexport function createDisplay (options?: DisplayOptions): ToRefs<DisplayInstance> {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = ref(getClientHeight())\n const platform = getPlatform()\n const state = reactive({} as DisplayInstance)\n const width = ref(getClientWidth())\n\n function onResize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = !platform.ssr\n ? width.value < breakpointValue\n : platform.android || platform.ios || platform.opera\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', onResize, { passive: true })\n }\n\n return toRefs(state)\n}\n\nexport function useDisplay () {\n const display = inject(VuetifyDisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n return display\n}\n","// Utilities\nimport { computed, defineComponent, inject, isRef } from 'vue'\nimport { makeProps } from '@/util/makeProps'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue = string | JSXComponent\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sort: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type IconOptions = {\n defaultSet: string\n aliases?: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\ntype IconInstance = {\n component: IconComponent\n icon: IconValue\n}\n\nexport const VuetifyIconSymbol: InjectionKey<IconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: [String, Object] as PropType<IconValue>,\n required: true,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = defineComponent({\n name: 'VComponentIcon',\n\n props: makeProps(makeIconProps()),\n\n setup (props) {\n return () => {\n return (\n <props.tag>\n <props.icon />\n </props.tag>\n )\n }\n },\n})\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeProps(makeIconProps()),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class='v-icon__svg'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n role='img'\n aria-hidden=\"true\"\n >\n <path d={ props.icon as string }></path>\n </svg>\n </props.tag>\n )\n }\n },\n})\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeProps(makeIconProps()),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeProps(makeIconProps()),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\n\nexport const defaultSets: Record<string, IconSet> = {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n}\n\n// Composables\nexport const useIcon = (props: Ref<string | undefined> | { icon?: IconValue }) => {\n const icons = inject(VuetifyIconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData: Ref<IconInstance> = computed(() => {\n const iconAlias = isRef(props) ? props.value : props.icon\n\n if (!iconAlias) throw new Error('Icon value is undefined or null')\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof iconAlias === 'string' && iconAlias.includes('$')) {\n icon = icons.aliases?.[iconAlias.slice(iconAlias.indexOf('$') + 1)]\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const hasSet = icon.includes(':')\n const setName = hasSet ? icon.split(':')[0] : icons.defaultSet\n const iconName = hasSet ? icon.split(':')[1] : icon\n const set = icons.sets[setName ?? icons.defaultSet]\n\n if (!set) {\n throw new Error(`Could not find icon set \"${setName}\"`)\n }\n\n return {\n component: set.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","export default {\n badge: 'Badge',\n close: 'Close',\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n nextMonthAriaLabel: 'Next month',\n nextYearAriaLabel: 'Next year',\n prevMonthAriaLabel: 'Previous month',\n prevYearAriaLabel: 'Previous year',\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n wrapper: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Goto Page {0}',\n currentPage: 'Current Page, Page {0}',\n },\n },\n rating: {\n ariaLabel: {\n icon: 'Rating {0} of {1}',\n },\n },\n}\n","import { computed, inject, provide } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath, wrapInRef } from '@/util'\n\nimport en from '@/locale/en'\n\n// Types\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n defaultLocale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleProps {\n locale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleInstance {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n t: (key: string, ...params: unknown[]) => string\n}\n\nexport interface LocaleAdapter {\n createRoot: (app: App) => LocaleInstance\n getScope: () => LocaleInstance\n createScope: (options?: LocaleProps) => LocaleInstance\n}\n\nexport const VuetifyLocaleAdapterSymbol: InjectionKey<LocaleAdapter> = Symbol.for('vuetify:locale-adapter')\nexport const VuetifyLocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for('vuetify:locale')\n\nexport function provideLocale (props?: LocaleProps) {\n const adapter = inject(VuetifyLocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.createScope(props)\n}\n\nexport function useLocale () {\n const adapter = inject(VuetifyLocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.getScope()\n}\n\nfunction isLocaleAdapter (x: any): x is LocaleAdapter {\n return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot')\n}\n\nexport function createLocaleAdapter (app: App, options?: LocaleOptions | LocaleAdapter) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n\n const rootInstance = adapter.createRoot(app)\n\n return { adapter, rootInstance }\n}\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nexport function createDefaultLocaleAdapter (options?: LocaleOptions): LocaleAdapter {\n const createScope = (options: {\n current: MaybeRef<string>\n fallback: MaybeRef<string>\n messages: MaybeRef<LocaleMessages>\n }) => {\n const current = wrapInRef(options.current)\n const fallback = wrapInRef(options.fallback)\n const messages = wrapInRef(options.messages)\n\n return { current, fallback, messages, t: createTranslateFunction(current, fallback, messages) }\n }\n\n return {\n createRoot: app => {\n const rootScope = createScope({\n current: options?.defaultLocale ?? 'en',\n fallback: options?.fallbackLocale ?? 'en',\n messages: options?.messages ?? { en },\n })\n\n app.provide(VuetifyLocaleSymbol, rootScope)\n\n return rootScope\n },\n getScope: () => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return currentScope\n },\n createScope: options => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const newScope = createScope({\n current: computed(() => options?.locale ?? currentScope.current.value),\n fallback: computed(() => options?.locale ?? currentScope.fallback.value),\n messages: computed(() => options?.messages ?? currentScope.messages.value),\n })\n\n provide(VuetifyLocaleSymbol, newScope)\n\n return newScope\n },\n }\n}\n","export { default as af } from './af'\nexport { default as ar } from './ar'\nexport { default as bg } from './bg'\nexport { default as ca } from './ca'\nexport { default as ckb } from './ckb'\nexport { default as cs } from './cs'\nexport { default as de } from './de'\nexport { default as el } from './el'\nexport { default as en } from './en'\nexport { default as es } from './es'\nexport { default as et } from './et'\nexport { default as fa } from './fa'\nexport { default as fi } from './fi'\nexport { default as fr } from './fr'\nexport { default as hr } from './hr'\nexport { default as hu } from './hu'\nexport { default as he } from './he'\nexport { default as id } from './id'\nexport { default as it } from './it'\nexport { default as ja } from './ja'\nexport { default as ko } from './ko'\nexport { default as lv } from './lv'\nexport { default as lt } from './lt'\nexport { default as nl } from './nl'\nexport { default as no } from './no'\nexport { default as pl } from './pl'\nexport { default as pt } from './pt'\nexport { default as ro } from './ro'\nexport { default as ru } from './ru'\nexport { default as sk } from './sk'\nexport { default as sl } from './sl'\nexport { default as srCyrl } from './sr-Cyrl'\nexport { default as srLatn } from './sr-Latn'\nexport { default as sv } from './sv'\nexport { default as th } from './th'\nexport { default as tr } from './tr'\nexport { default as az } from './az'\nexport { default as uk } from './uk'\nexport { default as vi } from './vi'\nexport { default as zhHans } from './zh-Hans'\nexport { default as zhHant } from './zh-Hant'\n\nexport const rtl = {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: false,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n}\n","import { computed, inject, provide, ref } from 'vue'\nimport { rtl } from '@/locale'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance } from './locale'\n\nexport interface RtlOptions {\n defaultRtl?: boolean\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Record<string, boolean>\n rtlClasses: Ref<string>\n}\n\nexport const VuetifyRtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nexport function createRtl (localeScope: LocaleInstance, options?: RtlOptions) {\n return createRtlScope({\n rtl: {\n ...rtl,\n ...(options?.rtl ?? {}),\n },\n isRtl: ref(options?.defaultRtl ?? false),\n rtlClasses: ref(''),\n }, localeScope)\n}\n\nexport function createRtlScope (currentScope: RtlInstance, localeScope: LocaleInstance, options?: RtlProps): RtlInstance {\n const isRtl = computed(() => {\n if (typeof options?.rtl === 'boolean') return options.rtl\n if (localeScope.current.value && currentScope.rtl.hasOwnProperty(localeScope.current.value)) {\n return currentScope.rtl[localeScope.current.value]\n }\n\n return currentScope.isRtl.value\n })\n\n return {\n isRtl,\n rtl: currentScope.rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (props: RtlProps, localeScope: LocaleInstance) {\n const currentScope = inject(VuetifyRtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n const newScope = createRtlScope(currentScope, localeScope, props)\n\n provide(VuetifyRtlSymbol, newScope)\n\n return newScope\n}\n\nexport function useRtl () {\n const currentScope = inject(VuetifyRtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return currentScope\n}\n","// Utilities\nimport { h } from 'vue'\n\n// Components\nimport { VClassIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-exclamation',\n error: 'mdi-alert',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sort: 'mdi-arrow-up',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","import { inject } from 'vue'\nimport { createDisplay, VuetifyDisplaySymbol } from './composables/display'\nimport { createTheme, VuetifyThemeSymbol } from './composables/theme'\nimport { defaultSets, VuetifyIconSymbol } from '@/composables/icons'\nimport { createLocaleAdapter, VuetifyLocaleAdapterSymbol } from '@/composables/locale'\nimport { createRtl, VuetifyRtlSymbol } from '@/composables/rtl'\nimport { mergeDeep } from '@/util'\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Types\nimport type { App, InjectionKey } from 'vue'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { ThemeOptions } from '@/composables/theme'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleAdapter, LocaleOptions } from '@/composables/locale'\nimport type { RtlOptions } from '@/composables/rtl'\n\nexport interface VuetifyComponentDefaults {\n [key: string]: undefined | Record<string, unknown>\n global: Record<string, unknown>\n}\n\nexport interface VuetifyInstance {\n defaults: VuetifyComponentDefaults\n}\n\nexport interface VuetifyOptions {\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: Partial<VuetifyComponentDefaults>\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions)\n}\n\nexport const VuetifySymbol: InjectionKey<VuetifyInstance> = Symbol.for('vuetify')\n\nexport const useVuetify = () => {\n const vuetify = inject(VuetifySymbol)\n\n if (!vuetify) {\n throw new Error('Vuetify has not been installed on this app')\n }\n\n return vuetify\n}\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n const install = (app: App) => {\n const {\n components = {},\n directives = {},\n defaults = {},\n icons = {},\n } = options\n\n for (const key in directives) {\n const directive = directives[key]\n\n app.directive(key, directive)\n }\n\n for (const key in components) {\n const component = components[key]\n\n app.component(key, component)\n }\n\n const vuetify: VuetifyInstance = {\n defaults: {\n global: {},\n ...defaults,\n },\n }\n\n app.provide(VuetifySymbol, vuetify)\n app.provide(VuetifyDisplaySymbol, createDisplay(options.display))\n app.provide(VuetifyThemeSymbol, createTheme(options.theme))\n app.provide(VuetifyIconSymbol, mergeDeep({\n defaultSet: 'mdi',\n sets: {\n ...defaultSets,\n mdi,\n },\n aliases,\n }, icons))\n const { adapter, rootInstance } = createLocaleAdapter(app, options?.locale)\n app.provide(VuetifyLocaleAdapterSymbol, adapter)\n app.provide(VuetifyRtlSymbol, createRtl(rootInstance, options?.locale))\n app.config.globalProperties.$vuetify = vuetify\n }\n\n return { install }\n}\n","// Utilities\nimport { getCurrentInstance } from 'vue'\nimport { wrapInArray } from './helpers'\nimport { consoleWarn } from './console'\nimport { useVuetify } from '@/framework'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport function makeProps<P extends Record<string, Prop<any> & { source?: string }>> (props: P) {\n for (const key in props) {\n const originalProp = props[key]\n const isOptions = !(originalProp == null || Array.isArray(originalProp) || typeof originalProp === 'function')\n\n const propDefinition = (isOptions ? originalProp : { type: originalProp }) as any\n const originalDefault = propDefinition.hasOwnProperty('default')\n ? propDefinition.default\n : propDefinition.type === Boolean || (Array.isArray(propDefinition.type) && propDefinition.type.includes(Boolean))\n ? false\n : undefined\n\n const wrappedDefault = generateDefault(key, originalDefault, propDefinition.type)\n\n props[key] = {\n ...propDefinition,\n default: wrappedDefault,\n }\n }\n\n return props\n}\n\nfunction generateDefault (propName: string, localDefault: any, type: any) {\n return (props: Record<string, unknown>) => {\n const vm = getCurrentInstance()\n\n if (!vm) {\n consoleWarn('Unable to get current component instance when generating default prop value')\n\n return localDefault\n }\n\n if (!vm.type.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return localDefault\n }\n\n const vuetify = useVuetify()\n const globalDefault = vuetify.defaults.global[propName]\n const componentDefault = vuetify.defaults[vm.type.name]?.[propName]\n const actualDefault = typeof componentDefault !== 'undefined'\n ? componentDefault\n : typeof globalDefault !== 'undefined'\n ? globalDefault\n : localDefault\n\n return isFactory(actualDefault, type) ? actualDefault(props) : actualDefault\n }\n}\n\n// Would be nice to have PropOptions here\nfunction isFactory (val: any, type: any) {\n return typeof val === 'function' && !wrapInArray(type).includes(Function)\n}\n","// Styles\nimport './VApp.sass'\n\n// Composables\nimport { useTheme } from '@/composables/theme'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\nimport { useRtl } from '@/composables/rtl'\n\nexport default defineComponent({\n name: 'VApp',\n\n props: makeProps({\n theme: String,\n ...makeLayoutProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { layoutClasses } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n return () => (\n <div\n class={[\n 'v-application',\n themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n ]}\n data-app=\"true\"\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface RoundedProps {\n rounded?: boolean | string | number | null\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n}, 'rounded')\n\nexport function useRounded (props: RoundedProps, name: string) {\n const roundedClasses = computed(() => {\n const classes: string[] = []\n\n if (props.rounded === true || props.rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof props.rounded === 'string' ||\n props.rounded === 0\n ) {\n for (const value of String(props.rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (props: SizeProps, name: string) {\n const sizeClasses = computed(() => {\n return predefinedSizes.includes(props.size as string)\n ? `${name}--size-${props.size}`\n : null\n })\n\n const sizeStyles = computed(() => {\n return !predefinedSizes.includes(props.size as string) && props.size\n ? ({\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : null\n })\n\n return { sizeClasses, sizeStyles }\n}\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { isCssColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | null | undefined\n\ntype TextColorData = {\n textColorClasses: Ref<string[]>\n textColorStyles: Ref<CSSProperties>\n}\n\ntype BackgroundColorData = {\n backgroundColorClasses: Ref<string[]>\n backgroundColorStyles: Ref<CSSProperties>\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n const backgroundIsCssColor = computed(() => isCssColor(colors.value.background))\n const textIsCssColor = computed(() => isCssColor(colors.value.text))\n\n const colorClasses = computed(() => {\n const classes: string[] = []\n\n if (colors.value.background && !backgroundIsCssColor.value) {\n classes.push(`bg-${colors.value.background}`)\n }\n\n if (colors.value.text && !textIsCssColor.value) {\n classes.push(`text-${colors.value.text}`)\n }\n\n return classes\n })\n\n const colorStyles = computed(() => {\n const styles: CSSProperties = {}\n\n if (colors.value.background && backgroundIsCssColor.value) {\n styles.backgroundColor = colors.value.background\n }\n\n if (colors.value.text && textIsCssColor.value) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n }\n\n return styles\n })\n\n return { colorClasses, colorStyles }\n}\n\nexport function useTextColor (color: Ref<ColorValue>): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref<ColorValue>): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","// Styles\nimport './VAvatar.sass'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VAvatar',\n\n props: makeProps({\n color: String,\n left: Boolean,\n right: Boolean,\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props, 'v-avatar')\n const { sizeClasses, sizeStyles } = useSize(props, 'v-avatar')\n\n return () => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--left': props.left,\n 'v-avatar--right': props.right,\n },\n backgroundColorClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n sizeStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useIcon } from '@/composables/icons'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ComputedRef, defineComponent, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, makeProps } from '@/util'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VIcon',\n\n props: makeProps({\n color: String,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n icon: {\n type: [String, Object] as PropType<IconValue>,\n },\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n }),\n\n setup (props, { slots }) {\n let slotIcon: ComputedRef<string | undefined> | undefined\n if (slots.default) {\n slotIcon = computed(() => {\n const slot = slots.default?.()\n if (!slot) return\n\n return flattenFragments(slot).filter(node =>\n node.children && typeof node.children === 'string'\n )[0]?.children as string\n })\n }\n\n const { iconData } = useIcon(slotIcon || props)\n const { sizeClasses } = useSize(props, 'v-icon')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => {\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--disabled': props.disabled,\n 'v-icon--left': props.left,\n 'v-icon--right': props.right,\n },\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n ]}\n aria-hidden=\"true\"\n />\n )\n }\n },\n})\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType<string | false | TransitionProps>,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { convertToUnit, extract, makeProps, maybeTransition } from '@/util'\n\nexport default defineComponent({\n name: 'VBadge',\n\n inheritAttrs: false,\n\n props: makeProps({\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: String,\n dot: Boolean,\n floating: Boolean,\n icon: String,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n location: {\n type: String,\n default: 'top-right',\n validator: (value: string) => {\n const [vertical, horizontal] = (value ?? '').split('-')\n\n return (\n ['top', 'bottom'].includes(vertical) &&\n ['left', 'right'].includes(horizontal)\n )\n },\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true,\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeTransitionProps({ transition: 'scale-rotate-transition' }),\n }),\n\n setup (props, ctx) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props, 'v-badge')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n\n const position = computed(() => {\n return props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n })\n\n function calculatePosition (offset?: number | string) {\n return `calc(100% - ${convertToUnit(position.value + parseInt(offset ?? 0, 10))})`\n }\n\n const locationStyles = computed(() => {\n const [vertical, horizontal] = (props.location ?? '').split('-')\n\n // TODO: RTL support\n\n const styles = {\n bottom: 'auto',\n left: 'auto',\n right: 'auto',\n top: 'auto',\n }\n\n if (!props.inline) {\n styles[horizontal === 'left' ? 'right' : 'left'] = calculatePosition(props.offsetX)\n styles[vertical === 'top' ? 'bottom' : 'top'] = calculatePosition(props.offsetY)\n }\n\n return styles\n })\n\n return () => {\n const value = Number(props.content)\n const content = (!props.max || isNaN(value)) ? props.content\n : value <= props.max ? value\n : `${props.max}+`\n\n const [badgeAttrs, attrs] = extract(ctx.attrs, [\n 'aria-atomic',\n 'aria-label',\n 'aria-live',\n 'role',\n 'title',\n ])\n\n return (\n <props.tag\n class={[\n 'v-badge',\n {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline,\n },\n ]}\n { ...attrs }\n >\n <div class=\"v-badge__wrapper\">\n { ctx.slots.default?.() }\n\n {\n maybeTransition(\n props,\n {},\n <span\n v-show={ props.modelValue }\n class={[\n 'v-badge__badge',\n backgroundColorClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n locationStyles.value,\n textColorStyles.value,\n ] as any} // TODO: Fix this :(\n aria-atomic=\"true\"\n aria-label=\"locale string here\" // TODO: locale string here\n aria-live=\"polite\"\n role=\"status\"\n { ...badgeAttrs }\n >\n {\n props.dot ? undefined\n : ctx.slots.badge ? ctx.slots.badge?.()\n : props.icon ? <VIcon icon={props.icon} />\n : <span class=\"v-badge__content\">{content}</span>\n }\n </span>,\n )\n }\n </div>\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n outlined?: boolean\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n outlined: Boolean,\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (props: BorderProps, name: string) {\n const borderClasses = computed(() => {\n const classes: string[] = []\n\n if (props.outlined || props.border === true || props.border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof props.border === 'string' ||\n props.border === 0\n ) {\n for (const value of String(props.border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => ({\n height: convertToUnit(props.height),\n maxHeight: convertToUnit(props.maxHeight),\n maxWidth: convertToUnit(props.maxWidth),\n minHeight: convertToUnit(props.minHeight),\n minWidth: convertToUnit(props.minWidth),\n width: convertToUnit(props.width),\n }))\n\n return { dimensionStyles }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\nexport function useElevation (props: ElevationProps) {\n const elevationClasses = computed(() => {\n const classes: string[] = []\n\n if (props.elevation == null) return classes\n\n classes.push(`elevation-${props.elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n absolute?: boolean\n bottom?: boolean | number | string\n fixed?: boolean\n left?: boolean | number | string\n position?: Position\n right?: boolean | number | string\n top?: boolean | number | string\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n absolute: Boolean,\n bottom: [Boolean, Number, String],\n fixed: Boolean,\n left: [Boolean, Number, String],\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n right: [Boolean, Number, String],\n top: [Boolean, Number, String],\n}, 'position')\n\nexport function usePosition (props: PositionProps, name: string) {\n const targets = ['top', 'right', 'bottom', 'left'] as const\n\n const positionClasses = computed(() => {\n if (props.fixed) return `${name}--fixed`\n if (props.absolute) return `${name}--absolute`\n\n return props.position ? `position-${props.position}` : undefined\n })\n\n const positionStyles = computed(() => {\n const styles: Partial<Record<typeof targets[number], string>> = {}\n\n for (const target of targets) {\n const prop = props[target]\n\n if (prop == null || prop === false) continue\n\n styles[target] = convertToUnit(prop === true ? '0' : String(prop))\n }\n\n return styles\n })\n\n return { positionClasses, positionStyles }\n}\n","// Styles\nimport './VBanner.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VBanner',\n\n props: makeProps({\n avatar: String,\n icon: String,\n mobile: Boolean,\n singleLine: Boolean,\n sticky: Boolean,\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-banner')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-banner')\n const { roundedClasses } = useRounded(props, 'v-banner')\n\n return () => {\n const hasThumbnail = (!!props.avatar || !!props.icon || !!slots.thumbnail)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--has-thumbnail': hasThumbnail,\n 'v-banner--is-mobile': props.mobile,\n 'v-banner--single-line': props.singleLine,\n 'v-banner--sticky': props.sticky,\n },\n themeClasses.value,\n borderClasses.value,\n roundedClasses.value,\n elevationClasses.value,\n positionClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n positionStyles.value,\n ]}\n role=\"banner\"\n >\n <div class=\"v-banner__sizer\">\n <div class=\"v-banner__content\">\n { hasThumbnail && (\n <div class=\"v-banner__thumbnail\">\n { slots.thumbnail?.() }\n { props.avatar && (\n <img class=\"v-banner__avatar\" src={ props.avatar } alt=\"\"></img>\n )}\n { props.icon && <i class=\"v-banner__icon\">{ props.icon }</i> }\n </div>\n )}\n <div class=\"v-banner__text\">{ slots.default?.() }</div>\n </div>\n { slots.actions && (\n <div class=\"v-banner__actions\">{ slots.actions?.() }</div>\n )}\n </div>\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = ['default', 'comfortable', 'compact'] as const\n\ntype Density = typeof allowedDensities[number]\n\nexport interface DensityProps {\n density: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (props: DensityProps, name: string) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.08)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: DirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: DirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple: ObjectDirective = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n","import type { Directive, DirectiveArguments, DirectiveBinding } from 'vue'\n\ninterface Binding extends Omit<DirectiveBinding, 'value' | 'modifiers'> {\n value?: unknown\n modifiers: Dictionary<boolean | undefined>\n}\n\n/**\n * Transform DirectiveBinding to DirectiveArguments with strict typing\n */\nexport function useDirective <T extends Binding> (directive: Directive, binding: Partial<T>): DirectiveArguments[number] {\n return [\n directive,\n binding.value!,\n binding.arg!,\n binding.modifiers! as any,\n ]\n}\n","// Styles\nimport './VBtn.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\nimport { useColor } from '@/composables/color'\n\n// Directives\nimport { Ripple, RippleDirectiveBinding } from '@/directives/ripple'\n\n// Components\nimport VIcon from '@/components/VIcon/VIcon'\n\n// Utilities\nimport { computed, defineComponent, withDirectives } from 'vue'\nimport { makeProps, useDirective } from '@/util'\n\nimport { makeSizeProps, useSize } from '@/composables/size'\n\nexport default defineComponent({\n name: 'VBtn',\n\n props: makeProps({\n text: Boolean,\n flat: Boolean,\n plain: Boolean,\n icon: [Boolean, String],\n\n block: Boolean,\n\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-btn')\n const { roundedClasses } = useRounded(props, 'v-btn')\n const { densityClasses } = useDensity(props, 'v-btn')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-btn')\n const { sizeClasses } = useSize(props, 'v-btn')\n\n const isContained = computed(() => {\n return !(props.text || props.plain || props.icon || props.outlined || props.border !== false)\n })\n\n const isElevated = computed(() => {\n return isContained.value && !(props.disabled || props.flat)\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => ({\n [isContained.value ? 'background' : 'text']: props.color,\n })))\n\n return () => withDirectives(\n <props.tag\n type=\"button\"\n class={[\n 'v-btn',\n {\n 'v-btn--contained': isContained.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--icon': !!props.icon,\n 'v-btn--plain': props.plain,\n 'v-btn--block': props.block,\n 'v-btn--disabled': props.disabled,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n disabled={ props.disabled }\n >\n <span class=\"v-btn__overlay\" />\n\n { typeof props.icon === 'boolean'\n ? slots.default?.()\n : <VIcon icon={ props.icon } size={ props.size } />\n }\n </props.tag>,\n [useDirective<RippleDirectiveBinding>(Ripple, {\n value: !props.disabled,\n modifiers: { center: !!props.icon },\n })]\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VDivider.sass'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { convertToUnit, makeProps } from '@/util'\n\n// Composables\nimport { useTheme } from '@/composables/theme'\n\n// Types\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'maxHeight' | 'maxWidth'\ntype DividerStyles = Partial<Record<DividerKey, string>>\n\nexport default defineComponent({\n name: 'VDivider',\n\n props: makeProps({\n inset: Boolean,\n length: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n }),\n\n setup (props, { attrs }) {\n const { themeClasses } = useTheme()\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n return () => {\n return (\n <hr\n class={[\n {\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical,\n },\n themeClasses.value,\n ]}\n style={ dividerStyles.value }\n aria-orientation={\n !attrs.role || attrs.role === 'separator'\n ? props.vertical ? 'vertical' : 'horizontal'\n : undefined\n }\n role={`${attrs.role || 'separator'}`}\n />\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VFooter',\n\n props: makeProps({\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeTagProps({ tag: 'footer' }),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-footer')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-footer')\n const { roundedClasses } = useRounded(props, 'v-footer')\n\n return () => (\n <props.tag\n class={[\n 'v-footer',\n themeClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VContainer',\n\n props: makeProps({\n fluid: {\n type: Boolean,\n default: false,\n },\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n return () => (\n <props.tag\n class={[\n 'v-container',\n { 'v-container--fluid': props.fluid },\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, defineComponent, h } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary<Prop<boolean | string | number, false>>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary<Prop<string | number, null>>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary<Prop<string | number, null>>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport default defineComponent({\n name: 'VCol',\n\n props: makeProps({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: classes.value,\n }, slots.default?.())\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, defineComponent, h } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\nfunction makeRowProps (prefix: string, def: () => Prop<string, null>) {\n return breakpoints.reduce((props, val) => {\n props[prefix + capitalize(val)] = def()\n return props\n }, {} as Dictionary<Prop<string, null>>)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport default defineComponent({\n name: 'VRow',\n\n props: makeProps({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: ['v-row', classes.value],\n }, slots.default?.())\n },\n})\n","import { camelize, capitalize, defineComponent, h } from 'vue'\nimport { makeProps } from './makeProps'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return defineComponent({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: makeProps({\n tag: {\n type: String,\n default: tag,\n },\n }),\n\n setup (props, { slots }) {\n return () => h(props.tag, {\n class: klass,\n }, slots.default?.())\n },\n })\n}\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('flex-grow-1', 'div', 'VSpacer')\n","export { default as VContainer } from './VContainer'\nexport { default as VCol } from './VCol'\nexport { default as VRow } from './VRow'\nexport { default as VSpacer } from './VSpacer'\n","export { default as VIcon } from './VIcon'\nexport {\n VComponentIcon,\n VSvgIcon,\n VLigatureIcon,\n VClassIcon,\n} from '@/composables/icons'\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VResponsive.sass'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeProps } from '@/util'\n\n// Composables\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport default defineComponent({\n name: 'VResponsive',\n\n props: makeProps({\n aspectRatio: [String, Number],\n contentClass: String,\n ...makeDimensionProps(),\n }),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { aspectStyles } = useAspectStyles(props)\n\n return () => (\n <div class=\"v-responsive\" style={ dimensionStyles.value }>\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n { slots.additional?.() }\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default?.() }</div>\n </div>\n )\n },\n})\n","// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n handler(isIntersecting, entries, observer)\n }\n\n // If has already been initted and\n // has the once modifier, unbind\n if (el._observe.init && modifiers.once) unmounted(el)\n // Otherwise, mark the observer as initted\n else (el._observe.init = true)\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect: ObjectDirective<HTMLElement> = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","import { getCurrentInstance } from 'vue'\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance() as any\n vm.render = render\n}\n","import './VImg.sass'\n\n// Vue\nimport {\n computed,\n defineComponent,\n h,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\n\n// Components\nimport { VResponsive } from '../VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\nimport type { ObserveDirectiveBinding } from '@/directives/intersect'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utils\nimport {\n makeProps,\n maybeTransition,\n SUPPORTS_INTERSECTION,\n useDirective,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport default defineComponent({\n name: 'VImg',\n\n props: makeProps({\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n ...makeTransitionProps(),\n }),\n\n emits: ['loadstart', 'load', 'error'],\n\n setup (props, { emit, slots }) {\n const currentSrc = ref('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = ref<'idle' | 'loading' | 'loaded' | 'error'>('idle')\n const naturalWidth = ref<number>()\n const naturalHeight = ref<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n })\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = computed(() => {\n if (!normalisedSrc.value.src || state.value === 'idle') return\n\n const img = h('img', {\n class: ['v-img__img', containClasses.value],\n src: normalisedSrc.value.src,\n srcset: normalisedSrc.value.srcset,\n sizes: props.sizes,\n ref: image,\n onLoad,\n onError,\n })\n\n const sources = slots.sources?.()\n\n return maybeTransition(\n props,\n { appear: true },\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{sources}{img}</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n )\n })\n\n const __preloadImage = computed(() => {\n return maybeTransition(\n props,\n {},\n normalisedSrc.value.lazySrc && state.value !== 'loaded' ? (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt=\"\"\n />\n ) : undefined\n )\n })\n\n const __placeholder = computed(() => {\n if (!slots.placeholder) return\n\n const placeholder = state.value === 'loading' || (state.value === 'error' && !slots.error)\n ? <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n : undefined\n\n return maybeTransition(props, { appear: true }, placeholder)\n })\n\n const __error = computed(() => {\n if (!slots.error) return\n\n const error = state.value === 'error'\n ? <div class=\"v-img__error\">{ slots.error() }</div>\n : undefined\n\n return maybeTransition(props, { appear: true }, error)\n })\n\n useRender(() => withDirectives(\n <VResponsive\n class=\"v-img\"\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-slots={{\n additional: () => [__image.value, __preloadImage.value, __placeholder.value, __error.value],\n default: slots.default,\n }}\n />,\n [useDirective<ObserveDirectiveBinding>(intersect, {\n value: {\n handler: init,\n options: props.options,\n },\n modifiers: { once: true },\n })]\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VLayout.sass'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps, useRender } from '@/util'\n\n// Composables\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\nexport default defineComponent({\n name: 'VLayout',\n\n props: makeProps(makeLayoutProps()),\n\n setup (props, { slots }) {\n const { layoutClasses, getLayoutItem, items } = createLayout(props)\n\n useRender(() => (\n <div\n class={layoutClasses.value}\n style={{\n height: props.fullHeight ? '100vh' : undefined,\n }}\n >{ slots.default?.() }</div>\n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n","// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport default defineComponent({\n name: 'VLayoutItem',\n\n props: makeProps({\n position: {\n type: String,\n required: true,\n } as Prop<'top' | 'right' | 'bottom' | 'left'>,\n ...makeLayoutItemProps(),\n }),\n\n setup (props, { slots }) {\n const styles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n computed(() => props.position ?? 'left'),\n toRef(props, 'size')\n )\n\n return () => (\n <div style={ styles.value } v-slots={ slots } />\n )\n },\n})\n","export { default as VLayout } from './VLayout'\nexport { default as VLayoutItem } from './VLayoutItem'\n","import { defineComponent } from 'vue'\nimport { provideLocale } from '@/composables/locale'\nimport { provideRtl } from '@/composables/rtl'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VLocaleProvider',\n\n props: makeProps({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined,\n },\n }),\n\n setup (props, ctx) {\n const localeInstance = provideLocale(props)\n const { rtlClasses } = provideRtl(props, localeInstance)\n\n return () => <div class={rtlClasses.value}>{ctx.slots.default?.()}</div>\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed, onMounted, ref } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = ref(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles }\n}\n","// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useMain } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VMain',\n\n props: makeProps(makeTagProps({ tag: 'main' })),\n\n setup (props, { slots }) {\n const { mainStyles } = useMain()\n const { ssrBootStyles } = useSsrBoot()\n\n return () => (\n <props.tag\n class=\"v-main\"\n style={[\n mainStyles.value,\n ssrBootStyles.value,\n ]}\n >\n <div class=\"v-main__wrap\">\n { slots.default?.() }\n </div>\n </props.tag>\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed, getCurrentInstance, ref } from 'vue'\nimport { consoleError, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\n// Composables\nexport function useProxiedModel<\n Inner,\n Props extends object,\n Prop extends Extract<keyof Props, string>,\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance()\n\n if (!vm) consoleError('useProxiedModel must be called from inside a setup function')\n\n const propIsDefined = computed(() => {\n return !!(\n typeof props[prop] !== 'undefined' &&\n (vm?.vnode.props?.hasOwnProperty(prop) || vm?.vnode.props?.hasOwnProperty(toKebabCase(prop)))\n )\n })\n\n const internal = ref(transformIn(propIsDefined.value ? props[prop] : defaultValue)) as Ref<Inner>\n\n return computed<Inner>({\n get () {\n if (propIsDefined.value) return transformIn(props[prop])\n else return internal.value\n },\n set (newValue) {\n internal.value = newValue\n vm?.emit(`update:${prop}`, transformOut(newValue))\n },\n })\n}\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, defineComponent, onBeforeMount, ref, toRef, watch } from 'vue'\nimport { convertToUnit } from '@/util/helpers'\nimport { makeProps } from '@/util/makeProps'\n\nexport default defineComponent({\n name: 'VNavigationDrawer',\n\n props: makeProps({\n disableResizeWatcher: Boolean,\n expandOnHover: Boolean,\n modelValue: {\n type: Boolean,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 72,\n },\n src: String,\n temporary: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-navigation-drawer')\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { positionClasses, positionStyles } = usePosition(props, 'v-navigation-drawer')\n const { roundedClasses } = useRounded(props, 'v-navigation-drawer')\n\n const isActive = useProxiedModel(props, 'modelValue')\n const isHovering = ref(false)\n const size = computed(() => Number(props.rail ? props.railWidth : props.width))\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? props.width\n : size.value\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const layoutStyles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n computed(() => props.right ? 'right' : 'left'),\n computed(() => !isTemporary.value && isActive.value ? size.value : 0),\n )\n\n if (!props.disableResizeWatcher) {\n watch(mobile, val => !props.permanent && (isActive.value = !val))\n }\n\n watch(props, val => {\n if (val.permanent) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null) return\n\n isActive.value = !mobile.value\n })\n\n return () => {\n const hasImg = (slots.img || props.src)\n const translate = (\n (!props.permanent && !isActive.value ? 105 : 0) *\n (!props.right && !props.bottom ? -1 : 1)\n )\n\n return (\n <props.tag\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n {\n 'v-navigation-drawer--bottom': props.bottom,\n 'v-navigation-drawer--end': props.right,\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--start': props.left || !props.right,\n 'v-navigation-drawer--temporary': isTemporary.value,\n },\n themeClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n layoutStyles.value,\n positionStyles.value,\n {\n transform: `translate${props.bottom ? 'Y' : 'X'}(${convertToUnit(translate, '%')})`,\n width: convertToUnit(width.value),\n },\n ]}\n >\n { hasImg && (\n <div class=\"v-navigation-drawer__img\">\n { slots.img\n ? slots.img?.({ src: props.src })\n : (<img src={ props.src } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VSheet',\n\n props: makeProps({\n color: String,\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props, 'v-sheet')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-sheet')\n const { roundedClasses } = useRounded(props, 'v-sheet')\n\n return () => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VSystemBar',\n\n props: makeProps({\n lightsOut: Boolean,\n window: Boolean,\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-system-bar')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-system-bar')\n const { roundedClasses } = useRounded(props, 'v-system-bar')\n\n return () => (\n <props.tag\n class={[\n {\n 'v-system-bar': true,\n 'v-system-bar--lights-out': props.lightsOut,\n 'v-system-bar--window': props.window,\n },\n themeClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VThemeProvider.sass'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { provideTheme } from '@/composables/theme'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VThemeProvider',\n\n props: makeProps({\n theme: {\n type: String,\n },\n // TODO: Better name\n newContext: {\n type: Boolean,\n },\n }),\n\n setup (props, context) {\n const { themeClasses } = provideTheme(props, context)\n\n return () => {\n return (\n <div class={['v-theme-provider', themeClasses.value]}>\n <div>{ context.slots.default?.() }</div>\n </div>\n )\n }\n },\n})\n","// Utilities\nimport { defineComponent, h, Transition, TransitionGroup } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { FunctionalComponent, Prop } from 'vue'\n\nexport function createCssTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n) {\n return defineComponent({\n name,\n\n props: makeProps({\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n }),\n\n setup (props, { slots }) {\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name,\n mode: props.mode,\n onBeforeEnter (el: HTMLElement) {\n el.style.transformOrigin = props.origin\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) el.style.position = 'absolute'\n if (props.hideOnLeave) el.style.display = 'none'\n },\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record<string, any>,\n mode = 'in-out'\n) {\n return defineComponent({\n name,\n\n props: makeProps({\n mode: {\n type: String,\n default: mode,\n } as Prop<'in-out' | 'out-in' | 'default'>,\n }),\n\n setup (props, { slots }) {\n return () => {\n return h(Transition, {\n name,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...functions,\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createCssTransition('carousel-transition')\nexport const VCarouselReverseTransition = createCssTransition('carousel-reverse-transition')\nexport const VTabTransition = createCssTransition('tab-transition')\nexport const VTabReverseTransition = createCssTransition('tab-reverse-transition')\nexport const VMenuTransition = createCssTransition('menu-transition')\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createCssTransition('dialog-transition')\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n","export * from './VApp'\n// export * from './VAppBar'\n// export * from './VAlert'\n// export * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\n// export * from './VBottomNavigation'\n// export * from './VBottomSheet'\n// export * from './VBreadcrumbs'\n// export * from './VBtn'\nexport * from './VBtn'\n// export * from './VBtnToggle'\n// export * from './VCalendar'\n// export * from './VCard'\n// export * from './VCarousel'\n// export * from './VCheckbox'\n// export * from './VChip'\n// export * from './VChipGroup'\n// export * from './VColorPicker'\n// export * from './VContent'\n// export * from './VCombobox'\n// export * from './VCounter'\n// export * from './VData'\n// export * from './VDataIterator'\n// export * from './VDataTable'\n// export * from './VDatePicker'\n// export * from './VDialog'\nexport * from './VDivider'\n// export * from './VExpansionPanel'\n// export * from './VFileInput'\nexport * from './VFooter'\n// export * from './VForm'\nexport * from './VGrid'\n// export * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\n// export * from './VInput'\n// export * from './VItemGroup'\n// export * from './VLabel'\nexport * from './VLayout'\nexport * from './VLocaleProvider'\n// export * from './VLazy'\n// export * from './VList'\nexport * from './VMain'\n// export * from './VMenu'\n// export * from './VMessages'\nexport * from './VNavigationDrawer'\n// export * from './VOverflowBtn'\n// export * from './VOverlay'\n// export * from './VPagination'\nexport * from './VSheet'\n// export * from './VParallax'\n// export * from './VPicker'\n// export * from './VProgressCircular'\n// export * from './VProgressLinear'\n// export * from './VRadioGroup'\n// export * from './VRangeSlider'\n// export * from './VRating'\nexport * from './VResponsive'\n// export * from './VSelect'\n// export * from './VSkeletonLoader'\n// export * from './VSlider'\n// export * from './VSlideGroup'\n// export * from './VSnackbar'\n// export * from './VSparkline'\n// export * from './VSpeedDial'\n// export * from './VStepper'\n// export * from './VSubheader'\n// export * from './VSwitch'\nexport * from './VSystemBar'\n// export * from './VTabs'\n// export * from './VTextarea'\n// export * from './VTextField'\nexport * from './VThemeProvider'\n// export * from './VTimeline'\n// export * from './VTimePicker'\n// export * from './VToolbar'\n// export * from './VTooltip'\n// export * from './VTreeview'\n// export * from './VVirtualScroll'\n// export * from './VWindow'\nexport * from './transitions'\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","import { attachedRoot } from '@/util'\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (root instanceof ShadowRoot && root.host === e.target) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document.body)\n\n if (root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n el._clickOutside = {\n lastMousedownWasOutside: true,\n onClick,\n onMousedown,\n }\n },\n\n unmounted (el: HTMLElement) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside) return\n app.removeEventListener('click', el._clickOutside.onClick, true)\n app.removeEventListener('mousedown', el._clickOutside.onMousedown, true)\n })\n\n delete el._clickOutside\n },\n}\n\nexport default ClickOutside\n","import type { DirectiveBinding, ObjectDirective } from 'vue'\n\ninterface ResizeDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: (() => void)\n modifiers?: {\n active?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n const options: AddEventListenerOptions = {\n passive: !binding.modifiers?.active,\n }\n\n window.addEventListener('resize', handler, options)\n el._onResize = {\n handler,\n options,\n }\n\n if (!binding.modifiers?.quiet) {\n handler()\n }\n}\n\nfunction unmounted (el: HTMLElement) {\n if (!el._onResize) return\n\n const { handler, options } = el._onResize\n window.removeEventListener('resize', handler, options)\n delete el._onResize\n}\n\nexport const Resize: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n","import type { DirectiveBinding } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: EventListener | {\n handler: EventListener\n options?: AddEventListenerOptions\n } | EventListenerObject & { options?: AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n const { self = false } = binding.modifiers ?? {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (el: HTMLElement) {\n if (!el._onScroll) return\n\n const { handler, options, target = el } = el._onScroll\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll\n}\n\nfunction updated (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (binding.value === binding.oldValue) return\n\n unmounted(el)\n mounted(el, binding)\n}\n\nexport const Scroll = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Scroll\n","// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\nimport type {\n TouchHandlers,\n TouchValue,\n TouchWrapper,\n} from 'vuetify/types'\n\n// Utilities\nimport { keys } from '@/util'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchDirectiveBinding extends Omit<DirectiveBinding, 'value'> {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start?.({ ...event, ...wrapper })\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end?.({ ...event, ...wrapper })\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move?.({ ...event, ...wrapper })\n}\n\nfunction createHandlers (value: TouchHandlers = {}): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const value = binding.value\n const target = value?.parent ? el.parentElement : el\n const options = value?.options ?? { passive: true }\n const uid = binding.instance?.$.uid // TODO: use custom uid generator\n\n if (!target || !uid) return\n\n const handlers = createHandlers(binding.value)\n\n target._touchHandlers = target._touchHandlers ?? Object.create(null)\n target._touchHandlers![uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options)\n })\n}\n\nfunction unmounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const target = binding.value?.parent ? el.parentElement : el\n const uid = binding.instance?.$.uid\n\n if (!target?._touchHandlers || !uid) return\n\n const handlers = target._touchHandlers[uid]\n\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n\n delete target._touchHandlers[uid]\n}\n\nexport const Touch: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Touch\n","export { ClickOutside } from './click-outside'\n// export { Color } from './color'\nexport { Intersect } from './intersect'\n// export { Mutate } from './mutate'\nexport { Resize } from './resize'\nexport { Ripple } from './ripple'\nexport { Scroll } from './scroll'\nexport { Touch } from './touch'\n","import './styles/main.sass'\nimport * as components from './components'\nimport * as directives from './directives'\nimport * as framework from './framework'\n\nexport * from './components'\nexport * from './framework'\n\nexport const createVuetify = (options: framework.VuetifyOptions = {}) => {\n return framework.createVuetify({ components, directives, ...options })\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__982__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(86);\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"vuetify.min.js","sources":["../src/util/globals.ts","../src/composables/resizeObserver.ts","../src/util/helpers.ts","../src/util/anchor.ts","../src/util/box.ts","../src/util/animation.ts","../src/util/console.ts","../src/util/color/transformSRGB.ts","../src/util/color/transformCIELAB.ts","../src/util/colorUtils.ts","../src/util/getCurrentInstance.ts","../src/composables/defaults.ts","../src/util/defineComponent.tsx","../src/util/injectSelf.ts","../src/util/createSimpleFunctional.ts","../src/util/dom.ts","../src/util/easing.ts","../src/util/getScrollParent.ts","../src/util/propsFactory.ts","../src/util/useRender.ts","../src/composables/layout.ts","../src/util/color/APCA.ts","../src/composables/theme.ts","../src/locale/en.ts","../src/locale/index.ts","../src/composables/rtl.ts","../src/components/VApp/VApp.tsx","../src/components/VDefaultsProvider/VDefaultsProvider.tsx","../src/components/transitions/createTransition.ts","../src/components/transitions/expand-transition.ts","../src/components/transitions/dialog-transition.tsx","../src/components/transitions/index.ts","../src/composables/dimensions.ts","../src/components/VResponsive/VResponsive.tsx","../src/directives/intersect/index.ts","../src/composables/transition.ts","../src/components/VImg/VImg.tsx","../src/composables/tag.ts","../src/components/VToolbar/VToolbarTitle.tsx","../src/composables/border.ts","../src/composables/elevation.ts","../src/composables/rounded.ts","../src/composables/color.ts","../src/components/VToolbar/VToolbar.tsx","../src/composables/proxiedModel.ts","../src/components/VAppBar/VAppBar.tsx","../src/composables/density.ts","../src/composables/variant.tsx","../src/components/VBtnGroup/VBtnGroup.tsx","../src/composables/group.ts","../src/components/VBtnToggle/VBtnToggle.tsx","../src/iconsets/mdi.ts","../src/composables/icons.tsx","../src/composables/size.ts","../src/components/VIcon/VIcon.tsx","../src/composables/intersectionObserver.ts","../src/components/VProgressCircular/VProgressCircular.tsx","../src/directives/ripple/index.ts","../src/components/VProgressLinear/VProgressLinear.tsx","../src/composables/loader.tsx","../src/composables/location.ts","../src/composables/position.ts","../src/composables/router.tsx","../src/components/VBtn/VBtn.tsx","../src/composables/selectLink.ts","../src/components/VAppBar/VAppBarNavIcon.tsx","../src/components/VToolbar/VToolbarItems.tsx","../src/components/VAppBar/VAppBarTitle.tsx","../src/components/VAlert/VAlertTitle.ts","../src/composables/locale.ts","../src/components/VAlert/VAlert.tsx","../src/components/VMessages/VMessages.tsx","../src/composables/form.ts","../src/composables/validation.ts","../src/components/VInput/InputIcon.tsx","../src/components/VInput/VInput.tsx","../src/components/VLabel/VLabel.tsx","../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx","../src/components/VSelectionControl/VSelectionControl.tsx","../src/components/VCheckbox/VCheckboxBtn.tsx","../src/components/VCheckbox/VCheckbox.tsx","../src/components/VAvatar/VAvatar.tsx","../src/components/VChipGroup/VChipGroup.tsx","../src/components/VChip/VChip.tsx","../src/components/VDivider/VDivider.tsx","../src/components/VList/list.ts","../src/composables/nested/openStrategies.ts","../src/composables/nested/selectStrategies.ts","../src/composables/nested/nested.ts","../src/components/VList/VListGroup.tsx","../src/components/VList/VListItemSubtitle.ts","../src/components/VList/VListItemTitle.ts","../src/components/VList/VListItem.tsx","../src/components/VList/VListSubheader.tsx","../src/components/VList/VListChildren.tsx","../src/composables/items.ts","../src/components/VList/VList.tsx","../src/components/VList/VListImg.ts","../src/components/VList/VListItemAction.tsx","../src/components/VList/VListItemMedia.tsx","../src/composables/delay.ts","../src/components/VMenu/shared.ts","../src/components/VOverlay/useActivator.tsx","../src/composables/lazy.ts","../src/components/VOverlay/util/point.ts","../src/components/VOverlay/locationStrategies.ts","../src/util/isFixedPosition.ts","../src/components/VOverlay/requestNewFrame.ts","../src/components/VOverlay/scrollStrategies.ts","../src/composables/toggleScope.ts","../src/composables/stack.ts","../src/composables/teleport.ts","../src/directives/click-outside/index.ts","../src/components/VOverlay/VOverlay.tsx","../src/composables/forwardRefs.ts","../src/composables/scopeId.ts","../src/components/VMenu/VMenu.tsx","../src/components/VField/VFieldLabel.tsx","../src/composables/focus.ts","../src/components/VField/VField.tsx","../src/components/VCounter/VCounter.tsx","../src/components/VTextField/VTextField.tsx","../src/components/VSelect/VSelect.tsx","../src/composables/filter.ts","../src/components/VAutocomplete/VAutocomplete.tsx","../src/components/VBadge/VBadge.tsx","../src/components/VBanner/VBannerActions.tsx","../src/components/VBanner/VBannerText.ts","../src/composables/display.ts","../src/components/VBanner/VBanner.tsx","../src/components/VBottomNavigation/VBottomNavigation.tsx","../src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx","../src/components/VBreadcrumbs/VBreadcrumbsItem.tsx","../src/components/VBreadcrumbs/VBreadcrumbs.tsx","../src/components/VCard/VCardActions.tsx","../src/components/VCard/VCardSubtitle.ts","../src/components/VCard/VCardTitle.ts","../src/components/VCard/VCardItem.tsx","../src/components/VCard/VCardText.ts","../src/components/VCard/VCard.tsx","../src/directives/touch/index.ts","../src/components/VWindow/VWindow.tsx","../src/composables/ssrBoot.ts","../src/components/VWindow/VWindowItem.tsx","../src/components/VCarousel/VCarousel.tsx","../src/components/VCarousel/VCarouselItem.tsx","../src/components/VCode/index.ts","../src/components/VColorPicker/VColorPickerCanvas.tsx","../src/components/VColorPicker/util/index.ts","../src/components/VColorPicker/VColorPickerEdit.tsx","../src/components/VSlider/slider.ts","../src/components/VSlider/VSliderThumb.tsx","../src/components/VSlider/VSliderTrack.tsx","../src/components/VSlider/VSlider.tsx","../src/components/VColorPicker/VColorPickerPreview.tsx","../src/util/colors.ts","../src/components/VColorPicker/VColorPickerSwatches.tsx","../src/components/VSheet/VSheet.tsx","../src/components/VColorPicker/VColorPicker.tsx","../src/components/VCombobox/VCombobox.tsx","../src/components/VDialog/VDialog.tsx","../src/components/VExpansionPanel/VExpansionPanels.tsx","../src/components/VExpansionPanel/VExpansionPanelTitle.tsx","../src/components/VExpansionPanel/VExpansionPanelText.tsx","../src/components/VExpansionPanel/VExpansionPanel.tsx","../src/components/VFileInput/VFileInput.tsx","../src/components/VFooter/VFooter.tsx","../src/components/VForm/VForm.tsx","../src/components/VGrid/VContainer.tsx","../src/components/VGrid/VCol.ts","../src/components/VGrid/VRow.ts","../src/components/VGrid/VSpacer.ts","../src/components/VHover/VHover.tsx","../src/components/VItemGroup/VItemGroup.tsx","../src/components/VItemGroup/VItem.tsx","../src/components/VKbd/index.ts","../src/components/VLayout/VLayout.tsx","../src/components/VLayout/VLayoutItem.tsx","../src/components/VLazy/VLazy.tsx","../src/components/VLocaleProvider/VLocaleProvider.tsx","../src/components/VMain/VMain.tsx","../src/composables/touch.ts","../src/components/VNavigationDrawer/touch.ts","../src/components/VNavigationDrawer/VNavigationDrawer.tsx","../src/components/VNavigationDrawer/sticky.ts","../src/components/VNoSsr/VNoSsr.tsx","../src/composables/hydration.ts","../src/components/VPagination/VPagination.tsx","../src/composables/refs.ts","../src/components/VParallax/VParallax.tsx","../src/components/VRadio/VRadio.tsx","../src/components/VRadioGroup/VRadioGroup.tsx","../src/components/VRangeSlider/VRangeSlider.tsx","../src/components/VRating/VRating.tsx","../src/components/VSlideGroup/helpers.ts","../src/components/VSlideGroup/VSlideGroup.tsx","../src/components/VSlideGroup/VSlideGroupItem.tsx","../src/components/VSnackbar/VSnackbar.tsx","../src/components/VSwitch/VSwitch.tsx","../src/components/VSystemBar/VSystemBar.tsx","../src/components/VTabs/shared.ts","../src/components/VTabs/VTab.tsx","../src/components/VTabs/VTabs.tsx","../src/components/VTable/VTable.tsx","../src/components/VTextarea/VTextarea.tsx","../src/components/VThemeProvider/VThemeProvider.tsx","../src/components/VTimeline/VTimeline.tsx","../src/components/VTimeline/VTimelineDivider.tsx","../src/components/VTimeline/VTimelineItem.tsx","../src/components/VTooltip/VTooltip.tsx","../src/components/VValidation/VValidation.tsx","../src/directives/mutate/index.ts","../src/directives/resize/index.ts","../src/directives/scroll/index.ts","../src/framework.ts","../src/entry-bundler.ts"],"sourcesContent":["export const IN_BROWSER = typeof window !== 'undefined'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\nexport const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && CSS.supports('selector(:focus-visible)')\n","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport type { DeepReadonly, Ref } from 'vue'\n\n// Globals\nimport { IN_BROWSER } from '@/util/globals'\n\ninterface ResizeState {\n resizeRef: Ref<Element | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback): ResizeState {\n const resizeRef = ref<Element>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n contentRect.value = entries[0].contentRect\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n","// Utilities\nimport { camelize, computed, Fragment, toRef, watch } from 'vue'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n ComputedGetter,\n InjectionKey,\n PropType,\n Ref,\n Slots,\n ToRefs,\n VNode,\n VNodeChild,\n} from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey = boolean | string | (string | number)[] | ((item: Record<string, any>, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nconst tagsToReplace: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n}\n\nexport function escapeHTML (str: string): string {\n return str.replace(/[&<>]/g, tag => tagsToReplace[tag] || tag)\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isComponentInstance (obj: any): obj is ComponentPublicInstance {\n return obj?.$el\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract<keyof T, string>\n> = Record<string, unknown> extends T ? Partial<Pick<T, U>> : Pick<T, U>\n\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: U[]): [yes: MaybePick<T, U>, no: Omit<T, U>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n )\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of a an input component. Remaining\n * attributes should be passed to the <input> element inside.\n */\nexport function filterInputAttrs (attrs: Record<string, unknown>) {\n return pick(attrs, ['class', 'style', 'id', /^data-/])\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ninterface ItemGroup<T> {\n name: string\n items: T[]\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v : [v]\n}\n\ntype DataTableCompareFunction<T = any> = (a: T, b: T) => number\nexport function sortItems<T extends any, K extends keyof T> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<K, DataTableCompareFunction<T[K]>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey as K]) {\n const customResult = customSorters[sortKey as K](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\ntype Writable<T> = {\n -readonly [P in keyof T]: T[P]\n}\n\n/**\n * Filters slots to only those starting with `prefix`, removing the prefix\n */\nexport function getPrefixedSlots (prefix: string, slots: Slots): Slots {\n return Object.keys(slots)\n .filter(k => k.startsWith(prefix))\n .reduce<Writable<Slots>>((obj, k) => {\n obj[k.replace(prefix, '')] = slots[k]\n return obj\n }, {})\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Record<string, any> = {},\n target: Record<string, any> = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record<string, any> = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport const randomHexColor = () => {\n const n = (Math.random() * 0xfffff * 1000000).toString(16)\n return '#' + n.slice(0, 6)\n}\n\nexport function toKebabCase (str = '') {\n return str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n}\n\nexport type MaybeRef<T> = T | Ref<T>\n\nexport function findChildren (vnode?: VNodeChild): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') {\n return []\n }\n\n if (Array.isArray(vnode)) {\n return vnode\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (vnode.component) {\n return [vnode.component, ...findChildren(vnode.component?.subTree)]\n .filter(v => v)\n .flat(1)\n }\n\n return []\n}\n\nexport function findChildrenWithProvide (\n key: InjectionKey<any> | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer<T = never> {\n readonly #arr: Array<T> = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection<U> =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n\n// Only allow a single return type\ntype NotAUnion<T> = [T] extends [infer U] ? _NotAUnion<U, U> : never\ntype _NotAUnion<T, U> = U extends any ? [T] extends [U] ? unknown : never : never\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\nexport function destructComputed<T extends object> (getter: ComputedGetter<T & NotAUnion<T>>): ToRefs<T>\nexport function destructComputed<T extends object> (getter: ComputedGetter<T>) {\n const refs = {} as ToRefs<T>\n const base = computed(getter)\n for (const key in base.value) {\n refs[key] = toRef(base.value, key)\n }\n watch(base, val => {\n for (const key in val) {\n refs[key].value = val[key]\n }\n }, { flush: 'sync' })\n return refs\n}\n\n/** Array.includes but value can be any type */\nexport function includes (arr: readonly any[], val: any) {\n return arr.includes(val)\n}\n\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string) => onRE.test(key)\n\nexport type EventProp<T = (...args: any[]) => any> = T | T[]\nexport const EventProp = [Function, Array] as PropType<EventProp>\n\nexport function callEvent (handler: EventProp | undefined, ...args: any[]) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args)\n }\n } else if (typeof handler === 'function') {\n handler(...args)\n }\n}\n","import { includes } from '@/util/helpers'\n\nconst block = ['top', 'bottom'] as const\nconst inline = ['start', 'end', 'left', 'right'] as const\ntype Tblock = typeof block[number]\ntype Tinline = typeof inline[number]\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`\nexport type ParsedAnchor =\n | { side: 'center', align: 'center' }\n | { side: Tblock, align: 'left' | 'right' | 'center' }\n | { side: 'left' | 'right', align: Tblock | 'center' }\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor (anchor: Anchor, isRtl: boolean) {\n let [side, align] = anchor.split(' ') as [Tblock | Tinline | 'center', Tblock | Tinline | 'center' | undefined]\n if (!align) {\n align =\n includes(block, side) ? 'start'\n : includes(inline, side) ? 'top'\n : 'center'\n }\n\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl),\n } as ParsedAnchor\n}\n\nexport function toPhysical (str: 'center' | Tblock | Tinline, isRtl: boolean) {\n if (str === 'start') return isRtl ? 'right' : 'left'\n if (str === 'end') return isRtl ? 'left' : 'right'\n return str\n}\n\nexport function flipSide (anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor\n}\n\nexport function flipAlign (anchor: ParsedAnchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.align],\n } as ParsedAnchor\n}\n\nexport function flipCorner (anchor: ParsedAnchor) {\n return {\n side: anchor.align,\n align: anchor.side,\n } as ParsedAnchor\n}\n\nexport function getAxis (anchor: ParsedAnchor) {\n return includes(block, anchor.side) ? 'y' : 'x'\n}\n","export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n\nexport function getOverflow (a: Box, b: Box) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right),\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom),\n },\n }\n}\n","import { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n const animation = el.animate(keyframes, options)\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n","/* eslint-disable no-console */\n// import Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n // if (Vuetify.config.silent) return\n\n if (parent) {\n vm = {\n _isVue: true,\n $parent: parent,\n $options: vm,\n }\n }\n\n if (vm) {\n // Only show each message once per instance\n vm.$_alreadyWarned = vm.$_alreadyWarned || []\n if (vm.$_alreadyWarned.includes(message)) return\n vm.$_alreadyWarned.push(message)\n }\n\n return `[Vuetify] ${message}` + (\n vm ? generateComponentTrace(vm) : ''\n )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any, includeFile?: boolean): string {\n if (vm.$root === vm) {\n return '<Root>'\n }\n const options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {}\n let name = options.name || options._componentTag\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match?.[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : `<Anonymous>`) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nfunction generateComponentTrace (vm: any): string {\n if (vm._isVue && vm.$parent) {\n const tree: any[] = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (tree.length > 0) {\n const last: any = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n }${\n Array.isArray(vm)\n // eslint-disable-next-line sonarjs/no-nested-template-literals\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm)})`\n }\n}\n","import type { ColorInt, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): ColorInt {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n // Rescale back to [0, 255]\n return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0)\n}\n\nexport function toXYZ (rgb: ColorInt): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n const r = transform((rgb >> 16 & 0xff) / 255)\n const g = transform((rgb >> 8 & 0xff) / 255)\n const b = transform((rgb >> 0 & 0xff) / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","import type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n let rgb\n\n if (typeof color === 'number') {\n rgb = color\n } else if (typeof color === 'string') {\n let c = color.startsWith('#') ? color.substring(1) : color\n if (c.length === 3) {\n c = c.split('').map(char => char + char).join('')\n }\n if (c.length !== 6 && c.length !== 8) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n }\n rgb = parseInt(c, 16)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n\n if (rgb < 0) {\n consoleWarn(`Colors cannot be negative: '${color}'`)\n rgb = 0\n } else if (rgb > 0xffffffff || isNaN(rgb)) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n rgb = 0xffffff\n }\n\n return rgb\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n let hexColor: string = color.toString(16)\n\n if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function HSVAtoCSS (hsva: HSVA): string {\n return RGBAtoCSS(HSVAtoRGBA(hsva))\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n const toHex = (v: number) => {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n }\n\n return `#${[\n toHex(rgba.r),\n toHex(rgba.g),\n toHex(rgba.b),\n toHex(Math.round(rgba.a * 255)),\n ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n return {\n r: rgba[0],\n g: rgba[1],\n b: rgba[2],\n a: Math.round((rgba[3] / 255) * 100) / 100,\n }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n const rgb = HexToRGBA(hex)\n return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\nexport function colorToRGB (color: string) {\n const int = colorToInt(color)\n\n return {\n r: (int & 0xFF0000) >> 16,\n g: (int & 0xFF00) >> 8,\n b: (int & 0xFF),\n }\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n // TODO: why this false positive?\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = colorToInt(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n","// Utilities\nimport type { ComponentInternalInstance } from 'vue'\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n return toKebabCase(getCurrentInstance(name).type?.name)\n}\n\nlet _uid = 0\nlet _map = new WeakMap<ComponentInternalInstance, number>()\nexport function getUid () {\n const vm = getCurrentInstance('getUid')\n\n if (_map.has(vm)) return _map.get(vm)!\n else {\n const uid = _uid++\n _map.set(vm, uid)\n return uid\n }\n}\ngetUid.reset = () => {\n _uid = 0\n _map = new WeakMap()\n}\n","// Utilities\nimport { computed, inject, provide, ref, unref } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface DefaultsInstance {\n [key: string]: undefined | Record<string, unknown>\n global?: Record<string, unknown>\n}\n\nexport type DefaultsOptions = Partial<DefaultsInstance>\n\nexport const DefaultsSymbol: InjectionKey<Ref<DefaultsInstance>> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref<DefaultsInstance> {\n return ref(options ?? {})\n}\n\nexport function useDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef<DefaultsInstance | undefined>,\n options?: {\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | undefined>\n scoped?: MaybeRef<boolean | undefined>\n }\n) {\n const injectedDefaults = useDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties.prev) break\n\n properties = properties.prev\n }\n\n return properties\n }\n\n return mergeDeep(properties.prev, properties)\n }) as ComputedRef<DefaultsInstance>\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n","// Utils\nimport {\n defineComponent as _defineComponent,\n effectScope,\n getCurrentInstance,\n shallowReactive,\n shallowRef,\n toRaw,\n watch,\n watchEffect,\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { mergeDeep, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\nimport { DefaultsSymbol, provideDefaults, useDefaults } from '@/composables/defaults'\n\n// Types\nimport type {\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EffectScope,\n EmitsOptions,\n MethodOptions,\n VNode,\n VNodeChild,\n} from 'vue'\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return vnode.props?.hasOwnProperty(prop) ||\n vnode.props?.hasOwnProperty(toKebabCase(prop))\n}\n\nexport const defineComponent = (function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = options.props ?? {}\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const vm = getCurrentInstance()!\n const defaults = useDefaults()\n\n const _subcomponentDefaults = shallowRef()\n const _props = shallowReactive({ ...toRaw(props) })\n watchEffect(() => {\n const globalDefaults = defaults.value.global\n const componentDefaults = defaults.value[props._as ?? options.name!]\n\n if (componentDefaults) {\n const subComponents = Object.entries(componentDefaults).filter(([key]) => key.startsWith('V'))\n if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents)\n }\n\n for (const prop of Object.keys(props)) {\n let newVal\n if (propIsDefined(vm.vnode, prop)) {\n newVal = props[prop]\n } else {\n newVal = componentDefaults?.[prop] ?? globalDefaults?.[prop] ?? props[prop]\n }\n if (_props[prop] !== newVal) {\n _props[prop] = newVal\n }\n }\n })\n\n const setupBindings = options._setup(_props, ctx)\n\n let scope: EffectScope\n watch(_subcomponentDefaults, (val, oldVal) => {\n if (!val && scope) scope.stop()\n else if (val && !oldVal) {\n scope = effectScope()\n scope.run(() => {\n provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, val))\n })\n }\n }, { immediate: true })\n\n return setupBindings\n }\n }\n\n return options\n}) as unknown as typeof _defineComponent\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\nexport type SlotsToProps<T extends Record<string, Slot>> = {\n $children: () => (T['default'] | VNodeChild | { [K in keyof T]?: T[K] })\n 'v-slots': new () => { [K in keyof T]?: T[K] | false }\n}/* & { // TODO: individual slots are never converted from the constructor type\n [K in keyof T as `v-slot:${K & string}`]?: new () => (T[K] | false)\n} */\n\ntype Slot<T extends any[] = any[]> = (...args: T) => VNodeChild\nexport type MakeSlots<T extends Record<string, any[]>> = {\n [K in keyof T]?: Slot<T[K]>\n}\n\nexport function genericComponent<T extends (new () => {\n $slots?: Record<string, Slot>\n})> (exposeDefaults = true): <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I = InstanceType<T>,\n Base = DefineComponent<\n (I extends Record<'$props', any> ? Omit<PropsOptions, keyof I['$props']> : PropsOptions) & (\n I extends Record<'$slots', any>\n ? SlotsToProps<I['$slots']>\n : {}\n ),\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : I extends Record<'$props', any> ? Omit<E, ToListeners<keyof I['$props']>> : E,\n EE\n >\n>(options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>) => Base & T {\n return options => (exposeDefaults ? defineComponent : _defineComponent)(options) as any\n}\n","import { getCurrentInstance } from '@/util/getCurrentInstance'\nimport type { InjectionKey } from 'vue'\n\nexport function injectSelf<T>(key: InjectionKey<T> | string): T | undefined\nexport function injectSelf (key: InjectionKey<any> | string) {\n const { provides } = getCurrentInstance('injectSelf')\n\n if (provides && (key as string | symbol) in provides) {\n // TS doesn't allow symbol as index type\n return provides[key as string]\n }\n}\n","import { camelize, capitalize, h } from 'vue'\nimport { defineComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return defineComponent({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n },\n\n setup (props, { slots }) {\n return () => h(props.tag, {\n class: klass,\n }, slots.default?.())\n },\n })\n}\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)'\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)' // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)' // Leaving\n","export function getScrollParent (el?: HTMLElement) {\n while (el) {\n if (hasScrollbar(el)) return el\n el = el.parentElement!\n }\n\n return document.scrollingElement as HTMLElement\n}\n\nexport function getScrollParents (el?: Element | null, stopAt?: Element | null) {\n const elements: HTMLElement[] = []\n\n if (stopAt && el && !stopAt.contains(el)) return elements\n\n while (el) {\n if (hasScrollbar(el)) elements.push(el as HTMLElement)\n if (el === stopAt) break\n el = el.parentElement!\n }\n\n return elements\n}\n\nexport function hasScrollbar (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return style.overflowY === 'scroll' || (style.overflowY === 'auto' && el.scrollHeight > el.clientHeight)\n}\n","import type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record<keyof props, any>) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source?: string) {\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\n defaults?: Defaults\n ): AppendDefault<PropsOptions, Defaults> => {\n return Object.keys(props).reduce<any>((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record<string, unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n : {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n}\n\ntype MergeDefault<T, D> = unknown extends D ? InferPropType<T> : (NonNullable<InferPropType<T>> | D)\n\n/**\n * Like `Partial<T>` but doesn't care what the value is\n */\ntype PartialKeys<T> = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType<T> = T extends null\n ? any // null & true would fail to infer\n : T extends { type: null | true }\n ? any // As TS issue https://github.com/Microsoft/TypeScript/issues/14829 // somehow `ObjectConstructor` when inferred from { (): T } becomes `any` // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n : T extends ObjectConstructor | { type: ObjectConstructor }\n ? Record<string, any>\n : T extends BooleanConstructor | { type: BooleanConstructor }\n ? boolean\n : T extends Prop<infer V, infer D> ? (unknown extends V ? D : V) : T\n","// Utilities\nimport { getCurrentInstance } from './getCurrentInstance'\n\n// Types\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance('useRender') as any\n vm.render = render\n}\n","// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ntype LayoutItem = {\n id: string\n top: number\n bottom: number\n left: number\n right: number\n size: number\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainStyles: Ref<CSSProperties>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n return layout\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = ref(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n) => {\n let previousLayer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainStyles = computed<CSSProperties>(() => {\n const layer = layers.value[layers.value.length - 1].layer\n\n return {\n '--v-layout-left': convertToUnit(layer.left),\n '--v-layout-right': convertToUnit(layer.right),\n '--v-layout-top': convertToUnit(layer.top),\n '--v-layout-bottom': convertToUnit(layer.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = ref(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed<CSSProperties>(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (!isMounted.value) return styles\n\n if (index.value < 0) throw new Error(`Layout item \"${id}\" is missing`)\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`Could not find layout item \"${id}`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed<CSSProperties>(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: rootZIndex.value,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: number, background: number) {\n // Linearize sRGB\n const Rtxt = ((text >> 16 & 0xff) / 255) ** mainTRC\n const Gtxt = ((text >> 8 & 0xff) / 255) ** mainTRC\n const Btxt = ((text >> 0 & 0xff) / 255) ** mainTRC\n\n const Rbg = ((background >> 16 & 0xff) / 255) ** mainTRC\n const Gbg = ((background >> 8 & 0xff) / 255) ** mainTRC\n const Bbg = ((background >> 0 & 0xff) / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n","// Utilities\nimport {\n computed,\n inject,\n provide,\n reactive,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n colorToInt,\n colorToRGB,\n createRange,\n darken,\n getCurrentInstance,\n getLuma,\n IN_BROWSER,\n intToHex,\n lighten,\n mergeDeep,\n propsFactory,\n} from '@/util'\nimport { APCAcontrast } from '@/util/color/APCA'\n\n// Types\nimport type { App, DeepReadonly, InjectionKey, Ref } from 'vue'\nimport type { HeadAttrs, HeadClient } from '@vueuse/head'\n\ntype DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]> } : T\n\nexport type ThemeOptions = false | {\n cspNonce?: string\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n}\nexport type ThemeDefinition = DeepPartial<InternalThemeDefinition>\n\ninterface InternalThemeOptions {\n cspNonce?: string\n isDisabled: boolean\n defaultTheme: string\n variations: false | VariationsOptions\n themes: Record<string, InternalThemeDefinition>\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\nexport interface ThemeInstance {\n readonly isDisabled: boolean\n readonly themes: Ref<Record<string, InternalThemeDefinition>>\n\n readonly name: Readonly<Ref<string>>\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>\n\n readonly themeClasses: Readonly<Ref<string | undefined>>\n readonly styles: Readonly<Ref<string>>\n\n readonly global: {\n readonly name: Ref<string>\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n }\n}\n\nexport const ThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n theme: String,\n}, 'theme')\n\nconst defaultThemeOptions: Exclude<ThemeOptions, false> = {\n defaultTheme: 'light',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#6200EE',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'kbd-background-color': '#212529',\n 'kbd-color': '#FFFFFF',\n 'code-background-color': '#C2C2C2',\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-variant': '#BDBDBD',\n 'on-surface-variant': '#424242',\n primary: '#BB86FC',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC5',\n 'secondary-darken-1': '#03DAC5',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'kbd-background-color': '#212529',\n 'kbd-color': '#FFFFFF',\n 'code-background-color': '#B7B7B7',\n },\n },\n },\n}\n\nfunction parseThemeOptions (options: ThemeOptions = defaultThemeOptions): InternalThemeOptions {\n if (!options) return { ...defaultThemeOptions, isDisabled: true } as InternalThemeOptions\n\n const themes: Record<string, InternalThemeDefinition> = {}\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark\n ? defaultThemeOptions.themes?.dark\n : defaultThemeOptions.themes?.light\n themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n }\n\n return mergeDeep(\n defaultThemeOptions,\n { ...options, themes },\n ) as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (app: App, options?: ThemeOptions): ThemeInstance {\n const head = app._context.provides.usehead as HeadClient | undefined\n const parsedOptions = reactive(parseThemeOptions(options))\n const name = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {}\n for (const [name, original] of Object.entries(themes.value)) {\n const theme: InternalThemeDefinition = acc[name] = {\n ...original,\n colors: {\n ...original.colors,\n },\n }\n\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name]\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = intToHex(fn(colorToInt(color), amount))\n }\n }\n }\n }\n\n for (const color of Object.keys(theme.colors)) {\n if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n const colorVal = colorToInt(theme.colors[color]!)\n\n const blackContrast = Math.abs(APCAcontrast(0, colorVal))\n const whiteContrast = Math.abs(APCAcontrast(0xffffff, colorVal))\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n theme.colors[onColor] = whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000'\n }\n }\n\n return acc\n })\n const current = computed(() => computedThemes.value[name.value])\n\n const styles = computed(() => {\n const lines: string[] = []\n\n if (current.value.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'])\n }\n\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n const { variables, dark } = theme\n\n createCssClass(lines, `.v-theme--${themeName}`, [\n `color-scheme: ${dark ? 'dark' : 'normal'}`,\n ...genCssVariables(theme),\n ...Object.keys(variables).map(key => {\n const value = variables[key]\n const color = typeof value === 'string' && value.startsWith('#') ? colorToRGB(value) : undefined\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n\n return `--v-${key}: ${rgb ?? value}`\n }),\n ])\n }\n\n const bgLines: string[] = []\n const fgLines: string[] = []\n\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n } else {\n createCssClass(bgLines, `.bg-${key}`, [\n `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n `background: rgb(var(--v-theme-${key})) !important`,\n `color: rgb(var(--v-theme-on-${key})) !important`,\n ])\n createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`])\n }\n }\n\n lines.push(...bgLines, ...fgLines)\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n })\n\n if (head) {\n head.addHeadObjs(computed(() => {\n const style: HeadAttrs = {\n children: styles.value,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n }\n if (parsedOptions.cspNonce) style.nonce = parsedOptions.cspNonce\n\n return { style: [style] }\n }))\n\n if (IN_BROWSER) {\n watchEffect(() => head.updateDOM())\n }\n } else {\n let styleEl = IN_BROWSER\n ? document.getElementById('vuetify-theme-stylesheet')\n : null\n\n watch(styles, updateStyles, { immediate: true })\n function updateStyles () {\n if (parsedOptions.isDisabled) return\n\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce)\n\n styleEl = el\n document.head.appendChild(styleEl)\n }\n\n if (styleEl) styleEl.innerHTML = styles.value\n }\n }\n\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`)\n\n return {\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current,\n },\n }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n getCurrentInstance('provideTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const name = computed<string>(() => {\n return props.theme ?? theme?.name.value\n })\n\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n themeClasses,\n }\n\n provide(ThemeSymbol, newTheme)\n\n return newTheme\n}\n\nexport function useTheme () {\n getCurrentInstance('useTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n\nfunction createCssClass (lines: string[], selector: string, content: string[]) {\n lines.push(\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition) {\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = colorToRGB(value)\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n return variables\n}\n","export default {\n badge: 'Badge',\n close: 'Close',\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n nextMonthAriaLabel: 'Next month',\n nextYearAriaLabel: 'Next year',\n prevMonthAriaLabel: 'Previous month',\n prevYearAriaLabel: 'Previous year',\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Goto Page {0}',\n currentPage: 'Page {0}, Current Page',\n first: 'First page',\n last: 'Last page',\n },\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}',\n },\n },\n}\n","export { default as af } from './af'\nexport { default as ar } from './ar'\nexport { default as bg } from './bg'\nexport { default as ca } from './ca'\nexport { default as ckb } from './ckb'\nexport { default as cs } from './cs'\nexport { default as da } from './da'\nexport { default as de } from './de'\nexport { default as el } from './el'\nexport { default as en } from './en'\nexport { default as es } from './es'\nexport { default as et } from './et'\nexport { default as fa } from './fa'\nexport { default as fi } from './fi'\nexport { default as fr } from './fr'\nexport { default as hr } from './hr'\nexport { default as hu } from './hu'\nexport { default as he } from './he'\nexport { default as id } from './id'\nexport { default as it } from './it'\nexport { default as ja } from './ja'\nexport { default as ko } from './ko'\nexport { default as lv } from './lv'\nexport { default as lt } from './lt'\nexport { default as nl } from './nl'\nexport { default as no } from './no'\nexport { default as pl } from './pl'\nexport { default as pt } from './pt'\nexport { default as ro } from './ro'\nexport { default as ru } from './ru'\nexport { default as sk } from './sk'\nexport { default as sl } from './sl'\nexport { default as srCyrl } from './sr-Cyrl'\nexport { default as srLatn } from './sr-Latn'\nexport { default as sv } from './sv'\nexport { default as th } from './th'\nexport { default as tr } from './tr'\nexport { default as az } from './az'\nexport { default as uk } from './uk'\nexport { default as vi } from './vi'\nexport { default as zhHans } from './zh-Hans'\nexport { default as zhHant } from './zh-Hant'\n\nexport const rtl = {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: false,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n}\n","import { computed, inject, provide, ref } from 'vue'\nimport { rtl } from '@/locale'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance } from './locale'\n\nexport interface RtlOptions {\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Record<string, boolean>\n rtlClasses: Ref<string>\n}\n\nexport const RtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nexport function createRtl (localeScope: LocaleInstance, options?: RtlOptions) {\n return createRtlScope({\n rtl: {\n ...rtl,\n ...(options?.rtl ?? {}),\n },\n isRtl: ref(false),\n rtlClasses: ref(''),\n }, localeScope)\n}\n\nexport function createRtlScope (currentScope: RtlInstance, localeScope: LocaleInstance, options?: RtlProps): RtlInstance {\n const isRtl = computed(() => {\n if (typeof options?.rtl === 'boolean') return options.rtl\n if (localeScope.current.value && currentScope.rtl.hasOwnProperty(localeScope.current.value)) {\n return currentScope.rtl[localeScope.current.value]\n }\n\n return currentScope.isRtl.value\n })\n\n return {\n isRtl,\n rtl: currentScope.rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (props: RtlProps, localeScope: LocaleInstance) {\n const currentScope = inject(RtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n const newScope = createRtlScope(currentScope, localeScope, props)\n\n provide(RtlSymbol, newScope)\n\n return newScope\n}\n\nexport function useRtl () {\n const currentScope = inject(RtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return currentScope\n}\n","// Styles\nimport './VApp.sass'\n\n// Composables\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VApp = defineComponent({\n name: 'VApp',\n\n props: {\n ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n <div\n ref={ layoutRef }\n class={[\n 'v-application',\n theme.themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n ]}\n style={ layoutStyles.value }\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType<typeof VApp>\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent, toRefs } from 'vue'\n\n// Types\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { PropType } from 'vue'\n\nexport const VDefaultsProvider = defineComponent({\n name: 'VDefaultsProvider',\n\n props: {\n defaults: Object as PropType<DefaultsOptions>,\n reset: [Number, String],\n root: Boolean,\n scoped: Boolean,\n },\n\n setup (props, { slots }) {\n const { defaults, reset, root, scoped } = toRefs(props)\n\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n })\n\n return () => slots.default?.()\n },\n})\n","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { FunctionalComponent, Prop } from 'vue'\n\nexport function createCssTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n) {\n return defineComponent({\n name,\n\n props: {\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n setup (props, { slots }) {\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name,\n mode: props.mode,\n onBeforeEnter (el: HTMLElement) {\n el.style.transformOrigin = props.origin\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = `${offsetTop}px`\n el.style.left = `${offsetLeft}px`\n el.style.width = `${offsetWidth}px`\n el.style.height = `${offsetHeight}px`\n }\n\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important')\n }\n },\n onAfterLeave (el: HTMLElement) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n },\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record<string, any>,\n mode = 'in-out'\n) {\n return defineComponent({\n name,\n\n props: {\n mode: {\n type: String,\n default: mode,\n } as Prop<'in-out' | 'out-in' | 'default'>,\n },\n\n setup (props, { slots }) {\n return () => {\n return h(Transition, {\n name,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...functions,\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import type { PropType } from 'vue'\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n defineComponent,\n nullifyTransforms,\n standardEasing,\n} from '@/util'\n\nexport const VDialogTransition = defineComponent({\n name: 'VDialogTransition',\n\n props: {\n target: Object as PropType<HTMLElement>,\n },\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n { transform: '' },\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n { opacity: 1 },\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: '' },\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n <Transition\n name=\"dialog-transition\"\n { ...functions }\n css={ false }\n v-slots={ slots }\n />\n )\n : <Transition name=\"dialog-transition\" v-slots={ slots } />\n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\nfunction getDimensions (target: HTMLElement, el: HTMLElement) {\n const targetBox = target.getBoundingClientRect()\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs\n const sy = tsy / maxs\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n","import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport { VDialogTransition } from './dialog-transition'\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => ({\n height: convertToUnit(props.height),\n maxHeight: convertToUnit(props.maxHeight),\n maxWidth: convertToUnit(props.maxWidth),\n minHeight: convertToUnit(props.minHeight),\n minWidth: convertToUnit(props.minWidth),\n width: convertToUnit(props.width),\n }))\n\n return { dimensionStyles }\n}\n","// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const VResponsive = defineComponent({\n name: 'VResponsive',\n\n props: {\n aspectRatio: [String, Number],\n contentClass: String,\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const { aspectStyles } = useAspectStyles(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n <div class=\"v-responsive\" style={ dimensionStyles.value }>\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n\n { slots.additional?.() }\n\n { slots.default && (\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default() }</div>\n )}\n </div>\n ))\n\n return {}\n },\n})\n","// Utils\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n if (!SUPPORTS_INTERSECTION) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[binding.instance!.$.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![binding.instance!.$.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const observe = el._observe?.[binding.instance!.$.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![binding.instance!.$.uid]\n}\n\nexport const Intersect: ObjectDirective<HTMLElement> = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","// Utilities\nimport { h, mergeProps, Transition } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType<string | boolean | TransitionProps & { component?: Component }>,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: string | boolean | TransitionProps & { component?: any }\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, ...rest } = props\n\n if (!transition || typeof transition === 'boolean') return slots.default?.()\n\n const { component = Transition, ...customProps } = typeof transition === 'object' ? transition : {}\n\n return h(\n component,\n mergeProps(typeof transition === 'string' ? { name: transition } : customProps as any, rest as any),\n slots\n )\n}\n","import './VImg.sass'\n\n// Components\nimport { VResponsive } from '@/components/VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport {\n computed,\n h,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n defineComponent,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport const VImg = defineComponent({\n name: 'VImg',\n\n directives: { intersect },\n\n props: {\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n width: [String, Number],\n\n ...makeTransitionProps(),\n },\n\n emits: ['loadstart', 'load', 'error'],\n\n setup (props, { emit, slots }) {\n const currentSrc = ref('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = ref<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = ref<number>()\n const naturalHeight = ref<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = computed(() => {\n if (!normalisedSrc.value.src || state.value === 'idle') return\n\n const img = h('img', {\n class: ['v-img__img', containClasses.value],\n src: normalisedSrc.value.src,\n srcset: normalisedSrc.value.srcset,\n alt: '',\n sizes: props.sizes,\n ref: image,\n onLoad,\n onError,\n })\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n })\n\n const __preloadImage = computed(() => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt=\"\"\n />\n )}\n </MaybeTransition>\n ))\n\n const __placeholder = computed(() => {\n if (!slots.placeholder) return\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n })\n\n const __error = computed(() => {\n if (!slots.error) return\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n })\n\n const __gradient = computed(() => {\n if (!props.gradient) return\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n })\n\n const isBooted = ref(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n ]}\n style={{ width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) }}\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n v-slots={{\n additional: () => [__image.value, __preloadImage.value, __gradient.value, __placeholder.value, __error.value],\n default: slots.default,\n }}\n />\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport const VToolbarTitle = genericComponent<new () => {\n $slots: MakeSlots<{\n default: []\n text: []\n }>\n}>()({\n name: 'VToolbarTitle',\n\n props: {\n text: String,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text)\n\n return (\n <props.tag class=\"v-toolbar-title\">\n { hasText && (\n <div class=\"v-toolbar-title__placeholder\">\n { slots.text ? slots.text() : props.text }\n\n { slots.default?.() }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VToolbarTitle = InstanceType<typeof VToolbarTitle>\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (\n props: BorderProps,\n name = getCurrentInstanceName(),\n) {\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border\n const classes: string[] = []\n\n if (border === true || border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof border === 'string' ||\n border === 0\n ) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\ntype ElevationData = {\n elevationClasses: Ref<string[]>\n}\n\nexport function useElevation (props: ElevationProps | Ref<number | string | undefined>): ElevationData {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation\n const classes: string[] = []\n\n if (elevation == null) return classes\n\n classes.push(`elevation-${elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref<string[]>\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref<RoundedValue>,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { destructComputed, isCssColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n textColorClasses: Ref<string[]>\n textColorStyles: Ref<CSSProperties>\n}\n\nexport interface BackgroundColorData {\n backgroundColorClasses: Ref<string[]>\n backgroundColorStyles: Ref<CSSProperties>\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n return destructComputed(() => {\n const classes: string[] = []\n const styles: CSSProperties = {}\n\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background\n } else {\n classes.push(`bg-${colors.value.background}`)\n }\n }\n\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n } else {\n classes.push(`text-${colors.value.text}`)\n }\n }\n\n return { colorClasses: classes, colorStyles: styles }\n })\n}\n\nexport function useTextColor (color: Ref<ColorValue>): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref<ColorValue>): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VImg } from '@/components/VImg'\nimport { VToolbarTitle } from './VToolbarTitle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type Density = typeof allowedDensities[number]\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'v-toolbar')\n\nexport const VToolbar = genericComponent<new () => {\n $slots: MakeSlots<{\n default: []\n image: []\n prepend: []\n append: []\n title: []\n extension: []\n }>\n}>()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n\n const isExtended = ref(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n <props.tag\n class={[\n 'v-toolbar',\n {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n ]}\n >\n { hasImage && (\n <div key=\"image\" class=\"v-toolbar__image\">\n <VDefaultsProvider\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n { slots.image ? slots.image?.() : (<VImg />) }\n </VDefaultsProvider>\n </div>\n ) }\n\n <div\n class=\"v-toolbar__content\"\n style={{ height: convertToUnit(contentHeight.value) }}\n >\n { slots.prepend && (\n <div class=\"v-toolbar__prepend\">\n { slots.prepend?.() }\n </div>\n ) }\n\n { hasTitle && (\n <VToolbarTitle key=\"title\" text={ props.title }>\n {{ text: slots.title }}\n </VToolbarTitle>\n ) }\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-toolbar__append\">\n { slots.append?.() }\n </div>\n ) }\n </div>\n\n <VExpandTransition>\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { extension }\n </div>\n ) }\n </VExpandTransition>\n </props.tag>\n )\n })\n\n return {\n contentHeight,\n extensionHeight,\n }\n },\n})\n\nexport type VToolbar = InstanceType<typeof VToolbar>\n\nexport function filterToolbarProps (props: ExtractPropTypes<ReturnType<typeof makeVToolbarProps>>) {\n return pick(props, Object.keys(VToolbar?.props ?? {}) as any)\n}\n","// Utilities\nimport { computed, ref } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: ((val: any) => void) | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n\n const propIsDefined = computed(() => {\n void props[prop]\n return !!(\n (vm?.vnode.props?.hasOwnProperty(prop) || vm?.vnode.props?.hasOwnProperty(toKebabCase(prop)))\n )\n })\n\n const internal = ref(transformIn(props[prop])) as Ref<Inner>\n\n return computed<Inner extends any[] ? Readonly<Inner> : Inner>({\n get (): any {\n if (propIsDefined.value) return transformIn(props[prop])\n else return internal.value\n },\n set (newValue) {\n if ((propIsDefined.value ? transformIn(props[prop]) : internal.value) === newValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, transformOut(newValue))\n },\n })\n}\n","// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { filterToolbarProps, makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VAppBar = defineComponent({\n name: 'VAppBar',\n\n props: {\n // TODO: Implement scrolling techniques\n // hideOnScroll: Boolean\n // invertedScroll: Boolean\n // collapseOnScroll: Boolean\n // elevateOnScroll: Boolean\n // shrinkOnScroll: Boolean\n // fadeImageOnScroll: Boolean\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref()\n const isActive = useProxiedModel(props, 'modelValue')\n const height = computed(() => {\n const height: number = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight: number = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const [toolbarProps] = filterToolbarProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.location === 'bottom',\n },\n ]}\n style={{\n ...layoutItemStyles.value,\n height: undefined,\n }}\n { ...toolbarProps }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\nexport type Density = typeof allowedDensities[number]\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","// Composables\nimport { useColor } from '@/composables/color'\n\n// Utilities\nimport { computed, unref } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport const allowedVariants = [\n 'elevated',\n 'flat',\n 'tonal',\n 'outlined',\n 'text',\n 'plain',\n] as const\n\nexport type Variant = typeof allowedVariants[number]\n\nexport interface VariantProps {\n color?: string\n variant: Variant\n}\n\nexport function genOverlays (isClickable: boolean, name: string) {\n return (\n <>\n { isClickable && <span key=\"overlay\" class={`${name}__overlay`} /> }\n\n <span key=\"underlay\" class={`${name}__underlay`} />\n </>\n )\n}\n\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'elevated',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'variant')\n\nexport function useVariant (\n props: MaybeRef<VariantProps>,\n name = getCurrentInstanceName(),\n) {\n const variantClasses = computed(() => {\n const { variant } = unref(props)\n return `${name}--variant-${variant}`\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => {\n const { variant, color } = unref(props)\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color,\n }\n }))\n\n return { colorClasses, colorStyles, variantClasses }\n}\n","// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VBtnGroup = defineComponent({\n name: 'VBtnGroup',\n\n props: {\n divided: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: 'auto',\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-btn-group',\n {\n 'v-btn-group--divided': props.divided,\n },\n themeClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n v-slots={ slots }\n />\n )\n })\n },\n})\n","// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': ((val: unknown) => void) | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': ((val: { value: boolean }) => void) | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => group.disabled.value || props.disabled)\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (item.value != null) {\n if (modelValue.find(value => deepEqual(value, item.value)) != null) {\n ids.push(item.id)\n }\n } else if (modelValue.includes(i)) {\n ids.push(item.id)\n }\n }\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (ids.includes(item.id)) {\n values.push(item.value != null ? item.value : i)\n }\n }\n\n return values\n}\n","// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { VBtnGroup } from '@/components/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {}\n\nexport const VBtnToggleSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-btn-toggle')\n\nexport const VBtnToggle = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n default: [DefaultBtnToggleSlot]\n }>\n}>()({\n name: 'VBtnToggle',\n\n props: makeGroupProps({ selectedClass: 'v-btn--selected' }),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => (\n <VBtnGroup class=\"v-btn-toggle\">\n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n } as DefaultBtnToggleSlot) }\n </VBtnGroup>\n ))\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n","// Utilities\nimport { h } from 'vue'\n\n// Components\nimport { VClassIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sort: 'mdi-arrow-up',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, isRef } from 'vue'\nimport { defineComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue = string | JSXComponent\nexport const IconValue = [String, Function, Object] as PropType<IconValue>\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sort: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type IconOptions = {\n defaultSet: string\n aliases?: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\ntype IconInstance = {\n component: IconComponent\n icon: IconValue\n}\n\nexport const IconSymbol: InjectionKey<IconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n required: true,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = defineComponent({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return (\n <props.tag>\n <props.icon />\n </props.tag>\n )\n }\n },\n})\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class=\"v-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n <path d={ props.icon as string }></path>\n </svg>\n </props.tag>\n )\n }\n },\n})\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\n\nexport const defaultSets: Record<string, IconSet> = {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n return mergeDeep({\n defaultSet: 'mdi',\n sets: {\n ...defaultSets,\n mdi,\n },\n aliases,\n }, options)\n}\n\nexport const useIcon = (props: Ref<string | undefined> | { icon?: IconValue }) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData: Ref<IconInstance> = computed(() => {\n const iconAlias = isRef(props) ? props.value : props.icon\n\n if (!iconAlias) throw new Error('Icon value is undefined or null')\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof iconAlias === 'string' && iconAlias.includes('$')) {\n icon = icons.aliases?.[iconAlias.slice(iconAlias.indexOf('$') + 1)]\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, flattenFragments, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'v-icon')\n\nexport const VIcon = defineComponent({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n let slotIcon: ComputedRef<string | undefined> | undefined\n if (slots.default) {\n slotIcon = computed(() => {\n const slot = slots.default?.()\n if (!slot) return\n\n return flattenFragments(slot).filter(node =>\n node.children && typeof node.children === 'string'\n )[0]?.children as string\n })\n }\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(slotIcon || props)\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n ]}\n role={ attrs.onClick ? 'button' : undefined }\n aria-hidden={ !attrs.onClick }\n />\n ))\n\n return {}\n },\n})\n","// Utilities\nimport { onBeforeUnmount, ref, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = ref(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n","// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VProgressCircular = defineComponent({\n name: 'VProgressCircular',\n\n props: {\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType<boolean | 'disable-shrink'>,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref<HTMLElement>()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n <props.tag\n ref={ root }\n class={[\n 'v-progress-circular',\n {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink',\n },\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n ]}\n style={[\n sizeStyles.value,\n textColorStyles.value,\n ]}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n >\n <svg\n style={{\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={ `0 0 ${diameter.value} ${diameter.value}` }\n >\n <circle\n class={[\n 'v-progress-circular__underlay',\n underlayColorClasses.value,\n ]}\n style={ underlayColorStyles.value }\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ 0 }\n />\n\n <circle\n class=\"v-progress-circular__overlay\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ strokeDashOffset.value }\n />\n </svg>\n\n { slots.default && (\n <div class=\"v-progress-circular__content\">\n { slots.default({ value: normalizedValue.value }) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.08)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: DirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: DirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple: ObjectDirective = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n","// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\nexport const VProgressLinear = defineComponent({\n name: 'VProgressLinear',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const { backgroundColorClasses: barColorClasses, backgroundColorStyles: barColorStyles } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseInt(props.max, 10))\n const height = computed(() => parseInt(props.height, 10))\n const normalizedBuffer = computed(() => parseFloat(props.bufferValue) / max.value * 100)\n const normalizedValue = computed(() => parseFloat(progress.value) / max.value * 100)\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const opacity = computed(() => {\n return props.bgOpacity == null\n ? props.bgOpacity\n : parseFloat(props.bgOpacity)\n })\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n <props.tag\n ref={ intersectionRef }\n class={[\n 'v-progress-linear',\n {\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped,\n },\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={{\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n }}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax={ props.max }\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n onClick={ props.clickable && handleClick }\n >\n { props.stream && (\n <div\n key=\"stream\"\n class={[\n 'v-progress-linear__stream',\n textColorClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: opacity.value,\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)),\n }}\n />\n ) }\n\n <div\n class={[\n 'v-progress-linear__background',\n backgroundColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n {\n opacity: opacity.value,\n width: convertToUnit((!props.stream ? 100 : normalizedBuffer.value), '%'),\n },\n ]}\n />\n\n <Transition name={ transition.value }>\n { !props.indeterminate ? (\n <div\n class={[\n 'v-progress-linear__determinate',\n barColorClasses.value,\n ]}\n style={[\n barColorStyles.value,\n { width: convertToUnit(normalizedValue.value, '%') },\n ]}\n />\n ) : (\n <div class=\"v-progress-linear__indeterminate\">\n { ['long', 'short'].map(bar => (\n <div\n key={ bar }\n class={[\n 'v-progress-linear__indeterminate',\n bar,\n barColorClasses.value,\n ]}\n style={ barColorStyles.value }\n />\n )) }\n </div>\n ) }\n </Transition>\n\n { slots.default && (\n <div class=\"v-progress-linear__content\">\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {}\n },\n})\n","// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { MakeSlots, SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: Boolean,\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes<SlotsToProps<MakeSlots<{\n default: [LoaderSlotProps]\n }>>>,\n { slots }: SetupContext,\n) {\n return (\n <div class={`${props.name}__loader`}>\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n <VProgressLinear\n active={ props.active }\n color={ props.color }\n height=\"2\"\n indeterminate\n />\n )}\n </div>\n )\n}\n","// Composables\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType<Anchor>,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n","// Utilities\nimport { getCurrentInstance, IN_BROWSER, propsFactory } from '@/util'\nimport {\n computed,\n nextTick,\n onScopeDispose,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n} from 'vue-router'\n\nexport function useRoute (): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href?: string\n replace?: boolean\n to?: RouteLocationRaw\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {\n isLink: ComputedRef<boolean>\n isClickable: ComputedRef<boolean>\n href: Ref<string | undefined>\n}\n\nexport function useLink (props: LinkProps, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || !!(attrs.onClick || attrs.onClickOnce)\n })\n\n if (typeof RouterLink === 'string') {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href'),\n }\n }\n\n const link = props.to ? RouterLink.useLink(props as Required<LinkProps>) : undefined\n\n return {\n ...link,\n isLink,\n isClickable,\n href: computed(() => props.to ? link?.route.value.href : props.href),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n","// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useSelectLink } from '@/composables/selectLink'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VBtn = defineComponent({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: {\n active: Boolean,\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasColor = !group || group.isSelected.value\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': props.active,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ (e: MouseEvent) => {\n if (isDisabled.value) return\n\n link.navigate?.(e)\n group?.toggle()\n } }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n <span class=\"v-btn__prepend\">\n { slots.prepend?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n ) }\n\n <span class=\"v-btn__content\" data-no-activator=\"\">\n <VDefaultsProvider\n key=\"content\"\n defaults={{\n VIcon: {\n icon: typeof props.icon === 'string'\n ? props.icon\n : undefined,\n },\n }}\n >\n { slots.default?.() ?? (\n typeof props.icon === 'string' && (\n <VIcon key=\"icon\" />\n )\n ) }\n </VDefaultsProvider>\n </span>\n\n { !props.icon && hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n <span class=\"v-btn__append\">\n { slots.append?.() ?? (<VIcon />) }\n </span>\n </VDefaultsProvider>\n ) }\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n ) }\n </span>\n ) }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n","// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isExactActive?.value, isExactActive => {\n if (link.isLink.value && isExactActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n","// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VAppBarNavIcon = defineComponent({\n name: 'VAppBarNavIcon',\n\n props: {\n icon: {\n type: IconValue,\n default: '$menu',\n },\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <VBtn\n class=\"v-app-bar-nav-icon\"\n icon={ props.icon }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","// Composables\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VToolbarItems = defineComponent({\n name: 'VToolbarItems',\n\n props: makeVariantProps({ variant: 'text' }),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n height: 'inherit',\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n <div class=\"v-toolbar-items\">\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VToolbarItems = InstanceType<typeof VToolbarItems>\n","// Composables\nimport { VToolbarTitle } from '@/components/VToolbar'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VAppBarTitle = defineComponent({\n name: 'VAppBarTitle',\n\n props: { ...VToolbarTitle.props },\n\n setup (_, { slots }) {\n useRender(() => (\n <VToolbarTitle\n class=\"v-app-bar-title\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n","// Locales\nimport en from '@/locale/en'\n\n// Composables\nimport { createRtl, RtlSymbol } from '@/composables/rtl'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Types\nimport type { RtlOptions } from '@/composables/rtl'\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n defaultLocale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleProps {\n locale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleInstance {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n}\n\nexport interface LocaleAdapter {\n createRoot: (app?: App) => LocaleInstance\n getScope: () => LocaleInstance\n createScope: (options?: LocaleProps) => LocaleInstance\n}\n\nexport const LocaleAdapterSymbol: InjectionKey<LocaleAdapter> = Symbol.for('vuetify:locale-adapter')\nexport const VuetifyLocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for('vuetify:locale')\n\nexport function provideLocale (props?: LocaleProps) {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.createScope(props)\n}\n\nexport function useLocale () {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.getScope()\n}\n\nfunction isLocaleAdapter (x: any): x is LocaleAdapter {\n return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot')\n}\n\nexport function createLocale (\n app: App,\n options?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions),\n) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n const instance = adapter.createRoot(app)\n\n app?.provide(RtlSymbol, createRtl(instance, options))\n\n return adapter\n}\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nexport function createDefaultLocaleAdapter (options?: LocaleOptions): LocaleAdapter {\n const createScope = (options: {\n current: MaybeRef<string>\n fallback: MaybeRef<string>\n messages: MaybeRef<LocaleMessages>\n }) => {\n const current = ref(options.current)\n const fallback = ref(options.fallback)\n const messages = ref(options.messages)\n\n return {\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n }\n }\n\n return {\n createRoot: app => {\n const rootScope = createScope({\n current: options?.defaultLocale ?? 'en',\n fallback: options?.fallbackLocale ?? 'en',\n messages: options?.messages ?? { en },\n })\n\n if (!app) throw new Error('[Vuetify] Could not find default app instance')\n\n app.provide(VuetifyLocaleSymbol, rootScope)\n\n return rootScope\n },\n getScope: () => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return currentScope\n },\n createScope: options => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const newScope = createScope({\n current: computed(() => options?.locale ?? currentScope.current.value),\n fallback: computed(() => options?.locale ?? currentScope.fallback.value),\n messages: computed(() => options?.messages ?? currentScope.messages.value),\n })\n\n provide(VuetifyLocaleSymbol, newScope)\n\n return newScope\n },\n }\n}\n","// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport const VAlert = defineComponent({\n name: 'VAlert',\n\n props: {\n border: {\n type: [Boolean, String],\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType<false | IconValue>,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(props.text || slots.text)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true,\n },\n {\n 'v-alert--prominent': props.prominent,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n role=\"alert\"\n >\n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n <div\n key=\"border\"\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28,\n },\n }}\n >\n <div class=\"v-alert__prepend\">\n { slots.prepend\n ? slots.prepend()\n : icon.value && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n <div class=\"v-alert__content\">\n { hasTitle && (\n <VAlertTitle key=\"title\">\n { slots.title ? slots.title() : props.title }\n </VAlertTitle>\n ) }\n\n { hasText && (\n slots.text ? slots.text() : props.text\n ) }\n\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div key=\"append\" class=\"v-alert__append\">\n { slots.append() }\n </div>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n >\n <div class=\"v-alert__close\">\n { slots.close?.({ props: closeProps.value }) ?? <VBtn { ...closeProps.value } /> }\n </div>\n </VDefaultsProvider>\n ) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VAlert = InstanceType<typeof VAlert>\n","// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VMessages = defineComponent({\n name: 'VMessages',\n\n props: {\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true,\n },\n }),\n },\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n ) }\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n","// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n}\n\ninterface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n isValid: boolean | null\n errorMessages: string[]\n}\n\ninterface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\ninterface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n lazyValidation: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': ((val: boolean | null) => void) | undefined\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n})\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = ref(false)\n const items = ref<FormField[]>([])\n const errors = ref<FieldValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n model.value = null\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n errors.value = []\n model.value = null\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true })\n\n provide(FormKey, {\n register: ({ id, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n items,\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n","// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onBeforeMount, onBeforeUnmount, onMounted, ref, unref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\nexport interface ValidationProps {\n disabled: boolean\n error: boolean\n errorMessages: string | string[]\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean\n rules: ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: Boolean,\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: Boolean,\n rules: {\n type: Array as PropType<ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n validationValue: null,\n})\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue ?? model.value)\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = ref(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages.length\n ? wrapInArray(props.errorMessages)\n : internalErrorMessages.value\n })\n const isValid = computed(() => {\n if (props.error || errorMessages.value.length) return false\n if (!props.rules.length) return true\n\n return isPristine.value ? null : true\n })\n const isValidating = ref(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n // Set initial valid state, for inputs that might not have rules\n onMounted(() => form?.update(uid.value, isValid.value, errorMessages.value))\n\n watch(validationModel, () => {\n if (validationModel.value != null) validate()\n })\n\n watch(isValid, () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n function reset () {\n resetValidation()\n model.value = null\n }\n\n function resetValidation () {\n isPristine.value = true\n internalErrorMessages.value = []\n }\n\n async function validate () {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= (props.maxErrors || 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result)\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = false\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n","import { VIcon } from '@/components/VIcon'\nimport { useLocale } from '@/composables/locale'\nimport type { IconValue } from '@/composables/icons'\n\ntype names = 'clear' | 'prepend' | 'append' | 'appendInner' | 'prependInner'\n\ntype EventProp<T = (...args: any[]) => any> = T | T[]\ntype InputIconProps<T extends names> = {\n label: string | undefined\n} & {\n [K in `${T}Icon`]: IconValue | undefined\n} & {\n [K in `onClick:${T}`]: EventProp | undefined\n}\n\ntype Listeners<T extends {}, U = keyof T> = U extends `onClick:${infer V extends names}` ? V : never\n\nexport function useInputIcon<T extends {}, K extends names = Listeners<T>> (props: T & InputIconProps<K>) {\n const { t } = useLocale()\n\n function InputIcon ({ name }: { name: Extract<names, K> }) {\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear',\n }[name]\n const listener = props[`onClick:${name}`]\n const label = listener && localeKey\n ? t(`$vuetify.input.${localeKey}`, props.label ?? '')\n : undefined\n\n return (\n <VIcon\n icon={ props[`${name}Icon`] }\n aria-label={ label }\n onClick={ listener }\n />\n )\n }\n\n return { InputIcon }\n}\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, isOn, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp,\n 'onClick:append': EventProp,\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: VInputSlots\n}>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n ) }\n\n { slots.prepend?.(slotProps.value) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { slots.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: Record<string, unknown>) {\n const keys = Object.keys(VInput.props).filter(k => !isOn(k))\n return pick(props, keys)\n}\n","// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VLabel = defineComponent({\n name: 'VLabel',\n\n props: {\n text: String,\n\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <label class=\"v-label\">\n { props.text }\n\n { slots.default?.() }\n </label>\n ))\n\n return {}\n },\n})\n\nexport type VLabel = InstanceType<typeof VLabel>\n","// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { defineComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport interface VSelectionGroupContext {\n disabled: Ref<boolean>\n inline: Ref<boolean>\n name: Ref<string | undefined>\n modelValue: Ref<any>\n multiple: Ref<boolean>\n trueIcon: Ref<IconValue | undefined>\n falseIcon: Ref<IconValue | undefined>\n readonly: Ref<boolean>\n type: Ref<string | undefined>\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey<VSelectionGroupContext> = Symbol.for('vuetify:selection-control-group')\n\nexport const VSelectionControlGroup = defineComponent({\n name: 'VSelectionControlGroup',\n\n props: {\n disabled: Boolean,\n id: String,\n inline: Boolean,\n name: String,\n falseIcon: IconValue,\n trueIcon: IconValue,\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n readonly: Boolean,\n type: String,\n modelValue: null,\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n provide(VSelectionControlGroupSymbol, {\n disabled: toRef(props, 'disabled'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n type: toRef(props, 'type'),\n })\n\n useRender(() => (\n <div\n class=\"v-selection-control-group\"\n aria-labelled-by={ props.type === 'radio' ? id.value : undefined }\n role={ props.type === 'radio' ? 'radiogroup' : undefined }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType<typeof VSelectionControlGroup>\n","// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport {\n deepEqual,\n filterInputAttrs,\n genericComponent,\n getUid,\n pick,\n propsFactory,\n SUPPORTS_FOCUS_VISIBLE,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref, WritableComputedRef } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef<any>\n isReadonly: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n textColorClasses: Ref<string[]>\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport const makeSelectionControlProps = propsFactory({\n color: String,\n disabled: Boolean,\n error: Boolean,\n id: String,\n inline: Boolean,\n label: String,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n name: String,\n readonly: Boolean,\n trueValue: null,\n falseValue: null,\n modelValue: null,\n type: String,\n value: null,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeThemeProps(),\n ...makeDensityProps(),\n})\n\nexport function useSelectionControl (\n props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>> & {\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n group?.multiple.value ||\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? val.some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n const icon = computed(() => {\n return model.value\n ? group?.trueIcon.value ?? props.trueIcon\n : group?.falseIcon.value ?? props.falseIcon\n })\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: MakeSlots<{\n default: []\n input: [SelectionControlSlot]\n }>\n}>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n densityClasses,\n group,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = ref(false)\n const isFocusVisible = ref(false)\n const input = ref<HTMLInputElement>()\n\n function onFocus (e: FocusEvent) {\n isFocused.value = true\n if (\n !SUPPORTS_FOCUS_VISIBLE ||\n (SUPPORTS_FOCUS_VISIBLE && (e.target as HTMLElement).matches(':focus-visible'))\n ) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n function onInput (e: Event) {\n model.value = (e.target as HTMLInputElement).checked\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const type = group?.type.value ?? props.type\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-selection-control',\n {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': group?.inline.value || props.inline,\n },\n densityClasses.value,\n ]}\n { ...rootAttrs }\n >\n <div\n class={[\n 'v-selection-control__wrapper',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { slots.default?.() }\n\n <div\n class={[\n 'v-selection-control__input',\n ]}\n v-ripple={ props.ripple && [\n !props.disabled && !props.readonly,\n null,\n ['center', 'circle'],\n ]}\n >\n { icon.value && <VIcon key=\"icon\" icon={ icon.value } /> }\n\n <input\n ref={ input }\n checked={ model.value }\n disabled={ props.disabled }\n id={ id.value }\n onBlur={ onBlur }\n onFocus={ onFocus }\n onInput={ onInput }\n aria-readonly={ props.readonly }\n type={ type }\n value={ trueValue.value }\n name={ group?.name.value ?? props.name }\n aria-checked={ type === 'checkbox' ? model.value : undefined }\n { ...inputAttrs }\n />\n\n { slots.input?.({\n model,\n textColorClasses,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n }) }\n </div>\n </div>\n\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n </div>\n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType<typeof VSelectionControl>\n\nexport function filterControlProps (props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>>) {\n return pick(props, Object.keys(VSelectionControl.props) as any)\n}\n","// Components\nimport { makeSelectionControlProps, VSelectionControl } from '../VSelectionControl/VSelectionControl'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\n\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n\n ...makeSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn',\n }),\n})\n\nexport const VCheckboxBtn = defineComponent({\n name: 'VCheckboxBtn',\n\n props: makeVCheckboxBtnProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { slots, emit }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n\n function onChange (v: any) {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n\n emit('update:modelValue', v)\n }\n\n const falseIcon = computed(() => {\n return props.indeterminate\n ? props.indeterminateIcon\n : props.falseIcon\n })\n\n const trueIcon = computed(() => {\n return props.indeterminate\n ? props.indeterminateIcon\n : props.trueIcon\n })\n\n useRender(() => (\n <VSelectionControl\n { ...props }\n class=\"v-checkbox-btn\"\n type=\"checkbox\"\n inline\n onUpdate:modelValue={ onChange }\n falseIcon={ falseIcon.value }\n trueIcon={ trueIcon.value }\n aria-checked={ props.indeterminate ? 'mixed' : undefined }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VCheckboxBtn = InstanceType<typeof VCheckboxBtn>\n\nexport function filterCheckboxBtnProps (props: ExtractPropTypes<ReturnType<typeof makeVCheckboxBtnProps>>) {\n return pick(props, Object.keys(VCheckboxBtn.props) as any)\n}\n","// Styles\nimport './VCheckbox.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { filterCheckboxBtnProps, makeVCheckboxBtnProps, VCheckboxBtn } from './VCheckboxBtn'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VCheckbox = defineComponent({\n name: 'VCheckbox',\n\n inheritAttrs: false,\n\n props: {\n ...makeVInputProps(),\n ...makeVCheckboxBtnProps(),\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `checkbox-${uid}`)\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [checkboxProps, _2] = filterCheckboxBtnProps(props)\n\n return (\n <VInput\n class=\"v-checkbox\"\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <VCheckboxBtn\n { ...checkboxProps }\n id={ id.value }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-slots={ slots }\n />\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VCheckbox = InstanceType<typeof VCheckbox>\n","// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { defineComponent, propsFactory, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const makeVAvatarProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n})\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end,\n },\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n sizeStyles.value,\n ]}\n >\n { props.image\n ? (<VImg src={ props.image } alt=\"\" />)\n : props.icon\n ? (<VIcon icon={ props.icon } />)\n : slots.default?.()\n }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType<typeof VAvatar>\n","// Styles\nimport './VChipGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { deepEqual, defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const VChipGroup = defineComponent({\n name: 'VChipGroup',\n\n props: {\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-chip-group',\n {\n 'v-chip-group--column': props.column,\n },\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n }) }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType<typeof VChipGroup>\n","/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VChip = defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:active': (value: boolean) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link)\n const onClickFunc = props.link ? props.link : group?.toggle\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && onClickFunc }\n >\n { genOverlays(isClickable, 'v-chip') }\n\n { hasFilter && (\n <VDefaultsProvider\n key=\"filter\"\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n >\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter ? slots.filter() : (<VIcon />) }\n </div>\n </VExpandXTransition>\n </VDefaultsProvider>\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n },\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n { slots.prepend\n ? (\n <div class=\"v-chip__prepend\">\n { slots.prepend() }\n </div>\n )\n : props.prependAvatar ? (<VAvatar start />)\n : props.prependIcon ? (<VIcon start />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n image: props.appendAvatar,\n },\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n { slots.append\n ? (\n <div class=\"v-chip__append\">\n { slots.append() }\n </div>\n )\n : props.appendAvatar ? (<VAvatar end />)\n : props.appendIcon ? (<VIcon end />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n >\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close ? slots.close() : (<VIcon />) }\n </div>\n </VDefaultsProvider>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n","// Styles\nimport './VDivider.sass'\n\n// Composables\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'maxHeight' | 'maxWidth'\ntype DividerStyles = Partial<Record<DividerKey, string>>\n\nexport const VDivider = defineComponent({\n name: 'VDivider',\n\n props: {\n color: String,\n inset: Boolean,\n length: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n\n ...makeThemeProps(),\n },\n\n setup (props, { attrs }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n useRender(() => (\n <hr\n class={[\n {\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n ]}\n style={[\n dividerStyles.value,\n backgroundColorStyles.value,\n ]}\n aria-orientation={\n !attrs.role || attrs.role === 'separator'\n ? props.vertical ? 'vertical' : 'horizontal'\n : undefined\n }\n role={`${attrs.role || 'separator'}`}\n />\n ))\n\n return {}\n },\n})\n","// Utilities\nimport { computed, inject, provide, ref } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey<Ref<number>> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref<boolean>) {\n const parent = inject(DepthKey, ref(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref<boolean>\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: ref(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: ref(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n","export type OpenStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string>\n\nexport type OpenSelectStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string> | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set<string>()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: string[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n","/* eslint-disable sonarjs/no-identical-functions */\nexport type SelectStrategyFn = (data: {\n id: string\n value: boolean\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Map<string, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformInFn = (\n v: string[] | undefined,\n children: Map<string, string[]>,\n parents: Map<string, string>,\n) => Map<string, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformOutFn = (\n v: Map<string, 'on' | 'off' | 'indeterminate'>,\n children: Map<string, string[]>,\n parents: Map<string, string>,\n) => any[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as string[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(item, value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = parents.get(id)\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(cid) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = parents.get(parent)\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as string[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n","import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategy } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: string[] | undefined\n opened: string[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: string[]) => void) | undefined\n 'onUpdate:opened': ((val: string[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<string | undefined>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<string, string[]>>\n parents: Ref<Map<string, string>>\n opened: Ref<Set<string>>\n selected: Ref<Map<string, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<string[]>\n register: (id: string, parentId: string | undefined, isGroup?: boolean) => void\n unregister: (id: string) => void\n open: (id: string, value: boolean, event?: Event) => void\n select: (id: string, value: boolean, event?: Event) => void\n openOnSelect: (id: string, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as Prop<SelectStrategy>,\n openStrategy: [String, Function] as Prop<OpenStrategyProp>,\n opened: Array as Prop<string[]>,\n selected: Array as Prop<string[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<string, string[]>())\n const parents = ref(new Map<string, string>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'function') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: string) {\n const path: string[] = []\n let parent: string | undefined = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: ref(),\n root: {\n opened,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<string | undefined>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const computedId = computed(() => id.value ?? getUid().toString())\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n","// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { IconValue } from '@/composables/icons'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { MakeSlots } from '@/util'\nimport type { ExtractPropTypes, Ref } from 'vue'\n\nexport type ListGroupActivatorSlot = {\n props: {\n onClick: (e: Event) => void\n class: string\n }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n activeColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n value: null,\n\n ...makeTagProps(),\n})\n\nexport const VListGroup = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n activator: [ListGroupActivatorSlot]\n default: []\n }>\n}>()({\n name: 'VListGroup',\n\n props: {\n title: String,\n\n ...makeVListGroupProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open } = useNestedItem(toRef(props, 'value'), true)\n const list = useList()\n\n const onClick = (e: Event) => {\n open(!isOpen.value, e)\n }\n\n const activatorProps: Ref<ListGroupActivatorSlot['props']> = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n ) }\n\n <VExpandTransition>\n <div class=\"v-list-group__items\" v-show={ isOpen.value }>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport function filterListGroupProps (props: ExtractPropTypes<ReturnType<typeof makeVListGroupProps>>) {\n return pick(props, Object.keys(VListGroup.props) as any)\n}\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title')\n","// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useList } from './list'\nimport { useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\ntype ListItemSlot = {\n isActive: boolean\n activate: (value: boolean) => void\n isSelected: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string\n}\n\nexport const VListItem = genericComponent<new () => {\n $slots: MakeSlots<{\n prepend: [ListItemSlot]\n append: [ListItemSlot]\n default: [ListItemSlot]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: {\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value ?? link.href.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isExactActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const variantProps = computed(() => ({\n color: isActive.value ? props.activeColor ?? props.color : props.color,\n variant: props.variant,\n }))\n\n watch(() => link.isExactActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n }))\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasColor = !list || isSelected.value || isActive.value\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n\n list?.updateHasPrepend(hasPrepend)\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ isClickable.value && ((e: MouseEvent) => {\n if (isGroupActivator) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n })}\n v-ripple={ isClickable.value }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n <div class=\"v-list-item__prepend\">\n { props.prependAvatar && (\n <VAvatar key=\"prepend-avatar\" />\n ) }\n\n { props.prependIcon && (\n <VIcon key=\"prepend-icon\" />\n ) }\n\n { slots.prepend?.(slotProps.value) }\n </div>\n </VDefaultsProvider>\n ) }\n\n <div class=\"v-list-item__content\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title}\n </VListItemTitle>\n ) }\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n ) }\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n <div class=\"v-list-item__append\">\n { slots.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon key=\"append-icon\" />\n ) }\n\n { props.appendAvatar && (\n <VAvatar key=\"append-avatar\" />\n ) }\n </div>\n </VDefaultsProvider>\n ) }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VListSubheader = defineComponent({\n name: 'VListSubheader',\n\n props: {\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const hasText = !!(slots.default || props.title)\n\n return (\n <props.tag\n class={[\n 'v-list-subheader',\n {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky,\n },\n textColorClasses.value,\n ]}\n style={{ textColorStyles }}\n >\n { hasText && (\n <div class=\"v-list-subheader__text\">\n { slots.default?.() ?? props.title }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n","// Components\nimport { VDivider } from '../VDivider'\nimport { filterListGroupProps, VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { ListItemSubtitleSlot, ListItemTitleSlot } from './VListItem'\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n header: [ListGroupActivatorSlot]\n item: [T]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<InternalListItem[]>,\n },\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n <VDivider { ...itemProps } />\n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n <VListSubheader\n { ...itemProps }\n v-slots={{ default: slots.subheader }}\n />\n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n default: slots.default ? (slotProps: any) => slots.default?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const [listGroupProps, _1] = filterListGroupProps(itemProps as any)\n\n return children ? (\n <VListGroup\n value={ itemProps?.value }\n { ...listGroupProps }\n >\n {{\n activator: ({ props: activatorProps }) => slots.header\n ? slots.header({ ...itemProps, ...activatorProps })\n : <VListItem { ...itemProps } { ...activatorProps } v-slots={ slotsWithItem } />,\n default: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : (\n <VListItem\n { ...itemProps }\n v-slots={ slotsWithItem }\n />\n )\n )\n })\n },\n})\n","// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem[]\n raw: any\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n function transformIn (value: any[]): InternalItem[] {\n return value.map(item => transformItem(props, item))\n }\n\n function transformOut (value: InternalItem[]) {\n if (props.returnObject) return value.map(({ raw: item }) => item)\n return value.map(({ props }) => props.value)\n }\n\n return { items, transformIn, transformOut }\n}\n","// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeItemsProps } from '@/composables/items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, getPropertyFromItem, pick, useRender } from '@/util'\n\n// Types\nimport type { InternalItem, ItemProps } from '@/composables/items'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport interface InternalListItem extends InternalItem {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction transformItem (props: ItemProps & { itemType: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = typeof item === 'string' ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nfunction useListItems (props: ItemProps & { itemType: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupActivatorSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n nav: Boolean,\n\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'click:open': (value: { id: string, value: boolean, path: string[] }) => true,\n 'click:select': (value: { id: string, value: boolean, path: string[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { open, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n color,\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n <VListChildren items={ items.value } v-slots={ slots }></VListChildren>\n </props.tag>\n ))\n\n return {\n open,\n select,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListImg = createSimpleFunctional('v-list-img')\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VListItemAction = defineComponent({\n name: 'VListItemAction',\n\n props: {\n start: Boolean,\n end: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <props.tag\n class={[\n 'v-list-item-action',\n {\n 'v-list-item-action--start': props.start,\n 'v-list-item-action--end': props.end,\n },\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VListItemMedia = defineComponent({\n name: 'VListItemMedia',\n\n props: {\n start: Boolean,\n end: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-list-item-media',\n {\n 'v-list-item-media--start': props.start,\n 'v-list-item-media--end': props.end,\n },\n ]}\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n","// Utilities\nimport { IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nexport interface DelayProps {\n closeDelay?: number | string\n openDelay?: number | string\n}\n\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String],\n}, 'delay')\n\nexport function useDelay (props: DelayProps, cb?: (value: boolean) => void) {\n const delays: Partial<Record<keyof DelayProps, number>> = {}\n const runDelayFactory = (prop: keyof DelayProps) => (): Promise<boolean> => {\n // istanbul ignore next\n if (!IN_BROWSER) return Promise.resolve(true)\n\n const active = prop === 'openDelay'\n\n delays.closeDelay && window.clearTimeout(delays.closeDelay)\n delete delays.closeDelay\n\n delays.openDelay && window.clearTimeout(delays.openDelay)\n delete delays.openDelay\n\n return new Promise(resolve => {\n const delay = parseInt(props[prop] ?? 0, 10)\n\n delays[prop] = window.setTimeout(() => {\n cb?.(active)\n resolve(active)\n }, delay)\n })\n }\n\n return {\n runCloseDelay: runDelayFactory('closeDelay'),\n runOpenDelay: runDelayFactory('openDelay'),\n }\n}\n","import type { InjectionKey } from 'vue'\n\ninterface MenuProvide {\n register (): void\n unregister (): void\n closeParents (): void\n}\n\nexport const VMenuSymbol: InjectionKey<MenuProvide> = Symbol.for('vuetify:v-menu')\n","// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport {\n computed,\n effectScope,\n inject,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { DelayProps } from '@/composables/delay'\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\n\ninterface ActivatorProps extends DelayProps {\n activator?: 'parent' | string | Element | ComponentPublicInstance\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n})\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n isActive.value = value\n }\n })\n\n const availableEvents = {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n },\n mouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n mouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n focus: (e: FocusEvent) => {\n if (\n SUPPORTS_FOCUS_VISIBLE &&\n !(e.target as HTMLElement).matches(':focus-visible')\n ) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n blur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.click = availableEvents.click\n }\n if (props.openOnHover) {\n events.mouseenter = availableEvents.mouseenter\n events.mouseleave = availableEvents.mouseleave\n }\n if (openOnFocus.value) {\n events.focus = availableEvents.focus\n events.blur = availableEvents.blur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (props.openOnHover) {\n events.mouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.click = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n const activatorRef = ref()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n const activator = activatorRef.value\n activatorEl.value = isComponentInstance(activator) ? activator.$el : activator\n })\n })\n\n const vm = getCurrentInstance('useActivator')\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n return { activatorEl, activatorRef, activatorEvents, contentEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.addEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n if (_props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, _props[k])\n }\n })\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.removeEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n el.removeAttribute(k)\n })\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n let activator\n if (selector) {\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n activator = el\n } else if (typeof selector === 'string') {\n // Selector\n activator = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n activator = selector.$el\n } else {\n // HTMLElement | Element\n activator = selector\n }\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return activatorEl.value\n }\n}\n","// Utilities\nimport { computed, ref, watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport { propsFactory } from '@/util'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref<boolean>) {\n const isBooted = ref(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n","import type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As<T extends string> {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point> (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n","// Utilities\nimport { computed, effectScope, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue'\nimport {\n clamp,\n consoleError,\n convertToUnit,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow } from '@/util/box'\nimport { anchorToPoint, getOffset } from './util/point'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n isRtl: Ref<boolean>\n}\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | (\n (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n ) => undefined | { updateLocation: (e: Event) => void }\n )\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n})\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n updateLocation.value = undefined\n\n if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n })\n\n IN_BROWSER && window.addEventListener('resize', onResize, { passive: true })\n\n onScopeDispose(() => {\n IN_BROWSER && window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n scope?.stop()\n })\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n contentBox.x -= parseFloat(el.style.left || 0)\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = isFixedPosition(data.activatorEl.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n if (IN_BROWSER) {\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation()\n })\n\n watch([data.activatorEl, data.contentEl], ([newActivatorEl, newContentEl], [oldActivatorEl, oldContentEl]) => {\n if (oldActivatorEl) observer.unobserve(oldActivatorEl)\n if (newActivatorEl) observer.observe(newActivatorEl)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n }\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => {\n requestAnimationFrame(() => observe = true)\n })\n\n if (!data.activatorEl.value || !data.contentEl.value) return\n\n const targetBox = data.activatorEl.value.getBoundingClientRect()\n const contentBox = getIntrinsicSize(data.contentEl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce<Box>((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: convertToUnit(pixelRound(x)),\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n { immediate: !activatorFixed }\n )\n\n if (activatorFixed) nextTick(() => updateLocation())\n requestAnimationFrame(() => {\n if (contentStyles.value.maxHeight) updateLocation()\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n","export function isFixedPosition (el?: HTMLElement) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true\n }\n el = el.offsetParent as HTMLElement\n }\n return false\n}\n","let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n","// Utilities\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ((data: ScrollStrategyData, props?: StrategyProps) => void)\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n})\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props)\n }\n })\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.activatorEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData) {\n let slow = false\n let raf = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n","import { effectScope, watch } from 'vue'\nimport type { EffectScope, WatchSource } from 'vue'\n\nexport function useToggleScope (source: WatchSource<boolean>, cb: () => void) {\n let scope: EffectScope | undefined\n watch(source, active => {\n if (active && !scope) {\n scope = effectScope()\n scope.run(cb)\n } else {\n scope?.stop()\n scope = undefined\n }\n }, { immediate: true })\n}\n","import { useToggleScope } from '@/composables/toggleScope'\n\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, ref, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey<StackProvide> = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set<number>\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (isActive: Readonly<Ref<boolean>>, zIndex: Readonly<Ref<string | number>>) {\n const vm = getCurrentInstance('useStack')\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set<number>(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = ref(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n globalStack.push([vm.uid, _zIndex.value])\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n const idx = globalStack.findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = ref(true)\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n","// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTeleport (target: Ref<boolean | string | Element>) {\n const teleportTarget = computed(() => {\n const _target = target.value\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n if (!useTeleport.cache.has(targetElement)) {\n const el = document.createElement('div')\n el.className = 'v-overlay-container'\n targetElement.appendChild(el)\n useTeleport.cache.set(targetElement, el)\n }\n\n return useTeleport.cache.get(targetElement)\n })\n\n return { teleportTarget }\n}\nuseTeleport.cache = new WeakMap<Element, Element>()\n","import { attachedRoot } from '@/util'\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unmounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n","// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRtl } from '@/composables/rtl'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getScrollParent,\n IN_BROWSER,\n standardEasing,\n useRender,\n} from '@/util'\nimport {\n computed,\n mergeProps,\n ref,\n Teleport,\n toHandlers,\n toRef,\n Transition,\n watch,\n} from 'vue'\n\n// Types\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { MakeSlots } from '@/util'\nimport type { PropType, Ref } from 'vue'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n <Transition name=\"fade-transition\" appear>\n { props.modelValue && (\n <div\n class={[\n 'v-overlay__scrim',\n props.color.backgroundColorClasses.value,\n ]}\n style={ props.color.backgroundColorStyles.value }\n { ...rest }\n />\n )}\n </Transition>\n )\n}\n\nexport type OverlaySlots = MakeSlots<{\n default: [{ isActive: Ref<boolean> }]\n activator: [{ isActive: boolean, props: Record<string, any> }]\n}>\n\nexport const VOverlay = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType<boolean | string | Element>,\n closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { teleportTarget } = useTeleport(computed(() => props.attach || props.contained))\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { globalTop, localTop, stackStyles } = useStack(isActive, toRef(props, 'zIndex'))\n const { activatorEl, activatorRef, activatorEvents, contentEvents } = useActivator(props, { isActive, isTop: localTop })\n const { dimensionStyles } = useDimension(props)\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const root = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n activatorEl,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n activatorEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional () {\n return isActive.value && globalTop.value\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false\n } else animateClick()\n }\n }\n\n const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref<number>()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n props: mergeProps({\n ref: activatorRef,\n }, toHandlers(activatorEvents.value), props.activatorProps),\n }) }\n\n { IN_BROWSER && (\n <Teleport\n disabled={ !teleportTarget.value }\n to={ teleportTarget.value }\n >\n { hasContent.value && (\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained,\n },\n themeClasses.value,\n rtlClasses.value,\n ]}\n style={[stackStyles.value, { top: convertToUnit(top.value) }]}\n ref={ root }\n {...attrs}\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n />\n <MaybeTransition\n appear\n persisted\n transition={ props.transition }\n target={ activatorEl.value }\n onAfterLeave={() => { onAfterLeave(); emit('afterLeave') }}\n >\n <div\n ref={ contentEl }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional, include: () => [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...toHandlers(contentEvents.value) }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n )}\n </Teleport>\n ) }\n </>\n ))\n\n return {\n activatorEl,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n","import type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = Omit<T, keyof T extends `${P}${any}` ? keyof T : never>\n\nexport function forwardRefs<T extends {}, U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit'> | undefined>[]> (\n target: T,\n ...refs: U\n): T & OmitPrefix<UnwrapRef<UnionToIntersection<U[number]>>, '$'> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n if ('_' in ref.value && 'setupState' in ref.value._) {\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key)\n if (descriptor) return descriptor\n }\n }\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n let obj = ref.value && Object.getPrototypeOf(ref.value)\n while (obj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(obj, key)\n if (descriptor) return descriptor\n obj = Object.getPrototypeOf(obj)\n }\n }\n // Call forwarded refs' proxies\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n return undefined\n },\n }) as any\n}\n","import { getCurrentInstance } from '@/util'\n\nexport function useScopeId () {\n const vm = getCurrentInstance('useScopeId')\n\n const scopeId = vm!.vnode.scopeId\n\n return { scopeId: scopeId ? { [scopeId]: '' } : undefined }\n}\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { genericComponent, getUid, useRender } from '@/util'\nimport { VMenuSymbol } from './shared'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const VMenu = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VMenu',\n\n inheritAttrs: false,\n\n props: {\n // TODO\n // disableKeys: Boolean,\n modelValue: Boolean,\n id: String,\n\n ...makeTransitionProps({\n transition: { component: VDialogTransition },\n } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n let openChildren = 0\n provide(VMenuSymbol, {\n register () {\n ++openChildren\n },\n unregister () {\n --openChildren\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n useRender(() => (\n <VOverlay\n ref={ overlay }\n v-model={ isActive.value }\n class={[\n 'v-menu',\n ]}\n transition={ props.transition }\n absolute\n closeOnContentClick\n locationStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n scrim={ false }\n openDelay=\"300\"\n closeDelay=\"250\"\n activatorProps={{\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }}\n onClick:outside={ onClickOutside }\n { ...scopeId }\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator: slots.activator,\n }}\n />\n ))\n\n return forwardRefs({ id }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n","// Components\nimport { VLabel } from '@/components/VLabel'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VFieldLabel = defineComponent({\n name: 'VFieldLabel',\n\n props: {\n floating: Boolean,\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <VLabel\n class={[\n 'v-field-label',\n { 'v-field-label--floating': props.floating },\n ]}\n aria-hidden={ props.floating || undefined }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VFieldLabel = InstanceType<typeof VFieldLabel>\n","// Components\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((val: boolean) => void) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n","// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VFieldLabel } from './VFieldLabel'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { MakeSlots } from '@/util'\nimport type { PropType, Ref } from 'vue'\nimport type { VInputSlot } from '@/components/VInput/VInput'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp,\n 'onClick:appendInner': EventProp,\n 'onClick:prependInner': EventProp,\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n 'prepend-inner': [DefaultInputSlot & VInputSlot]\n 'append-inner': [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: VFieldSlots\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n\n emit('click:control', e)\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n ) }\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n >\n { label }\n </VFieldLabel>\n ) }\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n },\n focus,\n blur,\n } as VFieldSlot) }\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : <InputIcon name=\"clear\" />\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n ) }\n </div>\n ) }\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n ) }\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k))\n return pick(attrs, keys)\n}\n","// Styles\nimport './VCounter.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VCounter = defineComponent({\n name: 'VCounter',\n\n functional: true,\n\n props: {\n active: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0,\n },\n\n ...makeTransitionProps({\n transition: { component: VSlideYTransition },\n }),\n },\n\n setup (props, { slots }) {\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value)\n })\n\n useRender(() => (\n <MaybeTransition transition={ props.transition }>\n <div\n v-show={ props.active }\n class=\"v-counter\"\n >\n { slots.default\n ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value,\n })\n : counter.value\n }\n </div>\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\ntype EventProp<T = (...args: any[]) => any> = T | T[]\nconst EventProp = [Function, Array] as PropType<EventProp>\n\nexport const VTextField = genericComponent<new <T>() => {\n $slots: Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n default: []\n }>\n}>()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'click:input': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value\n ))\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isFocused.value || props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ (e: MouseEvent) => {\n if (e.target === inputRef.value) return\n\n e.preventDefault()\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\n v-model={ model.value }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n { slots.default ? (\n <div\n class={ fieldClass }\n onClick={ e => emit('click:input', e) }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass }) }\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n","// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n modelValue: {\n type: null,\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n readonly: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: T, index: number, props: Record<string, unknown> }]\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref<VTextField>()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ props.modelValue ?? model.value }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ () => menu.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div key={ index } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\nimport { computed, unref } from 'vue'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\nimport type { InternalItem } from './items'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: any) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: any[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if (query && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(item)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(item as any, key, item)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter (\n props: FilterProps,\n items: MaybeRef<InternalItem[]>,\n query?: Ref<string | undefined>,\n) {\n const strQuery = computed(() => (\n typeof query?.value !== 'string' &&\n typeof query?.value !== 'number'\n ) ? '' : String(query.value))\n\n const filteredItems = computed(() => {\n const transformedItems = unref(items)\n const matches = filterItems(\n transformedItems,\n strQuery.value,\n {\n customKeyFilter: props.customKeyFilter,\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n return matches.map(({ index, matches }) => ({\n item: transformedItems[index],\n matches,\n }))\n })\n\n return { filteredItems }\n}\n","// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { MakeSlots } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: T, index: number, props: Record<string, unknown> }]\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n const isSelecting = ref(false)\n\n function select (item: any) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n search.value = item.title\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ props.modelValue ?? model.value }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { filteredItems.value.map(({ item, matches }, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div key={ index } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { defineComponent, pick, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VBadge = defineComponent({\n name: 'VBadge',\n\n inheritAttrs: false,\n\n props: {\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true,\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n\n ...makeLocationProps({ location: 'top end' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({ transition: 'scale-rotate-transition' }),\n },\n\n setup (props, ctx) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const { t } = useLocale()\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n const { themeClasses } = useTheme()\n\n const { locationStyles } = useLocation(props, true, side => {\n const base = props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n\n return base + (\n ['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0)\n : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0)\n : 0\n )\n })\n\n useRender(() => {\n const value = Number(props.content)\n const content = (!props.max || isNaN(value)) ? props.content\n : value <= props.max ? value\n : `${props.max}+`\n\n const [badgeAttrs, attrs] = pick(ctx.attrs as Record<string, any>, [\n 'aria-atomic',\n 'aria-label',\n 'aria-live',\n 'role',\n 'title',\n ])\n\n return (\n <props.tag\n class={[\n 'v-badge',\n {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline,\n },\n ]}\n { ...attrs }\n >\n <div class=\"v-badge__wrapper\">\n { ctx.slots.default?.() }\n\n <MaybeTransition transition={ props.transition }>\n <span\n v-show={ props.modelValue }\n class={[\n 'v-badge__badge',\n themeClasses.value,\n backgroundColorClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n props.inline ? {} : locationStyles.value,\n ]}\n aria-atomic=\"true\"\n aria-label={ t(props.label, value) }\n aria-live=\"polite\"\n role=\"status\"\n { ...badgeAttrs }\n >\n {\n props.dot ? undefined\n : ctx.slots.badge ? ctx.slots.badge?.()\n : props.icon ? <VIcon icon={ props.icon } />\n : content\n }\n </span>\n </MaybeTransition>\n </div>\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBadge = InstanceType<typeof VBadge>\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VBannerActions = defineComponent({\n name: 'VBannerActions',\n\n props: {\n color: String,\n density: String,\n },\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div class=\"v-banner-actions\">\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VBannerText = createSimpleFunctional('v-banner-text')\n","// Utilities\nimport { inject, nextTick, reactive, ref, toRefs, watchEffect } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Globals\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, ToRefs } from 'vue'\n\nexport type DisplayBreakpoint = keyof DisplayThresholds\n\nexport interface DisplayThresholds {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n xxl: number\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: boolean\n sm: boolean\n md: boolean\n lg: boolean\n xl: boolean\n xxl: boolean\n smAndUp: boolean\n mdAndUp: boolean\n lgAndUp: boolean\n xlAndUp: boolean\n smAndDown: boolean\n mdAndDown: boolean\n lgAndDown: boolean\n xlAndDown: boolean\n name: DisplayBreakpoint\n height: number\n width: number\n mobile: boolean\n mobileBreakpoint: number | DisplayBreakpoint\n platform: DisplayPlatform\n thresholds: DisplayThresholds\n}\n\nexport const DisplaySymbol: InjectionKey<ToRefs<DisplayInstance>> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (isHydrate?: boolean) {\n return IN_BROWSER && !isHydrate\n ? window.innerWidth\n : 0\n}\n\nfunction getClientHeight (isHydrate?: boolean) {\n return IN_BROWSER && !isHydrate\n ? window.innerHeight\n : 0\n}\n\nfunction getPlatform (): DisplayPlatform {\n const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n const ssr = match(/ssr/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr,\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, isHydrate?: boolean): ToRefs<DisplayInstance> {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = ref(getClientHeight(isHydrate))\n const platform = getPlatform()\n const state = reactive({} as DisplayInstance)\n const width = ref(getClientWidth(isHydrate))\n\n function onResize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n\n if (isHydrate) {\n nextTick(() => onResize())\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = !platform.ssr\n ? width.value < breakpointValue\n : platform.android || platform.ios || platform.opera\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', onResize, { passive: true })\n }\n\n return toRefs(state)\n}\n\nexport function useDisplay () {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n return display\n}\n","// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VBanner = defineComponent({\n name: 'VBanner',\n\n props: {\n avatar: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { mobile } = useDisplay()\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrepend = !!(slots.prepend || props.avatar || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n locationStyles.value,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n >\n <div class=\"v-banner__prepend\">\n { slots.prepend\n ? slots.prepend()\n : (props.avatar || props.icon) && (<VAvatar />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n <div class=\"v-banner__content\">\n { hasText && (\n <VBannerText key=\"text\">\n { slots.text ? slots.text() : props.text }\n </VBannerText>\n ) }\n\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VBannerActions>\n { slots.actions() }\n </VBannerActions>\n ) }\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n","// Styles\nimport './VBottomNavigation.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\nimport { VBtnToggleSymbol } from '../VBtnToggle/VBtnToggle'\n\nexport const VBottomNavigation = defineComponent({\n name: 'VBottomNavigation',\n\n props: {\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({\n modelValue: true,\n selectedClass: 'v-btn--selected',\n }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = useProxiedModel(props, 'modelValue', props.modelValue)\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-bottom-navigation',\n {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift',\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n {\n height: convertToUnit(height.value),\n transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`,\n },\n ]}\n >\n { slots.default && (\n <div class=\"v-bottom-navigation__content\">\n { slots.default() }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBottomNavigation = InstanceType<typeof VBottomNavigation>\n","import { createSimpleFunctional } from '@/util'\n\nexport const VBreadcrumbsDivider = createSimpleFunctional('v-breadcrumbs-divider', 'li')\n","// Composables\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VBreadcrumbsItem = defineComponent({\n name: 'VBreadcrumbsItem',\n\n props: {\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n title: String,\n\n ...makeRouterProps(),\n ...makeTagProps({ tag: 'li' }),\n },\n\n setup (props, { slots, attrs }) {\n const link = useLink(props, attrs)\n const isActive = computed(() => props.active || link.isExactActive?.value)\n const color = computed(() => isActive.value ? props.activeColor : props.color)\n\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : props.tag\n\n return (\n <Tag\n class={[\n 'v-breadcrumbs-item',\n {\n 'v-breadcrumbs-item--active': isActive.value,\n 'v-breadcrumbs-item--disabled': props.disabled,\n 'v-breadcrumbs-item--link': link.isLink.value,\n [`${props.activeClass}`]: isActive.value && props.activeClass,\n },\n textColorClasses.value,\n ]}\n style={[\n textColorStyles.value,\n ]}\n href={ link.href.value }\n aria-current={ isActive.value ? 'page' : undefined }\n onClick={ link.navigate }\n >\n { slots.default?.() ?? props.title }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbsItem = InstanceType<typeof VBreadcrumbsItem>\n","// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n item: [T | number]\n }>\n}>()({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.icon,\n start: true,\n },\n }}\n >\n <div class=\"v-breadcrumbs__prepend\">\n { slots.prepend\n ? slots.prepend()\n : props.icon && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n { props.items.map((item, index, array) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n disabled={ index >= array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n\n { index < array.length - 1 && (\n <VBreadcrumbsDivider>\n { slots.divider?.({ item, index }) ?? props.divider }\n </VBreadcrumbsDivider>\n ) }\n </>\n )) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType<typeof VBreadcrumbs>\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VCardActions = defineComponent({\n name: 'VCardActions',\n\n setup (_, { slots }) {\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div class=\"v-card-actions\">\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardSubtitle = createSimpleFunctional('v-card-subtitle')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardTitle = createSimpleFunctional('v-card-title')\n","// Components\nimport { VAvatar } from '../VAvatar'\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VDefaultsProvider } from '../VDefaultsProvider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\n\n// Utility\nimport { defineComponent } from 'vue'\nimport { useRender } from '@/util'\n\nexport const VCardItem = defineComponent({\n name: 'VCardItem',\n\n props: {\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: String,\n title: String,\n\n ...makeDensityProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrepend = !!(props.prependAvatar || props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendAvatar || props.appendIcon || slots.append)\n const hasTitle = !!(props.title || slots.title)\n const hasSubtitle = !!(props.subtitle || slots.subtitle)\n\n return (\n <div class=\"v-card-item\">\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.prependIcon,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n }}\n >\n <div class=\"v-card-item__prepend\">\n { slots.prepend?.() ?? (<VAvatar />) }\n </div>\n </VDefaultsProvider>\n ) }\n\n <div class=\"v-card-item__content\">\n { hasTitle && (\n <VCardTitle key=\"title\">\n { slots.title?.() ?? props.title}\n </VCardTitle>\n ) }\n\n { hasSubtitle && (\n <VCardSubtitle key=\"subtitle\">\n { slots.subtitle?.() ?? props.subtitle }\n </VCardSubtitle>\n ) }\n\n { slots.default?.() }\n </div>\n\n { hasAppend && (\n <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.appendIcon,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n }}\n >\n <div class=\"v-card-item__append\">\n { slots.append?.() ?? (<VAvatar />) }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n )\n })\n\n return {}\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardText = createSimpleFunctional('v-card-text')\n","/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { computed } from 'vue'\n\nexport const VCard = defineComponent({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: {\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: Boolean,\n subtitle: String,\n text: String,\n title: String,\n\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title)\n const hasSubtitle = !!(slots.subtitle || props.subtitle)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text)\n\n return (\n <Tag\n class={[\n 'v-card',\n {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n href={ link.href.value }\n onClick={ isClickable.value && link.navigate }\n v-ripple={ isClickable.value }\n >\n { hasImage && (\n <VDefaultsProvider\n key=\"image\"\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n <div class=\"v-card__image\">\n { slots.image?.() ?? <VImg /> }\n </div>\n </VDefaultsProvider>\n ) }\n\n <LoaderSlot\n name=\"v-card\"\n active={ !!props.loading }\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n v-slots={{ default: slots.loader }}\n />\n\n { hasCardItem && (\n <VCardItem\n key=\"item\"\n prependAvatar={ props.prependAvatar }\n prependIcon={ props.prependIcon }\n title={ props.title }\n subtitle={ props.subtitle }\n appendAvatar={ props.appendAvatar }\n appendIcon={ props.appendIcon }\n >\n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n </VCardItem>\n ) }\n\n { hasText && (\n <VCardText key=\"text\">\n { slots.text?.() ?? props.text }\n </VCardText>\n ) }\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n ) }\n\n { genOverlays(isClickable.value, 'v-card') }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType<typeof VCard>\n","// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\n// Utilities\nimport { keys } from '@/util'\n\nexport interface TouchHandlers {\n start?: (wrapperEvent: { originalEvent: TouchEvent } & TouchWrapper) => void\n end?: (wrapperEvent: { originalEvent: TouchEvent } & TouchWrapper) => void\n move?: (wrapperEvent: { originalEvent: TouchEvent } & TouchWrapper) => void\n left?: (wrapper: TouchWrapper) => void\n right?: (wrapper: TouchWrapper) => void\n up?: (wrapper: TouchWrapper) => void\n down?: (wrapper: TouchWrapper) => void\n}\n\nexport interface TouchWrapper extends TouchHandlers {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n touchendX: number\n touchendY: number\n offsetX: number\n offsetY: number\n}\n\nexport interface TouchValue extends TouchHandlers {\n parent?: boolean\n options?: AddEventListenerOptions\n}\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nexport interface TouchDirectiveBinding extends Omit<DirectiveBinding, 'value'> {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start?.({ originalEvent: event, ...wrapper })\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end?.({ originalEvent: event, ...wrapper })\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move?.({ originalEvent: event, ...wrapper })\n}\n\nfunction createHandlers (value: TouchHandlers = {}): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const value = binding.value\n const target = value?.parent ? el.parentElement : el\n const options = value?.options ?? { passive: true }\n const uid = binding.instance?.$.uid // TODO: use custom uid generator\n\n if (!target || !uid) return\n\n const handlers = createHandlers(binding.value)\n\n target._touchHandlers = target._touchHandlers ?? Object.create(null)\n target._touchHandlers![uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options)\n })\n}\n\nfunction unmounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const target = binding.value?.parent ? el.parentElement : el\n const uid = binding.instance?.$.uid\n\n if (!target?._touchHandlers || !uid) return\n\n const handlers = target._touchHandlers[uid]\n\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n\n delete target._touchHandlers[uid]\n}\n\nexport const Touch: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Touch\n","// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useGroup } from '@/composables/group'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, provide, ref, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { MakeSlots } from '@/util'\nimport type { TouchHandlers } from '@/directives/touch'\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n ariaLabel: string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const VWindow = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [{ group: GroupProvide }]\n additional: [{ group: GroupProvide }]\n prev: [{ props: ControlProps }]\n next: [{ props: ControlProps }]\n }>\n}>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: {\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n default: 'force' as const,\n },\n\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (v: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = ref(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = ref(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n ariaLabel: t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n ariaLabel: t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n ]}\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n","// Utilities\nimport { computed, onMounted, readonly, ref } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = ref(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles, isBooted: readonly(isBooted) }\n}\n","// Directives\nimport Touch from '@/directives/touch'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { MaybeTransition } from '@/composables/transition'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, inject, nextTick, ref } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const VWindowItem = defineComponent({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: {\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n const { isBooted } = useSsrBoot()\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = ref(false)\n const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false)\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n useRender(() => (\n <MaybeTransition transition={ isBooted.value && transition.value } >\n <div\n class={[\n 'v-window-item',\n groupItem.selectedClass.value,\n ]}\n v-show={ groupItem.isSelected.value }\n >\n { hasContent.value && slots.default?.() }\n </div>\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VWindowItem = InstanceType<typeof VWindowItem>\n","// Styles\nimport './VCarousel.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VProgressLinear } from '@/components/VProgressLinear'\nimport { VWindow } from '@/components/VWindow'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { PropType } from 'vue'\n\nexport const VCarousel = defineComponent({\n name: 'VCarousel',\n\n props: {\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => value > 0,\n },\n modelValue: null,\n progress: [Boolean, String],\n showArrows: {\n type: [Boolean, String],\n default: true,\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n verticalDelimiters: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { t } = useLocale()\n const windowRef = ref<typeof VWindow>()\n\n let slideTimeout = -1\n watch(model, restartTimeout)\n watch(() => props.interval, restartTimeout)\n watch(() => props.cycle, val => {\n if (val) restartTimeout()\n else window.clearTimeout(slideTimeout)\n })\n\n onMounted(startTimeout)\n\n function startTimeout () {\n if (!props.cycle || !windowRef.value) return\n\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000)\n }\n\n function restartTimeout () {\n window.clearTimeout(slideTimeout)\n window.requestAnimationFrame(startTimeout)\n }\n\n useRender(() => (\n <VWindow\n ref={ windowRef }\n v-model={ model.value }\n class={[\n 'v-carousel',\n {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters,\n },\n ]}\n style={{ height: convertToUnit(props.height) }}\n continuous\n mandatory=\"force\"\n showArrows={ props.showArrows }\n >\n {{\n default: slots.default,\n additional: ({ group }: { group: GroupProvide }) => (\n <>\n { !props.hideDelimiters && (\n <div\n class=\"v-carousel__controls\"\n style={{\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto',\n }}\n >\n { group.items.value.length > 0 && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n scoped\n >\n { group.items.value.map((item: any) => {\n const props = {\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter'),\n class: [group.isSelected(item.id) && 'v-btn--selected'],\n onClick: () => group.select(item.id, true),\n }\n\n return slots.item\n ? slots.item({ props, item })\n : (<VBtn { ...item } { ...props } />)\n }) }\n </VDefaultsProvider>\n ) }\n </div>\n )}\n\n { props.progress && (\n <VProgressLinear\n class=\"v-carousel__progress\"\n color={ typeof props.progress === 'string' ? props.progress : undefined }\n modelValue={ (group.getItemIndex(model.value) + 1) / group.items.value.length * 100 }\n />\n )}\n </>\n ),\n prev: slots.prev,\n next: slots.next,\n }}\n </VWindow>\n ))\n\n return {}\n },\n})\n","// Components\nimport { VImg } from '@/components/VImg'\nimport { VWindowItem } from '@/components/VWindow'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VCarouselItem = defineComponent({\n name: 'VCarouselItem',\n\n inheritAttrs: false,\n\n props: {\n value: null,\n },\n\n setup (props, { slots, attrs }) {\n useRender(() => (\n <VWindowItem class=\"v-carousel-item\" value={ props.value }>\n <VImg { ...attrs } v-slots={ slots } />\n </VWindowItem>\n ))\n },\n})\n\nexport type VCarouselItem = InstanceType<typeof VCarouselItem>\n","import './VCode.sass'\n\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCode = createSimpleFunctional('v-code')\n","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Utilities\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from '@/util'\nimport { computed, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { HSVA } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = ref(false)\n const isOutsideUpdate = ref(false)\n const dotPosition = ref({ x: 0, y: 0 })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const canvasRef = ref<HTMLCanvasElement | null>()\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleClick (e: MouseEvent) {\n if (props.disabled || !canvasRef.value) return\n\n updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (props.disabled) return\n\n isInteracting.value = true\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n watch(dotPosition, () => {\n if (isOutsideUpdate.value) {\n isOutsideUpdate.value = false\n return\n }\n\n if (!canvasRef.value) return\n\n const { width, height } = canvasRef.value.getBoundingClientRect()\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, width) / width,\n v: 1 - clamp(y, 0, height) / height,\n a: props.color?.a ?? 1,\n })\n })\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n if (!props.color) return\n\n isOutsideUpdate.value = true\n\n dotPosition.value = {\n x: props.color.s * parseInt(props.width, 10),\n y: (1 - props.color.v) * parseInt(props.height, 10),\n }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n class=\"v-color-picker-canvas\"\n style={{\n width: convertToUnit(props.width),\n height: convertToUnit(props.height),\n }}\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ props.width }\n height={ props.height }\n />\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n </div>\n ))\n\n return {}\n },\n})\n","// Utilities\nimport {\n HexToHSVA,\n HSLAtoHSVA,\n HSVAtoHex,\n HSVAtoHSLA,\n HSVAtoRGBA,\n parseHex,\n RGBAtoHSVA,\n} from '@/util/colorUtils'\n\n// Types\nimport type {\n HSLA,\n HSVA,\n RGBA,\n} from '@/util/colorUtils'\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any): HSVA | null {\n if (!color) return null\n\n let hsva: HSVA | null = null\n\n if (typeof color === 'string') {\n const hex = parseHex(color)\n\n hsva = HexToHSVA(hex)\n }\n\n if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n hsva = RGBAtoHSVA(color)\n } else if (has(color, ['h', 's', 'l'])) {\n hsva = HSLAtoHSVA(color)\n } else if (has(color, ['h', 's', 'v'])) {\n hsva = color\n }\n }\n\n return hsva != null ? { ...hsva, a: hsva.a ?? 1 } : null\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: HSVA, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVAtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVAtoRGBA(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVAtoHSLA(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']))\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n\nexport const nullColor = { h: 0, s: 0, v: 1, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record<string, unknown>\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSVA\n to: (color: HSVA) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.r),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.g),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.b),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: (c: RGBA) => Math.round(c.a * 100) / 100,\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVAtoRGBA,\n from: RGBAtoHSVA,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSLA) => Math.round(c.h),\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.s * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.l * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.a * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVAtoHSLA,\n from: HSLAtoHSVA,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVAtoHex,\n from: HexToHSVA,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes: Record<string, ColorPickerMode> = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n}\n","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { modes } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n <div\n class=\"v-color-picker-edit__input\"\n >\n <input {...rest} />\n <span>{ label }</span>\n </div>\n )\n}\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: {\n color: Object as PropType<HSVA | null>,\n disabled: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : {}\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color, target.value)))\n },\n }\n })\n })\n\n useRender(() => (\n <div\n class=\"v-color-picker-edit\"\n >\n { inputs.value?.map(props => (\n <VColorPickerInput {...props} />\n )) }\n { enabledModes.value.length > 1 && (\n <VBtn\n icon=\"$unfold\"\n size=\"x-small\"\n variant=\"plain\"\n onClick={ () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n } }\n />\n ) }\n </div>\n ))\n\n return {}\n },\n})\n","/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref<boolean | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n horizontalDirection: Ref<'ltr' | 'rtl'>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: Boolean,\n error: Boolean,\n readonly: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n}, 'slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(props, 'disabled')\n const vertical = computed(() => props.direction === 'vertical')\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || isReversed.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(parseMouseMove(e))\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const parsedTicks = computed<Tick[]>(() => {\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseInt(key, 10),\n position: position(parseInt(key, 10)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n horizontalDirection,\n isReversed,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks: toRef(props, 'showTicks'),\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n","// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VScaleTransition } from '../transitions'\nimport { VSliderSymbol } from './slider'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Composables\nimport { useElevation } from '@/composables/elevation'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, keyValues, useRender } from '@/util'\n\nexport const VSliderThumb = defineComponent({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: {\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n },\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n vertical,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n readonly,\n elevation,\n isReversed,\n horizontalDirection,\n mousePressed,\n decimals,\n } = slider\n\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = isReversed.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(vertical.value ? 100 - props.position : props.position, '%')\n const inset = vertical.value ? 'block' : 'inline'\n const { elevationClasses } = useElevation(computed(() => !disabled.value ? elevation.value : undefined))\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n ]}\n style={{\n [`inset-${inset}-start`]: `calc(${positionPercentage} - var(--v-slider-thumb-size) / 2)`,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[true, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n","// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\nexport const VSliderTrack = defineComponent({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue = (tick.position > 0 && tick.position < 100) ? convertToUnit(tick.position, '%') : undefined\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n },\n ]}\n style={{ [directionProperty]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n ) }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n","// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Util\nimport { computed, ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSlider = defineComponent({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport { VSlider } from '@/components/VSlider'\n\n// Utilities\nimport { defineComponent, HSVAtoCSS, useRender } from '@/util'\nimport { nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class={[\n 'v-color-picker-preview',\n {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha,\n },\n ]}\n >\n <div class=\"v-color-picker-preview__dot\">\n <div style={{ background: HSVAtoCSS(props.color ?? nullColor) }} />\n </div>\n\n <div class=\"v-color-picker-preview__sliders\">\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__hue\"\n modelValue={ props.color?.h }\n onUpdate:modelValue={ h => emit('update:color', { ...(props.color ?? nullColor), h }) }\n step={ 0 }\n min={ 0 }\n max={ 360 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n\n { !props.hideAlpha && (\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__alpha\"\n modelValue={ props.color?.a }\n onUpdate:modelValue={ a => emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 0 }\n min={ 0 }\n max={ 1 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n ) }\n </div>\n </div>\n ))\n\n return {}\n },\n})\n","const red = Object.freeze({\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n})\n\nconst pink = Object.freeze({\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n})\n\nconst purple = Object.freeze({\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n})\n\nconst deepPurple = Object.freeze({\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n})\n\nconst indigo = Object.freeze({\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n})\n\nconst blue = Object.freeze({\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n})\n\nconst lightBlue = Object.freeze({\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n})\n\nconst cyan = Object.freeze({\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n})\n\nconst teal = Object.freeze({\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n})\n\nconst green = Object.freeze({\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n})\n\nconst lightGreen = Object.freeze({\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n})\n\nconst lime = Object.freeze({\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n})\n\nconst yellow = Object.freeze({\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n})\n\nconst amber = Object.freeze({\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n})\n\nconst orange = Object.freeze({\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n})\n\nconst deepOrange = Object.freeze({\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n})\n\nconst brown = Object.freeze({\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n})\n\nconst blueGrey = Object.freeze({\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n})\n\nconst grey = Object.freeze({\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n})\n\nconst shades = Object.freeze({\n black: '#000000',\n white: '#ffffff',\n transparent: '#ffffff00',\n})\n\nexport default Object.freeze({\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n})\n","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Utilities\nimport { convertToUnit, deepEqual, defineComponent, getContrast, useRender } from '@/util'\nimport { parseColor } from './util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { HSVA } from '@/util'\nimport type { PropType } from 'vue'\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: {\n swatches: {\n type: Array as PropType<string[][]>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<HSVA | null>,\n maxHeight: [Number, String],\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n <div\n class=\"v-color-picker-swatches\"\n style={{\n maxHeight: convertToUnit(props.maxHeight),\n }}\n >\n <div>\n { props.swatches.map(swatch => (\n <div class=\"v-color-picker-swatches__swatch\">\n { swatch.map(color => {\n const hsva = parseColor(color)\n\n return (\n <div\n class=\"v-color-picker-swatches__color\"\n onClick={() => hsva && emit('update:color', hsva)}\n >\n <div style={{ background: color }}>\n { props.color && deepEqual(props.color, hsva)\n ? <VIcon size=\"x-small\" icon=\"$success\" color={getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black' } />\n : undefined\n }\n </div>\n </div>\n )\n }) }\n </div>\n ))}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VSheet = defineComponent({\n name: 'VSheet',\n\n props: {\n color: String,\n\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n return () => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVAtoCSS, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n inheritAttrs: false,\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSVA | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSVA) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n useRender(() => (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVAtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n ) }\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n ) }\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n ) }\n </div>\n ) }\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n ) }\n </VSheet>\n ))\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n","// Styles\nimport './VCombobox.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { transformItem, useItems } from '@/composables/items'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-combobox__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-combobox__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-combobox__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VCombobox = genericComponent<new <\n T,\n ReturnObject extends boolean = true,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: T, index: number, props: Record<string, unknown> }]\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VCombobox',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n delimiters: Array as PropType<string[]>,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:searchInput': (val: string) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const selectionIndex = ref(-1)\n const color = computed(() => vTextFieldRef.value?.color)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v || [])),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const _search = ref('')\n const search = computed<string>({\n get: () => {\n return _search.value\n },\n set: val => {\n _search.value = val\n if (!props.multiple) {\n model.value = [transformItem(props, val)]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n if (isFocused.value) menu.value = true\n\n isPristine.value = !val\n },\n })\n watch(_search, value => {\n emit('update:searchInput', value)\n })\n\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const selection = computed(() => selections.value[selectionIndex.value])\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = selected.value.length\n\n if (selectionIndex.value > -1) e.preventDefault()\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (!props.multiple) return\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (selectionIndex.value < 0) {\n if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n select(selection.value)\n\n nextTick(() => !selection.value && (selectionIndex.value = length - 2))\n }\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (selections.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (selections.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n\n if (e.key === 'Enter') {\n select(transformItem(props, search.value))\n search.value = ''\n }\n }\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n\n search.value = ''\n } else {\n search.value = item.title\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n watch(filteredItems, val => {\n if (!val.length && props.hideNoData) menu.value = false\n })\n\n watch(isFocused, val => {\n if (val) {\n selectionIndex.value = -1\n } else {\n menu.value = false\n\n if (!props.multiple || !search.value) return\n\n model.value = [...model.value, transformItem(props, search.value)]\n search.value = ''\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ props.modelValue ?? model.value }\n dirty={ model.value.length > 0 }\n class={[\n 'v-combobox',\n {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.items.length ? props.menuIcon : undefined }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-combobox__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { filteredItems.value.map(({ item, matches }, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div\n key={ index }\n class={[\n 'v-combobox__selection',\n index === selectionIndex.value && [\n 'v-combobox__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ index === selectionIndex.value ? textColorStyles.value : {} }\n >\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-combobox__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-combobox__selection-comma\">,</span>\n ) }\n </span>\n )\n ) }\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType<typeof VCombobox>\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { nextTick, ref, watch } from 'vue'\nimport { genericComponent, IN_BROWSER, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const VDialog = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VDialog',\n\n inheritAttrs: false,\n\n props: {\n fullscreen: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n modelValue: Boolean,\n\n ...makeDimensionProps({ width: 'auto' }),\n ...makeTransitionProps({\n transition: { component: VDialogTransition },\n }),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { dimensionStyles } = useDimension(props)\n const { scopeId } = useScopeId()\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = [...overlay.value.contentEl.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n watch(isActive, async val => {\n await nextTick()\n if (val) {\n overlay.value!.contentEl?.focus({ preventScroll: true })\n } else {\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n ]}\n style={ dimensionStyles.value }\n transition={ props.transition }\n scrollStrategy=\"block\"\n ref={ overlay }\n aria-role=\"dialog\"\n aria-modal=\"true\"\n activatorProps={{\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(isActive.value),\n }}\n z-index={ 2400 }\n { ...scopeId }\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator: slots.activator,\n }}\n />\n ))\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n","// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { GroupItemProvide } from '@/composables/group'\nimport type { InjectionKey, PropType } from 'vue'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const VExpansionPanels = defineComponent({\n name: 'VExpansionPanels',\n\n props: {\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n },\n VExpansionPanelTitle: {\n readonly: toRef(props, 'readonly'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n themeClasses.value,\n variantClass.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n","// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n})\n\nexport const VExpansionPanelTitle = defineComponent({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n ) }\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n","// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { inject } from 'vue'\n\nexport const VExpansionPanelText = defineComponent({\n name: 'VExpansionPanelText',\n\n props: {\n ...makeLazyProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel')\n\n const { hasContent, onAfterLeave } = useLazy(props, expansionPanel.isSelected)\n\n useRender(() => (\n <VExpandTransition onAfterLeave={ onAfterLeave }>\n <div\n class=\"v-expansion-panel-text\"\n v-show={ expansionPanel.isSelected.value }\n >\n { slots.default && hasContent.value && (\n <div class=\"v-expansion-panel-text__wrapper\">\n { slots.default?.() }\n </div>\n ) }\n </div>\n </VExpandTransition>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelText = InstanceType<typeof VExpansionPanelText>\n","// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VExpansionPanelText } from './VExpansionPanelText'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps } from '@/composables/lazy'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce<number[]>((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n return (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n\n { hasTitle && (\n <VExpansionPanelTitle\n key=\"title\"\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n expandIcon={ props.expandIcon }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n ) }\n\n { hasText && (\n <VExpansionPanelText key=\"text\" eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n","// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref } from 'vue'\nimport { callEvent, defineComponent, filterInputAttrs, humanReadableFileSize, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VFileInput = defineComponent({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: {\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n hint: String,\n persistentHint: Boolean,\n placeholder: String,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) {\n isFocused.value = true\n }\n }\n function onClickPrepend (e: MouseEvent) {\n callEvent(props['onClick:prepend'], e)\n onControlClick(e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n if (inputRef?.value) {\n inputRef.value.value = ''\n }\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class=\"v-file-input\"\n onClick:prepend={ onClickPrepend }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n active={ isDirty.value || isFocused.value }\n dirty={ isDirty.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n onFocus()\n } }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n } }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { model.value.length > 0 && (\n <div class={ fieldClass }>\n { slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ') }\n </div>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value.length }\n value={ counterValue.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n","// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VFooter = defineComponent({\n name: 'VFooter',\n\n props: {\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const autoHeight = ref(32)\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n autoHeight.value = entries[0].target.clientHeight\n })\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-footer',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles,\n props.app ? layoutItemStyles.value : undefined,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","// Composables\nimport { createForm, makeFormProps } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { SubmitEventPromise } from '@/composables/form'\n\nexport const VForm = defineComponent({\n name: 'VForm',\n\n props: {\n ...makeFormProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean | null) => true,\n submit: (e: SubmitEventPromise) => true,\n },\n\n setup (props, { slots, emit }) {\n const form = createForm(props)\n const formRef = ref<HTMLFormElement>()\n\n function onReset (e: Event) {\n e.preventDefault()\n form.reset()\n }\n\n function onSubmit (_e: Event) {\n const e = _e as SubmitEventPromise\n\n const ready = form.validate()\n e.then = ready.then.bind(ready)\n e.catch = ready.catch.bind(ready)\n e.finally = ready.finally.bind(ready)\n\n emit('submit', e)\n\n if (!e.defaultPrevented) {\n ready.then(({ valid }) => {\n if (valid) {\n formRef.value?.submit()\n }\n })\n }\n\n e.preventDefault()\n }\n\n useRender(() => ((\n <form\n ref={ formRef }\n class=\"v-form\"\n novalidate\n onReset={ onReset }\n onSubmit={ onSubmit }\n >\n { slots.default?.(form) }\n </form>\n )))\n\n return forwardRefs(form, formRef)\n },\n})\n\nexport type VForm = InstanceType<typeof VForm>\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VContainer = defineComponent({\n name: 'VContainer',\n\n props: {\n fluid: {\n type: Boolean,\n default: false,\n },\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <props.tag\n class={[\n 'v-container',\n { 'v-container--fluid': props.fluid },\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record<string, Prop<boolean | string | number, false>>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<string, Prop<string | number, null>>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<string, Prop<string | number, null>>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'] as const\n\nexport const VCol = defineComponent({\n name: 'VCol',\n\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String as PropType<typeof ALIGN_SELF_VALUES[number]>,\n default: null,\n validator: (str: any) => ALIGN_SELF_VALUES.includes(str),\n },\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: classes.value,\n }, slots.default?.())\n },\n})\n\nexport type VCol = InstanceType<typeof VCol>\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <T> (prefix: string, def: () => Prop<T, null>) {\n return breakpoints.reduce((props, val) => {\n props[prefix + capitalize(val)] = def()\n return props\n }, {} as Record<string, Prop<T, null>>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String as PropType<typeof ALIGN_VALUES[number]>,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String as PropType<typeof JUSTIFY_VALUES[number]>,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const VRow = defineComponent({\n name: 'VRow',\n\n props: {\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType<typeof ALIGN_VALUES[number]>,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType<typeof ALIGN_CONTENT_VALUES[number]>,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: ['v-row', classes.value],\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType<typeof VRow>\n","import { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('flex-grow-1', 'div', 'VSpacer')\n","// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VHover = defineComponent({\n name: 'VHover',\n\n props: {\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n\n ...makeDelayProps(),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isHovering = useProxiedModel(props, 'modelValue')\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => !props.disabled && (isHovering.value = value))\n\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay,\n },\n })\n },\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const VItemGroup = defineComponent({\n name: 'VItemGroup',\n\n props: {\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n <props.tag\n class={[\n 'v-item-group',\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n }) }\n </props.tag>\n )\n },\n})\n\nexport type VItemGroup = InstanceType<typeof VItemGroup>\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VItemGroupSymbol } from './VItemGroup'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VItem = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [GroupItemProvide]\n }>\n}>()({\n name: 'VItem',\n\n props: makeGroupItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, select, toggle, selectedClass, value, disabled } = useGroupItem(props, VItemGroupSymbol)\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value,\n })\n },\n})\n\nexport type VItem = InstanceType<typeof VItem>\n","import './VKbd.sass'\n\nimport { createSimpleFunctional } from '@/util'\n\nexport const VKbd = createSimpleFunctional('v-kbd')\n","// Styles\nimport './VLayout.sass'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Composables\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\nexport const VLayout = defineComponent({\n name: 'VLayout',\n\n props: makeLayoutProps(),\n\n setup (props, { slots }) {\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n\n useRender(() => (\n <div ref={ layoutRef } class={ layoutClasses.value } style={ layoutStyles.value }>\n { slots.default?.() }\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n\nexport type VLayout = InstanceType<typeof VLayout>\n","// Styles\nimport './VLayoutItem.sass'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VLayoutItem = defineComponent({\n name: 'VLayoutItem',\n\n props: {\n position: {\n type: String as PropType<'top' | 'right' | 'bottom' | 'left'>,\n required: true,\n },\n size: {\n type: [Number, String],\n default: 300,\n },\n modelValue: Boolean,\n ...makeLayoutItemProps(),\n },\n\n setup (props, { slots }) {\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute'),\n })\n\n return () => (\n <div\n class={[\n 'v-layout-item',\n ]}\n style={ layoutItemStyles.value }\n >\n { slots.default?.() }\n </div>\n )\n },\n})\n","// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VLazy = defineComponent({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: {\n modelValue: Boolean,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({ transition: 'fade-transition' }),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n\n function onIntersect (isIntersecting: boolean) {\n if (isActive.value) return\n\n isActive.value = isIntersecting\n }\n\n useRender(() => (\n <props.tag\n class=\"v-lazy\"\n v-intersect={[\n onIntersect,\n props.options,\n isActive.value ? [] : ['once'],\n ]}\n style={ dimensionStyles.value }\n >\n { isActive.value && (\n <MaybeTransition transition={ props.transition }>\n { slots.default?.() }\n </MaybeTransition>\n )}\n </props.tag>\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VLocaleProvider.sass'\n\n// Composables\nimport { provideLocale } from '@/composables/locale'\nimport { provideRtl } from '@/composables/rtl'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VLocaleProvider = defineComponent({\n name: 'VLocaleProvider',\n\n props: {\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined,\n },\n },\n\n setup (props, { slots }) {\n const localeInstance = provideLocale(props)\n const { rtlClasses } = provideRtl(props, localeInstance)\n\n useRender(() => (\n <div\n class={[\n 'v-locale-provider',\n rtlClasses.value,\n ]}\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useLayout } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VMain = defineComponent({\n name: 'VMain',\n\n props: {\n scrollable: Boolean,\n\n ...makeTagProps({ tag: 'main' }),\n },\n\n setup (props, { slots }) {\n const { mainStyles } = useLayout()\n const { ssrBootStyles } = useSsrBoot()\n\n useRender(() => (\n <props.tag\n class={[\n 'v-main',\n { 'v-main--scrollable': props.scrollable },\n ]}\n style={[\n mainStyles.value,\n ssrBootStyles.value,\n ]}\n >\n { props.scrollable\n ? (\n <div class=\"v-main__scroller\">\n { slots.default?.() }\n </div>\n )\n : slots.default?.()\n }\n </props.tag>\n ))\n\n return {}\n },\n})\n","import { CircularBuffer } from '@/util'\n\nconst HORIZON = 100 // ms\nconst HISTORY = 20 // number of samples to keep\n\nexport interface Sample {\n t: number\n d: number\n}\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity (work: number) {\n const sqrt2 = 1.41421356237\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity (samples: Sample[]) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t)\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue\n }\n const vprev = kineticEnergyToVelocity(work) // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t) // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr)\n if (i === samples.length - 1) {\n work *= 0.5\n }\n }\n return kineticEnergyToVelocity(work) * 1000\n}\n\nexport function useVelocity () {\n const touches: Record<number, CircularBuffer<[number, Touch]> | undefined> = {}\n\n function addMovement (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY))\n samples.push([e.timeStamp, touch])\n })\n }\n\n function endTouch (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier]\n })\n }\n\n function getVelocity (id: number) {\n const samples = touches[id]?.values().reverse()\n\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`)\n }\n\n const newest = samples[0]\n const x: Sample[] = []\n const y: Sample[] = []\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break\n\n x.push({ t: val[0], d: val[1].clientX })\n y.push({ t: val[0], d: val[1].clientY })\n }\n\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction () {\n const { x, y } = this\n const [absX, absY] = [Math.abs(x), Math.abs(y)]\n\n return absX > absY && x >= 0 ? 'right'\n : absX > absY && x <= 0 ? 'left'\n : absY > absX && y >= 0 ? 'down'\n : absY > absX && y <= 0 ? 'up'\n : oops()\n },\n }\n }\n\n return { addMovement, endTouch, getVelocity }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","// Composables\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => position.value !== 'bottom')\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useRtl } from '@/composables'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst locations = ['start', 'end', 'left', 'right', 'bottom'] as const\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = ref(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (isActive.value = !val))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n","import type { CSSProperties, Ref } from 'vue'\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { convertToUnit } from '@/util'\n\ninterface StickyProps {\n rootEl: Ref<HTMLElement | undefined>\n isSticky: Ref<boolean>\n layoutItemStyles: Ref<CSSProperties>\n}\n\nexport function useSticky ({ rootEl, isSticky, layoutItemStyles }: StickyProps) {\n const isStuck = ref<boolean | 'top' | 'bottom'>(false)\n const stuckPosition = ref(0)\n\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value\n return [\n isSticky.value ? { top: 'auto', bottom: 'auto', height: undefined } : undefined,\n isStuck.value\n ? { [side]: convertToUnit(stuckPosition.value) }\n : { top: layoutItemStyles.value.top },\n ]\n })\n\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, { passive: true })\n } else {\n window.removeEventListener('scroll', onScroll)\n }\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener('scroll', onScroll)\n })\n\n let lastScrollTop = 0\n function onScroll () {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down'\n const rect = rootEl.value!.getBoundingClientRect()\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0)\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop)\n const bottom =\n rect.height +\n Math.max(stuckPosition.value, layoutTop) -\n window.scrollY -\n window.innerHeight\n\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top'\n stuckPosition.value = layoutTop\n } else if (\n (direction === 'up' && isStuck.value === 'bottom') ||\n (direction === 'down' && isStuck.value === 'top')\n ) {\n stuckPosition.value = window.scrollY + rect.top\n isStuck.value = true\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0\n isStuck.value = 'bottom'\n } else if (direction === 'up' && top <= 0) {\n stuckPosition.value = rect.top + top\n isStuck.value = 'top'\n }\n\n lastScrollTop = window.scrollY\n }\n\n return { isStuck, stickyStyles }\n}\n","// Composables\nimport { useHydration } from '@/composables/hydration'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { ref } from 'vue'\n\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n\n setup (_, { slots }) {\n const show = ref(false)\n\n useHydration(() => (show.value = true))\n\n return () => show.value && slots.default?.()\n },\n})\n","// Utilities\nimport { getCurrentInstance, IN_BROWSER } from '@/util'\nimport { onMounted } from 'vue'\n\nexport function useHydration (callback: () => void) {\n if (!IN_BROWSER) return\n\n const vm = getCurrentInstance('useHydration')\n const rootEl = vm?.root?.appContext?.app?._container\n\n return rootEl?.__vue_app__ ? callback() : onMounted(callback)\n}\n","// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.getBoundingClientRect().width +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n const minButtons = props.showFirstLastPage ? 5 : 3\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - itemWidth * minButtons) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.page }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n","// Imports\nimport { onBeforeUpdate, ref } from 'vue'\nimport type { Ref } from 'vue'\n\nexport function useRefs <T extends {}> () {\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>\n\n onBeforeUpdate(() => (refs.value = []))\n\n function updateRef (e: any, i: number) {\n refs.value[i] = e\n }\n\n return { refs, updateRef }\n}\n","// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\n\n// Utilities\nimport { defineComponent, getScrollParent, useRender } from '@/util'\nimport { onBeforeUnmount, ref, watch, watchEffect } from 'vue'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const VParallax = defineComponent({\n name: 'VParallax',\n\n props: {\n scale: {\n type: [Number, String],\n default: 1.3,\n },\n },\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const root = ref<VImg>()\n\n watchEffect(() => {\n intersectionRef.value = root.value?.$el\n })\n\n let scrollParent: Element\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document as any : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const rect = intersectionRef.value!.getBoundingClientRect()\n const scrollHeight = scrollParent.clientHeight ?? window.innerHeight\n const scrollPos = scrollParent.scrollTop ?? window.scrollY\n const top = rect.top + scrollPos\n const progress = (scrollPos + scrollHeight - top) / (rect.height + scrollHeight)\n const translate = floor((rect.height * +props.scale - rect.height) * (-progress + 0.5))\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${props.scale})`)\n })\n }\n\n useRender(() => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n ]}\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n","// Components\nimport { makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n\n props: {\n ...makeSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn',\n }),\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <VSelectionControl\n { ...props }\n class=\"v-radio\"\n type=\"radio\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VRadio = InstanceType<typeof VRadio>\n","// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n provideDefaults({\n VRadio: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n },\n })\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n v-model={ model.value }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-model={ model.value }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n","// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { getOffset, makeSliderProps, useSlider } from '@/components/VSlider/slider'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n roundValue,\n trackContainerRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VRangeSlider = InstanceType<typeof VRangeSlider>\n","// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { createRange, genericComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record<string, unknown>\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\nexport const VRating = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n }>\n}>()({\n name: 'VRating',\n\n props: {\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: Number,\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n const focusIndex = ref(-1)\n const firstRef = ref<HTMLElement>()\n let isClicking = false\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = rating.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onFocus () {\n if (value === 0 && rating.value === 0) {\n firstRef.value?.focus()\n } else {\n focusIndex.value = value\n }\n }\n\n function onBlur () {\n if (!isClicking) focusIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = rating.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onFocus,\n onBlur,\n onClick,\n }\n }))\n\n function onMousedown () {\n isClicking = true\n }\n\n function onMouseup () {\n isClicking = false\n }\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onFocus, onBlur, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n tag: 'span',\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMousedown={ onMousedown }\n onMouseup={ onMouseup }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ rating.value === value }\n onClick={ onClick }\n onFocus={ onFocus }\n onBlur={ onBlur }\n ref={ index === 0 ? firstRef : undefined }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span> </span>\n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n ]}\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div\n class={[\n 'v-rating__item',\n {\n 'v-rating__item--focused': Math.ceil(focusIndex.value) === value,\n },\n ]}\n >\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n ) }\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n )) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n","export function bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n currentScrollOffset,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n currentScrollOffset: number\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n const adjustedOffsetStart = isRtl && isHorizontal ? (contentSize - offsetStart - clientSize) : offsetStart\n\n const totalSize = containerSize + currentScrollOffset\n const itemOffset = clientSize + adjustedOffsetStart\n const additionalOffset = clientSize * 0.4\n\n if (adjustedOffsetStart <= currentScrollOffset) {\n currentScrollOffset = Math.max(adjustedOffsetStart - additionalOffset, 0)\n } else if (totalSize <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalSize - itemOffset - additionalOffset), contentSize - containerSize)\n }\n\n return currentScrollOffset\n}\n\nexport function calculateCenteredOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n\n const offsetCentered = isRtl && isHorizontal\n ? contentSize - offsetStart - clientSize / 2 - containerSize / 2\n : offsetStart + clientSize / 2 - containerSize / 2\n\n return Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n}\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, IN_BROWSER, useRender } from '@/util'\nimport { computed, ref, watch } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\n name: 'VSlideGroup',\n\n props: {\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.value) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n }\n })\n })\n }\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n startOffset = sign * scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n scrollOffset.value = sign * (startOffset + startTouch - e.touches[0][sizeProperty])\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n if (!containerRef.value) return\n\n containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n focus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n focus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n }\n }\n\n if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n contentRef.value.querySelector('[tabindex]')\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const newAbsoluteOffset = scrollOffset.value + (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = clamp(newAbsoluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n // This adds friction when scrolling the 'wrong' way when at max offset\n let scrollAmount = scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n // This adds friction when scrolling the 'wrong' way when at min offset\n if (scrollOffset.value <= 0) {\n scrollAmount = bias(-scrollOffset.value)\n }\n\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${sign * scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return Math.abs(scrollOffset.value) > 0\n })\n\n const hasNext = computed(() => {\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\n// Types\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSnackbar = defineComponent({\n name: 'VSnackbar',\n\n props: {\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n modelValue: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeTransitionProps({ transition: 'v-snackbar-transition' }),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[colorStyles.value]}\n contentProps={{\n style: locationStyles.value,\n }}\n contentClass={ props.contentClass }\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n transition={ props.transition }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n ))\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n","// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const { loaderClasses } = useLoader(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n id={ id.value }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n ) }\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n","// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSystemBar = defineComponent({\n name: 'VSystemBar',\n\n props: {\n color: String,\n height: [Number, String],\n window: Boolean,\n\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const height = computed(() => props.height ?? (props.window ? 32 : 24))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: ref('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-system-bar',\n { 'v-system-bar--window': props.window },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","import type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VTabsSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-tabs')\n","// Styles\nimport './VTab.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeGroupItemProps } from '@/composables/group'\nimport { makeRouterProps } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { animate, defineComponent, pick, standardEasing, useRender } from '@/util'\n\n// Types\nimport { VTabsSymbol } from './shared'\nimport type { PropType } from 'vue'\n\nexport const VTab = defineComponent({\n name: 'VTab',\n\n props: {\n fixed: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n stacked: Boolean,\n title: String,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n color: String,\n sliderColor: String,\n hideSlider: Boolean,\n\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...makeTagProps(),\n ...makeRouterProps(),\n ...makeGroupItemProps({\n selectedClass: 'v-tab--selected',\n }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots, attrs }) {\n const { textColorClasses: sliderColorClasses, textColorStyles: sliderColorStyles } = useTextColor(props, 'sliderColor')\n const isHorizontal = computed(() => props.direction === 'horizontal')\n const isSelected = ref(false)\n\n const rootEl = ref<VBtn>()\n const sliderEl = ref<HTMLElement>()\n\n function updateSlider ({ value }: { value: boolean }) {\n isSelected.value = value\n\n if (value) {\n const prevEl: HTMLElement | undefined = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider')\n const nextEl = sliderEl.value\n\n if (!prevEl || !nextEl) return\n\n const color = getComputedStyle(prevEl).color\n\n const prevBox = prevEl.getBoundingClientRect()\n const nextBox = nextEl.getBoundingClientRect()\n\n const xy = isHorizontal.value ? 'x' : 'y'\n const XY = isHorizontal.value ? 'X' : 'Y'\n const rightBottom = isHorizontal.value ? 'right' : 'bottom'\n const widthHeight = isHorizontal.value ? 'width' : 'height'\n\n const prevPos = prevBox[xy]\n const nextPos = nextBox[xy]\n const delta = prevPos > nextPos\n ? prevBox[rightBottom] - nextBox[rightBottom]\n : prevBox[xy] - nextBox[xy]\n const origin =\n Math.sign(delta) > 0 ? (isHorizontal.value ? 'right' : 'bottom')\n : Math.sign(delta) < 0 ? (isHorizontal.value ? 'left' : 'top')\n : 'center'\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight])\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight])\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight]\n\n const sigma = 1.5\n animate(nextEl, {\n backgroundColor: [color, ''],\n transform: [\n `translate${XY}(${delta}px) scale${XY}(${initialScale})`,\n `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`,\n '',\n ],\n transformOrigin: Array(3).fill(origin),\n }, {\n duration: 225,\n easing: standardEasing,\n })\n }\n }\n\n useRender(() => {\n const [btnProps] = pick(props, [\n 'href',\n 'to',\n 'replace',\n 'icon',\n 'stacked',\n 'prependIcon',\n 'appendIcon',\n 'ripple',\n 'theme',\n 'disabled',\n 'selectedClass',\n 'value',\n 'color',\n ])\n\n return (\n <VBtn\n _as=\"VTab\"\n symbol={ VTabsSymbol }\n ref={ rootEl }\n class={[\n 'v-tab',\n ]}\n tabindex={ isSelected.value ? 0 : -1 }\n role=\"tab\"\n aria-selected={ String(isSelected.value) }\n block={ props.fixed }\n maxWidth={ props.fixed ? 300 : undefined }\n variant=\"text\"\n rounded={ 0 }\n { ...btnProps }\n { ...attrs }\n onGroup:selected={ updateSlider }\n >\n { slots.default ? slots.default() : props.title }\n { !props.hideSlider && (\n <div\n ref={ sliderEl }\n class={[\n 'v-tab__slider',\n sliderColorClasses.value,\n ]}\n style={ sliderColorStyles.value }\n />\n ) }\n </VBtn>\n )\n })\n\n return {}\n },\n})\n\nexport type VTab = InstanceType<typeof VTab>\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport { VSlideGroup } from '@/components/VSlideGroup'\nimport { VTab } from './VTab'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport { VTabsSymbol } from './shared'\nimport type { PropType } from 'vue'\n\nexport type TabItem = string | Record<string, any>\n\nfunction parseItems (items: TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (typeof item === 'string') return { title: item, value: item }\n\n return item\n })\n}\n\nexport const VTabs = defineComponent({\n name: 'VTabs',\n\n props: {\n alignWithTitle: Boolean,\n color: String,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n fixedTabs: Boolean,\n items: {\n type: Array as PropType<TabItem[]>,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n centered: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n optional: Boolean,\n end: Boolean,\n sliderColor: String,\n modelValue: null,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n },\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const parsedItems = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n useRender(() => (\n <VSlideGroup\n v-model={ model.value }\n class={[\n 'v-tabs',\n `v-tabs--${props.direction}`,\n {\n 'v-tabs--align-with-title': props.alignWithTitle,\n 'v-tabs--centered': props.centered,\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--end': props.end,\n 'v-tabs--stacked': props.stacked,\n },\n densityClasses.value,\n backgroundColorClasses.value,\n ]}\n style={backgroundColorStyles.value}\n role=\"tablist\"\n symbol={ VTabsSymbol }\n mandatory=\"force\"\n direction={ props.direction }\n >\n { slots.default ? slots.default() : parsedItems.value.map(item => (\n <VTab { ...item } key={ item.title } />\n )) }\n </VSlideGroup>\n ))\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType<typeof VTabs>\n","// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\nexport const VTable = defineComponent({\n name: 'VTable',\n\n props: {\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-table',\n {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n },\n themeClasses.value,\n densityClasses.value,\n ]}\n >\n { slots.top?.() }\n\n { slots.default && (\n <div\n class=\"v-table__wrapper\"\n style={{ height: convertToUnit(props.height) }}\n >\n <table>\n { slots.default() }\n </table>\n </div>\n ) }\n\n { slots.bottom?.() }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType<typeof VTable>\n","// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n model.value = (e.target as HTMLTextAreaElement).value\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n","// Styles\nimport './VThemeProvider.sass'\n\n// Composables\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VThemeProvider = defineComponent({\n name: 'VThemeProvider',\n\n props: {\n withBackground: Boolean,\n\n ...makeThemeProps(),\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n\n return () => {\n if (!props.withBackground) return slots.default?.()\n\n return (\n <props.tag class={['v-theme-provider', themeClasses.value]}>\n { slots.default?.() }\n </props.tag>\n )\n }\n },\n})\n","// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const VTimeline = defineComponent({\n name: 'VTimeline',\n\n props: {\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop<TimelineAlign>,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop<TimelineDirection>,\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop<TimelineSide>,\n lineInset: {\n type: [String, Number],\n default: 0,\n },\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop<TimelineTruncateLine>,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n lineInset: toRef(props, 'lineInset'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n `v-timeline--align-${props.align}`,\n truncateClasses.value,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n },\n themeClasses.value,\n densityClasses.value,\n sideClasses.value,\n ]}\n style={{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n }}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n","// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VTimelineDivider = defineComponent({\n name: 'VTimelineDivider',\n\n props: {\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps(),\n },\n\n setup (props, { slots }) {\n const { sizeClasses, sizeStyles } = useSize(props, 'v-timeline-divider__dot')\n const { backgroundColorStyles, backgroundColorClasses } = useBackgroundColor(toRef(props, 'dotColor'))\n const { roundedClasses } = useRounded(props, 'v-timeline-divider__dot')\n const { elevationClasses } = useElevation(props)\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles,\n } = useBackgroundColor(toRef(props, 'lineColor'))\n\n provideDefaults({\n VIcon: {\n color: toRef(props, 'iconColor'),\n icon: toRef(props, 'icon'),\n size: toRef(props, 'size'),\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-divider',\n {\n 'v-timeline-divider--fill-dot': props.fillDot,\n },\n ]}\n >\n <div\n class={[\n 'v-timeline-divider__before',\n lineColorClasses.value,\n ]}\n style={ lineColorStyles.value }\n />\n\n { !props.hideDot && (\n <div\n key=\"dot\"\n class={[\n 'v-timeline-divider__dot',\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={ sizeStyles.value }\n >\n <div\n class={[\n 'v-timeline-divider__inner-dot',\n backgroundColorClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { slots.default?.() ?? (props.icon ? (<VIcon />) : undefined) }\n </div>\n </div>\n ) }\n\n <div\n class={[\n 'v-timeline-divider__after',\n lineColorClasses.value,\n ]}\n style={ lineColorStyles.value }\n />\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VTimelineDivider = InstanceType<typeof VTimelineDivider>\n","// Components\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport type { PropType } from 'vue'\nimport { ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\nexport const VTimelineItem = defineComponent({\n name: 'VTimelineItem',\n\n props: {\n density: String as PropType<'default' | 'compact'>,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = ref(0)\n const dotRef = ref<VTimelineDivider>()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n useRender(() => (\n <div\n class={[\n 'v-timeline-item',\n {\n 'v-timeline-item--fill-dot': props.fillDot,\n },\n ]}\n style={{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0),\n }}\n >\n <div\n class=\"v-timeline-item__body\"\n style={ dimensionStyles.value }\n >\n { slots.default?.() }\n </div>\n\n <VTimelineDivider\n ref={ dotRef }\n hideDot={ props.hideDot }\n icon={ props.icon }\n iconColor={ props.iconColor }\n size={ props.size }\n elevation={ props.elevation }\n dotColor={ props.dotColor }\n fillDot={ props.fillDot }\n rounded={ props.rounded }\n v-slots={{ default: slots.icon }}\n />\n\n { props.density !== 'compact' && (\n <div class=\"v-timeline-item__opposite\">\n { !props.hideOpposite && slots.opposite?.() }\n </div>\n ) }\n </div>\n ))\n\n return {}\n },\n})\n","// Styles\nimport './VTooltip.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { PropType } from 'vue'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\n\nexport const VTooltip = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VTooltip',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n modelValue: Boolean,\n text: String,\n\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'end',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n\n ...makeTransitionProps({\n transition: false,\n } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const location = computed(() => {\n return props.location.split(' ').length > 1\n ? props.location\n : props.location + ' center' as StrategyProps['location']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.location.split(' ').length > 1\n ) ? props.origin\n : props.origin + ' center' as StrategyProps['origin']\n })\n\n const transition = computed(() => {\n if (props.transition) return props.transition\n return isActive.value ? 'scale-transition' : 'fade-transition'\n })\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n ref={ overlay }\n class={[\n 'v-tooltip',\n ]}\n id={ id.value }\n transition={ transition.value }\n absolute\n locationStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n location={ location.value }\n origin={ origin.value }\n min-width={ 0 }\n offset={ 10 }\n scrim={ false }\n persistent\n open-on-click={ false }\n open-on-hover\n close-on-back={ false }\n role=\"tooltip\"\n eager\n activatorProps={{\n 'aria-describedby': id.value,\n }}\n { ...scopeId }\n { ...attrs }\n >\n {{\n activator: slots.activator,\n default: (...args) => slots.default?.(...args) ?? props.text,\n }}\n </VOverlay>\n ))\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VTooltip = InstanceType<typeof VTooltip>\n","// Composables\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VValidation = defineComponent({\n name: 'VValidation',\n\n props: {\n ...makeValidationProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const validation = useValidation(props, 'validation')\n\n return () => slots.default?.(validation)\n },\n})\n","// Types\nimport type { DirectiveBinding, ObjectDirective } from 'vue'\nimport type { MutationOptions } from '@/composables/mutationObserver'\n\nexport interface MutationDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value: MutationCallback | { handler: MutationCallback, options?: MutationObserverInit }\n modifiers: MutationOptions\n}\n\nfunction mounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { once, immediate, ...modifierKeys } = modifiers\n const defaultValue = !Object.keys(modifierKeys).length\n\n const { handler, options } = typeof value === 'object'\n ? value\n : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue,\n },\n }\n\n const observer = new MutationObserver((\n mutations: MutationRecord[] = [],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (once) unmounted(el, binding)\n })\n\n if (immediate) handler?.([], observer)\n\n el._mutate = Object(el._mutate)\n el._mutate![binding.instance!.$.uid] = { observer }\n\n observer.observe(el, options)\n}\n\nfunction unmounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n if (!el._mutate?.[binding.instance!.$.uid]) return\n\n el._mutate[binding.instance!.$.uid]!.observer.disconnect()\n delete el._mutate[binding.instance!.$.uid]\n}\n\nexport const Mutate: ObjectDirective<HTMLElement> = {\n mounted,\n unmounted,\n}\n\nexport default Mutate\n","import type { DirectiveBinding } from 'vue'\n\ninterface ResizeDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: () => void\n modifiers?: {\n active?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n const options: AddEventListenerOptions = {\n passive: !binding.modifiers?.active,\n }\n\n window.addEventListener('resize', handler, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![binding.instance!.$.uid] = {\n handler,\n options,\n }\n\n if (!binding.modifiers?.quiet) {\n handler()\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n if (!el._onResize?.[binding.instance!.$.uid]) return\n\n const { handler, options } = el._onResize[binding.instance!.$.uid]!\n\n window.removeEventListener('resize', handler, options)\n\n delete el._onResize[binding.instance!.$.uid]\n}\n\nexport const Resize = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n","import type { DirectiveBinding } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: EventListener | {\n handler: EventListener\n options?: AddEventListenerOptions\n } | EventListenerObject & { options?: AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n const { self = false } = binding.modifiers ?? {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![binding.instance!.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (!el._onScroll?.[binding.instance!.$.uid]) return\n\n const { handler, options, target = el } = el._onScroll[binding.instance!.$.uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[binding.instance!.$.uid]\n}\n\nfunction updated (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (binding.value === binding.oldValue) return\n\n unmounted(el, binding)\n mounted(el, binding)\n}\n\nexport const Scroll = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Scroll\n","// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleAdapterSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\nimport { RtlSymbol } from '@/composables/rtl'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleAdapter, LocaleOptions } from '@/composables/locale'\nimport type { RtlOptions } from '@/composables/rtl'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions)\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport const createVuetify = (vuetify: VuetifyOptions = {}) => {\n const install = (app: App) => {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n }))\n }\n\n function provideApp (isHydrate?: boolean) {\n app.provide(DefaultsSymbol, createDefaults(options.defaults))\n app.provide(DisplaySymbol, createDisplay(options.display, isHydrate))\n app.provide(ThemeSymbol, createTheme(app, options.theme))\n app.provide(IconSymbol, createIcons(options.icons))\n app.provide(LocaleAdapterSymbol, createLocale(app, options.locale))\n }\n\n if (!IN_BROWSER) {\n provideApp()\n }\n\n getUid.reset()\n\n const mount = app.mount\n app.mount = (rootContainer: any, isHydrate?: boolean, isSVG?: boolean) => {\n provideApp(isHydrate)\n const ret = mount(rootContainer, isHydrate, isSVG)\n app.mount = mount\n return ret\n }\n\n // Vue's inject() can only be used in setup\n function inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n }\n\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleAdapterSymbol),\n rtl: inject.call(this, RtlSymbol),\n })\n },\n },\n })\n }\n\n return { install }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n","import './styles/main.sass'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n components,\n directives,\n}\nexport * from './composables'\n"],"names":["IN_BROWSER","window","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","navigator","maxTouchPoints","SUPPORTS_FOCUS_VISIBLE","CSS","supports","useResizeObserver","callback","resizeRef","ref","contentRect","observer","ResizeObserver","entries","length","value","onBeforeUnmount","disconnect","watch","newValue","oldValue","unobserve","undefined","observe","flush","readonly","getNestedValue","obj","path","fallback","last","i","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","replace","split","getPropertyFromItem","item","property","Array","isArray","createRange","start","from","v","k","convertToUnit","str","unit","isNaN","String","isFinite","Number","isObject","keyCodes","freeze","enter","tab","delete","esc","space","up","down","left","right","end","home","del","backspace","insert","pageup","pagedown","shift","keyValues","o","pick","paths","found","create","rest","key","some","RegExp","test","filterInputAttrs","attrs","wrapInArray","clamp","min","max","Math","padEnd","char","repeat","humanReadableFileSize","bytes","base","prefix","abs","toFixed","mergeDeep","source","target","arrayFn","arguments","out","sourceProperty","targetProperty","flattenFragments","nodes","map","node","type","Fragment","children","flat","toKebabCase","toLowerCase","findChildrenWithProvide","vnode","child","component","getOwnPropertySymbols","provides","includes","subTree","CircularBuffer","constructor","size","_classPrivateFieldInitSpec","this","_arr","writable","_pointer","push","val","_classPrivateFieldGet","_classPrivateFieldSet","values","slice","concat","destructComputed","getter","refs","computed","toRef","arr","onRE","isOn","EventProp","Function","callEvent","handler","_len2","args","_key2","h","block","inline","parseAnchor","anchor","isRtl","side","align","toPhysical","flipSide","center","top","bottom","flipAlign","flipCorner","getAxis","Box","_ref","x","y","width","height","getOverflow","before","after","nullifyTransforms","el","rect","getBoundingClientRect","style","getComputedStyle","tx","transform","ta","sx","sy","dx","dy","startsWith","to","transformOrigin","parseFloat","indexOf","w","offsetWidth","offsetHeight","animate","keyframes","options","finished","Promise","resolve","animation","onfinish","createMessage","message","vm","parent","_isVue","$parent","$options","$_alreadyWarned","tree","currentRecursiveSequence","formatComponentName","join","generateComponentTrace","consoleWarn","newMessage","console","warn","consoleError","error","classifyRE","includeFile","$root","cid","name","_componentTag","file","__file","match","c","toUpperCase","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","matrix","round","toXYZ","r","g","delta","cielabForwardTransform","t","cbrt","cielabReverseTransform","transformedY","lab","Ln","isCssColor","color","colorToInt","TypeError","substring","parseInt","intToHex","hexColor","toString","HSVAtoRGBA","hsva","s","f","n","RGBAtoHSVA","rgba","hsv","HSVAtoHSLA","l","HSLAtoHSVA","hsl","HSVAtoCSS","RGBAtoCSS","HexToHSVA","hex","chunked","index","substr","chunk","HexToRGBA","HSVAtoHex","toHex","RGBAtoHex","colorToRGB","int","lighten","amount","CIELAB","sRGB","darken","getLuma","getContrast","first","second","l1","l2","getCurrentInstance","_getCurrentInstance","Error","getCurrentInstanceName","_getCurrentInstance$t","_uid","_map","WeakMap","getUid","has","get","uid","set","reset","DefaultsSymbol","Symbol","for","createDefaults","useDefaults","defaults","inject","provideDefaults","injectedDefaults","providedDefaults","newDefaults","scoped","unref","root","properties","prev","len","Infinity","provide","propIsDefined","prop","_vnode$props","_vnode$props2","hasOwnProperty","defineComponent","_setup","setup","_as","ctx","_subcomponentDefaults","shallowRef","_props","shallowReactive","toRaw","watchEffect","globalDefaults","global","componentDefaults","subComponents","filter","fromEntries","newVal","setupBindings","scope","oldVal","stop","effectScope","run","_injectSelf","injectSelf","immediate","genericComponent","exposeDefaults","_defineComponent","createSimpleFunctional","klass","tag","capitalize","camelize","default","slots","_slots$default","class","attachedRoot","getRootNode","parentNode","document","composed","standardEasing","getScrollParent","hasScrollbar","parentElement","scrollingElement","getScrollParents","stopAt","elements","contains","nodeType","Node","ELEMENT_NODE","overflowY","scrollHeight","clientHeight","propsFactory","reduce","definition","useRender","render","VuetifyLayoutKey","VuetifyLayoutItemKey","makeLayoutProps","overlaps","fullHeight","Boolean","makeLayoutItemProps","order","absolute","useLayout","layout","useLayoutItem","id","isKeptAlive","onDeactivated","onActivated","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","createLayout","parentLayout","rootZIndex","registered","positions","reactive","Map","layoutSizes","priorities","activeItems","disabledTransitions","computedOverlaps","overlap","topPosition","bottomPosition","topAmount","bottomAmount","position","layers","uniquePriorities","Set","sort","items","_priorities$get","previousLayer","layer","generateLayers","transitionsEnabled","mainStyles","transition","getLayoutItem","find","rootVm","isMounted","onMounted","_ref2","layoutSize","elementSize","disableTransitions","instanceIndex","splice","findIndex","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","styles","layoutClasses","layoutStyles","overflow","layoutRef","mainTRC","Rco","Gco","Bco","blkThrs","loConFactor","loConOffset","APCAcontrast","text","background","outputContrast","Ytxt","Ybg","SAPC","ThemeSymbol","makeThemeProps","theme","defaultThemeOptions","defaultTheme","variations","colors","themes","light","dark","surface","primary","secondary","info","success","warning","variables","createTheme","app","head","_context","usehead","parsedOptions","isDisabled","_defaultThemeOptions$","_defaultThemeOptions$2","parseThemeOptions","computedThemes","acc","original","variation","fn","onColor","colorVal","blackContrast","whiteContrast","current","lines","createCssClass","themeName","genCssVariables","bgLines","fgLines","flatMap","addHeadObjs","cspNonce","nonce","updateDOM","styleEl","getElementById","updateStyles","createElement","setAttribute","appendChild","innerHTML","themeClasses","provideTheme","newTheme","useTheme","selector","content","line","lightOverlay","darkOverlay","en","badge","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","next","delimiter","calendar","moreEvents","input","clear","prependAction","appendAction","fileInput","counter","counterSize","timePicker","am","pm","pagination","previous","page","currentPage","rating","rtl","af","ar","bg","ca","ckb","cs","de","es","et","fa","fi","fr","hr","hu","he","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","RtlSymbol","createRtlScope","currentScope","localeScope","rtlClasses","provideRtl","newScope","useRtl","VApp","_createVNode","createVNode","call","VDefaultsProvider","toRefs","createCssTransition","origin","mode","group","hideOnLeave","leaveAbsolute","TransitionGroup","Transition","onBeforeEnter","onLeave","offsetTop","offsetLeft","_transitionInitialStyles","setProperty","onAfterLeave","createJavascriptTransition","functions","ExpandTransitionGenerator","expandedParentClass","sizeProperty","offsetProperty","_parent","_initialStyle","onEnter","initialStyle","offset","classList","add","requestAnimationFrame","onAfterEnter","resetStyles","onEnterCancelled","onLeaveCancelled","remove","VDialogTransition","pointerEvents","visibility","done","_getChildren","speed","getDimensions","opacity","duration","easing","getChildren","forEach","then","removeProperty","onBeforeLeave","_getChildren2","_mergeProps","css","_el$querySelector","els","querySelector","targetBox","elBox","originX","originY","anchorSide","anchorOffset","getPropertyValue","offsetX","offsetY","tsx","tsy","maxs","asa","innerWidth","innerHeight","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","makeDimensionProps","maxHeight","maxWidth","minHeight","minWidth","useDimension","dimensionStyles","VResponsive","aspectRatio","contentClass","aspectStyles","ratio","paddingBottom","useAspectStyles","_slots$additional","additional","unmounted","binding","_el$_observe2","_observe","instance","$","Intersect","modifiers","IntersectionObserver","_el$_observe","isIntersecting","entry","quiet","init","once","makeTransitionProps","validator","MaybeTransition","customProps","mergeProps","VImg","directives","intersect","alt","cover","eager","gradient","lazySrc","rootMargin","threshold","sizes","src","srcset","emits","emit","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","lazyImg","Image","pollForSize","nextTick","_image$value","_image$value2","complete","onError","onLoad","getSrc","_image$value3","_image$value4","img","timeout","poll","imgHeight","imgWidth","endsWith","setTimeout","onBeforeMount","containClasses","__image","_slots$sources","sources","appear","withDirectives","vShow","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","_withDirectives","role","_resolveDirective","makeTagProps","VToolbarTitle","hasText","makeBorderProps","border","useBorder","borderClasses","isRef","classes","makeElevationProps","elevation","useElevation","elevationClasses","makeRoundedProps","rounded","useRounded","roundedClasses","useColor","backgroundColor","caretColor","colorClasses","colorStyles","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","allowedDensities","makeVToolbarProps","collapse","density","extended","extensionHeight","floating","title","VToolbar","_slots$extension","isExtended","extension","contentHeight","VBtn","variant","_slots$extension2","_slots$image","_slots$prepend","_slots$append","hasTitle","hasImage","prepend","append","useProxiedModel","defaultValue","transformIn","transformOut","_vm$vnode$props","_vm$vnode$props2","internal","VAppBar","modelValue","location","vToolbarRef","isActive","_vToolbarRef$value","_vToolbarRef$value2","toolbarProps","filterToolbarProps","makeDensityProps","useDensity","densityClasses","allowedVariants","genOverlays","isClickable","_Fragment","makeVariantProps","useVariant","variantClasses","VBtnGroup","divided","makeGroupProps","multiple","mandatory","selectedClass","disabled","makeGroupItemProps","useGroupItem","injectKey","required","description","isSelected","toggle","select","useGroup","isUnmounted","selected","getIds","ids","getValues","groupVm","forceMandatoryValue","step","currentId","currentIndex","newIndex","newItem","unwrapped","internalValue","getItemIndex","VBtnToggleSymbol","VBtnToggle","aliases","cancel","checkboxOn","checkboxOff","checkboxIndeterminate","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","unfold","plus","minus","mdi","VClassIcon","IconValue","IconSymbol","makeIconProps","icon","VComponentIcon","VSvgIcon","inheritAttrs","xmlns","viewBox","d","VLigatureIcon","defaultSets","svg","createIcons","defaultSet","sets","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","makeVIconProps","VIcon","slotIcon","_flattenFragments$fil","slot","iconData","icons","iconAlias","_icons$aliases","iconSetName","setName","iconName","useIcon","onClick","fontSize","useIntersectionObserver","intersectionRef","VProgressCircular","bgColor","indeterminate","rotate","CIRCUMFERENCE","PI","underlayColorClasses","underlayColorStyles","normalizedValue","diameter","strokeWidth","strokeDashOffset","fill","cx","cy","stopSymbol","webkitTransform","isTouchEvent","e","isKeyboardEvent","ripples","show","_el$_ripple2","_ripple","enabled","container","className","radius","scale","centerX","centerY","_el$_ripple","localX","localY","touches","clientX","clientY","circle","clientWidth","sqrt","calculate","dataset","previousPosition","activated","performance","now","hide","_el$_ripple3","getElementsByClassName","isHiding","diff","delay","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","_element$_ripple","rippleStop","rippleHide","clearTimeout","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","keyboardRippleHide","focusRippleHide","updateRipple","wasEnabled","addEventListener","passive","removeListeners","removeEventListener","Ripple","updated","VProgressLinear","bgOpacity","bufferValue","clickable","reverse","stream","striped","roundedBar","progress","barColorClasses","barColorStyles","normalizedBuffer","isReversed","handleClick","borderTop","bar","buffer","makeLoaderProps","useLoader","loaderClasses","LoaderSlot","oppositeMap","makeLocationProps","useLocation","opposite","locationStyles","getOffset","positionValues","makePositionProps","usePosition","positionClasses","useRouter","_getCurrentInstance$p","proxy","$router","useLink","RouterLink","resolveDynamicComponent","isLink","href","onClickOnce","link","route","makeRouterProps","inTransition","symbol","prependIcon","appendIcon","stacked","ripple","isElevated","_link$isExactActive","isExactActive","useSelectLink","_slots$loader","Tag","hasColor","hasPrepend","hasAppend","_link$navigate","navigate","loader","VAppBarNavIcon","VToolbarItems","VAppBarTitle","_","VAlertTitle","LocaleAdapterSymbol","VuetifyLocaleSymbol","useLocale","adapter","getScope","createLocale","createScope","messages","createTranslateFunction","createNumberFunction","createRoot","rootScope","defaultLocale","fallbackLocale","locale","createDefaultLocaleAdapter","createRtl","LANG_PREFIX","params","_len","_key","shortKey","currentLocale","Intl","NumberFormat","format","allowedTypes","VAlert","borderColor","closable","closeIcon","closeLabel","prominent","variantProps","closeProps","_slots$close","hasClose","VMessages","FormKey","makeFormProps","fastFail","lazyValidation","useForm","makeValidationProps","errorMessages","maxErrors","label","rules","validationValue","useValidation","model","validationModel","form","internalErrorMessages","isPristine","isDirty","isReadonly","isValid","isValidating","validationClasses","resetValidation","async","validate","results","rule","result","update","useInputIcon","InputIcon","localeKey","prependInner","appendInner","listener","makeVInputProps","hideDetails","direction","VInput","slotProps","_props$messages","_slots$details","hasMessages","hasDetails","details","filterInputProps","VLabel","VSelectionControlGroupSymbol","VSelectionControlGroup","falseIcon","trueIcon","makeSelectionControlProps","trueValue","falseValue","valueComparator","VSelectionControl","isMultiple","currentValue","useSelectionControl","isFocused","isFocusVisible","onFocus","matches","onBlur","onInput","checked","_slots$input","rootAttrs","inputAttrs","filterControlProps","makeVCheckboxBtnProps","indeterminateIcon","VCheckboxBtn","onChange","VCheckbox","controlAttrs","inputProps","_1","checkboxProps","_2","filterCheckboxBtnProps","makeVAvatarProps","VAvatar","VChipGroupSymbol","VChipGroup","column","VChip","activeClass","appendAvatar","draggable","filterIcon","pill","prependAvatar","onCloseClick","hasFilter","onClickFunc","resolveDirective","VDivider","inset","thickness","vertical","dividerStyles","ListKey","createList","updateHasPrepend","data","useList","singleOpenStrategy","open","opened","parents","newOpened","multipleOpenStrategy","listOpenStrategy","_ref3","independentSelectStrategy","strategy","on","in","independentSingleSelectStrategy","parentStrategy","singleSelected","VNestedSymbol","emptyNested","openOnSelect","selectedValues","makeNestedProps","selectStrategy","openStrategy","useNested","_ref5","leafSingleSelectStrategy","_ref4","leafSelectStrategy","_ref6","childrenIds","everySelected","noneSelected","_ref7","classicSelectStrategy","getPath","unshift","nested","parentId","isGroup","list","event","newSelected","useNestedItem","computedId","isOpen","isIndeterminate","isLeaf","isGroupActivator","VListGroupActivator","useNestedGroupActivator","makeVListGroupProps","activeColor","collapseIcon","expandIcon","fluid","VListGroup","activatorProps","toggleIcon","_slots$default2","activator","VListItem","_vShow","VListItemSubtitle","VListItemTitle","nav","subtitle","roundedProps","_link$isExactActive2","lineClasses","_slots$title","_slots$subtitle","hasSubtitle","tabindex","VListItemAction","VListSubheader","sticky","VListChildren","_props$items","itemProps","raw","_slots$divider","_slots$subheader","divider","subheader","slotsWithItem","listGroupProps","filterListGroupProps","header","makeItemsProps","itemTitle","itemValue","itemChildren","returnObject","transformItem","transformItems","array","useItems","itemType","VList","useListItems","VListImg","VListItemMedia","makeDelayProps","closeDelay","openDelay","useDelay","cb","delays","runDelayFactory","runCloseDelay","runOpenDelay","VMenuSymbol","makeActivatorProps","openOnClick","openOnHover","openOnFocus","closeOnContentClick","useActivator","isTop","activatorEl","isHovered","availableEvents","stopPropagation","activatorEvents","events","click","mouseenter","mouseleave","focus","blur","contentEvents","closeParents","activatorRef","$el","bindActivatorProps","getActivator","removeAttribute","unbindActivatorProps","_activator","_vm$proxy","_vm$proxy$$el","hasAttribute","onScopeDispose","_useActivator","makeLazyProps","useLazy","hasContent","elementToViewport","point","anchorToPoint","box","locationStrategies","static","connected","contentStyles","activatorFixed","offsetParent","isFixedPosition","assign","preferredAnchor","preferredOrigin","parsedAnchor","parsedOrigin","updateLocation","contentEl","newActivatorEl","newContentEl","oldActivatorEl","oldContentEl","contentBox","getIntrinsicSize","scrollParents","documentElement","viewport","scrollBox","viewportMargin","placement","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","hasOverflowY","newPlacement","flip","newOverflows","pixelRound","pixelCeil","makeLocationStrategyProps","locationStrategy","devicePixelRatio","ceil","clean","frames","raf","cancelAnimationFrame","frame","scrollStrategies","none","bindScroll","_data$root$value","scrollElements","contained","scrollbarWidth","scrollableParent","scrollLeft","scrollTop","reposition","slow","_data$updateLocation$","_data$updateLocation","time","makeScrollStrategyProps","scrollStrategy","onScroll","useToggleScope","_scope","StackSymbol","globalStack","useTeleport","teleportTarget","_target","targetElement","body","cache","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","include","closeConditional","handleShadow","ClickOutside","mounted","_clickOutside","lastMousedownWasOutside","directive","onMousedown","_el$_clickOutside","Scrim","VOverlay","attach","closeOnBack","contentProps","noClickAnimation","persistent","scrim","afterLeave","scrimColor","globalTop","localTop","stackStyles","stack","activeChildren","_zIndex","_globalStack$at","lastZIndex","at","idx","_globalStack$at2","_isTop","useStack","onResize","_updateLocation$value","_props$locationStrate","_locationStrategies$p","_scope2","useLocationStrategies","onClickOutside","animateClick","onKeydown","_scrollStrategies$pro","useScrollStrategies","router","removeBefore","removeAfter","popped","onPopstate","_e$state","replaced","beforeEach","afterEach","_removeBefore","_removeAfter","useBackButton","scrollParent","_slots$activator","toHandlers","Teleport","persisted","Refs","forwardRefs","Proxy","Reflect","bind","getOwnPropertyDescriptor","descriptor","setupState","getPrototypeOf","childRefs","queue","useScopeId","scopeId","VMenu","overlay","openChildren","$event","VFieldLabel","makeFocusProps","focused","useFocus","focusClasses","makeVFieldProps","appendInnerIcon","clearable","clearIcon","dirty","persistentClear","prependInnerIcon","singleLine","VField","hasLabel","labelRef","floatingLabelRef","controlRef","targetEl","targetRect","targetWidth","targetStyle","transitionDuration","activeElement","preventDefault","_slots$prependInner","_slots$appendInner","isOutlined","hasClear","filterFieldProps","VCounter","functional","activeTypes","VTextField","autofocus","counterValue","hint","persistentHint","persistentPlaceholder","persistentCounter","suffix","maxlength","onIntersect","_entries$0$target","_entries$0$target$foc","vInputRef","vFieldRef","inputRef","_inputRef$value","onControlClick","onClear","hasCounter","fieldProps","fieldClass","inputNode","cloneVNode","makeSelectProps","chips","closableChips","hideNoData","hideSelected","menuIcon","menuProps","openOnClear","VSelect","vTextFieldRef","transformed","selections","selection","onClickControl","hasChips","chip","_slots$noData","_slots$prependItem","_slots$appendItem","_slots$item","_createTextVNode","createTextVNode","defaultFilter","query","toLocaleLowerCase","makeFilterProps","customFilter","customKeyFilter","filterKeys","filterMode","noFilter","useFilter","strQuery","filteredItems","transformedItems","customFiltersLength","loop","customMatches","defaultMatches","_options$customKeyFil","keyFilter","defaultMatchesLength","customMatchesLength","filterItems","VAutocomplete","search","isSelecting","_selections$value$at","_search$value","highlightResult","VBadge","bordered","dot","textColor","_ctx$slots$default","_ctx$slots","_ctx$slots$badge","_ctx$slots2","badgeAttrs","VBannerActions","VBannerText","DisplaySymbol","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","getClientWidth","isHydrate","getClientHeight","createDisplay","parseDisplayOptions","platform","userAgent","regexp","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","ssr","touch","getPlatform","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","useDisplay","display","VBanner","avatar","actions","VBottomNavigation","grow","VBreadcrumbsDivider","VBreadcrumbsItem","VBreadcrumbs","VCardActions","VCardSubtitle","VCardTitle","VCardItem","VCardText","VCard","hover","_slots$text","hasHeader","hasCardItem","touchstart","wrapper","_wrapper$start","changedTouches","touchstartX","touchstartY","originalEvent","touchend","_wrapper$end","touchendX","touchendY","handleGesture","touchmove","_wrapper$move","touchmoveX","touchmoveY","move","Touch","_binding$instance","handlers","createHandlers","_touchHandlers","eventName","_binding$value","_binding$instance2","VWindowSymbol","VWindowGroupSymbol","VWindow","continuous","nextIcon","prevIcon","showArrows","rootRef","isRtlReverse","transitionCount","transitionHeight","activeIndex","itemsLength","lastIndex","canMoveBack","canMoveForward","arrows","prevProps","nextProps","touchOptions","useSsrBoot","ssrBootStyles","VWindowItem","reverseTransition","groupItem","isTransitioning","hasTransition","onAfterTransition","onBeforeTransition","_window$rootRef$value","onTransitionCancelled","onEnterTransition","VCarousel","cycle","delimiterIcon","hideDelimiters","hideDelimiterBackground","interval","verticalDelimiters","windowRef","slideTimeout","startTimeout","restartTimeout","VCarouselItem","VCode","VColorPickerCanvas","dotSize","hue","isInteracting","isOutsideUpdate","dotPosition","dotStyles","canvasRef","updateDotPosition","handleMouseDown","handleMouseMove","handleMouseUp","coords","getEventCoordinates","updateCanvas","_props$color3","canvas","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","_props$color","_props$color2","_props$color4","deep","onTouchstart","parseColor","parseHex","nullColor","inputs","getValue","getColor","hsla","hexa","modes","_rgba$inputs","VColorPickerInput","VColorPickerEdit","m","enabledModes","_mode$inputs","_inputs$value","mi","VSliderSymbol","makeSliderProps","thumbColor","thumbLabel","thumbSize","showTicks","ticks","tickSize","trackColor","trackFillColor","trackSize","useSlider","handleSliderMouseUp","getActiveThumb","horizontalDirection","hd","decimals","trimmedStep","trim","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","parseMouseMove","_trackContainerRef$va","trackStart","trackLength","clickOffset","getPosition","clickPos","thumbMoved","handleStop","handleStart","moveListenerOptions","capture","onMouseMove","onSliderMouseUp","onSliderTouchend","_e$target","percentage","parsedTicks","hasLabels","onSliderMousedown","onSliderTouchstart","_e$target2","VSliderThumb","slider","relevantKeys","multipliers","_step","steps","multiplier","shiftKey","ctrlKey","parseKeydown","_slots$thumbLabel","positionPercentage","VSliderTrack","trackFillColorClasses","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","tick","_slots$tickLabel","directionProperty","directionValue","VSlider","thumbContainerRef","_thumbContainerRef$va","trackStop","onTouchstartPassive","VColorPickerPreview","hideAlpha","red","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent","VColorPickerSwatches","swatches","parseDefaultColors","swatch","VSheet","VColorPicker","canvasHeight","hideCanvas","hideSliders","hideInputs","showSwatches","swatchesMaxHeight","lastPickedColor","currentColor","converted","stripAlpha","extractColor","updateColor","VCombobox","delimiters","selectionIndex","_vTextFieldRef$value","_search","_props$delimiters","selectionStart","setSelectionRange","VDialog","fullscreen","retainFocus","scrollable","onFocusin","_overlay$value","_overlay$value2","relatedTarget","focusable","querySelectorAll","firstElement","lastElement","_contentEl","_activatorEl","preventScroll","VExpansionPanelSymbol","VExpansionPanels","variantClass","VExpansionPanel","VExpansionPanelTitle","makeVExpansionPanelTitleProps","hideActions","expansionPanel","expanded","VExpansionPanelText","selectedIndices","isBeforeSelected","selectedIndex","isAfterSelected","VFileInput","counterSizeString","counterString","showSize","files","totalBytes","totalBytesReadable","fileNames","_model$value","fileCount","onClickPrepend","_inputRef$value2","VFooter","autoHeight","VForm","submit","errors","valid","invalid","itemErrorMessages","createForm","formRef","onReset","onSubmit","_e","ready","catch","finally","defaultPrevented","_formRef$value","novalidate","VContainer","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","breakpointClass","ALIGN_SELF_VALUES","VCol","cols","alignSelf","hasColClasses","ALIGNMENT","SPACE","makeRowProps","def","ALIGN_VALUES","alignValidator","alignProps","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","justify","alignContent","classMap","VRow","dense","noGutters","VSpacer","VHover","isHovering","onMouseenter","onMouseleave","VItemGroupSymbol","VItemGroup","VItem","VKbd","VLayout","VLayoutItem","VLazy","VLocaleProvider","localeInstance","provideLocale","VMain","kineticEnergyToVelocity","work","calculateImpulseVelocity","samples","vprev","vcurr","useVelocity","addMovement","identifier","timeStamp","endTouch","getVelocity","_touches$id","newest","absX","absY","oops","locations","VNavigationDrawer","disableResizeWatcher","disableRouteWatcher","expandOnHover","permanent","rail","railWidth","temporary","touchless","rootEl","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","onTouchmove","onTouchend","maybeDragging","pos","getProgress","limit","touchX","touchY","inTouchZone","inElement","cancelable","velocity","vx","vy","thresholdMet","useTouch","isStuck","stickyStyles","stuckPosition","lastScrollTop","scrollY","layoutTop","useSticky","scrimStyles","VNoSsr","_vm$root","_vm$root$appContext","_vm$root$appContext$a","appContext","_container","__vue_app__","useHydration","VPagination","totalVisible","firstIcon","lastIcon","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","maxButtons","firstItem","totalWidth","itemWidth","marginRight","minButtons","floor","range","MAX_SAFE_INTEGER","even","middle","rangeLength","rangeStart","setValue","updateRef","onBeforeUpdate","useRefs","VPaginationBtn","ariaCurrent","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","_refs$value$currentIn","VParallax","_root$value","_scrollParent","_root$value2","scrollPos","translate","sign","onLoadstart","VRadio","VRadioGroup","controlProps","VRangeSlider","strict","startThumbRef","stopThumbRef","_startThumbRef$value","_startThumbRef$value3","_stopThumbRef$value","_startThumbRef$value2","_activeThumbRef$value","stopOffset","_startThumbRef$value4","_stopThumbRef$value4","_startThumbRef$value5","_stopThumbRef$value2","_startThumbRef$value6","_stopThumbRef$value3","_stopThumbRef$value5","_startThumbRef$value7","_stopThumbRef$value6","_startThumbRef$value8","VRating","itemAriaLabel","emptyIcon","fullIcon","halfIncrements","itemLabels","itemLabelPosition","increments","hoverIndex","focusIndex","firstRef","isClicking","itemState","isFilled","eventState","_firstRef$value","onMouseup","VRatingItem","_itemState$value$inde","_itemState$value$inde2","showStar","btnProps","createLabel","labelProps","_props$itemLabels","_props$itemLabels2","_props$itemLabels3","bias","calculateUpdatedOffset","selectedElement","containerSize","contentSize","currentScrollOffset","clientSize","offsetStart","adjustedOffsetStart","totalSize","itemOffset","additionalOffset","VSlideGroupSymbol","VSlideGroup","centerActive","isOverflowing","scrollOffset","containerRef","containerRect","contentRef","firstSelectedIndex","lastSelectedIndex","offsetCentered","calculateCenteredOffset","disableTransition","startTouch","maxScrollOffset","composedPath","onFocusout","_contentRef$value","_contentRef$value$que","nextElementSibling","_contentRef$value$que2","previousElementSibling","_contentRef$value$fir","firstElementChild","_contentRef$value$las","lastElementChild","_focusable$","scrollTo","newAbsoluteOffset","scrollAmount","willChange","hasAffixes","hasPrev","hasNext","_slots$prev","_slots$next","onTouchmovePassive","onTouchendPassive","VSlideGroupItem","slideGroupItem","VSnackbar","multiLine","activeTimeout","onPointerenter","onPointerleave","VSwitch","loaderColor","control","_control$value","_control$value$input","VSystemBar","VTabsSymbol","VTab","fixed","sliderColor","hideSlider","sliderColorClasses","sliderColorStyles","sliderEl","updateSlider","_rootEl$value","_rootEl$value$$el$par","prevEl","nextEl","prevBox","nextBox","xy","XY","rightBottom","widthHeight","sigma","VTabs","alignWithTitle","fixedTabs","optional","parsedItems","parseItems","VTable","fixedHeader","fixedFooter","_slots$top","_slots$bottom","VTextarea","autoGrow","noResize","rows","maxRows","controlHeight","textareaRef","_textareaRef$value","sizerRef","calculateInputHeight","fieldStyle","padding","lineHeight","_observer","_observer2","_vModelText","VThemeProvider","withBackground","VTimeline","lineInset","lineThickness","lineColor","truncateLine","VTimelineDivider","VTimelineItem","sideClasses","truncateClasses","dotColor","fillDot","hideDot","iconColor","lineColorClasses","lineColorStyles","hideOpposite","dotRef","_newValue$$el$querySe","_slots$opposite","VTooltip","VValidation","validation","_el$_mutate","_mutate","Mutate","modifierKeys","attributes","attr","characterData","childList","subtree","sub","MutationObserver","mutations","Resize","_binding$modifiers","_binding$modifiers2","_onResize","_el$_onResize","self","arg","_onScroll","_el$_onScroll","Scroll","createVuetify","vuetify","install","blueprint","components","provideApp","mount","_vm$parent","_vm$vnode$appContext","rootContainer","isSVG","ret","mixin","$vuetify","createVuetify$1","version","_createVuetify"],"mappings":"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"}
|