@ui5/webcomponents 2.7.0-rc.0 → 2.7.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/cypress/specs/Card.cy.ts +51 -0
- package/cypress/specs/ColorPicker.cy.ts +98 -0
- package/cypress/specs/Label.cy.ts +128 -0
- package/cypress/specs/Tag.cy.ts +76 -0
- package/cypress/specs/Text.cy.ts +31 -0
- package/cypress/specs/Title.cy.ts +37 -0
- package/cypress/specs/Toolbar.cy.ts +49 -0
- package/cypress/support/commands/ColorPalette.commands.ts +6 -0
- package/cypress/support/commands/ColorPicker.commands.ts +24 -0
- package/cypress/support/commands.ts +3 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/CardHeader.d.ts +1 -1
- package/dist/CardHeader.js +1 -1
- package/dist/CardHeader.js.map +1 -1
- package/dist/CardHeaderTemplate.js +1 -1
- package/dist/CardHeaderTemplate.js.map +1 -1
- package/dist/ColorPalette.d.ts +20 -12
- package/dist/ColorPalette.js +37 -32
- package/dist/ColorPalette.js.map +1 -1
- package/dist/ColorPaletteTemplate.js +2 -2
- package/dist/ColorPaletteTemplate.js.map +1 -1
- package/dist/ColorPicker.d.ts +30 -28
- package/dist/ColorPicker.js +145 -99
- package/dist/ColorPicker.js.map +1 -1
- package/dist/ColorPickerTemplate.js +5 -3
- package/dist/ColorPickerTemplate.js.map +1 -1
- package/dist/DateTimeInput.d.ts +20 -0
- package/dist/DateTimeInput.js +44 -0
- package/dist/DateTimeInput.js.map +1 -0
- package/dist/Input.d.ts +5 -1
- package/dist/Input.js +14 -12
- package/dist/Input.js.map +1 -1
- package/dist/Popup.js +0 -2
- package/dist/Popup.js.map +1 -1
- package/dist/TabContainer.js +3 -3
- package/dist/TabContainer.js.map +1 -1
- package/dist/TimePicker.d.ts +21 -1
- package/dist/TimePicker.js +44 -2
- package/dist/TimePicker.js.map +1 -1
- package/dist/TimePickerPopoverTemplate.js +29 -2
- package/dist/TimePickerPopoverTemplate.js.map +1 -1
- package/dist/TimePickerTemplate.js +4 -3
- package/dist/TimePickerTemplate.js.map +1 -1
- package/dist/Toolbar.d.ts +1 -3
- package/dist/Toolbar.js +3 -42
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarButton.d.ts +1 -5
- package/dist/ToolbarButton.js +6 -4
- package/dist/ToolbarButton.js.map +1 -1
- package/dist/ToolbarButtonTemplate.js +1 -1
- package/dist/ToolbarButtonTemplate.js.map +1 -1
- package/dist/ToolbarItem.d.ts +6 -17
- package/dist/ToolbarItem.js +18 -8
- package/dist/ToolbarItem.js.map +1 -1
- package/dist/ToolbarPopoverButtonTemplate.js +1 -1
- package/dist/ToolbarPopoverButtonTemplate.js.map +1 -1
- package/dist/ToolbarPopoverSelectTemplate.js +1 -1
- package/dist/ToolbarPopoverSelectTemplate.js.map +1 -1
- package/dist/ToolbarSelect.d.ts +9 -11
- package/dist/ToolbarSelect.js +41 -41
- package/dist/ToolbarSelect.js.map +1 -1
- package/dist/ToolbarSelectTemplate.js +1 -1
- package/dist/ToolbarSelectTemplate.js.map +1 -1
- package/dist/ToolbarTemplate.js +1 -1
- package/dist/ToolbarTemplate.js.map +1 -1
- package/dist/TreeItemCustom.js +5 -1
- package/dist/TreeItemCustom.js.map +1 -1
- package/dist/bundle.esm.d.ts +0 -2
- package/dist/bundle.esm.js +0 -5
- package/dist/bundle.esm.js.map +1 -1
- package/dist/colorpicker-utils/ColorValue.d.ts +53 -0
- package/dist/colorpicker-utils/ColorValue.js +143 -0
- package/dist/colorpicker-utils/ColorValue.js.map +1 -0
- package/dist/css/themes/Avatar.css +1 -1
- package/dist/css/themes/AvatarGroup.css +1 -1
- package/dist/css/themes/Bar.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Calendar.css +1 -1
- package/dist/css/themes/CalendarHeader.css +1 -1
- package/dist/css/themes/CalendarLegend.css +1 -1
- package/dist/css/themes/CalendarLegendItem.css +1 -1
- package/dist/css/themes/Card.css +1 -1
- package/dist/css/themes/CardHeader.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/CheckBox.css +1 -1
- package/dist/css/themes/ColorPalette.css +1 -1
- package/dist/css/themes/ColorPaletteItem.css +1 -1
- package/dist/css/themes/ColorPalettePopover.css +1 -1
- package/dist/css/themes/ColorPicker.css +1 -1
- package/dist/css/themes/ComboBox.css +1 -1
- package/dist/css/themes/ComboBoxItem.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/DateTimePickerPopover.css +1 -1
- package/dist/css/themes/DayPicker.css +1 -1
- package/dist/css/themes/Dialog.css +1 -1
- package/dist/css/themes/FileUploader.css +1 -1
- package/dist/css/themes/Form.css +1 -1
- package/dist/css/themes/FormItem.css +1 -1
- package/dist/css/themes/FormItemSpan.css +1 -1
- package/dist/css/themes/GrowingButton.css +1 -1
- package/dist/css/themes/Icon.css +1 -1
- package/dist/css/themes/Input.css +1 -1
- package/dist/css/themes/InputIcon.css +1 -1
- package/dist/css/themes/InputSharedStyles.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/ListItemBase.css +1 -1
- package/dist/css/themes/ListItemCustom.css +1 -1
- package/dist/css/themes/ListItemGroup.css +1 -1
- package/dist/css/themes/ListItemGroupHeader.css +1 -1
- package/dist/css/themes/ListItemIcon.css +1 -1
- package/dist/css/themes/Menu.css +1 -1
- package/dist/css/themes/MenuItem.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/MonthPicker.css +1 -1
- package/dist/css/themes/MultiComboBox.css +1 -1
- package/dist/css/themes/MultiComboBoxItem.css +1 -1
- package/dist/css/themes/MultiComboBoxPopover.css +1 -1
- package/dist/css/themes/MultiInput.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -1
- package/dist/css/themes/OptionBase.css +1 -1
- package/dist/css/themes/Panel.css +1 -1
- package/dist/css/themes/Popover.css +1 -1
- package/dist/css/themes/PopupsCommon.css +1 -1
- package/dist/css/themes/ProgressIndicator.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RangeSlider.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/ResponsivePopover.css +1 -1
- package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SegmentedButtonItem.css +1 -1
- package/dist/css/themes/Select.css +1 -1
- package/dist/css/themes/SliderBase.css +1 -1
- package/dist/css/themes/SplitButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/SuggestionItem.css +1 -1
- package/dist/css/themes/SuggestionItemCustom.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabContainer.css +1 -1
- package/dist/css/themes/TabInOverflow.css +1 -1
- package/dist/css/themes/TabInStrip.css +1 -1
- package/dist/css/themes/TabSemanticIcon.css +1 -1
- package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/TableHeaderRow.css +1 -1
- package/dist/css/themes/TableRow.css +1 -1
- package/dist/css/themes/TableRowActionBase.css +1 -1
- package/dist/css/themes/TableRowBase.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/Text.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TimePicker.css +1 -1
- package/dist/css/themes/TimePickerPopover.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/ToggleButton.css +1 -1
- package/dist/css/themes/Token.css +1 -1
- package/dist/css/themes/Tokenizer.css +1 -1
- package/dist/css/themes/TokenizerPopover.css +1 -1
- package/dist/css/themes/Toolbar.css +1 -1
- package/dist/css/themes/ToolbarPopover.css +1 -1
- package/dist/css/themes/TreeItem.css +1 -1
- package/dist/css/themes/ValueStateMessage.css +1 -1
- package/dist/css/themes/YearPicker.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +24 -3
- package/dist/custom-elements.json +24 -3
- package/dist/features/ColorPaletteMoreColors.d.ts +1 -11
- package/dist/features/ColorPaletteMoreColors.js +3 -18
- package/dist/features/ColorPaletteMoreColors.js.map +1 -1
- package/dist/features/ColorPaletteMoreColorsTemplate.js +1 -1
- package/dist/features/ColorPaletteMoreColorsTemplate.js.map +1 -1
- package/dist/features/InputSuggestions.d.ts +1 -2
- package/dist/features/InputSuggestions.js +3 -5
- package/dist/features/InputSuggestions.js.map +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +5 -1
- package/dist/generated/i18n/i18n-defaults.js +6 -2
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Avatar.css.d.ts +1 -1
- package/dist/generated/themes/Avatar.css.js +1 -1
- package/dist/generated/themes/Avatar.css.js.map +1 -1
- package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
- package/dist/generated/themes/AvatarGroup.css.js +1 -1
- package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
- package/dist/generated/themes/Bar.css.d.ts +1 -1
- package/dist/generated/themes/Bar.css.js +1 -1
- package/dist/generated/themes/Bar.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
- package/dist/generated/themes/BusyIndicator.css.js +1 -1
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Calendar.css.d.ts +1 -1
- package/dist/generated/themes/Calendar.css.js +1 -1
- package/dist/generated/themes/Calendar.css.js.map +1 -1
- package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
- package/dist/generated/themes/CalendarHeader.css.js +1 -1
- package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegend.css.js +1 -1
- package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
- package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
- package/dist/generated/themes/Card.css.d.ts +1 -1
- package/dist/generated/themes/Card.css.js +1 -1
- package/dist/generated/themes/Card.css.js.map +1 -1
- package/dist/generated/themes/CardHeader.css.d.ts +1 -1
- package/dist/generated/themes/CardHeader.css.js +1 -1
- package/dist/generated/themes/CardHeader.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/CheckBox.css.d.ts +1 -1
- package/dist/generated/themes/CheckBox.css.js +1 -1
- package/dist/generated/themes/CheckBox.css.js.map +1 -1
- package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalette.css.js +1 -1
- package/dist/generated/themes/ColorPalette.css.js.map +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
- package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
- package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
- package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
- package/dist/generated/themes/ColorPicker.css.js +1 -1
- package/dist/generated/themes/ColorPicker.css.js.map +1 -1
- package/dist/generated/themes/ComboBox.css.d.ts +1 -1
- package/dist/generated/themes/ComboBox.css.js +1 -1
- package/dist/generated/themes/ComboBox.css.js.map +1 -1
- package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js +1 -1
- package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/DatePicker.css.d.ts +1 -1
- package/dist/generated/themes/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
- package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/DayPicker.css.d.ts +1 -1
- package/dist/generated/themes/DayPicker.css.js +1 -1
- package/dist/generated/themes/DayPicker.css.js.map +1 -1
- package/dist/generated/themes/Dialog.css.d.ts +1 -1
- package/dist/generated/themes/Dialog.css.js +1 -1
- package/dist/generated/themes/Dialog.css.js.map +1 -1
- package/dist/generated/themes/FileUploader.css.d.ts +1 -1
- package/dist/generated/themes/FileUploader.css.js +1 -1
- package/dist/generated/themes/FileUploader.css.js.map +1 -1
- package/dist/generated/themes/Form.css.d.ts +1 -1
- package/dist/generated/themes/Form.css.js +1 -1
- package/dist/generated/themes/Form.css.js.map +1 -1
- package/dist/generated/themes/FormItem.css.d.ts +1 -1
- package/dist/generated/themes/FormItem.css.js +1 -1
- package/dist/generated/themes/FormItem.css.js.map +1 -1
- package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
- package/dist/generated/themes/FormItemSpan.css.js +1 -1
- package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
- package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
- package/dist/generated/themes/GrowingButton.css.js +1 -1
- package/dist/generated/themes/GrowingButton.css.js.map +1 -1
- package/dist/generated/themes/Icon.css.d.ts +1 -1
- package/dist/generated/themes/Icon.css.js +1 -1
- package/dist/generated/themes/Icon.css.js.map +1 -1
- package/dist/generated/themes/Input.css.d.ts +1 -1
- package/dist/generated/themes/Input.css.js +1 -1
- package/dist/generated/themes/Input.css.js.map +1 -1
- package/dist/generated/themes/InputIcon.css.d.ts +1 -1
- package/dist/generated/themes/InputIcon.css.js +1 -1
- package/dist/generated/themes/InputIcon.css.js.map +1 -1
- package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js +1 -1
- package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.d.ts +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/ListItemBase.css.js +1 -1
- package/dist/generated/themes/ListItemBase.css.js.map +1 -1
- package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/ListItemCustom.css.js +1 -1
- package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroup.css.js +1 -1
- package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
- package/dist/generated/themes/ListItemIcon.css.js +1 -1
- package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
- package/dist/generated/themes/Menu.css.d.ts +1 -1
- package/dist/generated/themes/Menu.css.js +1 -1
- package/dist/generated/themes/Menu.css.js.map +1 -1
- package/dist/generated/themes/MenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MenuItem.css.js +1 -1
- package/dist/generated/themes/MenuItem.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
- package/dist/generated/themes/MonthPicker.css.js +1 -1
- package/dist/generated/themes/MonthPicker.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBox.css.js +1 -1
- package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
- package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
- package/dist/generated/themes/MultiInput.css.d.ts +1 -1
- package/dist/generated/themes/MultiInput.css.js +1 -1
- package/dist/generated/themes/MultiInput.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
- package/dist/generated/themes/OptionBase.css.d.ts +1 -1
- package/dist/generated/themes/OptionBase.css.js +1 -1
- package/dist/generated/themes/OptionBase.css.js.map +1 -1
- package/dist/generated/themes/Panel.css.d.ts +1 -1
- package/dist/generated/themes/Panel.css.js +1 -1
- package/dist/generated/themes/Panel.css.js.map +1 -1
- package/dist/generated/themes/Popover.css.d.ts +1 -1
- package/dist/generated/themes/Popover.css.js +1 -1
- package/dist/generated/themes/Popover.css.js.map +1 -1
- package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
- package/dist/generated/themes/PopupsCommon.css.js +1 -1
- package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
- package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js +1 -1
- package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
- package/dist/generated/themes/RadioButton.css.d.ts +1 -1
- package/dist/generated/themes/RadioButton.css.js +1 -1
- package/dist/generated/themes/RadioButton.css.js.map +1 -1
- package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
- package/dist/generated/themes/RangeSlider.css.js +1 -1
- package/dist/generated/themes/RangeSlider.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js +1 -1
- package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
- package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
- package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
- package/dist/generated/themes/Select.css.d.ts +1 -1
- package/dist/generated/themes/Select.css.js +1 -1
- package/dist/generated/themes/Select.css.js.map +1 -1
- package/dist/generated/themes/SliderBase.css.d.ts +1 -1
- package/dist/generated/themes/SliderBase.css.js +1 -1
- package/dist/generated/themes/SliderBase.css.js.map +1 -1
- package/dist/generated/themes/SplitButton.css.d.ts +1 -1
- package/dist/generated/themes/SplitButton.css.js +1 -1
- package/dist/generated/themes/SplitButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItem.css.js +1 -1
- package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
- package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabContainer.css.d.ts +1 -1
- package/dist/generated/themes/TabContainer.css.js +1 -1
- package/dist/generated/themes/TabContainer.css.js.map +1 -1
- package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabInOverflow.css.js +1 -1
- package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
- package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
- package/dist/generated/themes/TabInStrip.css.js +1 -1
- package/dist/generated/themes/TabInStrip.css.js.map +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
- package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
- package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js +1 -1
- package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
- package/dist/generated/themes/TableRow.css.d.ts +1 -1
- package/dist/generated/themes/TableRow.css.js +1 -1
- package/dist/generated/themes/TableRow.css.js.map +1 -1
- package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js +1 -1
- package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
- package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
- package/dist/generated/themes/TableRowBase.css.js +1 -1
- package/dist/generated/themes/TableRowBase.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/Text.css.d.ts +1 -1
- package/dist/generated/themes/Text.css.js +1 -1
- package/dist/generated/themes/Text.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TimePicker.css.d.ts +1 -1
- package/dist/generated/themes/TimePicker.css.js +1 -1
- package/dist/generated/themes/TimePicker.css.js.map +1 -1
- package/dist/generated/themes/TimePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/TimePickerPopover.css.js +1 -1
- package/dist/generated/themes/TimePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
- package/dist/generated/themes/ToggleButton.css.js +1 -1
- package/dist/generated/themes/ToggleButton.css.js.map +1 -1
- package/dist/generated/themes/Token.css.d.ts +1 -1
- package/dist/generated/themes/Token.css.js +1 -1
- package/dist/generated/themes/Token.css.js.map +1 -1
- package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
- package/dist/generated/themes/Tokenizer.css.js +1 -1
- package/dist/generated/themes/Tokenizer.css.js.map +1 -1
- package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js +1 -1
- package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
- package/dist/generated/themes/Toolbar.css.d.ts +1 -1
- package/dist/generated/themes/Toolbar.css.js +1 -1
- package/dist/generated/themes/Toolbar.css.js.map +1 -1
- package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js +1 -1
- package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
- package/dist/generated/themes/TreeItem.css.d.ts +1 -1
- package/dist/generated/themes/TreeItem.css.js +1 -1
- package/dist/generated/themes/TreeItem.css.js.map +1 -1
- package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js +1 -1
- package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
- package/dist/generated/themes/YearPicker.css.d.ts +1 -1
- package/dist/generated/themes/YearPicker.css.js +1 -1
- package/dist/generated/themes/YearPicker.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/web-types.json +1 -1
- package/package.json +13 -10
- package/src/CardHeaderTemplate.tsx +1 -2
- package/src/ColorPaletteTemplate.tsx +2 -2
- package/src/ColorPickerTemplate.tsx +37 -37
- package/src/TimePickerPopoverTemplate.tsx +48 -1
- package/src/TimePickerTemplate.tsx +7 -5
- package/src/ToolbarButtonTemplate.tsx +1 -0
- package/src/ToolbarPopoverButtonTemplate.tsx +1 -0
- package/src/ToolbarPopoverSelectTemplate.tsx +4 -0
- package/src/ToolbarSelectTemplate.tsx +4 -0
- package/src/ToolbarTemplate.tsx +1 -0
- package/src/features/ColorPaletteMoreColorsTemplate.tsx +2 -2
- package/src/i18n/messagebundle.properties +17 -5
- package/src/i18n/messagebundle_de.properties +1 -1
- package/src/i18n/messagebundle_en.properties +3 -1
- package/src/i18n/messagebundle_en_US_sappsd.properties +3 -1
- package/src/i18n/messagebundle_en_US_saprigi.properties +3 -1
- package/src/i18n/messagebundle_en_US_saptrc.properties +3 -1
- package/src/themes/ColorPicker.css +20 -4
- package/src/themes/TabInOverflow.css +6 -6
- package/src/themes/TimePicker.css +4 -0
- package/src/themes/TimePickerPopover.css +5 -0
- package/src/themes/base/TabContainer-parameters.css +2 -1
- package/src/themes/base/sizes-parameters.css +6 -0
- package/src/themes/sap_fiori_3_hcb/TabContainer-parameters.css +2 -1
- package/src/themes/sap_fiori_3_hcw/TabContainer-parameters.css +2 -1
- package/src/themes/sap_horizon_hcb/TabContainer-parameters.css +2 -1
- package/src/themes/sap_horizon_hcw/TabContainer-parameters.css +2 -1
- package/vitest.config.js +9 -0
package/dist/ColorPicker.d.ts
CHANGED
|
@@ -3,10 +3,19 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
|
3
3
|
import type ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
|
|
4
4
|
import type { IFormInputElement } from "@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js";
|
|
5
5
|
import type { ColorRGB } from "@ui5/webcomponents-base/dist/util/ColorConversion.js";
|
|
6
|
+
import "@ui5/webcomponents-icons/dist/expand.js";
|
|
7
|
+
import ColorValue from "./colorpicker-utils/ColorValue.js";
|
|
6
8
|
type ColorCoordinates = {
|
|
7
9
|
x: number;
|
|
8
10
|
y: number;
|
|
9
11
|
};
|
|
12
|
+
type ColorChannelInput = {
|
|
13
|
+
id: string;
|
|
14
|
+
value: number;
|
|
15
|
+
accessibleName: string;
|
|
16
|
+
label: string;
|
|
17
|
+
showPercentSymbol?: boolean;
|
|
18
|
+
};
|
|
10
19
|
/**
|
|
11
20
|
* @class
|
|
12
21
|
*
|
|
@@ -60,23 +69,16 @@ declare class ColorPicker extends UI5Element implements IFormInputElement {
|
|
|
60
69
|
* @since 2.5.0
|
|
61
70
|
*/
|
|
62
71
|
simplified: boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Defines the HEX code of the currently selected color
|
|
65
|
-
*
|
|
66
|
-
* **Note**: If Alpha(transperancy) is set it is not included in this property. Use `color` property.
|
|
67
|
-
* @private
|
|
68
|
-
*/
|
|
69
|
-
hex: string;
|
|
70
72
|
/**
|
|
71
73
|
* Defines the current main color which is selected via the hue slider and is shown in the main color square.
|
|
72
74
|
* @private
|
|
73
75
|
*/
|
|
74
76
|
_mainValue: ColorRGB;
|
|
75
77
|
/**
|
|
76
|
-
* Defines the currenty selected color
|
|
78
|
+
* Defines the currenty selected color.
|
|
77
79
|
* @private
|
|
78
80
|
*/
|
|
79
|
-
|
|
81
|
+
_colorValue: ColorValue;
|
|
80
82
|
/**
|
|
81
83
|
* @private
|
|
82
84
|
*/
|
|
@@ -101,6 +103,10 @@ declare class ColorPicker extends UI5Element implements IFormInputElement {
|
|
|
101
103
|
* @private
|
|
102
104
|
*/
|
|
103
105
|
_wrongHEX: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
_displayHSL: boolean;
|
|
104
110
|
selectedHue: number;
|
|
105
111
|
mouseDown: boolean;
|
|
106
112
|
mouseIn: boolean;
|
|
@@ -113,12 +119,13 @@ declare class ColorPicker extends UI5Element implements IFormInputElement {
|
|
|
113
119
|
_handleMouseUp(): void;
|
|
114
120
|
_handleMouseOut(e: MouseEvent): void;
|
|
115
121
|
_handleMouseMove(e: MouseEvent): void;
|
|
116
|
-
|
|
122
|
+
_handleAlphaInput(e: CustomEvent): void;
|
|
117
123
|
_handleHueInput(e: CustomEvent): void;
|
|
118
124
|
_handleHEXChange(e: CustomEvent | KeyboardEvent): void;
|
|
119
|
-
|
|
125
|
+
_togglePickerMode(): void;
|
|
126
|
+
_handleColorInputChange(e: Event): void;
|
|
120
127
|
_setMainColor(hueValue: number): void;
|
|
121
|
-
_handleAlphaChange(
|
|
128
|
+
_handleAlphaChange(): void;
|
|
122
129
|
_changeSelectedColor(x: number, y: number): void;
|
|
123
130
|
_onkeydown(e: KeyboardEvent): void;
|
|
124
131
|
_calculateColorFromCoordinates(x: number, y: number): {
|
|
@@ -126,31 +133,26 @@ declare class ColorPicker extends UI5Element implements IFormInputElement {
|
|
|
126
133
|
s: number;
|
|
127
134
|
l: number;
|
|
128
135
|
} | undefined;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
_setValues(): void;
|
|
136
|
+
_setValue(color: string): void;
|
|
137
|
+
_updateColorGrid(): void;
|
|
138
|
+
_isColorValueEqual(value: ColorRGB): boolean;
|
|
133
139
|
get hueSliderLabel(): string;
|
|
134
140
|
get alphaSliderLabel(): string;
|
|
135
141
|
get hexInputLabel(): string;
|
|
136
142
|
get redInputLabel(): string;
|
|
137
143
|
get greenInputLabel(): string;
|
|
138
144
|
get blueInputLabel(): string;
|
|
145
|
+
get hueInputLabel(): string;
|
|
146
|
+
get saturationInputLabel(): string;
|
|
147
|
+
get lightInputLabel(): string;
|
|
139
148
|
get alphaInputLabel(): string;
|
|
149
|
+
get toggleModeTooltip(): string;
|
|
140
150
|
get inputsDisabled(): true | undefined;
|
|
141
151
|
get hexInputErrorState(): `${ValueState}`;
|
|
152
|
+
get rgbInputs(): Array<ColorChannelInput>;
|
|
153
|
+
get hslInputs(): Array<ColorChannelInput>;
|
|
154
|
+
get HEX(): string;
|
|
155
|
+
get colorChannelInputs(): ColorChannelInput[];
|
|
142
156
|
get _isDefaultPickerMode(): boolean;
|
|
143
|
-
get styles(): {
|
|
144
|
-
mainColor: {
|
|
145
|
-
"background-color": string;
|
|
146
|
-
};
|
|
147
|
-
circle: {
|
|
148
|
-
left: string;
|
|
149
|
-
top: string;
|
|
150
|
-
};
|
|
151
|
-
colorSpan: {
|
|
152
|
-
"background-color": string;
|
|
153
|
-
};
|
|
154
|
-
};
|
|
155
157
|
}
|
|
156
158
|
export default ColorPicker;
|
package/dist/ColorPicker.js
CHANGED
|
@@ -13,9 +13,11 @@ import { isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
|
13
13
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
14
14
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
15
15
|
import { getScopedVarName } from "@ui5/webcomponents-base/dist/CustomElementsScope.js";
|
|
16
|
-
import { getRGBColor, getAlpha,
|
|
16
|
+
import { getRGBColor, getAlpha, } from "@ui5/webcomponents-base/dist/util/ColorConversion.js";
|
|
17
|
+
import "@ui5/webcomponents-icons/dist/expand.js";
|
|
18
|
+
import ColorValue from "./colorpicker-utils/ColorValue.js";
|
|
17
19
|
import ColorPickerTemplate from "./ColorPickerTemplate.js";
|
|
18
|
-
import { COLORPICKER_ALPHA_SLIDER, COLORPICKER_HUE_SLIDER, COLORPICKER_HEX, COLORPICKER_RED, COLORPICKER_GREEN, COLORPICKER_BLUE, COLORPICKER_ALPHA, } from "./generated/i18n/i18n-defaults.js";
|
|
20
|
+
import { COLORPICKER_ALPHA_SLIDER, COLORPICKER_HUE_SLIDER, COLORPICKER_HEX, COLORPICKER_RED, COLORPICKER_GREEN, COLORPICKER_BLUE, COLORPICKER_ALPHA, COLORPICKER_SATURATION, COLORPICKER_LIGHT, COLORPICKER_HUE, COLORPICKER_TOGGLE_MODE_TOOLTIP, } from "./generated/i18n/i18n-defaults.js";
|
|
19
21
|
// Styles
|
|
20
22
|
import ColorPickerCss from "./generated/themes/ColorPicker.css.js";
|
|
21
23
|
const PICKER_POINTER_WIDTH = 6.5;
|
|
@@ -68,18 +70,6 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
68
70
|
* @since 2.5.0
|
|
69
71
|
*/
|
|
70
72
|
this.simplified = false;
|
|
71
|
-
/**
|
|
72
|
-
* Defines the HEX code of the currently selected color
|
|
73
|
-
*
|
|
74
|
-
* **Note**: If Alpha(transperancy) is set it is not included in this property. Use `color` property.
|
|
75
|
-
* @private
|
|
76
|
-
*/
|
|
77
|
-
this.hex = "ffffff";
|
|
78
|
-
/**
|
|
79
|
-
* Defines the currenty selected color from the main color section.
|
|
80
|
-
* @private
|
|
81
|
-
*/
|
|
82
|
-
this._value = getRGBColor(this.value);
|
|
83
73
|
/**
|
|
84
74
|
* @private
|
|
85
75
|
*/
|
|
@@ -100,6 +90,11 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
100
90
|
* @private
|
|
101
91
|
*/
|
|
102
92
|
this._wrongHEX = false;
|
|
93
|
+
/**
|
|
94
|
+
* @private
|
|
95
|
+
*/
|
|
96
|
+
this._displayHSL = false;
|
|
97
|
+
this._colorValue = new ColorValue();
|
|
103
98
|
// Bottom Right corner
|
|
104
99
|
this._selectedCoordinates = {
|
|
105
100
|
x: 256 - PICKER_POINTER_WIDTH,
|
|
@@ -116,12 +111,17 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
116
111
|
this.mouseIn = false;
|
|
117
112
|
}
|
|
118
113
|
onBeforeRendering() {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this.
|
|
124
|
-
this.
|
|
114
|
+
const valueAsRGB = getRGBColor(this.value);
|
|
115
|
+
if (!this._isColorValueEqual(valueAsRGB)) {
|
|
116
|
+
this._colorValue.RGB = valueAsRGB;
|
|
117
|
+
}
|
|
118
|
+
const alpha = getAlpha(this.value);
|
|
119
|
+
if (alpha !== this._colorValue.Alpha) {
|
|
120
|
+
this._colorValue.Alpha = alpha;
|
|
121
|
+
this._alpha = this._colorValue.Alpha;
|
|
122
|
+
}
|
|
123
|
+
const tempColor = this._colorValue.toRGBString();
|
|
124
|
+
this._updateColorGrid();
|
|
125
125
|
this.style.setProperty(getScopedVarName("--ui5_Color_Picker_Progress_Container_Color"), tempColor);
|
|
126
126
|
}
|
|
127
127
|
_handleMouseDown(e) {
|
|
@@ -174,14 +174,16 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
174
174
|
}
|
|
175
175
|
this._changeSelectedColor(e.offsetX, e.offsetY);
|
|
176
176
|
}
|
|
177
|
-
|
|
177
|
+
_handleAlphaInput(e) {
|
|
178
178
|
const aphaInputValue = e.target.value;
|
|
179
179
|
this._alpha = parseFloat(aphaInputValue);
|
|
180
180
|
if (Number.isNaN(this._alpha)) {
|
|
181
181
|
this._alpha = 1;
|
|
182
182
|
}
|
|
183
|
+
this._colorValue.Alpha = this._alpha;
|
|
183
184
|
this._isHueValueChanged = true;
|
|
184
|
-
this.
|
|
185
|
+
const color = this._colorValue.toRGBString();
|
|
186
|
+
this._setValue(color);
|
|
185
187
|
}
|
|
186
188
|
_handleHueInput(e) {
|
|
187
189
|
this.selectedHue = e.target.value;
|
|
@@ -189,56 +191,61 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
189
191
|
this._setMainColor(this._hue);
|
|
190
192
|
// Idication that changes to the hue value triggered as a result of user pressing over the hue slider.
|
|
191
193
|
this._isHueValueChanged = true;
|
|
192
|
-
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
if (tempColor) {
|
|
196
|
-
this._setColor(HSLToRGB(tempColor));
|
|
197
|
-
}
|
|
194
|
+
this._colorValue.H = this._hue;
|
|
195
|
+
const color = this._colorValue.toRGBString();
|
|
196
|
+
this._setValue(color);
|
|
198
197
|
}
|
|
199
198
|
_handleHEXChange(e) {
|
|
200
|
-
const hexRegex = new RegExp("^[<0-9 abcdef]+$");
|
|
201
199
|
const input = e.target;
|
|
202
200
|
let inputValueLowerCase = input.value.toLowerCase();
|
|
203
201
|
// Shorthand Syntax
|
|
204
202
|
if (inputValueLowerCase.length === 3) {
|
|
205
203
|
inputValueLowerCase = `${inputValueLowerCase[0]}${inputValueLowerCase[0]}${inputValueLowerCase[1]}${inputValueLowerCase[1]}${inputValueLowerCase[2]}${inputValueLowerCase[2]}`;
|
|
206
204
|
}
|
|
207
|
-
|
|
208
|
-
|
|
205
|
+
this._colorValue.HEX = inputValueLowerCase;
|
|
206
|
+
const isValidColor = this._colorValue.isColorValueValid();
|
|
207
|
+
if (isValidColor && input.value !== inputValueLowerCase) {
|
|
209
208
|
this._wrongHEX = false;
|
|
210
209
|
input.value = inputValueLowerCase;
|
|
211
210
|
}
|
|
212
|
-
if (
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
this.hex = inputValueLowerCase;
|
|
216
|
-
if (!isNewValueValid) {
|
|
211
|
+
if (!isValidColor) {
|
|
217
212
|
this._wrongHEX = true;
|
|
218
213
|
}
|
|
219
214
|
else {
|
|
220
215
|
this._wrongHEX = false;
|
|
221
|
-
this.
|
|
216
|
+
const color = this._colorValue.toRGBString();
|
|
217
|
+
this._setValue(color);
|
|
222
218
|
}
|
|
223
219
|
}
|
|
224
|
-
|
|
220
|
+
_togglePickerMode() {
|
|
221
|
+
this._displayHSL = !this._displayHSL;
|
|
222
|
+
}
|
|
223
|
+
_handleColorInputChange(e) {
|
|
225
224
|
const target = e.target;
|
|
226
225
|
const targetValue = parseInt(target.value) || 0;
|
|
227
|
-
let tempColor;
|
|
228
226
|
switch (target.id) {
|
|
229
227
|
case "red":
|
|
230
|
-
|
|
228
|
+
this._colorValue.R = targetValue;
|
|
231
229
|
break;
|
|
232
230
|
case "green":
|
|
233
|
-
|
|
231
|
+
this._colorValue.G = targetValue;
|
|
234
232
|
break;
|
|
235
233
|
case "blue":
|
|
236
|
-
|
|
234
|
+
this._colorValue.B = targetValue;
|
|
235
|
+
break;
|
|
236
|
+
case "hue":
|
|
237
|
+
this._colorValue.H = targetValue;
|
|
238
|
+
break;
|
|
239
|
+
case "saturation":
|
|
240
|
+
this._colorValue.S = targetValue;
|
|
241
|
+
break;
|
|
242
|
+
case "light":
|
|
243
|
+
this._colorValue.L = targetValue;
|
|
237
244
|
break;
|
|
238
|
-
default:
|
|
239
|
-
tempColor = { ...this._value };
|
|
240
245
|
}
|
|
241
|
-
this.
|
|
246
|
+
const color = this._colorValue.toRGBString();
|
|
247
|
+
this._setValue(color);
|
|
248
|
+
this._updateColorGrid();
|
|
242
249
|
}
|
|
243
250
|
_setMainColor(hueValue) {
|
|
244
251
|
const hueValueMod = hueValue * 4.251;
|
|
@@ -285,10 +292,10 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
285
292
|
};
|
|
286
293
|
}
|
|
287
294
|
}
|
|
288
|
-
_handleAlphaChange(
|
|
289
|
-
this._handleAlphaInputFromSlider(e);
|
|
295
|
+
_handleAlphaChange() {
|
|
290
296
|
this._alpha = this._alpha < 0 ? 0 : this._alpha;
|
|
291
297
|
this._alpha = this._alpha > 1 ? 1 : this._alpha;
|
|
298
|
+
this._colorValue.Alpha = this._alpha;
|
|
292
299
|
}
|
|
293
300
|
_changeSelectedColor(x, y) {
|
|
294
301
|
this._selectedCoordinates = {
|
|
@@ -299,7 +306,9 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
299
306
|
this._isSelectedColorChanged = true;
|
|
300
307
|
const tempColor = this._calculateColorFromCoordinates(x, y);
|
|
301
308
|
if (tempColor) {
|
|
302
|
-
this.
|
|
309
|
+
this._colorValue.HSL = tempColor;
|
|
310
|
+
const color = this._colorValue.toRGBString();
|
|
311
|
+
this._setValue(color);
|
|
303
312
|
}
|
|
304
313
|
}
|
|
305
314
|
_onkeydown(e) {
|
|
@@ -313,46 +322,31 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
313
322
|
// 0 ≤ H < 360
|
|
314
323
|
// 4.251 because with 4.25 we get out of the colors range.
|
|
315
324
|
const h = this._hue;
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
const l = +(Math.round(parseFloat((x / 256) + "e+2")) + "e-2"); // eslint-disable-line
|
|
320
|
-
if (!s || !l) {
|
|
325
|
+
let s = +(1 - (y / 256)).toFixed(2);
|
|
326
|
+
let l = +(x / 256).toFixed(2);
|
|
327
|
+
if (Number.isNaN(s) || Number.isNaN(l)) {
|
|
321
328
|
// The event is finished out of the main color section
|
|
322
329
|
return;
|
|
323
330
|
}
|
|
331
|
+
// Normalize values to be between 0 and 1 in case of rounding issues
|
|
332
|
+
s = Math.max(0, Math.min(1, s));
|
|
333
|
+
l = Math.max(0, Math.min(1, l));
|
|
324
334
|
return {
|
|
325
|
-
h,
|
|
326
|
-
s,
|
|
327
|
-
l,
|
|
335
|
+
h: Math.round(h),
|
|
336
|
+
s: Math.round(s * 100),
|
|
337
|
+
l: Math.round(l * 100),
|
|
328
338
|
};
|
|
329
339
|
}
|
|
330
|
-
|
|
331
|
-
this.value =
|
|
332
|
-
this._wrongHEX = !this.
|
|
340
|
+
_setValue(color) {
|
|
341
|
+
this.value = color;
|
|
342
|
+
this._wrongHEX = !this._colorValue.isColorValueValid();
|
|
333
343
|
this.fireDecoratorEvent("change");
|
|
334
344
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
}
|
|
338
|
-
_setHex() {
|
|
339
|
-
let red = this._value.r.toString(16), green = this._value.g.toString(16), blue = this._value.b.toString(16);
|
|
340
|
-
if (red.length === 1) {
|
|
341
|
-
red = `0${red}`;
|
|
342
|
-
}
|
|
343
|
-
if (green.length === 1) {
|
|
344
|
-
green = `0${green}`;
|
|
345
|
-
}
|
|
346
|
-
if (blue.length === 1) {
|
|
347
|
-
blue = `0${blue}`;
|
|
348
|
-
}
|
|
349
|
-
this.hex = red + green + blue;
|
|
350
|
-
}
|
|
351
|
-
_setValues() {
|
|
352
|
-
const hslColours = RGBToHSL(this._value);
|
|
345
|
+
_updateColorGrid() {
|
|
346
|
+
const hslColours = this._colorValue.HSL;
|
|
353
347
|
this._selectedCoordinates = {
|
|
354
|
-
x: ((
|
|
355
|
-
y: (256 - (
|
|
348
|
+
x: ((hslColours.l * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle
|
|
349
|
+
y: (256 - (hslColours.s * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle
|
|
356
350
|
};
|
|
357
351
|
if (this._isSelectedColorChanged) { // We shouldn't update the hue value when user presses over the main color section.
|
|
358
352
|
this._isSelectedColorChanged = false;
|
|
@@ -362,10 +356,15 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
362
356
|
this._hue = this.selectedHue ? this.selectedHue : this._hue;
|
|
363
357
|
}
|
|
364
358
|
else {
|
|
365
|
-
this._hue =
|
|
359
|
+
this._hue = hslColours.h;
|
|
366
360
|
}
|
|
367
361
|
this._setMainColor(this._hue);
|
|
368
362
|
}
|
|
363
|
+
_isColorValueEqual(value) {
|
|
364
|
+
return this._colorValue.R === value.r
|
|
365
|
+
&& this._colorValue.G === value.g
|
|
366
|
+
&& this._colorValue.B === value.b;
|
|
367
|
+
}
|
|
369
368
|
get hueSliderLabel() {
|
|
370
369
|
return ColorPicker_1.i18nBundle.getText(COLORPICKER_HUE_SLIDER);
|
|
371
370
|
}
|
|
@@ -384,33 +383,80 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
384
383
|
get blueInputLabel() {
|
|
385
384
|
return ColorPicker_1.i18nBundle.getText(COLORPICKER_BLUE);
|
|
386
385
|
}
|
|
386
|
+
get hueInputLabel() {
|
|
387
|
+
return ColorPicker_1.i18nBundle.getText(COLORPICKER_HUE);
|
|
388
|
+
}
|
|
389
|
+
get saturationInputLabel() {
|
|
390
|
+
return ColorPicker_1.i18nBundle.getText(COLORPICKER_SATURATION);
|
|
391
|
+
}
|
|
392
|
+
get lightInputLabel() {
|
|
393
|
+
return ColorPicker_1.i18nBundle.getText(COLORPICKER_LIGHT);
|
|
394
|
+
}
|
|
387
395
|
get alphaInputLabel() {
|
|
388
396
|
return ColorPicker_1.i18nBundle.getText(COLORPICKER_ALPHA);
|
|
389
397
|
}
|
|
398
|
+
get toggleModeTooltip() {
|
|
399
|
+
return ColorPicker_1.i18nBundle.getText(COLORPICKER_TOGGLE_MODE_TOOLTIP);
|
|
400
|
+
}
|
|
390
401
|
get inputsDisabled() {
|
|
391
402
|
return this._wrongHEX ? true : undefined;
|
|
392
403
|
}
|
|
393
404
|
get hexInputErrorState() {
|
|
394
405
|
return this._wrongHEX ? "Negative" : "None";
|
|
395
406
|
}
|
|
407
|
+
get rgbInputs() {
|
|
408
|
+
const redInput = {
|
|
409
|
+
id: "red",
|
|
410
|
+
value: this._colorValue.R,
|
|
411
|
+
label: "R",
|
|
412
|
+
accessibleName: this.redInputLabel,
|
|
413
|
+
};
|
|
414
|
+
const greenInput = {
|
|
415
|
+
id: "green",
|
|
416
|
+
value: this._colorValue.G,
|
|
417
|
+
label: "G",
|
|
418
|
+
accessibleName: this.greenInputLabel,
|
|
419
|
+
};
|
|
420
|
+
const blueInput = {
|
|
421
|
+
id: "blue",
|
|
422
|
+
value: this._colorValue.B,
|
|
423
|
+
label: "B",
|
|
424
|
+
accessibleName: this.blueInputLabel,
|
|
425
|
+
};
|
|
426
|
+
return [redInput, greenInput, blueInput];
|
|
427
|
+
}
|
|
428
|
+
get hslInputs() {
|
|
429
|
+
const hueInput = {
|
|
430
|
+
id: "hue",
|
|
431
|
+
value: this._colorValue.H,
|
|
432
|
+
label: "H",
|
|
433
|
+
accessibleName: this.hueInputLabel,
|
|
434
|
+
};
|
|
435
|
+
const saturationInput = {
|
|
436
|
+
id: "saturation",
|
|
437
|
+
value: this._colorValue.S,
|
|
438
|
+
label: "S",
|
|
439
|
+
accessibleName: this.saturationInputLabel,
|
|
440
|
+
showPercentSymbol: true,
|
|
441
|
+
};
|
|
442
|
+
const lightInput = {
|
|
443
|
+
id: "light",
|
|
444
|
+
value: this._colorValue.L,
|
|
445
|
+
label: "L",
|
|
446
|
+
accessibleName: this.lightInputLabel,
|
|
447
|
+
showPercentSymbol: true,
|
|
448
|
+
};
|
|
449
|
+
return [hueInput, saturationInput, lightInput];
|
|
450
|
+
}
|
|
451
|
+
get HEX() {
|
|
452
|
+
return this._colorValue.HEX;
|
|
453
|
+
}
|
|
454
|
+
get colorChannelInputs() {
|
|
455
|
+
return this._displayHSL ? this.hslInputs : this.rgbInputs;
|
|
456
|
+
}
|
|
396
457
|
get _isDefaultPickerMode() {
|
|
397
458
|
return !this.simplified;
|
|
398
459
|
}
|
|
399
|
-
get styles() {
|
|
400
|
-
// Remove after deleting the hbs template as the styles are added via the jsx template
|
|
401
|
-
return {
|
|
402
|
-
mainColor: {
|
|
403
|
-
"background-color": `rgb(${this._mainValue.r}, ${this._mainValue.g}, ${this._mainValue.b})`,
|
|
404
|
-
},
|
|
405
|
-
circle: {
|
|
406
|
-
left: `${this._selectedCoordinates.x}px`,
|
|
407
|
-
top: `${this._selectedCoordinates.y}px`,
|
|
408
|
-
},
|
|
409
|
-
colorSpan: {
|
|
410
|
-
"background-color": `rgba(${this._value.r}, ${this._value.g}, ${this._value.b}, ${this._alpha})`,
|
|
411
|
-
},
|
|
412
|
-
};
|
|
413
|
-
}
|
|
414
460
|
};
|
|
415
461
|
__decorate([
|
|
416
462
|
property()
|
|
@@ -421,15 +467,12 @@ __decorate([
|
|
|
421
467
|
__decorate([
|
|
422
468
|
property({ type: Boolean })
|
|
423
469
|
], ColorPicker.prototype, "simplified", void 0);
|
|
424
|
-
__decorate([
|
|
425
|
-
property({ noAttribute: true })
|
|
426
|
-
], ColorPicker.prototype, "hex", void 0);
|
|
427
470
|
__decorate([
|
|
428
471
|
property({ type: Object })
|
|
429
472
|
], ColorPicker.prototype, "_mainValue", void 0);
|
|
430
473
|
__decorate([
|
|
431
474
|
property({ type: Object })
|
|
432
|
-
], ColorPicker.prototype, "
|
|
475
|
+
], ColorPicker.prototype, "_colorValue", void 0);
|
|
433
476
|
__decorate([
|
|
434
477
|
property({ type: Object })
|
|
435
478
|
], ColorPicker.prototype, "_selectedCoordinates", void 0);
|
|
@@ -448,6 +491,9 @@ __decorate([
|
|
|
448
491
|
__decorate([
|
|
449
492
|
property({ type: Boolean })
|
|
450
493
|
], ColorPicker.prototype, "_wrongHEX", void 0);
|
|
494
|
+
__decorate([
|
|
495
|
+
property({ type: Boolean })
|
|
496
|
+
], ColorPicker.prototype, "_displayHSL", void 0);
|
|
451
497
|
__decorate([
|
|
452
498
|
i18n("@ui5/webcomponents")
|
|
453
499
|
], ColorPicker, "i18nBundle", void 0);
|
package/dist/ColorPicker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPicker.js","sourceRoot":"","sources":["../src/ColorPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tgetRGBColor,\n\tgetAlpha,\n\tHSLToRGB,\n\tHEXToRGB,\n\tRGBToHSL,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport type {\n\tColorHSL,\n\tColorRGB,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport ColorPickerTemplate from \"./ColorPickerTemplate.js\";\nimport type Input from \"./Input.js\";\nimport type Slider from \"./Slider.js\";\n\nimport {\n\tCOLORPICKER_ALPHA_SLIDER,\n\tCOLORPICKER_HUE_SLIDER,\n\tCOLORPICKER_HEX,\n\tCOLORPICKER_RED,\n\tCOLORPICKER_GREEN,\n\tCOLORPICKER_BLUE,\n\tCOLORPICKER_ALPHA,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ColorPickerCss from \"./generated/themes/ColorPicker.css.js\";\n\nconst PICKER_POINTER_WIDTH = 6.5;\n\ntype ColorCoordinates = {\n\tx: number,\n\ty: number,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-color-picker` allows users to choose any color and provides different input options for selecting colors.\n *\n * ### Usage\n *\n * #### When to use\n * Use the color picker if:\n *\n * - users need to select any color freely.\n *\n * #### When not to use\n *\n * - Users need to select one color from a predefined set of colors. Use the ColorPalette component instead.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ColorPicker.js\";`\n * @constructor\n * @since 1.0.0-rc.12\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-color-picker\",\n\trenderer: jsxRenderer,\n\tformAssociated: true,\n\tstyles: ColorPickerCss,\n\ttemplate: ColorPickerTemplate,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the the selected color is changed\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\nclass ColorPicker extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void;\n\t}\n\t/**\n\t * Defines the currently selected color of the component.\n\t *\n\t * **Note**: use HEX, RGB, RGBA, HSV formats or a CSS color name when modifying this property.\n\t * @default \"rgba(255,255,255,1)\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"rgba(255,255,255,1)\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * When set to `true`, the alpha slider and inputs for RGB values will not be displayed.\n\t * @default false\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property({ type: Boolean })\n\tsimplified = false;\n\n\t/**\n\t * Defines the HEX code of the currently selected color\n\t *\n\t * **Note**: If Alpha(transperancy) is set it is not included in this property. Use `color` property.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\thex = \"ffffff\";\n\n\t/**\n\t * Defines the current main color which is selected via the hue slider and is shown in the main color square.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_mainValue: ColorRGB;\n\n\t/**\n\t * Defines the currenty selected color from the main color section.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_value: ColorRGB = getRGBColor(this.value);\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedCoordinates: ColorCoordinates;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_alpha = 1;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_hue = 0;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isSelectedColorChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isHueValueChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_wrongHEX = false;\n\n\tselectedHue: number;\n\n\tmouseDown: boolean;\n\n\tmouseIn: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// Bottom Right corner\n\t\tthis._selectedCoordinates = {\n\t\t\tx: 256 - PICKER_POINTER_WIDTH,\n\t\t\ty: 256 - PICKER_POINTER_WIDTH,\n\t\t};\n\n\t\t// Default main color is red\n\t\tthis._mainValue = {\n\t\t\tr: 255,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t};\n\n\t\tthis.selectedHue = 0;\n\n\t\tthis.mouseDown = false;\n\t\tthis.mouseIn = false;\n\t}\n\n\tonBeforeRendering() {\n\t\t// we have the color & ._mainValue properties here\n\t\tthis._value = getRGBColor(this.value);\n\t\tthis._alpha = getAlpha(this.value);\n\t\tconst tempColor = `rgba(${this._value.r},${this._value.g},${this._value.b},${this._alpha})`;\n\t\tthis._setHex();\n\t\tthis._setValues();\n\t\tthis.style.setProperty(getScopedVarName(\"--ui5_Color_Picker_Progress_Container_Color\"), tempColor);\n\t}\n\n\t_handleMouseDown(e: MouseEvent) {\n\t\tthis.mouseDown = true;\n\t\tthis.mouseIn = true;\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleMouseUp() {\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseOut(e: MouseEvent) {\n\t\tif (!this.mouseIn || !this.mouseDown) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst offsetHeight: number = target.offsetHeight;\n\t\tconst offsetWidth: number = target.offsetWidth;\n\t\tconst isLeft: boolean = e.offsetX <= 0;\n\t\tconst isUp: boolean = e.offsetY <= 0;\n\t\tconst isDown: boolean = e.offsetY >= target.offsetHeight;\n\t\tconst isRight: boolean = e.offsetX >= target.offsetWidth;\n\n\t\tlet x: number,\n\t\t\ty: number;\n\n\t\tif (isLeft) {\n\t\t\tx = 0;\n\t\t} else if (isRight) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\tx = offsetWidth;\n\t\t} else {\n\t\t\tx = e.offsetX;\n\t\t}\n\n\t\tif (isUp) {\n\t\t\ty = 0;\n\t\t} else if (isDown) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\ty = offsetHeight;\n\t\t} else {\n\t\t\ty = e.offsetY;\n\t\t}\n\n\t\tthis._changeSelectedColor(x, y);\n\t\tthis.mouseIn = false;\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseMove(e: MouseEvent) {\n\t\tif (!this.mouseDown || !this.mouseIn) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleAlphaInputFromSlider(e: CustomEvent) {\n\t\tconst aphaInputValue: string = (e.target as Input).value;\n\t\tthis._alpha = parseFloat(aphaInputValue);\n\t\tif (Number.isNaN(this._alpha)) {\n\t\t\tthis._alpha = 1;\n\t\t}\n\t\tthis._isHueValueChanged = true;\n\t\tthis._setColor(this._value);\n\t}\n\n\t_handleHueInput(e: CustomEvent) {\n\t\tthis.selectedHue = (e.target as Slider).value;\n\t\tthis._hue = this.selectedHue;\n\t\tthis._setMainColor(this._hue);\n\t\t// Idication that changes to the hue value triggered as a result of user pressing over the hue slider.\n\t\tthis._isHueValueChanged = true;\n\n\t\tconst x: number = this._selectedCoordinates.x + PICKER_POINTER_WIDTH;\n\t\tconst y: number = this._selectedCoordinates.y + PICKER_POINTER_WIDTH;\n\t\tconst tempColor = this._calculateColorFromCoordinates(x, y);\n\n\t\tif (tempColor) {\n\t\t\tthis._setColor(HSLToRGB(tempColor));\n\t\t}\n\t}\n\n\t_handleHEXChange(e: CustomEvent | KeyboardEvent) {\n\t\tconst hexRegex = new RegExp(\"^[<0-9 abcdef]+$\");\n\t\tconst input: Input = (e.target as Input);\n\t\tlet inputValueLowerCase = input.value.toLowerCase();\n\n\t\t// Shorthand Syntax\n\t\tif (inputValueLowerCase.length === 3) {\n\t\t\tinputValueLowerCase = `${inputValueLowerCase[0]}${inputValueLowerCase[0]}${inputValueLowerCase[1]}${inputValueLowerCase[1]}${inputValueLowerCase[2]}${inputValueLowerCase[2]}`;\n\t\t}\n\n\t\tconst isNewValueValid = inputValueLowerCase.length === 6 && hexRegex.test(inputValueLowerCase);\n\n\t\tif (isNewValueValid && input.value !== inputValueLowerCase) {\n\t\t\tthis._wrongHEX = false;\n\t\t\tinput.value = inputValueLowerCase;\n\t\t}\n\n\t\tif (inputValueLowerCase === this.hex) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hex = inputValueLowerCase;\n\n\t\tif (!isNewValueValid) {\n\t\t\tthis._wrongHEX = true;\n\t\t} else {\n\t\t\tthis._wrongHEX = false;\n\t\t\tthis._setColor(HEXToRGB(this.hex));\n\t\t}\n\t}\n\n\t_handleRGBInputsChange(e: Event) {\n\t\tconst target = e.target as Input;\n\t\tconst targetValue = parseInt(target.value) || 0;\n\t\tlet tempColor;\n\t\tswitch (target.id) {\n\t\tcase \"red\":\n\t\t\ttempColor = { ...this._value, r: targetValue };\n\t\t\tbreak;\n\n\t\tcase \"green\":\n\t\t\ttempColor = { ...this._value, g: targetValue };\n\t\t\tbreak;\n\n\t\tcase \"blue\":\n\t\t\ttempColor = { ...this._value, b: targetValue };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ttempColor = { ...this._value };\n\t\t}\n\n\t\tthis._setColor(tempColor);\n\t}\n\n\t_setMainColor(hueValue: number) {\n\t\tconst hueValueMod = hueValue * 4.251;\n\n\t\tif (hueValueMod <= 255) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: hueValueMod,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 510) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255 - (hueValueMod - 255),\n\t\t\t\tg: 255,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 765) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 255,\n\t\t\t\tb: hueValueMod - 510,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1020) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 765 - (hueValueMod - 255),\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1275) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: hueValueMod - 1020,\n\t\t\t\tg: 0,\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: 0,\n\t\t\t\tb: 1275 - (hueValueMod - 255),\n\t\t\t};\n\t\t}\n\t}\n\n\t_handleAlphaChange(e: CustomEvent) {\n\t\tthis._handleAlphaInputFromSlider(e);\n\n\t\tthis._alpha = this._alpha < 0 ? 0 : this._alpha;\n\t\tthis._alpha = this._alpha > 1 ? 1 : this._alpha;\n\t}\n\n\t_changeSelectedColor(x: number, y: number) {\n\t\tthis._selectedCoordinates = {\n\t\t\tx: x - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: y - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\t// Idication that changes to the color settings are triggered as a result of user pressing over the main color section.\n\t\tthis._isSelectedColorChanged = true;\n\n\t\tconst tempColor = this._calculateColorFromCoordinates(x, y);\n\t\tif (tempColor) {\n\t\t\tthis._setColor(HSLToRGB(tempColor));\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._handleHEXChange(e);\n\t\t}\n\t}\n\n\t_calculateColorFromCoordinates(x: number, y: number) {\n\t\t// By using the selected coordinates(x = Lightness, y = Saturation) and hue(selected from the hue slider)\n\t\t// and HSL format, the color will be parsed to RGB\n\t\t// 0 ≤ H < 360\n\t\t// 4.251 because with 4.25 we get out of the colors range.\n\t\tconst h = this._hue;\n\n\t\t// 0 ≤ S ≤ 1\n\t\tconst s = 1 - +(Math.round(parseFloat((y / 256) + \"e+2\")) + \"e-2\"); // eslint-disable-line\n\n\t\t// 0 ≤ V ≤ 1\n\t\tconst l = +(Math.round(parseFloat((x / 256) + \"e+2\")) + \"e-2\"); // eslint-disable-line\n\n\t\tif (!s || !l) {\n\t\t\t// The event is finished out of the main color section\n\t\t\treturn;\n\t\t}\n\n\t\treturn {\n\t\t\th,\n\t\t\ts,\n\t\t\tl,\n\t\t};\n\t}\n\n\t_setColor(color: ColorRGB = { r: 0, g: 0, b: 0 }) {\n\t\tthis.value = `rgba(${color.r}, ${color.g}, ${color.b}, ${this._alpha})`;\n\t\tthis._wrongHEX = !this.isValidRGBColor(color);\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\tisValidRGBColor(color: ColorRGB) {\n\t\treturn color.r >= 0 && color.r <= 255 && color.g >= 0 && color.g <= 255 && color.b >= 0 && color.b <= 255;\n\t}\n\n\t_setHex() {\n\t\tlet red = this._value.r.toString(16),\n\t\t\tgreen = this._value.g.toString(16),\n\t\t\tblue = this._value.b.toString(16);\n\n\t\tif (red.length === 1) {\n\t\t\tred = `0${red}`;\n\t\t}\n\t\tif (green.length === 1) {\n\t\t\tgreen = `0${green}`;\n\t\t}\n\t\tif (blue.length === 1) {\n\t\t\tblue = `0${blue}`;\n\t\t}\n\n\t\tthis.hex = red + green + blue;\n\t}\n\n\t_setValues() {\n\t\tconst hslColours: ColorHSL = RGBToHSL(this._value);\n\t\tthis._selectedCoordinates = {\n\t\t\tx: ((Math.round(hslColours.l * 100) * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: (256 - (Math.round(hslColours.s * 100) * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\tif (this._isSelectedColorChanged) { // We shouldn't update the hue value when user presses over the main color section.\n\t\t\tthis._isSelectedColorChanged = false;\n\t\t} else if (this._isHueValueChanged) { // We shouldn't recalculate the hue value when user changes the hue slider.\n\t\t\tthis._isHueValueChanged = false;\n\t\t\tthis._hue = this.selectedHue ? this.selectedHue : this._hue;\n\t\t} else {\n\t\t\tthis._hue = Math.round(hslColours.h);\n\t\t}\n\n\t\tthis._setMainColor(this._hue);\n\t}\n\n\tget hueSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE_SLIDER);\n\t}\n\n\tget alphaSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA_SLIDER);\n\t}\n\n\tget hexInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HEX);\n\t}\n\n\tget redInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_RED);\n\t}\n\n\tget greenInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_GREEN);\n\t}\n\n\tget blueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_BLUE);\n\t}\n\n\tget alphaInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA);\n\t}\n\n\tget inputsDisabled() {\n\t\treturn this._wrongHEX ? true : undefined;\n\t}\n\n\tget hexInputErrorState(): `${ValueState}` {\n\t\treturn this._wrongHEX ? \"Negative\" : \"None\";\n\t}\n\n\tget _isDefaultPickerMode() {\n\t\treturn !this.simplified;\n\t}\n\n\tget styles() {\n\t\t// Remove after deleting the hbs template as the styles are added via the jsx template\n\t\treturn {\n\t\t\tmainColor: {\n\t\t\t\t\"background-color\": `rgb(${this._mainValue.r}, ${this._mainValue.g}, ${this._mainValue.b})`,\n\t\t\t},\n\t\t\tcircle: {\n\t\t\t\tleft: `${this._selectedCoordinates.x}px`,\n\t\t\t\ttop: `${this._selectedCoordinates.y}px`,\n\t\t\t},\n\t\t\tcolorSpan: {\n\t\t\t\t\"background-color\": `rgba(${this._value.r}, ${this._value.g}, ${this._value.b}, ${this._alpha})`,\n\t\t\t},\n\t\t};\n\t}\n}\n\nColorPicker.define();\n\nexport default ColorPicker;\n"]}
|
|
1
|
+
{"version":3,"file":"ColorPicker.js","sourceRoot":"","sources":["../src/ColorPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tgetRGBColor,\n\tgetAlpha,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport type {\n\tColorHSL,\n\tColorRGB,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport \"@ui5/webcomponents-icons/dist/expand.js\";\nimport ColorValue from \"./colorpicker-utils/ColorValue.js\";\nimport ColorPickerTemplate from \"./ColorPickerTemplate.js\";\nimport type Input from \"./Input.js\";\nimport type Slider from \"./Slider.js\";\n\nimport {\n\tCOLORPICKER_ALPHA_SLIDER,\n\tCOLORPICKER_HUE_SLIDER,\n\tCOLORPICKER_HEX,\n\tCOLORPICKER_RED,\n\tCOLORPICKER_GREEN,\n\tCOLORPICKER_BLUE,\n\tCOLORPICKER_ALPHA,\n\tCOLORPICKER_SATURATION,\n\tCOLORPICKER_LIGHT,\n\tCOLORPICKER_HUE,\n\tCOLORPICKER_TOGGLE_MODE_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ColorPickerCss from \"./generated/themes/ColorPicker.css.js\";\n\nconst PICKER_POINTER_WIDTH = 6.5;\n\ntype ColorCoordinates = {\n\tx: number,\n\ty: number,\n}\n\ntype ColorChannelInput = {\n\tid: string,\n\tvalue: number,\n\taccessibleName: string\n\tlabel: string,\n\tshowPercentSymbol?: boolean,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-color-picker` allows users to choose any color and provides different input options for selecting colors.\n *\n * ### Usage\n *\n * #### When to use\n * Use the color picker if:\n *\n * - users need to select any color freely.\n *\n * #### When not to use\n *\n * - Users need to select one color from a predefined set of colors. Use the ColorPalette component instead.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ColorPicker.js\";`\n * @constructor\n * @since 1.0.0-rc.12\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-color-picker\",\n\trenderer: jsxRenderer,\n\tformAssociated: true,\n\tstyles: ColorPickerCss,\n\ttemplate: ColorPickerTemplate,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the the selected color is changed\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\nclass ColorPicker extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void;\n\t}\n\t/**\n\t * Defines the currently selected color of the component.\n\t *\n\t * **Note**: use HEX, RGB, RGBA, HSV formats or a CSS color name when modifying this property.\n\t * @default \"rgba(255,255,255,1)\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"rgba(255,255,255,1)\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * When set to `true`, the alpha slider and inputs for RGB values will not be displayed.\n\t * @default false\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property({ type: Boolean })\n\tsimplified = false;\n\n\t/**\n\t * Defines the current main color which is selected via the hue slider and is shown in the main color square.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_mainValue: ColorRGB;\n\n\t/**\n\t * Defines the currenty selected color.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_colorValue: ColorValue;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedCoordinates: ColorCoordinates;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_alpha = 1;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_hue = 0;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isSelectedColorChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isHueValueChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_wrongHEX = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_displayHSL = false;\n\n\tselectedHue: number;\n\n\tmouseDown: boolean;\n\n\tmouseIn: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._colorValue = new ColorValue();\n\n\t\t// Bottom Right corner\n\t\tthis._selectedCoordinates = {\n\t\t\tx: 256 - PICKER_POINTER_WIDTH,\n\t\t\ty: 256 - PICKER_POINTER_WIDTH,\n\t\t};\n\n\t\t// Default main color is red\n\t\tthis._mainValue = {\n\t\t\tr: 255,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t};\n\n\t\tthis.selectedHue = 0;\n\n\t\tthis.mouseDown = false;\n\t\tthis.mouseIn = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst valueAsRGB = getRGBColor(this.value);\n\t\tif (!this._isColorValueEqual(valueAsRGB)) {\n\t\t\tthis._colorValue.RGB = valueAsRGB;\n\t\t}\n\t\tconst alpha = getAlpha(this.value);\n\t\tif (alpha !== this._colorValue.Alpha) {\n\t\t\tthis._colorValue.Alpha = alpha;\n\t\t\tthis._alpha = this._colorValue.Alpha;\n\t\t}\n\t\tconst tempColor = this._colorValue.toRGBString();\n\t\tthis._updateColorGrid();\n\t\tthis.style.setProperty(getScopedVarName(\"--ui5_Color_Picker_Progress_Container_Color\"), tempColor);\n\t}\n\n\t_handleMouseDown(e: MouseEvent) {\n\t\tthis.mouseDown = true;\n\t\tthis.mouseIn = true;\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleMouseUp() {\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseOut(e: MouseEvent) {\n\t\tif (!this.mouseIn || !this.mouseDown) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst offsetHeight: number = target.offsetHeight;\n\t\tconst offsetWidth: number = target.offsetWidth;\n\t\tconst isLeft: boolean = e.offsetX <= 0;\n\t\tconst isUp: boolean = e.offsetY <= 0;\n\t\tconst isDown: boolean = e.offsetY >= target.offsetHeight;\n\t\tconst isRight: boolean = e.offsetX >= target.offsetWidth;\n\n\t\tlet x: number,\n\t\t\ty: number;\n\n\t\tif (isLeft) {\n\t\t\tx = 0;\n\t\t} else if (isRight) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\tx = offsetWidth;\n\t\t} else {\n\t\t\tx = e.offsetX;\n\t\t}\n\n\t\tif (isUp) {\n\t\t\ty = 0;\n\t\t} else if (isDown) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\ty = offsetHeight;\n\t\t} else {\n\t\t\ty = e.offsetY;\n\t\t}\n\n\t\tthis._changeSelectedColor(x, y);\n\t\tthis.mouseIn = false;\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseMove(e: MouseEvent) {\n\t\tif (!this.mouseDown || !this.mouseIn) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleAlphaInput(e: CustomEvent) {\n\t\tconst aphaInputValue: string = (e.target as Input).value;\n\t\tthis._alpha = parseFloat(aphaInputValue);\n\t\tif (Number.isNaN(this._alpha)) {\n\t\t\tthis._alpha = 1;\n\t\t}\n\t\tthis._colorValue.Alpha = this._alpha;\n\t\tthis._isHueValueChanged = true;\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t}\n\n\t_handleHueInput(e: CustomEvent) {\n\t\tthis.selectedHue = (e.target as Slider).value;\n\t\tthis._hue = this.selectedHue;\n\t\tthis._setMainColor(this._hue);\n\t\t// Idication that changes to the hue value triggered as a result of user pressing over the hue slider.\n\t\tthis._isHueValueChanged = true;\n\t\tthis._colorValue.H = this._hue;\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t}\n\n\t_handleHEXChange(e: CustomEvent | KeyboardEvent) {\n\t\tconst input: Input = (e.target as Input);\n\t\tlet inputValueLowerCase = input.value.toLowerCase();\n\n\t\t// Shorthand Syntax\n\t\tif (inputValueLowerCase.length === 3) {\n\t\t\tinputValueLowerCase = `${inputValueLowerCase[0]}${inputValueLowerCase[0]}${inputValueLowerCase[1]}${inputValueLowerCase[1]}${inputValueLowerCase[2]}${inputValueLowerCase[2]}`;\n\t\t}\n\n\t\tthis._colorValue.HEX = inputValueLowerCase;\n\t\tconst isValidColor = this._colorValue.isColorValueValid();\n\n\t\tif (isValidColor && input.value !== inputValueLowerCase) {\n\t\t\tthis._wrongHEX = false;\n\t\t\tinput.value = inputValueLowerCase;\n\t\t}\n\n\t\tif (!isValidColor) {\n\t\t\tthis._wrongHEX = true;\n\t\t} else {\n\t\t\tthis._wrongHEX = false;\n\n\t\t\tconst color = this._colorValue.toRGBString();\n\t\t\tthis._setValue(color);\n\t\t}\n\t}\n\n\t_togglePickerMode() {\n\t\tthis._displayHSL = !this._displayHSL;\n\t}\n\n\t_handleColorInputChange(e: Event) {\n\t\tconst target = e.target as Input;\n\t\tconst targetValue = parseInt(target.value) || 0;\n\n\t\tswitch (target.id) {\n\t\tcase \"red\":\n\t\t\tthis._colorValue.R = targetValue;\n\t\t\tbreak;\n\n\t\tcase \"green\":\n\t\t\tthis._colorValue.G = targetValue;\n\t\t\tbreak;\n\n\t\tcase \"blue\":\n\t\t\tthis._colorValue.B = targetValue;\n\t\t\tbreak;\n\n\t\tcase \"hue\":\n\t\t\tthis._colorValue.H = targetValue;\n\t\t\tbreak;\n\n\t\tcase \"saturation\":\n\t\t\tthis._colorValue.S = targetValue;\n\t\t\tbreak;\n\n\t\tcase \"light\":\n\t\t\tthis._colorValue.L = targetValue;\n\t\t\tbreak;\n\t\t}\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t\tthis._updateColorGrid();\n\t}\n\n\t_setMainColor(hueValue: number) {\n\t\tconst hueValueMod = hueValue * 4.251;\n\n\t\tif (hueValueMod <= 255) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: hueValueMod,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 510) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255 - (hueValueMod - 255),\n\t\t\t\tg: 255,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 765) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 255,\n\t\t\t\tb: hueValueMod - 510,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1020) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 765 - (hueValueMod - 255),\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1275) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: hueValueMod - 1020,\n\t\t\t\tg: 0,\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: 0,\n\t\t\t\tb: 1275 - (hueValueMod - 255),\n\t\t\t};\n\t\t}\n\t}\n\n\t_handleAlphaChange() {\n\t\tthis._alpha = this._alpha < 0 ? 0 : this._alpha;\n\t\tthis._alpha = this._alpha > 1 ? 1 : this._alpha;\n\n\t\tthis._colorValue.Alpha = this._alpha;\n\t}\n\n\t_changeSelectedColor(x: number, y: number) {\n\t\tthis._selectedCoordinates = {\n\t\t\tx: x - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: y - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\t// Idication that changes to the color settings are triggered as a result of user pressing over the main color section.\n\t\tthis._isSelectedColorChanged = true;\n\n\t\tconst tempColor = this._calculateColorFromCoordinates(x, y);\n\t\tif (tempColor) {\n\t\t\tthis._colorValue.HSL = tempColor;\n\n\t\t\tconst color = this._colorValue.toRGBString();\n\t\t\tthis._setValue(color);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._handleHEXChange(e);\n\t\t}\n\t}\n\n\t_calculateColorFromCoordinates(x: number, y: number) {\n\t\t// By using the selected coordinates(x = Lightness, y = Saturation) and hue(selected from the hue slider)\n\t\t// and HSL format, the color will be parsed to RGB\n\t\t// 0 ≤ H < 360\n\t\t// 4.251 because with 4.25 we get out of the colors range.\n\t\tconst h = this._hue;\n\t\tlet s = +(1 - (y / 256)).toFixed(2);\n\t\tlet l = +(x / 256).toFixed(2);\n\n\t\tif (Number.isNaN(s) || Number.isNaN(l)) {\n\t\t\t// The event is finished out of the main color section\n\t\t\treturn;\n\t\t}\n\n\t\t// Normalize values to be between 0 and 1 in case of rounding issues\n\t\ts = Math.max(0, Math.min(1, s));\n\t\tl = Math.max(0, Math.min(1, l));\n\n\t\treturn {\n\t\t\th: Math.round(h),\n\t\t\ts: Math.round(s * 100),\n\t\t\tl: Math.round(l * 100),\n\t\t};\n\t}\n\n\t_setValue(color: string) {\n\t\tthis.value = color;\n\t\tthis._wrongHEX = !this._colorValue.isColorValueValid();\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_updateColorGrid() {\n\t\tconst hslColours: ColorHSL = this._colorValue.HSL;\n\t\tthis._selectedCoordinates = {\n\t\t\tx: ((hslColours.l * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: (256 - (hslColours.s * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\tif (this._isSelectedColorChanged) { // We shouldn't update the hue value when user presses over the main color section.\n\t\t\tthis._isSelectedColorChanged = false;\n\t\t} else if (this._isHueValueChanged) { // We shouldn't recalculate the hue value when user changes the hue slider.\n\t\t\tthis._isHueValueChanged = false;\n\t\t\tthis._hue = this.selectedHue ? this.selectedHue : this._hue;\n\t\t} else {\n\t\t\tthis._hue = hslColours.h;\n\t\t}\n\n\t\tthis._setMainColor(this._hue);\n\t}\n\n\t_isColorValueEqual(value: ColorRGB): boolean {\n\t\treturn this._colorValue.R === value.r\n\t\t\t&& this._colorValue.G === value.g\n\t\t\t&& this._colorValue.B === value.b;\n\t}\n\n\tget hueSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE_SLIDER);\n\t}\n\n\tget alphaSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA_SLIDER);\n\t}\n\n\tget hexInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HEX);\n\t}\n\n\tget redInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_RED);\n\t}\n\n\tget greenInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_GREEN);\n\t}\n\n\tget blueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_BLUE);\n\t}\n\n\tget hueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE);\n\t}\n\n\tget saturationInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_SATURATION);\n\t}\n\n\tget lightInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_LIGHT);\n\t}\n\n\tget alphaInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA);\n\t}\n\n\tget toggleModeTooltip() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_TOGGLE_MODE_TOOLTIP);\n\t}\n\n\tget inputsDisabled() {\n\t\treturn this._wrongHEX ? true : undefined;\n\t}\n\n\tget hexInputErrorState(): `${ValueState}` {\n\t\treturn this._wrongHEX ? \"Negative\" : \"None\";\n\t}\n\n\tget rgbInputs(): Array<ColorChannelInput> {\n\t\tconst redInput = {\n\t\t\tid: \"red\",\n\t\t\tvalue: this._colorValue.R,\n\t\t\tlabel: \"R\",\n\t\t\taccessibleName: this.redInputLabel,\n\t\t};\n\n\t\tconst greenInput = {\n\t\t\tid: \"green\",\n\t\t\tvalue: this._colorValue.G,\n\t\t\tlabel: \"G\",\n\t\t\taccessibleName: this.greenInputLabel,\n\t\t};\n\n\t\tconst blueInput = {\n\t\t\tid: \"blue\",\n\t\t\tvalue: this._colorValue.B,\n\t\t\tlabel: \"B\",\n\t\t\taccessibleName: this.blueInputLabel,\n\t\t};\n\n\t\treturn [redInput, greenInput, blueInput];\n\t}\n\n\tget hslInputs(): Array<ColorChannelInput> {\n\t\tconst hueInput = {\n\t\t\tid: \"hue\",\n\t\t\tvalue: this._colorValue.H,\n\t\t\tlabel: \"H\",\n\t\t\taccessibleName: this.hueInputLabel,\n\t\t};\n\n\t\tconst saturationInput = {\n\t\t\tid: \"saturation\",\n\t\t\tvalue: this._colorValue.S,\n\t\t\tlabel: \"S\",\n\t\t\taccessibleName: this.saturationInputLabel,\n\t\t\tshowPercentSymbol: true,\n\t\t};\n\n\t\tconst lightInput = {\n\t\t\tid: \"light\",\n\t\t\tvalue: this._colorValue.L,\n\t\t\tlabel: \"L\",\n\t\t\taccessibleName: this.lightInputLabel,\n\t\t\tshowPercentSymbol: true,\n\t\t};\n\n\t\treturn [hueInput, saturationInput, lightInput];\n\t}\n\n\tget HEX(): string {\n\t\treturn this._colorValue.HEX;\n\t}\n\n\tget colorChannelInputs() {\n\t\treturn this._displayHSL ? this.hslInputs : this.rgbInputs;\n\t}\n\n\tget _isDefaultPickerMode() {\n\t\treturn !this.simplified;\n\t}\n}\n\nColorPicker.define();\n\nexport default ColorPicker;\n"]}
|