@breadstone/mosaik-elements-foundation 0.1.50 → 0.1.51
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/Controls/Components/Inputs/Calendar/CalendarElement.d.ts +1 -1
- package/Controls/Components/Inputs/Calendar/CalendarElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/Calendar/CalendarElement.js +1 -3
- package/Controls/Components/Inputs/Calendar/CalendarElement.js.map +1 -1
- package/Controls/Components/Inputs/Calendar/CalendarElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Inputs/Calendar/CalendarElementTemplate.js +4 -9
- package/Controls/Components/Inputs/Calendar/CalendarElementTemplate.js.map +1 -1
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Cosmopolitan.js +14 -0
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Joy.js +14 -0
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Joy.js.map +1 -1
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Memphis.js +14 -0
- package/Controls/Components/Inputs/Calendar/Themes/CalendarElement.Memphis.js.map +1 -1
- package/Controls/Components/Inputs/Choice/ChoiceGroupElement.d.ts +1 -1
- package/Controls/Components/Inputs/Choice/ChoiceGroupElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/Choice/ChoiceGroupElement.js +5 -5
- package/Controls/Components/Inputs/Choice/ChoiceGroupElement.js.map +1 -1
- package/Controls/Components/Inputs/Radio/RadioElement.d.ts +0 -5
- package/Controls/Components/Inputs/Radio/RadioElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/Radio/RadioElement.js +0 -5
- package/Controls/Components/Inputs/Radio/RadioElement.js.map +1 -1
- package/Controls/Components/Inputs/Radio/RadioGroupElement.d.ts +1 -1
- package/Controls/Components/Inputs/Radio/RadioGroupElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/Radio/RadioGroupElement.js +6 -6
- package/Controls/Components/Inputs/Radio/RadioGroupElement.js.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Cosmopolitan.js +5 -6
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Joy.js +7 -8
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Joy.js.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Memphis.js +20 -21
- package/Controls/Components/Inputs/Radio/Themes/RadioElement.Memphis.js.map +1 -1
- package/Controls/Components/Inputs/Radio/Themes/RadioGroupElement.Cosmopolitan.js +10 -10
- package/Controls/Components/Inputs/Radio/Themes/RadioGroupElement.Joy.js +14 -14
- package/Controls/Components/Inputs/Radio/Themes/RadioGroupElement.Memphis.js +20 -20
- package/Controls/Components/Inputs/Select/ISelectItemVisualElementProps.d.ts +8 -0
- package/Controls/Components/Inputs/Select/ISelectItemVisualElementProps.d.ts.map +1 -0
- package/Controls/Components/Inputs/Select/ISelectItemVisualElementProps.js +2 -0
- package/Controls/Components/Inputs/Select/ISelectItemVisualElementProps.js.map +1 -0
- package/Controls/Components/Inputs/Select/SelectElement.d.ts +4 -0
- package/Controls/Components/Inputs/Select/SelectElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/Select/SelectElement.js +52 -0
- package/Controls/Components/Inputs/Select/SelectElement.js.map +1 -1
- package/Controls/Components/Inputs/Select/SelectElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Inputs/Select/SelectElementTemplate.js +9 -6
- package/Controls/Components/Inputs/Select/SelectElementTemplate.js.map +1 -1
- package/Controls/Components/Inputs/Select/SelectItemElement.d.ts +1 -0
- package/Controls/Components/Inputs/Select/SelectItemElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/Select/SelectItemElement.js +1 -0
- package/Controls/Components/Inputs/Select/SelectItemElement.js.map +1 -1
- package/Controls/Components/Inputs/Select/SelectItemVisualElement.d.ts +81 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElement.d.ts.map +1 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElement.js +97 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElement.js.map +1 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElementTemplate.d.ts +9 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElementTemplate.d.ts.map +1 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElementTemplate.js +20 -0
- package/Controls/Components/Inputs/Select/SelectItemVisualElementTemplate.js.map +1 -0
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Cosmopolitan.js +13 -0
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Joy.js +13 -0
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Joy.js.map +1 -1
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Memphis.js +13 -0
- package/Controls/Components/Inputs/Select/Themes/SelectElement.Memphis.js.map +1 -1
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Cosmopolitan.d.ts +6 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Cosmopolitan.d.ts.map +1 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Cosmopolitan.js +75 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Cosmopolitan.js.map +1 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Joy.d.ts +6 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Joy.d.ts.map +1 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Joy.js +75 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Joy.js.map +1 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Memphis.d.ts +6 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Memphis.d.ts.map +1 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Memphis.js +75 -0
- package/Controls/Components/Inputs/Select/Themes/SelectItemVisualElement.Memphis.js.map +1 -0
- package/Controls/Components/Inputs/TextBox/TextBoxElement.d.ts +2 -0
- package/Controls/Components/Inputs/TextBox/TextBoxElement.d.ts.map +1 -1
- package/Controls/Components/Inputs/TextBox/TextBoxElement.js +13 -0
- package/Controls/Components/Inputs/TextBox/TextBoxElement.js.map +1 -1
- package/Controls/Components/Inputs/TextBox/TextBoxElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Inputs/TextBox/TextBoxElementTemplate.js +50 -45
- package/Controls/Components/Inputs/TextBox/TextBoxElementTemplate.js.map +1 -1
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Cosmopolitan.js +30 -3
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Joy.js +30 -3
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Joy.js.map +1 -1
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Memphis.js +30 -3
- package/Controls/Components/Inputs/TextBox/Themes/TextBoxElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/DialogActionsElement.d.ts +3 -3
- package/Controls/Components/Overlays/Dialog/DialogActionsElement.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/DialogActionsElement.js +6 -10
- package/Controls/Components/Overlays/Dialog/DialogActionsElement.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/DialogActionsElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/DialogActionsElementTemplate.js +6 -20
- package/Controls/Components/Overlays/Dialog/DialogActionsElementTemplate.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Cosmopolitan.js +10 -2
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Joy.js +10 -2
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Memphis.js +10 -2
- package/Controls/Components/Overlays/Dialog/Themes/DialogActionsElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Cosmopolitan.js +2 -0
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Joy.js +3 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Memphis.js +2 -0
- package/Controls/Components/Overlays/Dialog/Themes/DialogElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Drawer/DrawerActionsElement.d.ts +3 -3
- package/Controls/Components/Overlays/Drawer/DrawerActionsElement.d.ts.map +1 -1
- package/Controls/Components/Overlays/Drawer/DrawerActionsElement.js +6 -10
- package/Controls/Components/Overlays/Drawer/DrawerActionsElement.js.map +1 -1
- package/Controls/Components/Overlays/Drawer/DrawerActionsElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Overlays/Drawer/DrawerActionsElementTemplate.js +6 -20
- package/Controls/Components/Overlays/Drawer/DrawerActionsElementTemplate.js.map +1 -1
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Cosmopolitan.js +10 -2
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Joy.js +10 -2
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Memphis.js +10 -2
- package/Controls/Components/Overlays/Drawer/Themes/DrawerActionsElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Cosmopolitan.js +1 -0
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Joy.js +2 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Memphis.js +1 -0
- package/Controls/Components/Overlays/MessageBox/Themes/MessageBoxElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/ISheetElementProps.d.ts +95 -4
- package/Controls/Components/Overlays/Sheet/ISheetElementProps.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/ISheetElementProps.js +31 -1
- package/Controls/Components/Overlays/Sheet/ISheetElementProps.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetElement.d.ts +318 -50
- package/Controls/Components/Overlays/Sheet/SheetElement.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetElement.js +959 -159
- package/Controls/Components/Overlays/Sheet/SheetElement.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetElementTemplate.js +21 -8
- package/Controls/Components/Overlays/Sheet/SheetElementTemplate.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetModalController.d.ts +2 -0
- package/Controls/Components/Overlays/Sheet/SheetModalController.d.ts.map +1 -0
- package/Controls/Components/Overlays/Sheet/SheetModalController.js +152 -0
- package/Controls/Components/Overlays/Sheet/SheetModalController.js.map +1 -0
- package/Controls/Components/Overlays/Sheet/SheetService.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetService.js +1 -12
- package/Controls/Components/Overlays/Sheet/SheetService.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/SheetSnapEngine.d.ts +2 -0
- package/Controls/Components/Overlays/Sheet/SheetSnapEngine.d.ts.map +1 -0
- package/Controls/Components/Overlays/Sheet/SheetSnapEngine.js +135 -0
- package/Controls/Components/Overlays/Sheet/SheetSnapEngine.js.map +1 -0
- package/Controls/Components/Overlays/Sheet/SheetTypes.d.ts +117 -0
- package/Controls/Components/Overlays/Sheet/SheetTypes.d.ts.map +1 -0
- package/Controls/Components/Overlays/Sheet/SheetTypes.js +3 -0
- package/Controls/Components/Overlays/Sheet/SheetTypes.js.map +1 -0
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Cosmopolitan.js +6 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Joy.js +6 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Memphis.js +6 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetContentElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Cosmopolitan.js +112 -43
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Joy.js +112 -43
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Memphis.js +112 -43
- package/Controls/Components/Overlays/Sheet/Themes/SheetElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Cosmopolitan.js +10 -2
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Joy.js +10 -2
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Joy.js.map +1 -1
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Memphis.js +10 -2
- package/Controls/Components/Overlays/Toast/Themes/ToastActionsElement.Memphis.js.map +1 -1
- package/Controls/Components/Overlays/Toast/ToastActionsElement.d.ts +3 -3
- package/Controls/Components/Overlays/Toast/ToastActionsElement.d.ts.map +1 -1
- package/Controls/Components/Overlays/Toast/ToastActionsElement.js +6 -10
- package/Controls/Components/Overlays/Toast/ToastActionsElement.js.map +1 -1
- package/Controls/Components/Overlays/Toast/ToastActionsElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Overlays/Toast/ToastActionsElementTemplate.js +6 -20
- package/Controls/Components/Overlays/Toast/ToastActionsElementTemplate.js.map +1 -1
- package/Controls/Components/Primitives/Portal/Themes/PortalHostElement.Cosmopolitan.js +1 -1
- package/Controls/Components/Primitives/Portal/Themes/PortalHostElement.Joy.js +1 -1
- package/Controls/Components/Primitives/Portal/Themes/PortalHostElement.Memphis.js +1 -1
- package/Controls/Components/Primitives/Portal/Themes/PortalProjectionElement.Cosmopolitan.js +1 -1
- package/Controls/Components/Primitives/Portal/Themes/PortalProjectionElement.Joy.js +1 -1
- package/Controls/Components/Primitives/Portal/Themes/PortalProjectionElement.Memphis.js +1 -1
- package/Controls/Components/Selectors/Combo/ComboElement.d.ts +4 -0
- package/Controls/Components/Selectors/Combo/ComboElement.d.ts.map +1 -1
- package/Controls/Components/Selectors/Combo/ComboElement.js +67 -4
- package/Controls/Components/Selectors/Combo/ComboElement.js.map +1 -1
- package/Controls/Components/Selectors/Combo/ComboElementTemplate.d.ts.map +1 -1
- package/Controls/Components/Selectors/Combo/ComboElementTemplate.js +12 -10
- package/Controls/Components/Selectors/Combo/ComboElementTemplate.js.map +1 -1
- package/Controls/Components/Selectors/Combo/ComboItemVisualElement.d.ts +81 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElement.d.ts.map +1 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElement.js +97 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElement.js.map +1 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElementTemplate.d.ts +9 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElementTemplate.d.ts.map +1 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElementTemplate.js +20 -0
- package/Controls/Components/Selectors/Combo/ComboItemVisualElementTemplate.js.map +1 -0
- package/Controls/Components/Selectors/Combo/IComboItemVisualElementProps.d.ts +8 -0
- package/Controls/Components/Selectors/Combo/IComboItemVisualElementProps.d.ts.map +1 -0
- package/Controls/Components/Selectors/Combo/IComboItemVisualElementProps.js +2 -0
- package/Controls/Components/Selectors/Combo/IComboItemVisualElementProps.js.map +1 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Cosmopolitan.d.ts.map +1 -1
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Cosmopolitan.js +13 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Cosmopolitan.js.map +1 -1
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Joy.d.ts.map +1 -1
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Joy.js +13 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Joy.js.map +1 -1
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Memphis.d.ts.map +1 -1
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Memphis.js +13 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboElement.Memphis.js.map +1 -1
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Cosmopolitan.d.ts +6 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Cosmopolitan.d.ts.map +1 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Cosmopolitan.js +75 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Cosmopolitan.js.map +1 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Joy.d.ts +6 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Joy.d.ts.map +1 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Joy.js +75 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Joy.js.map +1 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Memphis.d.ts +6 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Memphis.d.ts.map +1 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Memphis.js +75 -0
- package/Controls/Components/Selectors/Combo/Themes/ComboItemVisualElement.Memphis.js.map +1 -0
- package/Controls/Controllers/ModalController.d.ts +2 -0
- package/Controls/Controllers/ModalController.d.ts.map +1 -0
- package/Controls/Controllers/ModalController.js +186 -0
- package/Controls/Controllers/ModalController.js.map +1 -0
- package/Controls/Controllers/SelectionVisualProjectionController.d.ts +2 -0
- package/Controls/Controllers/SelectionVisualProjectionController.d.ts.map +1 -0
- package/Controls/Controllers/SelectionVisualProjectionController.js +129 -0
- package/Controls/Controllers/SelectionVisualProjectionController.js.map +1 -0
- package/Controls/Types/SheetDragMode.d.ts +24 -0
- package/Controls/Types/SheetDragMode.d.ts.map +1 -0
- package/Controls/Types/SheetDragMode.js +19 -0
- package/Controls/Types/SheetDragMode.js.map +1 -0
- package/Controls/Types/SheetPosition.d.ts +24 -0
- package/Controls/Types/SheetPosition.d.ts.map +1 -0
- package/Controls/Types/SheetPosition.js +20 -0
- package/Controls/Types/SheetPosition.js.map +1 -0
- package/Controls/Types/SheetSnap.d.ts +21 -0
- package/Controls/Types/SheetSnap.d.ts.map +1 -0
- package/Controls/Types/SheetSnap.js +14 -0
- package/Controls/Types/SheetSnap.js.map +1 -0
- package/Controls/events/OpenCloseEvents.d.ts +1 -1
- package/Controls/events/OpenCloseEvents.d.ts.map +1 -1
- package/Controls/events/ResizeDragEvents.d.ts +27 -20
- package/Controls/events/ResizeDragEvents.d.ts.map +1 -1
- package/Controls/events/SheetEvents.d.ts +49 -0
- package/Controls/events/SheetEvents.d.ts.map +1 -0
- package/Controls/events/SheetEvents.js +3 -0
- package/Controls/events/SheetEvents.js.map +1 -0
- package/Controls/events/index.d.ts +2 -1
- package/Controls/events/index.d.ts.map +1 -1
- package/Index.d.ts +7 -0
- package/Index.d.ts.map +1 -1
- package/Index.js +5 -0
- package/Index.js.map +1 -1
- package/Routing/PathToRegexp.d.ts +1 -1
- package/Utilities/SnapEngine.d.ts +2 -0
- package/Utilities/SnapEngine.d.ts.map +1 -0
- package/Utilities/SnapEngine.js +121 -0
- package/Utilities/SnapEngine.js.map +1 -0
- package/custom-elements.json +1680 -58
- package/package.json +3 -3
|
@@ -8,17 +8,25 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
import {
|
|
11
|
+
import { HTMLElementEventEmitter } from '@breadstone/mosaik-elements';
|
|
12
12
|
import { CssLength } from '@breadstone/mosaik-themes';
|
|
13
13
|
import { RendererServiceLocator } from '../../../../Dom/Renderer';
|
|
14
|
+
import { clamp } from '../../../../Extensions/NumberExtensions';
|
|
15
|
+
import { applyElasticity, resolveSnapLength, resolveSnaps, selectSnap, verticalPointerDelta } from '../../../../Utilities/SnapEngine';
|
|
14
16
|
import { Slottable } from '../../../Behaviors/Slottable';
|
|
15
17
|
import { Themeable } from '../../../Behaviors/Themeable';
|
|
16
|
-
import { addFocusTrapController } from '../../../Controllers/FocusTrapController';
|
|
17
18
|
import { addInheritanceProviderController } from '../../../Controllers/InheritanceProviderController';
|
|
19
|
+
import { ModalController } from '../../../Controllers/ModalController';
|
|
18
20
|
import { Attribute } from '../../../Decorators/AttributeDecorator';
|
|
19
21
|
import { Component } from '../../../Decorators/ComponentDecorator';
|
|
22
|
+
import { Watch } from '../../../Decorators/WatchDecorator';
|
|
23
|
+
import { Emit } from '../../../../events/Decorators/EmitDecorator';
|
|
24
|
+
import { SheetDragMode } from '../../../Types/SheetDragMode';
|
|
25
|
+
import { SheetPosition } from '../../../Types/SheetPosition';
|
|
26
|
+
import { SheetSnap } from '../../../Types/SheetSnap';
|
|
20
27
|
import { BackdropElement } from '../../Primitives/Backdrop/BackdropElement';
|
|
21
28
|
import { OverlayElement } from '../Abstracts/OverlayElement';
|
|
29
|
+
import { ISheetElementProps } from './ISheetElementProps';
|
|
22
30
|
import { SheetContentElement } from './SheetContentElement';
|
|
23
31
|
import { sheetElementTemplate } from './SheetElementTemplate';
|
|
24
32
|
import { SheetFooterElement } from './SheetFooterElement';
|
|
@@ -27,12 +35,16 @@ import { SHEET_INHERITANCE_CONTEXT } from './SheetInheritanceContext';
|
|
|
27
35
|
import { sheetElementCosmopolitanStyle } from './Themes/SheetElement.Cosmopolitan';
|
|
28
36
|
import { sheetElementJoyStyle } from './Themes/SheetElement.Joy';
|
|
29
37
|
import { sheetElementMemphisStyle } from './Themes/SheetElement.Memphis';
|
|
38
|
+
// #endregion
|
|
39
|
+
const INTERACTIVE_SELECTOR = 'button,a[href],input,select,textarea,summary,[role="button"],[contenteditable="true"]';
|
|
40
|
+
const AXIS_LOCK_THRESHOLD = 6;
|
|
30
41
|
/**
|
|
31
|
-
* Sheet - A
|
|
42
|
+
* Sheet - A mobile-first, snap-based overlay entering from the top or bottom edge.
|
|
32
43
|
*
|
|
33
44
|
* @description
|
|
34
|
-
*
|
|
35
|
-
*
|
|
45
|
+
* Supports pointer gestures, velocity-based snap selection, scroll handoff and optional modal behavior.
|
|
46
|
+
* Runtime state is exposed through `data-state`, `data-dragging`, `data-snap-index` and `data-max-snap`.
|
|
47
|
+
* The `root` part publishes `--sheet-progress` from `0` to `1` and `--sheet-resolved-height` in CSS pixels.
|
|
36
48
|
*
|
|
37
49
|
* @name Sheet
|
|
38
50
|
* @element mosaik-sheet
|
|
@@ -43,13 +55,21 @@ import { sheetElementMemphisStyle } from './Themes/SheetElement.Memphis';
|
|
|
43
55
|
* @slot header - The header slot for `SheetHeaderElement`.
|
|
44
56
|
*
|
|
45
57
|
* @csspart backdrop - The backdrop part.
|
|
46
|
-
* @csspart
|
|
47
|
-
* @csspart
|
|
48
|
-
* @csspart
|
|
58
|
+
* @csspart body - The body part.
|
|
59
|
+
* @csspart content-slot - The slot that projects the scrollable sheet content.
|
|
60
|
+
* @csspart footer-slot - The slot that projects the sheet footer.
|
|
61
|
+
* @csspart handle - The visual drag handle.
|
|
62
|
+
* @csspart header-slot - The slot that projects the sheet header.
|
|
63
|
+
* @csspart heading - The sheet heading and gesture affordance.
|
|
64
|
+
* @csspart root - The movable sheet surface.
|
|
65
|
+
* @csspart snap-indicator - Container for snap indicators.
|
|
66
|
+
* @csspart snap-indicator-item - An individual snap indicator.
|
|
49
67
|
*
|
|
50
68
|
* @cssprop {String} --sheet-background-color - The background color CSS custom property.
|
|
51
69
|
* @cssprop {String} --sheet-border-color - The border color CSS custom property.
|
|
70
|
+
* @cssprop {String} --sheet-border-radius - The border radius CSS custom property.
|
|
52
71
|
* @cssprop {String} --sheet-border-width - The border width CSS custom property.
|
|
72
|
+
* @cssprop {String} --sheet-edge-offset - The edge offset CSS custom property.
|
|
53
73
|
* @cssprop {String} --sheet-font-family - The font family CSS custom property.
|
|
54
74
|
* @cssprop {String} --sheet-font-letter-spacing - The font letter spacing CSS custom property.
|
|
55
75
|
* @cssprop {String} --sheet-font-line-height - The font line height CSS custom property.
|
|
@@ -59,6 +79,12 @@ import { sheetElementMemphisStyle } from './Themes/SheetElement.Memphis';
|
|
|
59
79
|
* @cssprop {String} --sheet-font-weight - The font weight CSS custom property.
|
|
60
80
|
* @cssprop {String} --sheet-foreground-color - The foreground color CSS custom property.
|
|
61
81
|
* @cssprop {String} --sheet-gap - The gap CSS custom property.
|
|
82
|
+
* @cssprop {String} --sheet-handle-background-color - The handle background color CSS custom property.
|
|
83
|
+
* @cssprop {String} --sheet-handle-border-radius - The handle border radius CSS custom property.
|
|
84
|
+
* @cssprop {String} --sheet-handle-height - The handle height CSS custom property.
|
|
85
|
+
* @cssprop {String} --sheet-handle-margin - The handle margin CSS custom property.
|
|
86
|
+
* @cssprop {String} --sheet-handle-width - The handle width CSS custom property.
|
|
87
|
+
* @cssprop {String} --sheet-max-width - The max width CSS custom property.
|
|
62
88
|
* @cssprop {String} --sheet-padding-bottom - The padding bottom CSS custom property.
|
|
63
89
|
* @cssprop {String} --sheet-padding-left - The padding left CSS custom property.
|
|
64
90
|
* @cssprop {String} --sheet-padding-right - The padding right CSS custom property.
|
|
@@ -69,74 +95,138 @@ import { sheetElementMemphisStyle } from './Themes/SheetElement.Memphis';
|
|
|
69
95
|
* @cssprop {String} --sheet-shadow-offset-x - The shadow offset x CSS custom property.
|
|
70
96
|
* @cssprop {String} --sheet-shadow-offset-y - The shadow offset y CSS custom property.
|
|
71
97
|
* @cssprop {String} --sheet-shadow-spread - The shadow spread CSS custom property.
|
|
98
|
+
* @cssprop {String} --sheet-snap-indicator-active-background-color - The snap indicator active background color CSS custom property.
|
|
99
|
+
* @cssprop {String} --sheet-snap-indicator-background-color - The snap indicator background color CSS custom property.
|
|
100
|
+
* @cssprop {String} --sheet-snap-indicator-border-radius - The snap indicator border radius CSS custom property.
|
|
101
|
+
* @cssprop {String} --sheet-snap-indicator-gap - The snap indicator gap CSS custom property.
|
|
102
|
+
* @cssprop {String} --sheet-snap-indicator-size - The snap indicator size CSS custom property.
|
|
72
103
|
* @cssprop {String} --sheet-transition-duration - The transition duration CSS custom property.
|
|
73
104
|
* @cssprop {String} --sheet-transition-mode - The transition mode CSS custom property.
|
|
74
105
|
* @cssprop {String} --sheet-transition-property - The transition property CSS custom property.
|
|
75
106
|
* @cssprop {String} --sheet-translate - The translate CSS custom property.
|
|
76
107
|
* @cssprop {String} --sheet-translate-y - The translate y CSS custom property.
|
|
108
|
+
* @cssprop {String} --sheet-z-index - The stacking order CSS custom property.
|
|
109
|
+
*
|
|
110
|
+
* @fires activeSnapChanged {ActiveSnapChangedEvent} - Fired after the active snap changes.
|
|
111
|
+
* @fires dragStart {DragStartEvent} - Fired when a vertical sheet gesture starts.
|
|
112
|
+
* @fires dragging {DraggingEvent} - Fired while the sheet is dragged.
|
|
113
|
+
* @fires dragEnd {DragEndEvent} - Fired when a sheet gesture ends.
|
|
77
114
|
*
|
|
78
115
|
* @dependency mosaik-backdrop - The Backdrop element.
|
|
79
116
|
*
|
|
80
117
|
* @example
|
|
81
|
-
*
|
|
118
|
+
* Mobile checkout summary with three selectable snap extents:
|
|
82
119
|
* ```html
|
|
83
|
-
* <mosaik-sheet
|
|
120
|
+
* <mosaik-sheet snaps="25% 55% 90%" active-snap-index="1" is-modal>
|
|
121
|
+
* <mosaik-sheet-header slot="header">Order summary</mosaik-sheet-header>
|
|
122
|
+
* <mosaik-sheet-content slot="content">Checkout details</mosaik-sheet-content>
|
|
123
|
+
* <mosaik-sheet-footer slot="footer">Checkout actions</mosaik-sheet-footer>
|
|
124
|
+
* </mosaik-sheet>
|
|
84
125
|
* ```
|
|
85
126
|
*
|
|
86
127
|
* @example
|
|
87
|
-
*
|
|
128
|
+
* Search filters that expand from the top and adapt to their content:
|
|
88
129
|
* ```html
|
|
89
|
-
* <mosaik-sheet height="
|
|
130
|
+
* <mosaik-sheet position="top" height="100dvh" snaps="content 90%" drag-mode="handle">
|
|
131
|
+
* <mosaik-sheet-header slot="header">Filters</mosaik-sheet-header>
|
|
132
|
+
* <mosaik-sheet-content slot="content">Filter controls</mosaik-sheet-content>
|
|
133
|
+
* </mosaik-sheet>
|
|
90
134
|
* ```
|
|
91
135
|
*
|
|
92
136
|
* @public
|
|
93
137
|
*/
|
|
94
138
|
let SheetElement = class SheetElement extends Themeable(Slottable(OverlayElement)) {
|
|
95
139
|
// #region Fields
|
|
96
|
-
|
|
140
|
+
_activeSnapChanged;
|
|
141
|
+
_dragStart;
|
|
142
|
+
_dragging;
|
|
143
|
+
_dragEnd;
|
|
144
|
+
_modalController;
|
|
145
|
+
_width;
|
|
97
146
|
_height;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
147
|
+
_position;
|
|
148
|
+
_snaps;
|
|
149
|
+
_activeSnapIndex;
|
|
150
|
+
_activeSnapIndexExplicit;
|
|
151
|
+
_closeThreshold;
|
|
152
|
+
_elastic;
|
|
153
|
+
_inertia;
|
|
154
|
+
_dragMode;
|
|
155
|
+
_hasHandle;
|
|
156
|
+
_hasSnapIndicator;
|
|
157
|
+
_isModal;
|
|
158
|
+
_resolvedSnaps;
|
|
159
|
+
_visibleExtent;
|
|
160
|
+
_maxExtent;
|
|
161
|
+
_pointerId;
|
|
162
|
+
_startX;
|
|
163
|
+
_startY;
|
|
164
|
+
_lastY;
|
|
165
|
+
_startExtent;
|
|
166
|
+
_isDragging;
|
|
167
|
+
_axisRejected;
|
|
168
|
+
_samples;
|
|
169
|
+
_resizeObserver;
|
|
170
|
+
_observedRoot;
|
|
171
|
+
_visualViewportHandler;
|
|
172
|
+
_measureFrame;
|
|
108
173
|
// #endregion
|
|
109
174
|
// #region Ctor
|
|
110
175
|
/**
|
|
176
|
+
* Constructs a new instance of the `SheetElement` class.
|
|
177
|
+
*
|
|
111
178
|
* @public
|
|
112
179
|
*/
|
|
113
180
|
constructor() {
|
|
114
181
|
super();
|
|
115
|
-
this.
|
|
116
|
-
this.
|
|
117
|
-
this.
|
|
118
|
-
this.
|
|
119
|
-
this.
|
|
120
|
-
this.
|
|
121
|
-
this.
|
|
122
|
-
this.
|
|
123
|
-
this.
|
|
124
|
-
this.
|
|
125
|
-
this.
|
|
126
|
-
this.
|
|
127
|
-
|
|
182
|
+
this._activeSnapChanged = new HTMLElementEventEmitter(this, 'activeSnapChanged');
|
|
183
|
+
this._dragStart = new HTMLElementEventEmitter(this, 'dragStart');
|
|
184
|
+
this._dragging = new HTMLElementEventEmitter(this, 'dragging');
|
|
185
|
+
this._dragEnd = new HTMLElementEventEmitter(this, 'dragEnd');
|
|
186
|
+
this._modalController = new ModalController(this);
|
|
187
|
+
this._width = ISheetElementProps.DEFAULTS.width;
|
|
188
|
+
this._height = ISheetElementProps.DEFAULTS.height;
|
|
189
|
+
this._position = ISheetElementProps.DEFAULTS.position;
|
|
190
|
+
this._snaps = [...ISheetElementProps.DEFAULTS.snaps];
|
|
191
|
+
this._activeSnapIndex = ISheetElementProps.DEFAULTS.activeSnapIndex;
|
|
192
|
+
this._activeSnapIndexExplicit = false;
|
|
193
|
+
this._closeThreshold = ISheetElementProps.DEFAULTS.closeThreshold;
|
|
194
|
+
this._elastic = ISheetElementProps.DEFAULTS.elastic;
|
|
195
|
+
this._inertia = ISheetElementProps.DEFAULTS.inertia;
|
|
196
|
+
this._dragMode = ISheetElementProps.DEFAULTS.dragMode;
|
|
197
|
+
this._hasHandle = ISheetElementProps.DEFAULTS.hasHandle;
|
|
198
|
+
this._hasSnapIndicator = ISheetElementProps.DEFAULTS.hasSnapIndicator;
|
|
199
|
+
this._isModal = ISheetElementProps.DEFAULTS.isModal;
|
|
200
|
+
this._resolvedSnaps = [];
|
|
201
|
+
this._visibleExtent = 0;
|
|
202
|
+
this._maxExtent = 0;
|
|
203
|
+
this._pointerId = null;
|
|
204
|
+
this._startX = 0;
|
|
205
|
+
this._startY = 0;
|
|
206
|
+
this._lastY = 0;
|
|
207
|
+
this._startExtent = 0;
|
|
208
|
+
this._isDragging = false;
|
|
209
|
+
this._axisRejected = false;
|
|
210
|
+
this._samples = [];
|
|
211
|
+
this._resizeObserver = null;
|
|
212
|
+
this._observedRoot = null;
|
|
213
|
+
this._visualViewportHandler = null;
|
|
214
|
+
this._measureFrame = null;
|
|
215
|
+
this.handleViewportResize = this.handleViewportResize.bind(this);
|
|
216
|
+
this.handlePointerDown = this.handlePointerDown.bind(this);
|
|
217
|
+
this.handlePointerMove = this.handlePointerMove.bind(this);
|
|
218
|
+
this.handlePointerUp = this.handlePointerUp.bind(this);
|
|
219
|
+
this.handlePointerCancel = this.handlePointerCancel.bind(this);
|
|
220
|
+
this.onBackdrop = this.onBackdrop.bind(this);
|
|
128
221
|
addInheritanceProviderController(this, {
|
|
129
222
|
context: SHEET_INHERITANCE_CONTEXT,
|
|
130
|
-
values: () => ({
|
|
131
|
-
closeable: this.closeable
|
|
132
|
-
})
|
|
223
|
+
values: () => ({ closeable: this.closeable })
|
|
133
224
|
});
|
|
134
225
|
}
|
|
135
226
|
// #endregion
|
|
136
227
|
// #region Properties
|
|
137
228
|
/**
|
|
138
|
-
* Returns the
|
|
139
|
-
* The `is` property represents natural name of this element.
|
|
229
|
+
* Returns the natural name of this element.
|
|
140
230
|
*
|
|
141
231
|
* @public
|
|
142
232
|
* @static
|
|
@@ -146,10 +236,29 @@ let SheetElement = class SheetElement extends Themeable(Slottable(OverlayElement
|
|
|
146
236
|
return 'mosaik-sheet';
|
|
147
237
|
}
|
|
148
238
|
/**
|
|
149
|
-
* Gets or sets the
|
|
239
|
+
* Gets or sets the width of the sheet surface.
|
|
240
|
+
* The width remains constrained by the viewport and the theme's maximum width.
|
|
241
|
+
*
|
|
242
|
+
* @public
|
|
243
|
+
* @attr
|
|
244
|
+
* @default '100%'
|
|
245
|
+
*/
|
|
246
|
+
get width() {
|
|
247
|
+
return this._width;
|
|
248
|
+
}
|
|
249
|
+
set width(value) {
|
|
250
|
+
if (this._width !== value) {
|
|
251
|
+
this._width = value;
|
|
252
|
+
this.requestUpdate('width');
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Gets or sets the maximum visible extent of the sheet.
|
|
257
|
+
* The `auto` value uses the measured content height.
|
|
150
258
|
*
|
|
151
259
|
* @public
|
|
152
260
|
* @attr
|
|
261
|
+
* @default '60dvh'
|
|
153
262
|
*/
|
|
154
263
|
get height() {
|
|
155
264
|
return this._height;
|
|
@@ -160,181 +269,877 @@ let SheetElement = class SheetElement extends Themeable(Slottable(OverlayElement
|
|
|
160
269
|
this.requestUpdate('height');
|
|
161
270
|
}
|
|
162
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Gets or sets the viewport edge from which the sheet opens.
|
|
274
|
+
*
|
|
275
|
+
* @public
|
|
276
|
+
* @attr
|
|
277
|
+
* @default 'bottom'
|
|
278
|
+
*/
|
|
279
|
+
get position() {
|
|
280
|
+
return this._position;
|
|
281
|
+
}
|
|
282
|
+
set position(value) {
|
|
283
|
+
if (this._position !== value) {
|
|
284
|
+
this._position = value;
|
|
285
|
+
this.requestUpdate('position');
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Gets or sets the sheet's snap extents.
|
|
290
|
+
* Values are resolved, clamped to `height`, sorted and de-duplicated.
|
|
291
|
+
* The `content` value uses the measured content height.
|
|
292
|
+
* In plain HTML, provide a space-separated list such as `snaps="25% content 90dvh"`.
|
|
293
|
+
* Invalid values and the unsupported `auto` value throw a descriptive error.
|
|
294
|
+
*
|
|
295
|
+
* @public
|
|
296
|
+
* @attr
|
|
297
|
+
* @default []
|
|
298
|
+
*/
|
|
299
|
+
get snaps() {
|
|
300
|
+
return this._snaps;
|
|
301
|
+
}
|
|
302
|
+
set snaps(value) {
|
|
303
|
+
const next = Array.isArray(value) ? value : [];
|
|
304
|
+
if (this._snaps !== next) {
|
|
305
|
+
this._snaps = next;
|
|
306
|
+
this.requestUpdate('snaps');
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Gets or sets the active index in the resolved, ascending snap list.
|
|
311
|
+
* Invalid values are clamped to an available index.
|
|
312
|
+
*
|
|
313
|
+
* @public
|
|
314
|
+
* @attr
|
|
315
|
+
* @default 0
|
|
316
|
+
*/
|
|
317
|
+
get activeSnapIndex() {
|
|
318
|
+
return this._activeSnapIndex;
|
|
319
|
+
}
|
|
320
|
+
set activeSnapIndex(value) {
|
|
321
|
+
this._activeSnapIndexExplicit = true;
|
|
322
|
+
const next = this.clampSnapIndex(value);
|
|
323
|
+
if (this._activeSnapIndex !== next) {
|
|
324
|
+
this._activeSnapIndex = next;
|
|
325
|
+
this.requestUpdate('activeSnapIndex');
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Gets or sets the close threshold as a fraction of the maximum extent.
|
|
330
|
+
* Values are clamped to the range from `0` to `1`.
|
|
331
|
+
*
|
|
332
|
+
* @public
|
|
333
|
+
* @attr
|
|
334
|
+
* @default 0.25
|
|
335
|
+
*/
|
|
336
|
+
get closeThreshold() {
|
|
337
|
+
return this._closeThreshold;
|
|
338
|
+
}
|
|
339
|
+
set closeThreshold(value) {
|
|
340
|
+
const next = clamp(Number.isFinite(value) ? value : ISheetElementProps.DEFAULTS.closeThreshold, 0, 1);
|
|
341
|
+
if (this._closeThreshold !== next) {
|
|
342
|
+
this._closeThreshold = next;
|
|
343
|
+
this.requestUpdate('closeThreshold');
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Gets or sets whether dragging beyond the legal range uses elastic resistance.
|
|
348
|
+
*
|
|
349
|
+
* @public
|
|
350
|
+
* @attr
|
|
351
|
+
* @default true
|
|
352
|
+
*/
|
|
353
|
+
get elastic() {
|
|
354
|
+
return this._elastic;
|
|
355
|
+
}
|
|
356
|
+
set elastic(value) {
|
|
357
|
+
this.setBooleanProperty('_elastic', 'elastic', value);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Gets or sets whether release velocity influences the landing snap.
|
|
361
|
+
*
|
|
362
|
+
* @public
|
|
363
|
+
* @attr
|
|
364
|
+
* @default true
|
|
365
|
+
*/
|
|
366
|
+
get inertia() {
|
|
367
|
+
return this._inertia;
|
|
368
|
+
}
|
|
369
|
+
set inertia(value) {
|
|
370
|
+
this.setBooleanProperty('_inertia', 'inertia', value);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Gets or sets the area from which a sheet gesture may start.
|
|
374
|
+
* Interactive controls never start a sheet gesture.
|
|
375
|
+
*
|
|
376
|
+
* @public
|
|
377
|
+
* @attr
|
|
378
|
+
* @default 'sheet'
|
|
379
|
+
*/
|
|
380
|
+
get dragMode() {
|
|
381
|
+
return this._dragMode;
|
|
382
|
+
}
|
|
383
|
+
set dragMode(value) {
|
|
384
|
+
if (this._dragMode !== value) {
|
|
385
|
+
this._dragMode = value;
|
|
386
|
+
this.requestUpdate('dragMode');
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Gets or sets whether the built-in drag handle is rendered.
|
|
391
|
+
*
|
|
392
|
+
* @public
|
|
393
|
+
* @attr
|
|
394
|
+
* @default true
|
|
395
|
+
*/
|
|
396
|
+
get hasHandle() {
|
|
397
|
+
return this._hasHandle;
|
|
398
|
+
}
|
|
399
|
+
set hasHandle(value) {
|
|
400
|
+
this.setBooleanProperty('_hasHandle', 'hasHandle', value);
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Gets or sets whether indicators for the resolved snaps are rendered.
|
|
404
|
+
*
|
|
405
|
+
* @public
|
|
406
|
+
* @attr
|
|
407
|
+
* @default false
|
|
408
|
+
*/
|
|
409
|
+
get hasSnapIndicator() {
|
|
410
|
+
return this._hasSnapIndicator;
|
|
411
|
+
}
|
|
412
|
+
set hasSnapIndicator(value) {
|
|
413
|
+
this.setBooleanProperty('_hasSnapIndicator', 'hasSnapIndicator', value);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Gets or sets whether the open sheet traps focus, restores focus and locks document scrolling.
|
|
417
|
+
*
|
|
418
|
+
* @public
|
|
419
|
+
* @attr
|
|
420
|
+
* @default false
|
|
421
|
+
*/
|
|
422
|
+
get isModal() {
|
|
423
|
+
return this._isModal;
|
|
424
|
+
}
|
|
425
|
+
set isModal(value) {
|
|
426
|
+
if (this._isModal !== value) {
|
|
427
|
+
this._isModal = value;
|
|
428
|
+
this.requestUpdate('isModal');
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Called after the active snap changes.
|
|
433
|
+
* Provides `IActiveSnapChangedEventDetail` as event detail.
|
|
434
|
+
*
|
|
435
|
+
* @public
|
|
436
|
+
* @readonly
|
|
437
|
+
* @eventProperty
|
|
438
|
+
*/
|
|
439
|
+
get activeSnapChanged() {
|
|
440
|
+
return this._activeSnapChanged;
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Called when a vertical sheet gesture starts.
|
|
444
|
+
* Provides `IDragStartEventDetail` as event detail.
|
|
445
|
+
*
|
|
446
|
+
* @public
|
|
447
|
+
* @readonly
|
|
448
|
+
* @eventProperty
|
|
449
|
+
*/
|
|
450
|
+
get dragStart() {
|
|
451
|
+
return this._dragStart;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Called while the sheet is moved by a vertical pointer gesture.
|
|
455
|
+
* Provides `IDraggingEventDetail` as event detail.
|
|
456
|
+
*
|
|
457
|
+
* @public
|
|
458
|
+
* @readonly
|
|
459
|
+
* @eventProperty
|
|
460
|
+
*/
|
|
461
|
+
get dragging() {
|
|
462
|
+
return this._dragging;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Called when a vertical sheet gesture ends.
|
|
466
|
+
* Provides `IDragEndEventDetail` as event detail.
|
|
467
|
+
*
|
|
468
|
+
* @public
|
|
469
|
+
* @readonly
|
|
470
|
+
* @eventProperty
|
|
471
|
+
*/
|
|
472
|
+
get dragEnd() {
|
|
473
|
+
return this._dragEnd;
|
|
474
|
+
}
|
|
163
475
|
// #endregion
|
|
164
476
|
// #region Methods
|
|
165
477
|
/**
|
|
166
|
-
*
|
|
478
|
+
* @inheritdoc
|
|
479
|
+
* @public
|
|
480
|
+
* @override
|
|
481
|
+
*/
|
|
482
|
+
connectedCallback() {
|
|
483
|
+
super.connectedCallback();
|
|
484
|
+
if (this.isOpen) {
|
|
485
|
+
this.activateInteractionResources();
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* @inheritdoc
|
|
490
|
+
* @public
|
|
491
|
+
* @override
|
|
492
|
+
*/
|
|
493
|
+
disconnectedCallback() {
|
|
494
|
+
this.deactivateInteractionResources();
|
|
495
|
+
this._modalController.deactivate();
|
|
496
|
+
super.disconnectedCallback();
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Opens the sheet at its active snap.
|
|
167
500
|
*
|
|
168
501
|
* @public
|
|
169
502
|
* @override
|
|
503
|
+
* @returns A promise that resolves after the sheet has opened.
|
|
170
504
|
*/
|
|
171
505
|
async open() {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
506
|
+
await super.open();
|
|
507
|
+
await this.updateComplete;
|
|
508
|
+
this.activateInteractionResources();
|
|
509
|
+
this.measure();
|
|
510
|
+
this.moveToSnap(this.clampSnapIndex(this._activeSnapIndex), false);
|
|
511
|
+
this.setState('open');
|
|
512
|
+
if (this.isModal) {
|
|
513
|
+
this._modalController.activate();
|
|
514
|
+
}
|
|
177
515
|
}
|
|
178
516
|
/**
|
|
179
|
-
* Closes the
|
|
517
|
+
* Closes the sheet through the normal overlay lifecycle.
|
|
180
518
|
*
|
|
181
519
|
* @public
|
|
182
520
|
* @override
|
|
521
|
+
* @returns A promise resolving to whether the sheet was closed.
|
|
183
522
|
*/
|
|
184
523
|
async close() {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
524
|
+
if (!this.isOpen) {
|
|
525
|
+
return false;
|
|
526
|
+
}
|
|
527
|
+
this._modalController.deactivate();
|
|
528
|
+
this.setTransition(true);
|
|
529
|
+
this.setVisibleExtent(0);
|
|
530
|
+
this.setState('closed');
|
|
531
|
+
await this.waitForMotion();
|
|
532
|
+
return super.close();
|
|
194
533
|
}
|
|
195
534
|
/**
|
|
196
|
-
*
|
|
535
|
+
* Moves the open sheet to a configured snap.
|
|
536
|
+
* Invalid indices are clamped to the resolved snap range.
|
|
197
537
|
*
|
|
198
538
|
* @public
|
|
539
|
+
* @param index - The target index in the resolved, ascending snap list.
|
|
199
540
|
*/
|
|
200
|
-
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
541
|
+
snapTo(index) {
|
|
542
|
+
const next = this.clampSnapIndex(index);
|
|
543
|
+
const previous = this._activeSnapIndex;
|
|
544
|
+
this._activeSnapIndex = next;
|
|
545
|
+
this.requestUpdate('activeSnapIndex');
|
|
546
|
+
this.moveToSnap(next, true, previous);
|
|
204
547
|
}
|
|
205
548
|
/**
|
|
206
|
-
*
|
|
549
|
+
* Handles a backdrop activation according to the sheet dismissal configuration.
|
|
207
550
|
*
|
|
208
|
-
* @
|
|
551
|
+
* @internal
|
|
552
|
+
* @hidden
|
|
209
553
|
*/
|
|
210
|
-
|
|
211
|
-
if (this.
|
|
212
|
-
|
|
554
|
+
onBackdrop() {
|
|
555
|
+
if (this.clickOutsideToClose && this.requestClose('outside')) {
|
|
556
|
+
void this.close();
|
|
213
557
|
}
|
|
214
|
-
this.partial();
|
|
215
|
-
return Promise.resolve();
|
|
216
558
|
}
|
|
217
559
|
/**
|
|
560
|
+
* Handles open-state changes without overriding the overlay's internal state hook.
|
|
561
|
+
*
|
|
218
562
|
* @protected
|
|
219
|
-
* @override
|
|
220
563
|
*/
|
|
221
564
|
onApplyTemplate() {
|
|
222
565
|
super.onApplyTemplate();
|
|
223
|
-
const
|
|
224
|
-
this.
|
|
225
|
-
|
|
226
|
-
|
|
566
|
+
const root = this.getTemplatePart('root');
|
|
567
|
+
if (this._observedRoot && this._observedRoot !== root) {
|
|
568
|
+
this.detachPointerListeners(this._observedRoot);
|
|
569
|
+
}
|
|
570
|
+
this._observedRoot = root;
|
|
571
|
+
if (this.isOpen) {
|
|
572
|
+
this.activateInteractionResources();
|
|
573
|
+
this.queueMeasurement();
|
|
574
|
+
}
|
|
227
575
|
}
|
|
228
576
|
/**
|
|
229
|
-
*
|
|
230
|
-
* Only closes the sheet if `clickOutsideToClose` is enabled.
|
|
577
|
+
* Keeps dialog semantics on the sheet surface instead of the custom-element host.
|
|
231
578
|
*
|
|
232
|
-
* @
|
|
233
|
-
* @template
|
|
579
|
+
* @protected
|
|
234
580
|
*/
|
|
235
|
-
|
|
236
|
-
if (
|
|
237
|
-
|
|
581
|
+
onIsOpenPropertyChanged(_previous, next) {
|
|
582
|
+
if (next) {
|
|
583
|
+
this.activateInteractionResources();
|
|
584
|
+
this.queueMeasurement();
|
|
585
|
+
this.setState('open');
|
|
586
|
+
if (this.isModal) {
|
|
587
|
+
this._modalController.activate();
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
else {
|
|
591
|
+
this.deactivateInteractionResources();
|
|
592
|
+
this._modalController.deactivate();
|
|
593
|
+
this.setState('closed');
|
|
238
594
|
}
|
|
239
595
|
}
|
|
240
596
|
/**
|
|
241
|
-
* @
|
|
597
|
+
* @inheritdoc
|
|
598
|
+
* @protected
|
|
599
|
+
* @override
|
|
242
600
|
*/
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
this._mouseMoveSubscription = on(window, 'mousemove', (x) => this.dragMouseMove(x));
|
|
247
|
-
this._touchEndSubscription = on(window, 'touchend', (x) => this.dragMouseUp(x));
|
|
248
|
-
this._touchMoveSubscription = on(window, 'touchmove', (x) => this.dragMouseMove(x));
|
|
249
|
-
this._positionY = this.getYCoord(e);
|
|
250
|
-
this._dragOffset = this._positionY - target.getBoundingClientRect().top;
|
|
251
|
-
document.body.style.overscrollBehaviorY = 'none';
|
|
601
|
+
onSheetHasBackdropPropertyChanged(_previous, _next) {
|
|
602
|
+
// Dialog semantics live on the movable surface, not on the custom-element host.
|
|
603
|
+
RendererServiceLocator.current.removeAttribute(this, 'aria-modal');
|
|
252
604
|
}
|
|
253
605
|
/**
|
|
254
|
-
*
|
|
606
|
+
* Re-measures the sheet after its maximum height changes.
|
|
607
|
+
*
|
|
608
|
+
* @protected
|
|
255
609
|
*/
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
610
|
+
onHeightPropertyChanged(_previous, _next) {
|
|
611
|
+
this.queueMeasurement();
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* Re-measures the sheet after its opening edge changes.
|
|
615
|
+
*
|
|
616
|
+
* @protected
|
|
617
|
+
*/
|
|
618
|
+
onPositionPropertyChanged(_previous, _next) {
|
|
619
|
+
this.queueMeasurement();
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Synchronizes the default active snap and schedules snap resolution.
|
|
623
|
+
*
|
|
624
|
+
* @protected
|
|
625
|
+
*/
|
|
626
|
+
onSnapsPropertyChanged(_previous, next) {
|
|
627
|
+
if (!this._activeSnapIndexExplicit) {
|
|
628
|
+
this._activeSnapIndex = Math.max(0, next.length - 1);
|
|
629
|
+
this.requestUpdate('activeSnapIndex');
|
|
272
630
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
631
|
+
this.queueMeasurement();
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Moves an open sheet after its controlled snap index changes.
|
|
635
|
+
*
|
|
636
|
+
* @protected
|
|
637
|
+
*/
|
|
638
|
+
onActiveSnapIndexPropertyChanged(previous, next) {
|
|
639
|
+
if (this.isOpen && !this._isDragging) {
|
|
640
|
+
this.moveToSnap(next, true, previous);
|
|
279
641
|
}
|
|
280
642
|
}
|
|
281
643
|
/**
|
|
282
|
-
*
|
|
644
|
+
* Activates or deactivates modal behavior while the sheet is open.
|
|
645
|
+
*
|
|
646
|
+
* @protected
|
|
283
647
|
*/
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
648
|
+
onIsModalPropertyChanged(_previous, next) {
|
|
649
|
+
if (this.isOpen) {
|
|
650
|
+
if (next) {
|
|
651
|
+
this._modalController.activate();
|
|
652
|
+
}
|
|
653
|
+
else {
|
|
654
|
+
this._modalController.deactivate();
|
|
655
|
+
}
|
|
289
656
|
}
|
|
290
|
-
root.style.setProperty('transition', 'none');
|
|
291
|
-
root.style.setProperty('transform', `translateY(${this._positionY - this._dragOffset}px)`);
|
|
292
657
|
}
|
|
293
658
|
/**
|
|
294
|
-
*
|
|
659
|
+
* Synchronizes the optional snap indicator after its visibility changes.
|
|
660
|
+
*
|
|
661
|
+
* @protected
|
|
295
662
|
*/
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
this._mouseUpSubscription?.dispose();
|
|
300
|
-
this._touchEndSubscription?.dispose();
|
|
301
|
-
this._mouseMoveSubscription?.dispose();
|
|
302
|
-
this._touchMoveSubscription?.dispose();
|
|
303
|
-
if (!toPoint && this._positionY >= window.innerHeight - heading.clientHeight) {
|
|
304
|
-
root.style.setProperty('transform', `translateY(calc(100vh - ${heading.clientHeight}px))`);
|
|
663
|
+
onHasSnapIndicatorPropertyChanged(_previous, next) {
|
|
664
|
+
if (next) {
|
|
665
|
+
void this.updateComplete.then(() => this.renderSnapIndicators());
|
|
305
666
|
}
|
|
306
|
-
|
|
307
|
-
|
|
667
|
+
}
|
|
668
|
+
activateInteractionResources() {
|
|
669
|
+
if (!this._visualViewportHandler) {
|
|
670
|
+
this._visualViewportHandler = this.handleViewportResize;
|
|
671
|
+
window.addEventListener('resize', this._visualViewportHandler, { passive: true });
|
|
672
|
+
window.visualViewport?.addEventListener('resize', this._visualViewportHandler, { passive: true });
|
|
308
673
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
this.
|
|
312
|
-
this._touchStartSubscription?.dispose();
|
|
313
|
-
this._clickSubscription?.dispose();
|
|
314
|
-
setTimeout(() => {
|
|
315
|
-
this._mouseDownSubscription?.dispose();
|
|
316
|
-
this._touchStartSubscription?.dispose();
|
|
317
|
-
}, 250);
|
|
674
|
+
if (this._observedRoot) {
|
|
675
|
+
this.attachPointerListeners(this._observedRoot);
|
|
676
|
+
this.observeRoot(this._observedRoot);
|
|
318
677
|
}
|
|
319
678
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
679
|
+
deactivateInteractionResources() {
|
|
680
|
+
this.cleanupPointer();
|
|
681
|
+
if (this._observedRoot) {
|
|
682
|
+
this.detachPointerListeners(this._observedRoot);
|
|
683
|
+
}
|
|
684
|
+
this._resizeObserver?.disconnect();
|
|
685
|
+
this._resizeObserver = null;
|
|
686
|
+
if (this._measureFrame !== null) {
|
|
687
|
+
cancelAnimationFrame(this._measureFrame);
|
|
688
|
+
this._measureFrame = null;
|
|
689
|
+
}
|
|
690
|
+
if (this._visualViewportHandler) {
|
|
691
|
+
window.removeEventListener('resize', this._visualViewportHandler);
|
|
692
|
+
window.visualViewport?.removeEventListener('resize', this._visualViewportHandler);
|
|
693
|
+
this._visualViewportHandler = null;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
attachPointerListeners(root) {
|
|
697
|
+
this.detachPointerListeners(root);
|
|
698
|
+
root.addEventListener('pointerdown', this.handlePointerDown);
|
|
699
|
+
root.addEventListener('pointermove', this.handlePointerMove);
|
|
700
|
+
root.addEventListener('pointerup', this.handlePointerUp);
|
|
701
|
+
root.addEventListener('pointercancel', this.handlePointerCancel);
|
|
702
|
+
}
|
|
703
|
+
detachPointerListeners(root) {
|
|
704
|
+
root.removeEventListener('pointerdown', this.handlePointerDown);
|
|
705
|
+
root.removeEventListener('pointermove', this.handlePointerMove);
|
|
706
|
+
root.removeEventListener('pointerup', this.handlePointerUp);
|
|
707
|
+
root.removeEventListener('pointercancel', this.handlePointerCancel);
|
|
708
|
+
}
|
|
709
|
+
handlePointerDown(event) {
|
|
710
|
+
if (!event.isPrimary || this._pointerId !== null || event.button > 0 || !this.isOpen) {
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
713
|
+
const path = event.composedPath();
|
|
714
|
+
const target = path.find((entry) => entry instanceof Element);
|
|
715
|
+
if (!target || path.some((entry) => entry instanceof Element && entry.matches(INTERACTIVE_SELECTOR))) {
|
|
716
|
+
return;
|
|
717
|
+
}
|
|
718
|
+
if (this.dragMode === SheetDragMode.Handle && !path.some((entry) => entry instanceof Element && entry.matches('[part="handle"]'))) {
|
|
719
|
+
return;
|
|
720
|
+
}
|
|
721
|
+
this._pointerId = event.pointerId;
|
|
722
|
+
this._startX = event.clientX;
|
|
723
|
+
this._startY = event.clientY;
|
|
724
|
+
this._lastY = event.clientY;
|
|
725
|
+
this._startExtent = this._visibleExtent;
|
|
726
|
+
this._samples = [{ y: event.clientY, time: event.timeStamp }];
|
|
727
|
+
this._axisRejected = false;
|
|
728
|
+
this._isDragging = false;
|
|
729
|
+
}
|
|
730
|
+
handlePointerMove(event) {
|
|
731
|
+
if (event.pointerId !== this._pointerId || this._axisRejected) {
|
|
732
|
+
return;
|
|
733
|
+
}
|
|
734
|
+
const deltaX = event.clientX - this._startX;
|
|
735
|
+
const deltaY = event.clientY - this._startY;
|
|
736
|
+
if (!this._isDragging) {
|
|
737
|
+
if (Math.max(Math.abs(deltaX), Math.abs(deltaY)) < AXIS_LOCK_THRESHOLD) {
|
|
738
|
+
return;
|
|
739
|
+
}
|
|
740
|
+
if (Math.abs(deltaX) > Math.abs(deltaY)) {
|
|
741
|
+
this._axisRejected = true;
|
|
742
|
+
return;
|
|
743
|
+
}
|
|
744
|
+
if (this.consumeScrollableMovement(event)) {
|
|
745
|
+
this._startY = event.clientY;
|
|
746
|
+
this._lastY = event.clientY;
|
|
747
|
+
this._samples = [{ y: event.clientY, time: event.timeStamp }];
|
|
748
|
+
return;
|
|
749
|
+
}
|
|
750
|
+
this._isDragging = true;
|
|
751
|
+
this._observedRoot?.setPointerCapture(event.pointerId);
|
|
752
|
+
this.setTransition(false);
|
|
753
|
+
this.toggleAttribute('data-dragging', true);
|
|
754
|
+
this.setState('dragging');
|
|
755
|
+
this._dragStart.emit(this.createDragDetail(event, 0));
|
|
756
|
+
}
|
|
757
|
+
const extentDelta = verticalPointerDelta(this.position, this._startY, event.clientY);
|
|
758
|
+
const next = applyElasticity(this._startExtent + extentDelta, 0, this._maxExtent, this.elastic);
|
|
759
|
+
this.setVisibleExtent(next);
|
|
760
|
+
this._samples.push({ y: event.clientY, time: event.timeStamp });
|
|
761
|
+
this._samples = this._samples.filter((sample) => event.timeStamp - sample.time <= 120).slice(-6);
|
|
762
|
+
this._lastY = event.clientY;
|
|
763
|
+
this._dragging.emit(this.createDragDetail(event, this.getVelocity()));
|
|
764
|
+
}
|
|
765
|
+
handlePointerUp(event) {
|
|
766
|
+
if (event.pointerId !== this._pointerId) {
|
|
767
|
+
return;
|
|
768
|
+
}
|
|
769
|
+
if (!this._isDragging) {
|
|
770
|
+
this.cleanupPointer();
|
|
771
|
+
return;
|
|
772
|
+
}
|
|
773
|
+
const velocity = this.getVelocity();
|
|
774
|
+
const result = selectSnap(this._visibleExtent, velocity, this._resolvedSnaps, this._maxExtent, this.closeThreshold, this.inertia);
|
|
775
|
+
this._dragEnd.emit(this.createDragDetail(event, velocity));
|
|
776
|
+
this.cleanupPointer();
|
|
777
|
+
if (result.close && this.closeable && this.requestClose('gesture')) {
|
|
778
|
+
void this.close();
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
this.moveToSnap(result.snapIndex < 0 ? 0 : result.snapIndex, true, this._activeSnapIndex);
|
|
782
|
+
this.setState('open');
|
|
783
|
+
}
|
|
784
|
+
handlePointerCancel(event) {
|
|
785
|
+
if (event.pointerId !== this._pointerId) {
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
788
|
+
this.cleanupPointer();
|
|
789
|
+
this.moveToSnap(this._activeSnapIndex, true);
|
|
790
|
+
this.setState('open');
|
|
791
|
+
}
|
|
792
|
+
consumeScrollableMovement(event) {
|
|
793
|
+
if (this.dragMode === SheetDragMode.Handle || this._activeSnapIndex < this._resolvedSnaps.length - 1) {
|
|
794
|
+
return false;
|
|
795
|
+
}
|
|
796
|
+
const scrollable = this.findScrollable(event.composedPath());
|
|
797
|
+
if (!scrollable) {
|
|
798
|
+
return false;
|
|
799
|
+
}
|
|
800
|
+
const desiredScroll = this._lastY - event.clientY;
|
|
801
|
+
const maxScroll = scrollable.scrollHeight - scrollable.clientHeight;
|
|
802
|
+
const next = clamp(scrollable.scrollTop + desiredScroll, 0, maxScroll);
|
|
803
|
+
if (Math.abs(next - scrollable.scrollTop) < 0.5) {
|
|
804
|
+
return false;
|
|
805
|
+
}
|
|
806
|
+
scrollable.scrollTop = next;
|
|
807
|
+
return true;
|
|
808
|
+
}
|
|
809
|
+
findScrollable(path) {
|
|
810
|
+
return path.find((entry) => {
|
|
811
|
+
if (!(entry instanceof HTMLElement) || entry === this._observedRoot) {
|
|
812
|
+
return false;
|
|
813
|
+
}
|
|
814
|
+
const style = getComputedStyle(entry);
|
|
815
|
+
return /(auto|scroll)/.test(`${style.overflowY} ${style.overflow}`) && entry.scrollHeight > entry.clientHeight;
|
|
816
|
+
}) ?? null;
|
|
817
|
+
}
|
|
818
|
+
cleanupPointer() {
|
|
819
|
+
if (this._pointerId !== null && this._observedRoot?.hasPointerCapture(this._pointerId)) {
|
|
820
|
+
this._observedRoot.releasePointerCapture(this._pointerId);
|
|
821
|
+
}
|
|
822
|
+
this._pointerId = null;
|
|
823
|
+
this._isDragging = false;
|
|
824
|
+
this._axisRejected = false;
|
|
825
|
+
this._samples = [];
|
|
826
|
+
this.toggleAttribute('data-dragging', false);
|
|
827
|
+
}
|
|
828
|
+
getVelocity() {
|
|
829
|
+
if (this._samples.length < 2) {
|
|
830
|
+
return 0;
|
|
831
|
+
}
|
|
832
|
+
const first = this._samples[0];
|
|
833
|
+
const last = this._samples[this._samples.length - 1];
|
|
834
|
+
const elapsed = Math.max(1, last.time - first.time);
|
|
835
|
+
return verticalPointerDelta(this.position, first.y, last.y) / elapsed;
|
|
836
|
+
}
|
|
837
|
+
createDragDetail(event, velocity) {
|
|
838
|
+
return {
|
|
839
|
+
x: event.clientX,
|
|
840
|
+
y: event.clientY,
|
|
841
|
+
delta: verticalPointerDelta(this.position, this._startY, event.clientY),
|
|
842
|
+
position: this._visibleExtent,
|
|
843
|
+
velocity,
|
|
844
|
+
direction: this.position
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
measure() {
|
|
848
|
+
const root = this._observedRoot;
|
|
849
|
+
if (!root) {
|
|
850
|
+
return;
|
|
851
|
+
}
|
|
852
|
+
const viewportSize = window.visualViewport?.height ?? window.innerHeight;
|
|
853
|
+
const contentSize = root.scrollHeight;
|
|
854
|
+
this._maxExtent = this.height === 'auto'
|
|
855
|
+
? Math.min(contentSize, viewportSize)
|
|
856
|
+
: clamp(resolveSnapLength(this.height, viewportSize, (value) => this.measureCssLength(value)), 0, viewportSize);
|
|
857
|
+
this._resolvedSnaps = resolveSnaps(this.snaps, SheetSnap.Content, viewportSize, contentSize, this._maxExtent, (value) => this.measureCssLength(value));
|
|
858
|
+
this._activeSnapIndex = this.clampSnapIndex(this._activeSnapIndex);
|
|
859
|
+
this.renderSnapIndicators();
|
|
860
|
+
if (this.isOpen && !this._isDragging) {
|
|
861
|
+
this.moveToSnap(this._activeSnapIndex, false);
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
measureCssLength(value) {
|
|
865
|
+
const probe = document.createElement('div');
|
|
866
|
+
probe.style.cssText = `position:fixed;visibility:hidden;pointer-events:none;height:${value};`;
|
|
867
|
+
document.body.appendChild(probe);
|
|
868
|
+
const result = probe.getBoundingClientRect().height;
|
|
869
|
+
probe.remove();
|
|
870
|
+
return result;
|
|
871
|
+
}
|
|
872
|
+
moveToSnap(index, animate, previousIndex = this._activeSnapIndex) {
|
|
873
|
+
if (this._resolvedSnaps.length === 0) {
|
|
874
|
+
return;
|
|
326
875
|
}
|
|
327
|
-
|
|
328
|
-
|
|
876
|
+
const nextIndex = clamp(index, 0, this._resolvedSnaps.length - 1);
|
|
877
|
+
const snap = this._resolvedSnaps[nextIndex];
|
|
878
|
+
this.setTransition(animate);
|
|
879
|
+
this.setVisibleExtent(snap.value);
|
|
880
|
+
this._activeSnapIndex = nextIndex;
|
|
881
|
+
this.requestUpdate('activeSnapIndex');
|
|
882
|
+
this.setAttribute('data-snap-index', String(nextIndex));
|
|
883
|
+
this.toggleAttribute('data-max-snap', nextIndex === this._resolvedSnaps.length - 1);
|
|
884
|
+
this.updateSnapIndicatorState();
|
|
885
|
+
if (previousIndex !== nextIndex) {
|
|
886
|
+
this._activeSnapChanged.emit({
|
|
887
|
+
previousIndex,
|
|
888
|
+
currentIndex: nextIndex,
|
|
889
|
+
snap: snap.snap,
|
|
890
|
+
value: snap.value
|
|
891
|
+
});
|
|
329
892
|
}
|
|
330
|
-
|
|
893
|
+
}
|
|
894
|
+
setVisibleExtent(value) {
|
|
895
|
+
this._visibleExtent = value;
|
|
896
|
+
const root = this._observedRoot;
|
|
897
|
+
if (!root) {
|
|
898
|
+
return;
|
|
899
|
+
}
|
|
900
|
+
const hidden = this._maxExtent - value;
|
|
901
|
+
const translate = this.position === SheetPosition.Bottom ? hidden : -hidden;
|
|
902
|
+
root.style.transform = `translate3d(0, ${translate}px, 0)`;
|
|
903
|
+
root.style.setProperty('--sheet-progress', String(this._maxExtent > 0 ? clamp(value / this._maxExtent, 0, 1) : 0));
|
|
904
|
+
root.style.setProperty('--sheet-resolved-height', `${this._maxExtent}px`);
|
|
905
|
+
}
|
|
906
|
+
setTransition(enabled) {
|
|
907
|
+
this._observedRoot?.toggleAttribute('data-animate', enabled);
|
|
908
|
+
}
|
|
909
|
+
setState(state) {
|
|
910
|
+
RendererServiceLocator.current.setAttribute(this, 'data-state', state);
|
|
911
|
+
}
|
|
912
|
+
clampSnapIndex(value) {
|
|
913
|
+
const length = this._resolvedSnaps.length || this._snaps.length || 1;
|
|
914
|
+
return clamp(Math.round(Number.isFinite(value) ? value : length - 1), 0, length - 1);
|
|
915
|
+
}
|
|
916
|
+
queueMeasurement() {
|
|
917
|
+
if (!this.isConnected) {
|
|
918
|
+
return;
|
|
919
|
+
}
|
|
920
|
+
if (this._measureFrame !== null) {
|
|
921
|
+
cancelAnimationFrame(this._measureFrame);
|
|
922
|
+
}
|
|
923
|
+
this._measureFrame = requestAnimationFrame(() => {
|
|
924
|
+
this._measureFrame = null;
|
|
925
|
+
this.measure();
|
|
926
|
+
});
|
|
927
|
+
}
|
|
928
|
+
handleViewportResize() {
|
|
929
|
+
this.measure();
|
|
930
|
+
}
|
|
931
|
+
observeRoot(root) {
|
|
932
|
+
this._resizeObserver?.disconnect();
|
|
933
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
934
|
+
this._resizeObserver = new ResizeObserver(() => this.measure());
|
|
935
|
+
this._resizeObserver.observe(root);
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
waitForMotion() {
|
|
939
|
+
const root = this._observedRoot;
|
|
940
|
+
if (!root || matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
|
941
|
+
return Promise.resolve();
|
|
942
|
+
}
|
|
943
|
+
const style = getComputedStyle(root);
|
|
944
|
+
const durations = style.transitionDuration.split(',').map((value) => this.parseMotionTime(value));
|
|
945
|
+
const delays = style.transitionDelay.split(',').map((value) => this.parseMotionTime(value));
|
|
946
|
+
const motionTime = durations.reduce((maximum, duration, index) => {
|
|
947
|
+
return Math.max(maximum, duration + delays[index % delays.length]);
|
|
948
|
+
}, 0);
|
|
949
|
+
if (motionTime === 0) {
|
|
950
|
+
return Promise.resolve();
|
|
951
|
+
}
|
|
952
|
+
return new Promise((resolve) => {
|
|
953
|
+
const timeout = window.setTimeout(resolve, Math.ceil(motionTime));
|
|
954
|
+
root.addEventListener('transitionend', () => {
|
|
955
|
+
clearTimeout(timeout);
|
|
956
|
+
resolve();
|
|
957
|
+
}, { once: true });
|
|
958
|
+
});
|
|
959
|
+
}
|
|
960
|
+
parseMotionTime(value) {
|
|
961
|
+
const time = Number.parseFloat(value);
|
|
962
|
+
return value.trim().endsWith('ms') ? time : time * 1000;
|
|
963
|
+
}
|
|
964
|
+
setBooleanProperty(field, property, value) {
|
|
965
|
+
if (this[field] !== value) {
|
|
966
|
+
this[field] = value;
|
|
967
|
+
this.requestUpdate(property);
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
renderSnapIndicators() {
|
|
971
|
+
const container = this.shadowRoot?.querySelector('[part="snap-indicator"]');
|
|
972
|
+
if (!container) {
|
|
973
|
+
return;
|
|
974
|
+
}
|
|
975
|
+
const indicators = this._resolvedSnaps.map((_snap, index) => {
|
|
976
|
+
const indicator = document.createElement('span');
|
|
977
|
+
indicator.setAttribute('part', 'snap-indicator-item');
|
|
978
|
+
indicator.setAttribute('data-active', String(index === this._activeSnapIndex));
|
|
979
|
+
return indicator;
|
|
980
|
+
});
|
|
981
|
+
container.replaceChildren(...indicators);
|
|
982
|
+
}
|
|
983
|
+
updateSnapIndicatorState() {
|
|
984
|
+
const indicators = this.shadowRoot?.querySelectorAll('[part="snap-indicator-item"]') ?? [];
|
|
985
|
+
indicators.forEach((indicator, index) => {
|
|
986
|
+
indicator.setAttribute('data-active', String(index === this._activeSnapIndex));
|
|
987
|
+
});
|
|
331
988
|
}
|
|
332
989
|
};
|
|
990
|
+
__decorate([
|
|
991
|
+
Attribute({
|
|
992
|
+
type: String,
|
|
993
|
+
converter: {
|
|
994
|
+
toAttribute: (value) => typeof value === 'number' ? `${value}px` : value?.toString() ?? ''
|
|
995
|
+
}
|
|
996
|
+
}),
|
|
997
|
+
__metadata("design:type", Object),
|
|
998
|
+
__metadata("design:paramtypes", [Object])
|
|
999
|
+
], SheetElement.prototype, "width", null);
|
|
333
1000
|
__decorate([
|
|
334
1001
|
Attribute({ type: CssLength }),
|
|
335
1002
|
__metadata("design:type", Object),
|
|
336
1003
|
__metadata("design:paramtypes", [Object])
|
|
337
1004
|
], SheetElement.prototype, "height", null);
|
|
1005
|
+
__decorate([
|
|
1006
|
+
Attribute({ type: SheetPosition }),
|
|
1007
|
+
__metadata("design:type", String),
|
|
1008
|
+
__metadata("design:paramtypes", [String])
|
|
1009
|
+
], SheetElement.prototype, "position", null);
|
|
1010
|
+
__decorate([
|
|
1011
|
+
Attribute({
|
|
1012
|
+
type: Array,
|
|
1013
|
+
converter: {
|
|
1014
|
+
fromAttribute: (value) => {
|
|
1015
|
+
if (!value?.trim()) {
|
|
1016
|
+
return [];
|
|
1017
|
+
}
|
|
1018
|
+
return value.trim().split(/\s+/).map((entry) => {
|
|
1019
|
+
if (entry === SheetSnap.Content) {
|
|
1020
|
+
return SheetSnap.Content;
|
|
1021
|
+
}
|
|
1022
|
+
const parsed = CssLength.tryParse(entry);
|
|
1023
|
+
if (parsed === undefined || parsed === 'auto') {
|
|
1024
|
+
throw new TypeError(`Invalid sheet snap "${entry}". Use a CSS length or "content".`);
|
|
1025
|
+
}
|
|
1026
|
+
return parsed;
|
|
1027
|
+
});
|
|
1028
|
+
},
|
|
1029
|
+
toAttribute: (value) => value.map((entry) => typeof entry === 'number' ? `${entry}px` : entry).join(' ')
|
|
1030
|
+
}
|
|
1031
|
+
}),
|
|
1032
|
+
__metadata("design:type", Array),
|
|
1033
|
+
__metadata("design:paramtypes", [Array])
|
|
1034
|
+
], SheetElement.prototype, "snaps", null);
|
|
1035
|
+
__decorate([
|
|
1036
|
+
Attribute({ type: Number }),
|
|
1037
|
+
__metadata("design:type", Number),
|
|
1038
|
+
__metadata("design:paramtypes", [Number])
|
|
1039
|
+
], SheetElement.prototype, "activeSnapIndex", null);
|
|
1040
|
+
__decorate([
|
|
1041
|
+
Attribute({ type: Number }),
|
|
1042
|
+
__metadata("design:type", Number),
|
|
1043
|
+
__metadata("design:paramtypes", [Number])
|
|
1044
|
+
], SheetElement.prototype, "closeThreshold", null);
|
|
1045
|
+
__decorate([
|
|
1046
|
+
Attribute({ type: Boolean, useDefault: true }),
|
|
1047
|
+
__metadata("design:type", Boolean),
|
|
1048
|
+
__metadata("design:paramtypes", [Boolean])
|
|
1049
|
+
], SheetElement.prototype, "elastic", null);
|
|
1050
|
+
__decorate([
|
|
1051
|
+
Attribute({ type: Boolean, useDefault: true }),
|
|
1052
|
+
__metadata("design:type", Boolean),
|
|
1053
|
+
__metadata("design:paramtypes", [Boolean])
|
|
1054
|
+
], SheetElement.prototype, "inertia", null);
|
|
1055
|
+
__decorate([
|
|
1056
|
+
Attribute({ type: SheetDragMode }),
|
|
1057
|
+
__metadata("design:type", String),
|
|
1058
|
+
__metadata("design:paramtypes", [String])
|
|
1059
|
+
], SheetElement.prototype, "dragMode", null);
|
|
1060
|
+
__decorate([
|
|
1061
|
+
Attribute({ type: Boolean, useDefault: true }),
|
|
1062
|
+
__metadata("design:type", Boolean),
|
|
1063
|
+
__metadata("design:paramtypes", [Boolean])
|
|
1064
|
+
], SheetElement.prototype, "hasHandle", null);
|
|
1065
|
+
__decorate([
|
|
1066
|
+
Attribute({ type: Boolean, useDefault: true }),
|
|
1067
|
+
__metadata("design:type", Boolean),
|
|
1068
|
+
__metadata("design:paramtypes", [Boolean])
|
|
1069
|
+
], SheetElement.prototype, "hasSnapIndicator", null);
|
|
1070
|
+
__decorate([
|
|
1071
|
+
Attribute({ type: Boolean, useDefault: true }),
|
|
1072
|
+
__metadata("design:type", Boolean),
|
|
1073
|
+
__metadata("design:paramtypes", [Boolean])
|
|
1074
|
+
], SheetElement.prototype, "isModal", null);
|
|
1075
|
+
__decorate([
|
|
1076
|
+
Emit(),
|
|
1077
|
+
__metadata("design:type", Object),
|
|
1078
|
+
__metadata("design:paramtypes", [])
|
|
1079
|
+
], SheetElement.prototype, "activeSnapChanged", null);
|
|
1080
|
+
__decorate([
|
|
1081
|
+
Emit(),
|
|
1082
|
+
__metadata("design:type", Object),
|
|
1083
|
+
__metadata("design:paramtypes", [])
|
|
1084
|
+
], SheetElement.prototype, "dragStart", null);
|
|
1085
|
+
__decorate([
|
|
1086
|
+
Emit(),
|
|
1087
|
+
__metadata("design:type", Object),
|
|
1088
|
+
__metadata("design:paramtypes", [])
|
|
1089
|
+
], SheetElement.prototype, "dragging", null);
|
|
1090
|
+
__decorate([
|
|
1091
|
+
Emit(),
|
|
1092
|
+
__metadata("design:type", Object),
|
|
1093
|
+
__metadata("design:paramtypes", [])
|
|
1094
|
+
], SheetElement.prototype, "dragEnd", null);
|
|
1095
|
+
__decorate([
|
|
1096
|
+
Watch('isOpen', { waitUntilFirstUpdate: true }),
|
|
1097
|
+
__metadata("design:type", Function),
|
|
1098
|
+
__metadata("design:paramtypes", [Boolean, Boolean]),
|
|
1099
|
+
__metadata("design:returntype", void 0)
|
|
1100
|
+
], SheetElement.prototype, "onIsOpenPropertyChanged", null);
|
|
1101
|
+
__decorate([
|
|
1102
|
+
Watch('hasBackdrop'),
|
|
1103
|
+
__metadata("design:type", Function),
|
|
1104
|
+
__metadata("design:paramtypes", [Boolean, Boolean]),
|
|
1105
|
+
__metadata("design:returntype", void 0)
|
|
1106
|
+
], SheetElement.prototype, "onSheetHasBackdropPropertyChanged", null);
|
|
1107
|
+
__decorate([
|
|
1108
|
+
Watch('height'),
|
|
1109
|
+
__metadata("design:type", Function),
|
|
1110
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
1111
|
+
__metadata("design:returntype", void 0)
|
|
1112
|
+
], SheetElement.prototype, "onHeightPropertyChanged", null);
|
|
1113
|
+
__decorate([
|
|
1114
|
+
Watch('position'),
|
|
1115
|
+
__metadata("design:type", Function),
|
|
1116
|
+
__metadata("design:paramtypes", [String, String]),
|
|
1117
|
+
__metadata("design:returntype", void 0)
|
|
1118
|
+
], SheetElement.prototype, "onPositionPropertyChanged", null);
|
|
1119
|
+
__decorate([
|
|
1120
|
+
Watch('snaps'),
|
|
1121
|
+
__metadata("design:type", Function),
|
|
1122
|
+
__metadata("design:paramtypes", [Array, Array]),
|
|
1123
|
+
__metadata("design:returntype", void 0)
|
|
1124
|
+
], SheetElement.prototype, "onSnapsPropertyChanged", null);
|
|
1125
|
+
__decorate([
|
|
1126
|
+
Watch('activeSnapIndex'),
|
|
1127
|
+
__metadata("design:type", Function),
|
|
1128
|
+
__metadata("design:paramtypes", [Number, Number]),
|
|
1129
|
+
__metadata("design:returntype", void 0)
|
|
1130
|
+
], SheetElement.prototype, "onActiveSnapIndexPropertyChanged", null);
|
|
1131
|
+
__decorate([
|
|
1132
|
+
Watch('isModal'),
|
|
1133
|
+
__metadata("design:type", Function),
|
|
1134
|
+
__metadata("design:paramtypes", [Boolean, Boolean]),
|
|
1135
|
+
__metadata("design:returntype", void 0)
|
|
1136
|
+
], SheetElement.prototype, "onIsModalPropertyChanged", null);
|
|
1137
|
+
__decorate([
|
|
1138
|
+
Watch('hasSnapIndicator', { waitUntilFirstUpdate: true }),
|
|
1139
|
+
__metadata("design:type", Function),
|
|
1140
|
+
__metadata("design:paramtypes", [Boolean, Boolean]),
|
|
1141
|
+
__metadata("design:returntype", void 0)
|
|
1142
|
+
], SheetElement.prototype, "onHasSnapIndicatorPropertyChanged", null);
|
|
338
1143
|
SheetElement = __decorate([
|
|
339
1144
|
Component({
|
|
340
1145
|
selector: 'mosaik-sheet',
|
|
@@ -344,12 +1149,7 @@ SheetElement = __decorate([
|
|
|
344
1149
|
memphis: sheetElementMemphisStyle,
|
|
345
1150
|
cosmopolitan: sheetElementCosmopolitanStyle
|
|
346
1151
|
},
|
|
347
|
-
imports: [
|
|
348
|
-
BackdropElement,
|
|
349
|
-
SheetHeaderElement,
|
|
350
|
-
SheetContentElement,
|
|
351
|
-
SheetFooterElement
|
|
352
|
-
]
|
|
1152
|
+
imports: [BackdropElement, SheetHeaderElement, SheetContentElement, SheetFooterElement]
|
|
353
1153
|
}),
|
|
354
1154
|
__metadata("design:paramtypes", [])
|
|
355
1155
|
], SheetElement);
|