@sapudex/web-components 2.1.0 → 2.2.0
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/cypress/fixtures/footer-links.ts +221 -0
- package/cypress/specs/Checkbox.cy.tsx +92 -0
- package/cypress/specs/Footer.cy.tsx +313 -0
- package/cypress/specs/ListItem.cy.tsx +4 -4
- package/cypress/specs/PhoneNumberField.cy.tsx +2 -2
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +28 -37
- package/cypress/specs/Slider.cy.tsx +4 -3
- package/cypress/specs/TextField.cy.tsx +4 -0
- package/cypress/specs/Tooltip.cy.tsx +26 -0
- package/cypress/specs/Upload.cy.tsx +3 -3
- package/dist/Badge.d.ts +2 -2
- package/dist/Badge.js +4 -4
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +1 -0
- package/dist/Breadcrumbs.js +11 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.d.ts +12 -1
- package/dist/Button.js +12 -1
- package/dist/Button.js.map +1 -1
- package/dist/Checkbox.d.ts +18 -0
- package/dist/Checkbox.js +39 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/ControlButton.d.ts +2 -1
- package/dist/ControlButton.js +2 -1
- package/dist/ControlButton.js.map +1 -1
- package/dist/DatePicker.d.ts +2 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/InputGroup.d.ts +5 -2
- package/dist/InputGroup.js +6 -0
- package/dist/InputGroup.js.map +1 -1
- package/dist/Link.d.ts +3 -4
- package/dist/Link.js +4 -5
- package/dist/Link.js.map +1 -1
- package/dist/ListItem.d.ts +3 -2
- package/dist/ListItem.js +2 -2
- package/dist/ListItem.js.map +1 -1
- package/dist/MastheadItem.js +1 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MediaPlayer.d.ts +2 -1
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerYoutube.d.ts +2 -1
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/Pagination.d.ts +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/PasswordField.d.ts +10 -0
- package/dist/PasswordField.js +14 -0
- package/dist/PasswordField.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +6 -2
- package/dist/PhoneNumberField.js +22 -2
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/ProgressBar.d.ts +2 -2
- package/dist/ProgressBar.js +6 -6
- package/dist/ProgressBar.js.map +1 -1
- package/dist/RadioButton.d.ts +3 -2
- package/dist/RadioButton.js +7 -6
- package/dist/RadioButton.js.map +1 -1
- package/dist/Search.d.ts +0 -1
- package/dist/Search.js +1 -3
- package/dist/Search.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +4 -1
- package/dist/SecondaryNavigation.js +38 -10
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +10 -0
- package/dist/SecondaryNavigationItem.js +19 -0
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.d.ts +1 -0
- package/dist/SecondaryNavigationItemBase.js +4 -0
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +0 -1
- package/dist/SecondaryNavigationSubItem.js +0 -4
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SegmentedButton.d.ts +1 -1
- package/dist/SegmentedButton.js +1 -1
- package/dist/SegmentedButton.js.map +1 -1
- package/dist/SegmentedButtonItem.d.ts +1 -1
- package/dist/SegmentedButtonItem.js +2 -2
- package/dist/SegmentedButtonItem.js.map +1 -1
- package/dist/StatusBadge.d.ts +8 -3
- package/dist/StatusBadge.js +9 -1
- package/dist/StatusBadge.js.map +1 -1
- package/dist/StepInput.d.ts +3 -3
- package/dist/StepInput.js.map +1 -1
- package/dist/TableCellBase.d.ts +2 -2
- package/dist/TableCellBase.js.map +1 -1
- package/dist/Tag.d.ts +2 -2
- package/dist/Tag.js +4 -4
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.d.ts +2 -2
- package/dist/TextArea.js +9 -9
- package/dist/TextArea.js.map +1 -1
- package/dist/TextField.d.ts +10 -2
- package/dist/TextField.js +20 -5
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.js +1 -1
- package/dist/Toast.js.map +1 -1
- package/dist/Tooltip.d.ts +5 -0
- package/dist/Tooltip.js +11 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Upload.d.ts +1 -1
- package/dist/Upload.js +1 -1
- package/dist/Upload.js.map +1 -1
- package/dist/UploadItem.d.ts +3 -3
- package/dist/UploadItem.js +9 -9
- package/dist/UploadItem.js.map +1 -1
- package/dist/assets/InputSuggestions-KGCQrV_T.js +2 -0
- package/dist/assets/{ListItemStandardExpandableTextTemplate-BymOTLVD.js → ListItemStandardExpandableTextTemplate-D4zLIdLd.js} +2 -2
- package/dist/assets/bundle-C9ZlnwwH.css +1 -0
- package/dist/assets/bundle.esm-Diw1zQ-o.js +384 -0
- package/dist/assets/parameters-bundle.css-1GGBOW8m.js +2 -0
- package/dist/assets/parameters-bundle.css-A9eeRg2R.js +2 -0
- package/dist/assets/parameters-bundle.css-COBI_9-U.js +2 -0
- package/dist/assets/parameters-bundle.css-CgAoZ-Ir.js +2 -0
- package/dist/assets/parameters-bundle.css-DuFHHRNK.js +2 -0
- package/dist/assets/parameters-bundle.css-Pf68NO0T.js +2 -0
- package/dist/assets/parameters-bundle.css-aX_t_-9o.js +2 -0
- package/dist/assets/parameters-bundle.css-rNSryFKH.js +2 -0
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Checkbox.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/RadioButton.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/Tooltip.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/custom-elements-internal.json +201 -38
- package/dist/custom-elements.json +173 -36
- package/dist/generated/json-imports/Themes-node.d.ts +1 -0
- package/dist/generated/json-imports/Themes-node.js +19 -0
- package/dist/generated/json-imports/Themes-node.js.map +1 -0
- package/dist/generated/json-imports/i18n-node.d.ts +1 -0
- package/dist/generated/json-imports/i18n-node.js +82 -0
- package/dist/generated/json-imports/i18n-node.js.map +1 -0
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PasswordFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/PasswordFieldTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +3 -3
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +2 -2
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.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/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/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/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/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.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/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/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/Tooltip.css.d.ts +1 -1
- package/dist/generated/themes/Tooltip.css.js +1 -1
- package/dist/generated/themes/Tooltip.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.d.ts +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/types/ButtonAccessibleRole.d.ts +8 -0
- package/dist/types/ButtonAccessibleRole.js +10 -0
- package/dist/types/ButtonAccessibleRole.js.map +1 -0
- package/dist/types/{Button.d.ts → ButtonDesign.d.ts} +1 -15
- package/dist/types/ButtonDesign.js +16 -0
- package/dist/types/ButtonDesign.js.map +1 -0
- package/dist/types/ButtonSize.d.ts +6 -0
- package/dist/types/ButtonSize.js +8 -0
- package/dist/types/ButtonSize.js.map +1 -0
- package/dist/types/ControlButtonDesign.d.ts +10 -0
- package/dist/types/ControlButtonDesign.js +12 -0
- package/dist/types/ControlButtonDesign.js.map +1 -0
- package/dist/types/ProgressBar.d.ts +1 -1
- package/dist/types/ProgressBar.js +1 -1
- package/dist/types/ProgressBar.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.js +1 -1
- package/dist/types/common.js.map +1 -1
- package/dist/vscode.html-custom-data.json +26 -10
- package/dist/web-types.json +43 -13
- package/package.json +8 -8
- package/src/Badge.ts +4 -4
- package/src/Breadcrumbs.hbs +7 -10
- package/src/Breadcrumbs.ts +14 -1
- package/src/BreadcrumbsPopover.hbs +3 -1
- package/src/Button.ts +12 -1
- package/src/Checkbox.ts +51 -0
- package/src/ControlButton.ts +2 -1
- package/src/DatePicker.ts +2 -2
- package/src/FilterMenu.hbs +1 -0
- package/src/InputGroup.ts +5 -2
- package/src/Link.ts +4 -5
- package/src/ListItem.ts +4 -4
- package/src/MastheadItem.ts +1 -1
- package/src/MediaPlayer.ts +3 -1
- package/src/MediaPlayerYoutube.ts +4 -2
- package/src/Pagination.ts +1 -1
- package/src/PasswordField.hbs +1 -0
- package/src/PasswordField.ts +14 -0
- package/src/PhoneNumberField.ts +25 -4
- package/src/ProgressBar.ts +6 -6
- package/src/RadioButton.ts +7 -6
- package/src/Search.hbs +3 -2
- package/src/Search.ts +1 -3
- package/src/SecondaryNavigation.hbs +1 -0
- package/src/SecondaryNavigation.ts +41 -12
- package/src/SecondaryNavigationItem.hbs +2 -1
- package/src/SecondaryNavigationItem.ts +31 -0
- package/src/SecondaryNavigationItemBase.ts +3 -0
- package/src/SecondaryNavigationSubItem.ts +0 -3
- package/src/SegmentedButton.ts +1 -1
- package/src/SegmentedButtonItem.ts +2 -2
- package/src/StatusBadge.ts +8 -3
- package/src/StepInput.ts +3 -3
- package/src/TableCellBase.ts +2 -2
- package/src/Tag.ts +4 -4
- package/src/TextArea.ts +9 -9
- package/src/TextField.hbs +2 -0
- package/src/TextField.ts +21 -5
- package/src/Toast.ts +1 -1
- package/src/Tooltip.ts +19 -0
- package/src/Upload.ts +1 -1
- package/src/UploadItem.ts +9 -9
- package/src/generated/json-imports/Themes-node.ts +21 -0
- package/src/generated/json-imports/i18n-node.ts +85 -0
- package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/BreadcrumbsTemplate.lit.ts +1 -1
- package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/PasswordFieldTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +2 -2
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
- package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/Checkbox.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/RadioButton.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SideNavigationItem.css.ts +1 -1
- package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/Tooltip.css.ts +1 -1
- package/src/generated/themes/WizardTab.css.ts +1 -1
- package/src/themes/Breadcrumbs.css +3 -0
- package/src/themes/Button.css +11 -7
- package/src/themes/Checkbox.css +15 -1
- package/src/themes/ListItem.css +4 -0
- package/src/themes/MastheadShell.css +2 -1
- package/src/themes/Modal.css +2 -1
- package/src/themes/RadioButton.css +2 -0
- package/src/themes/Search.css +9 -1
- package/src/themes/SideNavigationItem.css +9 -1
- package/src/themes/SideNavigationSubItem.css +7 -0
- package/src/themes/Tooltip.css +1 -1
- package/src/themes/WizardTab.css +5 -0
- package/src/types/ButtonAccessibleRole.ts +9 -0
- package/src/types/{Button.ts → ButtonDesign.ts} +1 -17
- package/src/types/ButtonSize.ts +7 -0
- package/src/types/ControlButtonDesign.ts +11 -0
- package/src/types/ProgressBar.ts +1 -1
- package/src/types/common.ts +1 -1
- package/dist/assets/InputSuggestions-DoWo0hwS.js +0 -2
- package/dist/assets/bundle-7XIcgsQH.css +0 -1
- package/dist/assets/bundle.esm-D10tX-qa.js +0 -380
- package/dist/assets/parameters-bundle.css-BU4Bi-ho.js +0 -2
- package/dist/assets/parameters-bundle.css-Beilb2gS.js +0 -2
- package/dist/assets/parameters-bundle.css-BzQMaZUt.js +0 -2
- package/dist/assets/parameters-bundle.css-Bzfv_Fox.js +0 -2
- package/dist/assets/parameters-bundle.css-CLwmjytB.js +0 -2
- package/dist/assets/parameters-bundle.css-CU3plTdF.js +0 -2
- package/dist/assets/parameters-bundle.css-DRX-o-Cb.js +0 -2
- package/dist/assets/parameters-bundle.css-DhFMZJhW.js +0 -2
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -1
- package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +0 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.d.ts +0 -2
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +0 -3
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +0 -1
- package/dist/types/Button.js +0 -33
- package/dist/types/Button.js.map +0 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +0 -2
- package/src/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +0 -195
package/dist/StepInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepInput.js","sourceRoot":"","sources":["../src/StepInput.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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\nimport {\n isDown,\n isDownCtrl,\n isDownShift,\n isDownShiftCtrl,\n isEnter,\n isEscape,\n isPageDownShift,\n isPageUpShift,\n isUp,\n isUpCtrl,\n isUpShift,\n isUpShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExValueState, { valueStateToControlButtonDesign } from \"./types/common.js\";\nimport StepInputTemplate from \"./StepInputTemplate.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\nimport type { UDExControlButtonDesign } from \"./types/Button.js\";\nimport type { UDExTextFieldKeydownEventDetail } from \"./TextField.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\ntype UDExStepInputValueChangeEventDetail = {\n value: number,\n}\n\ntype UDExStepInputValueStateChangeEventDetail = {\n valueState: `${UDExValueState}`,\n valid: boolean\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-step-input</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/StepInput.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-step-input\",\n renderer: jsxRenderer,\n styles: StepInputCss,\n template: StepInputTemplate,\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\", { bubbles: true })\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} UDExValueState The new `UDExValueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event(\"value-state-change\", { bubbles: true })\n\nclass UDExStepInput extends UI5Element {\n eventDetails!: {\n \"change\": UDExStepInputValueChangeEventDetail,\n \"value-state-change\": UDExStepInputValueStateChangeEventDetail,\n };\n /**\n * Defines a value of the component.\n * @default 0\n * @public\n */\n @property({ type: Number })\n value: number = 0;\n\n /**\n * Defines a minimum value of the component.\n * @default undefined\n * @public\n */\n @property({ type: Number })\n min?: number;\n\n /**\n * Defines a maximum value of the component.\n * @default undefined\n * @public\n */\n @property({ type: Number })\n max?: number;\n\n /**\n * Defines a step of increasing/decreasing the value of the component.\n * @default 1\n * @public\n */\n @property({ type: Number })\n step: number = 1;\n\n /**\n * Defines the value state of the component.\n * @default \"None\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines whether the component is required.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Determines whether the component is displayed as disabled.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Determines whether the component is displayed as read-only.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Determines the number of digits after the decimal point of the component.\n * @default 0\n * @public\n */\n @property({ type: Number })\n valuePrecision: number = 0;\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label: string = \"\";\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText: string = \"\";\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n @property({ type: Boolean, noAttribute: true })\n _decIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n _incIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n incIconActive!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n decIconActive!: boolean;\n\n @property({ type: Number, noAttribute: true })\n _initialValue: number = 0;\n\n @property({ type: Number, noAttribute: true })\n _previousValue: number = 0;\n\n @property({ type: Number, noAttribute: true })\n _waitTimeout: number = INITIAL_WAIT_TIMEOUT;\n\n @property({ type: Number, noAttribute: true })\n _speed: number = INITIAL_SPEED;\n\n @property({ type: Boolean, noAttribute: true })\n _btnDown!: boolean;\n\n @property({ type: Number, noAttribute: true })\n _spinTimeoutId!: Timeout;\n\n @property({ type: Boolean, noAttribute: true })\n _spinStarted!: boolean;\n\n @property({ noAttribute: true })\n _initialValueState?: `${UDExValueState}`;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExStepInput.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n constructor() {\n super();\n }\n\n get controlButtonDesign(): UDExControlButtonDesign {\n return valueStateToControlButtonDesign[this.valueState];\n }\n\n get decIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get incIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get _decIconInactive() {\n return this._decIconDisabled || this.readonly || this.disabled;\n }\n\n get _incIconInactive() {\n return this._incIconDisabled || this.readonly || this.disabled;\n }\n\n get _valuePrecisioned() {\n return this.value.toFixed(this.valuePrecision);\n }\n\n onBeforeRendering() {\n this._setButtonState();\n }\n\n get input() {\n return this.inputOuter.shadowRoot!.querySelector(\"input\")!;\n }\n\n get inputOuter() {\n return this.shadowRoot!.querySelector(\"[udex-text-field]\")!;\n }\n\n _onInputFocusIn() {\n if (this.value !== this._previousValue) {\n this._previousValue = this.value;\n }\n }\n\n _onInputFocusOut() {\n this._onInputChange();\n }\n\n _setButtonState() {\n this._decIconDisabled = this.min !== undefined && this.value <= this.min;\n this._incIconDisabled = this.max !== undefined && this.value >= this.max;\n }\n\n setIncButtonActiveState() {\n this.incIconActive = true;\n }\n\n setDecButtonActiveState() {\n this.decIconActive = true;\n }\n\n unsetButtonsActiveState() {\n this.decIconActive = false;\n this.incIconActive = false;\n }\n\n _validate() {\n if (this._initialValueState === undefined) {\n this._initialValueState = this.valueState;\n }\n\n this._updateValueState();\n }\n\n _updateValueState() {\n const valid = !((this.min !== undefined && this.value < this.min) || (this.max !== undefined && this.value > this.max));\n const previousValueState = this.valueState;\n\n this.valueState = valid ? this._initialValueState! : UDExValueState.Error;\n\n const eventPrevented = !this.fireDecoratorEvent(\"value-state-change\", { valueState: this.valueState, valid });\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _getNumberPrecision(value: number) {\n if (!Number.isFinite(value)) {\n return 0;\n }\n let exponent = 1;\n let precision = 0;\n while (Math.round(value * exponent) / exponent !== value) { exponent *= 10; precision++; }\n return precision;\n }\n\n _preciseValue(value: number) {\n const pow = 10 ** this.valuePrecision;\n return Math.round(value * pow) / pow;\n }\n\n _fireChangeEvent() {\n if (this._previousValue !== this.value) {\n this._previousValue = this.value;\n this.fireDecoratorEvent(\"change\", { value: this.value });\n }\n }\n\n /**\n * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n * @private\n * @param modifier modifies the value of the component with the given modifier (positive or negative)\n * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n */\n _modifyValue(modifier: number, fireChangeEvent = false) {\n let value;\n this.value = this._preciseValue(parseFloat(this.input.value));\n value = this.value + modifier;\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n }\n if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n value = this._preciseValue(value);\n if (value !== this.value) {\n this.value = value;\n this._validate();\n this._setButtonState();\n if (fireChangeEvent) {\n this._fireChangeEvent();\n }\n }\n }\n\n _incValue() {\n if (!this._incIconInactive) {\n this._modifyValue(this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _decValue() {\n if (!this._decIconInactive) {\n this._modifyValue(-this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _onInputChange() {\n if (Number.isNaN(Number(this.input.value)) || this.input.value.trim() === \"\") {\n const fallbackValuePrecisioned = this._initialValue.toFixed(this.valuePrecision);\n this.inputOuter.setAttribute(\"value\", fallbackValuePrecisioned); // necessary for correct label rendering\n this.input.value = fallbackValuePrecisioned; // necessary for correct value rendering\n }\n const inputValue = this._preciseValue(parseFloat(this.input.value));\n if (this.value !== this._previousValue || this.value !== inputValue) {\n this.value = inputValue;\n this._validate();\n this._setButtonState();\n this._fireChangeEvent();\n }\n }\n\n _onkeydown(e: CustomEvent<UDExTextFieldKeydownEventDetail>) {\n const { detail: { keyboardEvent } } = e;\n\n let preventDefault = true;\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (isEnter(keyboardEvent)) {\n this._onInputChange();\n return;\n }\n\n if (isUp(keyboardEvent)) {\n // step up\n this._modifyValue(this.step);\n } else if (isDown(keyboardEvent)) {\n // step down\n this._modifyValue(-this.step);\n } else if (isEscape(keyboardEvent)) {\n // return previous value\n this.value = this._previousValue;\n this.input.value = this.value.toFixed(this.valuePrecision);\n } else if (this.max !== undefined && (isPageUpShift(keyboardEvent) || isUpShiftCtrl(keyboardEvent))) {\n // step to max\n this._modifyValue(this.max - this.value, true);\n } else if (this.min !== undefined && (isPageDownShift(keyboardEvent) || isDownShiftCtrl(keyboardEvent))) {\n // step to min\n this._modifyValue(this.min - this.value, true);\n } else if (!isUpCtrl(keyboardEvent) && !isDownCtrl(keyboardEvent) && !isUpShift(keyboardEvent) && !isDownShift(keyboardEvent)) {\n preventDefault = false;\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n\n _decSpin() {\n if (!this._decIconDisabled) {\n this._spinValue(false, true);\n this.setDecButtonActiveState();\n }\n }\n\n _incSpin() {\n if (!this._incIconDisabled) {\n this._spinValue(true, true);\n this.setIncButtonActiveState();\n }\n }\n\n /**\n * Calculates the time which should be waited until _spinValue function is called.\n */\n _calcWaitTimeout() {\n this._speed *= ACCELERATION;\n this._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n return this._waitTimeout;\n }\n\n /**\n * Called when the increment or decrement button is pressed and held to set new value.\n * @private\n * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n * @param resetVariables - whether to reset the spin-related variables or not\n */\n _spinValue(increment: boolean, resetVariables = false) {\n if (resetVariables) {\n this._waitTimeout = INITIAL_WAIT_TIMEOUT;\n this._speed = INITIAL_SPEED;\n this._btnDown = true;\n }\n this._spinTimeoutId = setTimeout(() => {\n if (this._btnDown) {\n this._spinStarted = true;\n this._modifyValue(increment ? this.step : -this.step);\n this._setButtonState();\n if ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n this._spinValue(increment);\n } else {\n this._resetSpin();\n this._fireChangeEvent();\n }\n }\n }, this._calcWaitTimeout());\n }\n\n /**\n * Resets spin process\n */\n _resetSpin() {\n clearTimeout(this._spinTimeoutId);\n this._btnDown = false;\n this._spinStarted = false;\n this.unsetButtonsActiveState();\n }\n\n /**\n * Resets spin process when mouse outs + or - buttons\n */\n _resetSpinOut() {\n if (this._btnDown) {\n this._resetSpin();\n this._fireChangeEvent();\n this.unsetButtonsActiveState();\n }\n }\n\n onEnterDOM(): void {\n // swap values if the min value is larger than the max value\n if (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n const temp = this.min;\n this.min = this.max;\n this.max = temp;\n }\n\n // detect necessarry value precision as the highest presicion of the step, min, max and initial value\n // the valuePrecision attribute can be used to increase precision, but not to lower it\n this.valuePrecision = Math.max(\n this.valuePrecision ? this.valuePrecision : 0,\n this._getNumberPrecision(this.step),\n this._getNumberPrecision(this.min ? this.min : 0),\n this._getNumberPrecision(this.max ? this.max : 0),\n this._getNumberPrecision(this.value),\n );\n\n this._initialValue = Math.min(Math.max(this.value, this.min ? this.min : 0), this.max ? this.max : Infinity);\n\n this.value = this._initialValue;\n\n this._previousValue = this.value;\n }\n}\n\nUDExStepInput.define();\n\nexport default UDExStepInput;\n"]}
|
|
1
|
+
{"version":3,"file":"StepInput.js","sourceRoot":"","sources":["../src/StepInput.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 jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\nimport {\n isDown,\n isDownCtrl,\n isDownShift,\n isDownShiftCtrl,\n isEnter,\n isEscape,\n isPageDownShift,\n isPageUpShift,\n isUp,\n isUpCtrl,\n isUpShift,\n isUpShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExValueState, { valueStateToControlButtonDesign } from \"./types/common.js\";\nimport StepInputTemplate from \"./StepInputTemplate.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\nimport type UDExControlButtonDesign from \"./types/ControlButtonDesign.js\";\nimport type { UDExTextFieldKeydownEventDetail } from \"./TextField.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\nexport type UDExStepInputValueChangeEventDetail = {\n value: number,\n}\n\nexport type UDExStepInputValueStateChangeEventDetail = {\n valueState: `${UDExValueState}`,\n valid: boolean\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-step-input</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/StepInput.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-step-input\",\n renderer: jsxRenderer,\n styles: StepInputCss,\n template: StepInputTemplate,\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\", { bubbles: true })\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} UDExValueState The new `UDExValueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event(\"value-state-change\", { bubbles: true })\n\nclass UDExStepInput extends UI5Element {\n eventDetails!: {\n \"change\": UDExStepInputValueChangeEventDetail,\n \"value-state-change\": UDExStepInputValueStateChangeEventDetail,\n };\n /**\n * Defines a value of the component.\n * @default 0\n * @public\n */\n @property({ type: Number })\n value: number = 0;\n\n /**\n * Defines a minimum value of the component.\n * @default undefined\n * @public\n */\n @property({ type: Number })\n min?: number;\n\n /**\n * Defines a maximum value of the component.\n * @default undefined\n * @public\n */\n @property({ type: Number })\n max?: number;\n\n /**\n * Defines a step of increasing/decreasing the value of the component.\n * @default 1\n * @public\n */\n @property({ type: Number })\n step: number = 1;\n\n /**\n * Defines the value state of the component.\n * @default \"None\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines whether the component is required.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Determines whether the component is displayed as disabled.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Determines whether the component is displayed as read-only.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Determines the number of digits after the decimal point of the component.\n * @default 0\n * @public\n */\n @property({ type: Number })\n valuePrecision: number = 0;\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label: string = \"\";\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText: string = \"\";\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n @property({ type: Boolean, noAttribute: true })\n _decIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n _incIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n incIconActive!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n decIconActive!: boolean;\n\n @property({ type: Number, noAttribute: true })\n _initialValue: number = 0;\n\n @property({ type: Number, noAttribute: true })\n _previousValue: number = 0;\n\n @property({ type: Number, noAttribute: true })\n _waitTimeout: number = INITIAL_WAIT_TIMEOUT;\n\n @property({ type: Number, noAttribute: true })\n _speed: number = INITIAL_SPEED;\n\n @property({ type: Boolean, noAttribute: true })\n _btnDown!: boolean;\n\n @property({ type: Number, noAttribute: true })\n _spinTimeoutId!: Timeout;\n\n @property({ type: Boolean, noAttribute: true })\n _spinStarted!: boolean;\n\n @property({ noAttribute: true })\n _initialValueState?: `${UDExValueState}`;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n UDExStepInput.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n constructor() {\n super();\n }\n\n get controlButtonDesign(): UDExControlButtonDesign {\n return valueStateToControlButtonDesign[this.valueState];\n }\n\n get decIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get incIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get _decIconInactive() {\n return this._decIconDisabled || this.readonly || this.disabled;\n }\n\n get _incIconInactive() {\n return this._incIconDisabled || this.readonly || this.disabled;\n }\n\n get _valuePrecisioned() {\n return this.value.toFixed(this.valuePrecision);\n }\n\n onBeforeRendering() {\n this._setButtonState();\n }\n\n get input() {\n return this.inputOuter.shadowRoot!.querySelector(\"input\")!;\n }\n\n get inputOuter() {\n return this.shadowRoot!.querySelector(\"[udex-text-field]\")!;\n }\n\n _onInputFocusIn() {\n if (this.value !== this._previousValue) {\n this._previousValue = this.value;\n }\n }\n\n _onInputFocusOut() {\n this._onInputChange();\n }\n\n _setButtonState() {\n this._decIconDisabled = this.min !== undefined && this.value <= this.min;\n this._incIconDisabled = this.max !== undefined && this.value >= this.max;\n }\n\n setIncButtonActiveState() {\n this.incIconActive = true;\n }\n\n setDecButtonActiveState() {\n this.decIconActive = true;\n }\n\n unsetButtonsActiveState() {\n this.decIconActive = false;\n this.incIconActive = false;\n }\n\n _validate() {\n if (this._initialValueState === undefined) {\n this._initialValueState = this.valueState;\n }\n\n this._updateValueState();\n }\n\n _updateValueState() {\n const valid = !((this.min !== undefined && this.value < this.min) || (this.max !== undefined && this.value > this.max));\n const previousValueState = this.valueState;\n\n this.valueState = valid ? this._initialValueState! : UDExValueState.Error;\n\n const eventPrevented = !this.fireDecoratorEvent(\"value-state-change\", { valueState: this.valueState, valid });\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _getNumberPrecision(value: number) {\n if (!Number.isFinite(value)) {\n return 0;\n }\n let exponent = 1;\n let precision = 0;\n while (Math.round(value * exponent) / exponent !== value) { exponent *= 10; precision++; }\n return precision;\n }\n\n _preciseValue(value: number) {\n const pow = 10 ** this.valuePrecision;\n return Math.round(value * pow) / pow;\n }\n\n _fireChangeEvent() {\n if (this._previousValue !== this.value) {\n this._previousValue = this.value;\n this.fireDecoratorEvent(\"change\", { value: this.value });\n }\n }\n\n /**\n * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n * @private\n * @param modifier modifies the value of the component with the given modifier (positive or negative)\n * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n */\n _modifyValue(modifier: number, fireChangeEvent = false) {\n let value;\n this.value = this._preciseValue(parseFloat(this.input.value));\n value = this.value + modifier;\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n }\n if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n value = this._preciseValue(value);\n if (value !== this.value) {\n this.value = value;\n this._validate();\n this._setButtonState();\n if (fireChangeEvent) {\n this._fireChangeEvent();\n }\n }\n }\n\n _incValue() {\n if (!this._incIconInactive) {\n this._modifyValue(this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _decValue() {\n if (!this._decIconInactive) {\n this._modifyValue(-this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _onInputChange() {\n if (Number.isNaN(Number(this.input.value)) || this.input.value.trim() === \"\") {\n const fallbackValuePrecisioned = this._initialValue.toFixed(this.valuePrecision);\n this.inputOuter.setAttribute(\"value\", fallbackValuePrecisioned); // necessary for correct label rendering\n this.input.value = fallbackValuePrecisioned; // necessary for correct value rendering\n }\n const inputValue = this._preciseValue(parseFloat(this.input.value));\n if (this.value !== this._previousValue || this.value !== inputValue) {\n this.value = inputValue;\n this._validate();\n this._setButtonState();\n this._fireChangeEvent();\n }\n }\n\n _onkeydown(e: CustomEvent<UDExTextFieldKeydownEventDetail>) {\n const { detail: { keyboardEvent } } = e;\n\n let preventDefault = true;\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (isEnter(keyboardEvent)) {\n this._onInputChange();\n return;\n }\n\n if (isUp(keyboardEvent)) {\n // step up\n this._modifyValue(this.step);\n } else if (isDown(keyboardEvent)) {\n // step down\n this._modifyValue(-this.step);\n } else if (isEscape(keyboardEvent)) {\n // return previous value\n this.value = this._previousValue;\n this.input.value = this.value.toFixed(this.valuePrecision);\n } else if (this.max !== undefined && (isPageUpShift(keyboardEvent) || isUpShiftCtrl(keyboardEvent))) {\n // step to max\n this._modifyValue(this.max - this.value, true);\n } else if (this.min !== undefined && (isPageDownShift(keyboardEvent) || isDownShiftCtrl(keyboardEvent))) {\n // step to min\n this._modifyValue(this.min - this.value, true);\n } else if (!isUpCtrl(keyboardEvent) && !isDownCtrl(keyboardEvent) && !isUpShift(keyboardEvent) && !isDownShift(keyboardEvent)) {\n preventDefault = false;\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n\n _decSpin() {\n if (!this._decIconDisabled) {\n this._spinValue(false, true);\n this.setDecButtonActiveState();\n }\n }\n\n _incSpin() {\n if (!this._incIconDisabled) {\n this._spinValue(true, true);\n this.setIncButtonActiveState();\n }\n }\n\n /**\n * Calculates the time which should be waited until _spinValue function is called.\n */\n _calcWaitTimeout() {\n this._speed *= ACCELERATION;\n this._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n return this._waitTimeout;\n }\n\n /**\n * Called when the increment or decrement button is pressed and held to set new value.\n * @private\n * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n * @param resetVariables - whether to reset the spin-related variables or not\n */\n _spinValue(increment: boolean, resetVariables = false) {\n if (resetVariables) {\n this._waitTimeout = INITIAL_WAIT_TIMEOUT;\n this._speed = INITIAL_SPEED;\n this._btnDown = true;\n }\n this._spinTimeoutId = setTimeout(() => {\n if (this._btnDown) {\n this._spinStarted = true;\n this._modifyValue(increment ? this.step : -this.step);\n this._setButtonState();\n if ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n this._spinValue(increment);\n } else {\n this._resetSpin();\n this._fireChangeEvent();\n }\n }\n }, this._calcWaitTimeout());\n }\n\n /**\n * Resets spin process\n */\n _resetSpin() {\n clearTimeout(this._spinTimeoutId);\n this._btnDown = false;\n this._spinStarted = false;\n this.unsetButtonsActiveState();\n }\n\n /**\n * Resets spin process when mouse outs + or - buttons\n */\n _resetSpinOut() {\n if (this._btnDown) {\n this._resetSpin();\n this._fireChangeEvent();\n this.unsetButtonsActiveState();\n }\n }\n\n onEnterDOM(): void {\n // swap values if the min value is larger than the max value\n if (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n const temp = this.min;\n this.min = this.max;\n this.max = temp;\n }\n\n // detect necessarry value precision as the highest presicion of the step, min, max and initial value\n // the valuePrecision attribute can be used to increase precision, but not to lower it\n this.valuePrecision = Math.max(\n this.valuePrecision ? this.valuePrecision : 0,\n this._getNumberPrecision(this.step),\n this._getNumberPrecision(this.min ? this.min : 0),\n this._getNumberPrecision(this.max ? this.max : 0),\n this._getNumberPrecision(this.value),\n );\n\n this._initialValue = Math.min(Math.max(this.value, this.min ? this.min : 0), this.max ? this.max : Infinity);\n\n this.value = this._initialValue;\n\n this._previousValue = this.value;\n }\n}\n\nUDExStepInput.define();\n\nexport default UDExStepInput;\n"]}
|
package/dist/TableCellBase.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
-
import type
|
|
2
|
+
import type UDExTableCellHorizontalAlign from "./types/Table.js";
|
|
3
3
|
/**
|
|
4
4
|
* @class
|
|
5
5
|
* A class to serve as a foundation for the `UDExTableCell` and `UDExTableHeaderCell` classes.
|
|
@@ -15,7 +15,7 @@ declare abstract class UDExTableCellBase extends UI5Element {
|
|
|
15
15
|
* @default undefined
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
18
|
-
horizontalAlign?: `${
|
|
18
|
+
horizontalAlign?: `${UDExTableCellHorizontalAlign}`;
|
|
19
19
|
/**
|
|
20
20
|
* Defines the content of the component.
|
|
21
21
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCellBase.js","sourceRoot":"","sources":["../src/TableCellBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAG7E,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE;;;;;;;GAOG;AAQH,IAAe,iBAAiB,GAAhC,MAAe,iBAAkB,SAAQ,UAAU;IAAnD;;QAoCY,aAAQ,GAAW,UAAU,CAAC;IAK1C,CAAC;IAHC,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAjCG;IADD,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"TableCellBase.js","sourceRoot":"","sources":["../src/TableCellBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAG7E,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE;;;;;;;GAOG;AAQH,IAAe,iBAAiB,GAAhC,MAAe,iBAAkB,SAAQ,UAAU;IAAnD;;QAoCY,aAAQ,GAAW,UAAU,CAAC;IAK1C,CAAC;IAHC,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAjCG;IADD,QAAQ,EAAE;0DAC2C;AAOpD;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;kDACd;AAQtB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACR;AASlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACE;AAhCjB,iBAAiB;IAN/B,aAAa,CAAC;QACb,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,CAAC,IAAI,CAAC;KACrB,CAAC;GAEa,iBAAiB,CAyC/B;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type UDExTableCellHorizontalAlign from \"./types/Table.js\";\n\n// Styles\nimport TableCellBaseCss from \"./generated/themes/TableCellBase.css.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `UDExTableCell` and `UDExTableHeaderCell` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n renderer: litRender,\n styles: TableCellBaseCss,\n dependencies: [Icon],\n})\n\nabstract class UDExTableCellBase extends UI5Element {\n /**\n * Determines the horizontal alignment of table cells.\n * Note: All values valid for justify-content can be used not just the ones inside the enum.\n * @default undefined\n * @public\n */\n @property()\n horizontalAlign?: `${UDExTableCellHorizontalAlign}`;\n\n /**\n * Defines the content of the component.\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n /**\n * Defines position sticky of the table cell.\n *\n * @private\n */\n @property({ type: Boolean })\n _sticky?: boolean;\n\n /**\n * Defines the table has horizontal scrolling.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _horizontalOffset?: boolean;\n\n _individualSlot?: string;\n\n protected ariaRole: string = \"gridcell\";\n\n onBeforeRendering() {\n this.setAttribute(\"role\", this.ariaRole);\n }\n}\n\nexport default UDExTableCellBase;\n"]}
|
package/dist/Tag.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
3
|
-
import
|
|
3
|
+
import UDExIconPlacement from "./types/IconPlacement.js";
|
|
4
4
|
export declare enum UDExTagType {
|
|
5
5
|
Text = "Text",
|
|
6
6
|
White = "White",
|
|
@@ -80,7 +80,7 @@ declare class UDExTag extends UI5Element {
|
|
|
80
80
|
* @default "End"
|
|
81
81
|
* @public
|
|
82
82
|
*/
|
|
83
|
-
iconPlacement: `${
|
|
83
|
+
iconPlacement: `${UDExIconPlacement}`;
|
|
84
84
|
/**
|
|
85
85
|
* Defines if tag is in readnly state
|
|
86
86
|
*
|
package/dist/Tag.js
CHANGED
|
@@ -13,7 +13,7 @@ import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
|
13
13
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
14
14
|
import { isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
15
15
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
16
|
-
import
|
|
16
|
+
import UDExIconPlacement from "./types/IconPlacement.js";
|
|
17
17
|
import TagTemplate from "./generated/templates/TagTemplate.lit.js";
|
|
18
18
|
// Styles
|
|
19
19
|
import TagCss from "./generated/themes/Tag.css.js";
|
|
@@ -71,7 +71,7 @@ let UDExTag = class UDExTag extends UI5Element {
|
|
|
71
71
|
* @default "End"
|
|
72
72
|
* @public
|
|
73
73
|
*/
|
|
74
|
-
this.iconPlacement =
|
|
74
|
+
this.iconPlacement = UDExIconPlacement.End;
|
|
75
75
|
/**
|
|
76
76
|
* Defines the accessible ARIA name of the component.
|
|
77
77
|
* @default ""
|
|
@@ -144,10 +144,10 @@ let UDExTag = class UDExTag extends UI5Element {
|
|
|
144
144
|
return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${linkTagClass} ${selectableClass}`.trim();
|
|
145
145
|
}
|
|
146
146
|
get startIcon() {
|
|
147
|
-
return this.hasIcon && this.iconPlacement ===
|
|
147
|
+
return this.hasIcon && this.iconPlacement === UDExIconPlacement.Start;
|
|
148
148
|
}
|
|
149
149
|
get endIcon() {
|
|
150
|
-
return this.hasIcon && this.iconPlacement ===
|
|
150
|
+
return this.hasIcon && this.iconPlacement === UDExIconPlacement.End;
|
|
151
151
|
}
|
|
152
152
|
get _tabIndex() {
|
|
153
153
|
if (this.overflows || this.nonSelectable) {
|
package/dist/Tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport IconPlacement from \"./types/IconPlacement.js\";\n\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum UDExTagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum UDExTagSize {\n Small = \"Small\",\n Medium = \"Medium\"\n}\n\ntype UDExTagLinkClickEventDetail = {\n originalEvent: Event,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: litRender,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @public\n */\n@event(\"selectionChange\", { bubbles: true })\n\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n */\n@event(\"iconClick\", { bubbles: true })\n/**\n * Emitted when tag link was clicked\n *\n * @public\n */\n@event(\"tagLinkClick\", { cancelable: true, bubbles: true })\nclass UDExTag extends UI5Element {\n eventDetails!: {\n \"selectionChange\": void,\n \"iconClick\": void,\n \"tagLinkClick\": UDExTagLinkClickEventDetail,\n };\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text!: string;\n /**\n * Defines the href for behavior of the tag as a link\n *\n * @default \"\"\n * @public\n */\n @property()\n href!: string;\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property()\n design: `${UDExTagType}` = UDExTagType.Grey;\n\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property()\n size: `${UDExTagSize}` = UDExTagSize.Small;\n\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property()\n iconPlacement : `${IconPlacement}` = IconPlacement.End;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property()\n accessibleRole: string = \"\";\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @private\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering(): void {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.accessibleRole !== \"button\") {\n this.shadowRoot?.firstElementChild?.removeAttribute(\"aria-pressed\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n setSelected(): void {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event): void {\n e.stopPropagation();\n this.fireDecoratorEvent(\"iconClick\");\n }\n\n tagClickHandler(): void {\n if (this.isInteractiveTag) {\n this.setSelected();\n this.fireDecoratorEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent): void {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _handleResize() {\n if (this.isTruncatable) {\n this.title = this.text;\n } else {\n this.removeAttribute(\"title\");\n }\n }\n\n _focusin(): void {\n this.focused = true;\n }\n\n _focusout(): void {\n this.focused = !this.focused;\n }\n\n get tagClasses(): string {\n const hasIconClass = this.hasIcon ? \"udex-tag--has-icon\" : \"\";\n const readOnlyClass = this.readOnly ? \"udex-tag--readonly\" : \"\";\n const nonSelectableClass = this.nonSelectable && !this.href ? \"udex-tag--nonselectable\" : \"\";\n const linkTagClass = this.href ? \"udex-tag--link\" : \"\";\n const selectableClass = this.selected ? \"udex-tag--selected\" : \"\";\n const designClass = `udex-tag-${this.design?.toLowerCase()}`;\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${linkTagClass} ${selectableClass}`.trim();\n }\n\n get startIcon(): boolean {\n return this.hasIcon && this.iconPlacement === IconPlacement.Start;\n }\n\n get endIcon(): boolean {\n return this.hasIcon && this.iconPlacement === IconPlacement.End;\n }\n\n get _tabIndex(): number {\n if (this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom(): HTMLElement {\n return this.getDomRef()!.querySelector(\".udex-tag__text\")!;\n }\n\n get isTruncatable(): boolean {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n\n get isInteractiveTag(): boolean {\n return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;\n }\n\n get hasIcon(): boolean {\n return !!this.icon && !this.readOnly;\n }\n\n get iconAccessibleName(): string {\n return this.accessibleName || this.text;\n }\n\n tagLinkClickHandler(e: Event): void {\n this.fireDecoratorEvent(\"tagLinkClick\", { originalEvent: e });\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\n"]}
|
|
1
|
+
{"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExIconPlacement from \"./types/IconPlacement.js\";\n\nimport TagTemplate from \"./generated/templates/TagTemplate.lit.js\";\n\n// Styles\nimport TagCss from \"./generated/themes/Tag.css.js\";\n\nexport enum UDExTagType {\n Text = \"Text\",\n White = \"White\",\n Outlined = \"Outlined\",\n Grey = \"Grey\"\n}\n\nexport enum UDExTagSize {\n Small = \"Small\",\n Medium = \"Medium\"\n}\n\ntype UDExTagLinkClickEventDetail = {\n originalEvent: Event,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tag</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Tag.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tag\n * @public\n */\n@customElement({\n tag: \"udex-tag\",\n renderer: litRender,\n styles: TagCss,\n template: TagTemplate,\n dependencies: [Icon],\n})\n\n/**\n * Emitted when tag was clicked\n *\n * @public\n */\n@event(\"selectionChange\", { bubbles: true })\n\n/**\n * Emitted when icon in tag was clicked\n *\n * @public\n */\n@event(\"iconClick\", { bubbles: true })\n/**\n * Emitted when tag link was clicked\n *\n * @public\n */\n@event(\"tagLinkClick\", { cancelable: true, bubbles: true })\nclass UDExTag extends UI5Element {\n eventDetails!: {\n \"selectionChange\": void,\n \"iconClick\": void,\n \"tagLinkClick\": UDExTagLinkClickEventDetail,\n };\n /**\n * Defines the text of the tag\n *\n * @default \"\"\n * @public\n */\n @property()\n text!: string;\n /**\n * Defines the href for behavior of the tag as a link\n *\n * @default \"\"\n * @public\n */\n @property()\n href!: string;\n /**\n * Defines the design type of tag\n *\n * @default \"Grey\"\n * @public\n */\n @property()\n design: `${UDExTagType}` = UDExTagType.Grey;\n\n /**\n * Defines the size of the component.\n *\n * @default \"Small\"\n * @public\n */\n @property()\n size: `${UDExTagSize}` = UDExTagSize.Small;\n\n /**\n * Defines icon name\n *\n * @default \"\"\n * @public\n */\n @property()\n icon!: string;\n\n /**\n * Defines icon placement if icon was provided\n *\n * @default \"End\"\n * @public\n */\n @property()\n iconPlacement : `${UDExIconPlacement}` = UDExIconPlacement.End;\n\n /**\n * Defines if tag is in readnly state\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readOnly!: boolean;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Defines the role attribute of component\n *\n * @default \"button\"\n * @public\n */\n @property()\n accessibleRole: string = \"\";\n\n /**\n * Defines if tag is selected\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines whether the component is focused or not.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n focused!: boolean;\n\n /**\n * Defines whether the token is being deleted\n * This flag is used in the udex-select-box\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n toBeDeleted!: boolean;\n\n /**\n * Set by the tokenizer when a token is in the \"more\" area (overflowing)\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n overflows!: boolean;\n\n @property({ type: Boolean })\n singleToken!: boolean;\n\n /**\n * Toggle on/off nonSelectable property on tag\n * @default true\n * @private\n */\n @property({ type: Boolean })\n nonSelectable!: boolean;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering(): void {\n this.toBeDeleted = false;\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.accessibleRole !== \"button\") {\n this.shadowRoot?.firstElementChild?.removeAttribute(\"aria-pressed\");\n }\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n setSelected(): void {\n this.selected = !this.selected;\n }\n\n iconClickHandler(e: Event): void {\n e.stopPropagation();\n this.fireDecoratorEvent(\"iconClick\");\n }\n\n tagClickHandler(): void {\n if (this.isInteractiveTag) {\n this.setSelected();\n this.fireDecoratorEvent(\"selectionChange\");\n }\n }\n\n tagKeyDown(e: KeyboardEvent): void {\n if (isEnter(e)) {\n this.tagClickHandler();\n }\n }\n\n _handleResize() {\n if (this.isTruncatable) {\n this.title = this.text;\n } else {\n this.removeAttribute(\"title\");\n }\n }\n\n _focusin(): void {\n this.focused = true;\n }\n\n _focusout(): void {\n this.focused = !this.focused;\n }\n\n get tagClasses(): string {\n const hasIconClass = this.hasIcon ? \"udex-tag--has-icon\" : \"\";\n const readOnlyClass = this.readOnly ? \"udex-tag--readonly\" : \"\";\n const nonSelectableClass = this.nonSelectable && !this.href ? \"udex-tag--nonselectable\" : \"\";\n const linkTagClass = this.href ? \"udex-tag--link\" : \"\";\n const selectableClass = this.selected ? \"udex-tag--selected\" : \"\";\n const designClass = `udex-tag-${this.design?.toLowerCase()}`;\n return `udex-tag udex-tag--${this.size.toLocaleLowerCase()} ${designClass} ${hasIconClass} ${readOnlyClass} ${nonSelectableClass} ${linkTagClass} ${selectableClass}`.trim();\n }\n\n get startIcon(): boolean {\n return this.hasIcon && this.iconPlacement === UDExIconPlacement.Start;\n }\n\n get endIcon(): boolean {\n return this.hasIcon && this.iconPlacement === UDExIconPlacement.End;\n }\n\n get _tabIndex(): number {\n if (this.overflows || this.nonSelectable) {\n return -1;\n }\n return 0;\n }\n\n get textDom(): HTMLElement {\n return this.getDomRef()!.querySelector(\".udex-tag__text\")!;\n }\n\n get isTruncatable(): boolean {\n if (!this.textDom) {\n return false;\n }\n\n return Math.ceil(this.textDom.getBoundingClientRect().width) < Math.ceil(this.textDom.scrollWidth);\n }\n\n get isInteractiveTag(): boolean {\n return !this.readOnly && !this.toBeDeleted && !this.nonSelectable;\n }\n\n get hasIcon(): boolean {\n return !!this.icon && !this.readOnly;\n }\n\n get iconAccessibleName(): string {\n return this.accessibleName || this.text;\n }\n\n tagLinkClickHandler(e: Event): void {\n this.fireDecoratorEvent(\"tagLinkClick\", { originalEvent: e });\n }\n}\n\nUDExTag.define();\n\nexport default UDExTag;\n"]}
|
package/dist/TextArea.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import "@ui5/webcomponents/dist/Icon.js";
|
|
|
4
4
|
import "@ui5/webcomponents-icons/dist/accept.js";
|
|
5
5
|
import "@ui5/webcomponents-icons/dist/error.js";
|
|
6
6
|
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
7
|
-
import
|
|
7
|
+
import UDExValueState from "./types/common.js";
|
|
8
8
|
/**
|
|
9
9
|
* @class
|
|
10
10
|
*
|
|
@@ -81,7 +81,7 @@ declare class UDExTextArea extends UI5Element {
|
|
|
81
81
|
* @default "Standard"
|
|
82
82
|
* @public
|
|
83
83
|
*/
|
|
84
|
-
valueState:
|
|
84
|
+
valueState: UDExValueState;
|
|
85
85
|
/**
|
|
86
86
|
* Defines whether the component is required.
|
|
87
87
|
*
|
package/dist/TextArea.js
CHANGED
|
@@ -18,7 +18,7 @@ import "@ui5/webcomponents-icons/dist/accept.js";
|
|
|
18
18
|
import "@ui5/webcomponents-icons/dist/error.js";
|
|
19
19
|
import "@ui5/webcomponents-icons/dist/alert.js";
|
|
20
20
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
21
|
-
import
|
|
21
|
+
import UDExValueState from "./types/common.js";
|
|
22
22
|
import TextAreaTemplate from "./generated/templates/TextAreaTemplate.lit.js";
|
|
23
23
|
// Styles
|
|
24
24
|
import TextAreaCss from "./generated/themes/TextArea.css.js";
|
|
@@ -70,7 +70,7 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
|
|
|
70
70
|
* @default "Standard"
|
|
71
71
|
* @public
|
|
72
72
|
*/
|
|
73
|
-
this.valueState =
|
|
73
|
+
this.valueState = UDExValueState.Standard;
|
|
74
74
|
/**
|
|
75
75
|
* Defines the inner stored value of the classes of the label.
|
|
76
76
|
*
|
|
@@ -160,24 +160,24 @@ let UDExTextArea = UDExTextArea_1 = class UDExTextArea extends UI5Element {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
get ariaInvalid() {
|
|
163
|
-
return this.valueState ===
|
|
163
|
+
return this.valueState === UDExValueState.Error ? "true" : null;
|
|
164
164
|
}
|
|
165
165
|
get hasValueState() {
|
|
166
|
-
return this.valueState ===
|
|
166
|
+
return this.valueState === UDExValueState.Error || this.valueState === UDExValueState.Warning || this.valueState === UDExValueState.Success;
|
|
167
167
|
}
|
|
168
168
|
get valueStateTypeMappings() {
|
|
169
169
|
return {
|
|
170
|
-
[
|
|
171
|
-
[
|
|
172
|
-
[
|
|
173
|
-
[
|
|
170
|
+
[UDExValueState.Success]: UDExTextArea_1.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),
|
|
171
|
+
[UDExValueState.Standard]: UDExTextArea_1.i18nBundle.getText(VALUE_STATE_TYPE_STANDARD),
|
|
172
|
+
[UDExValueState.Error]: UDExTextArea_1.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),
|
|
173
|
+
[UDExValueState.Warning]: UDExTextArea_1.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
176
|
get ariaValueStateHiddenText() {
|
|
177
177
|
if (!this.hasValueState) {
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
if (this.valueState ===
|
|
180
|
+
if (this.valueState === UDExValueState.Standard) {
|
|
181
181
|
return;
|
|
182
182
|
}
|
|
183
183
|
return `${this.valueStateTypeMappings[this.valueState]}`;
|
package/dist/TextArea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n READ_ONLY,\n TEXTAREA_CHARACTERS_LEFT,\n TEXT_FIELD,\n VALUE_STATE_TYPE_ERROR,\n VALUE_STATE_TYPE_STANDARD,\n VALUE_STATE_TYPE_SUCCESS,\n VALUE_STATE_TYPE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/accept.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\n\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport ValueState from \"./types/common.js\";\nimport TextAreaTemplate from \"./generated/templates/TextAreaTemplate.lit.js\";\n\n// Styles\nimport TextAreaCss from \"./generated/themes/TextArea.css.js\";\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-area\n * @public\n */\n@customElement({\n tag: \"udex-textarea\",\n renderer: litRender,\n styles: [TextAreaCss, getEffectiveScrollbarStyle()],\n template: TextAreaTemplate,\n dependencies: [UDExStatusMessage],\n})\n\nclass UDExTextArea extends UI5Element {\n eventDetails!: {\n \"change\": void,\n };\n\n _labelActiveClassName = \"udex-textarea__label--active\";\n\n /**\n * Defines label text for the textarea field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label: string = \"\";\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Defines the number of visible text lines for the component.\n * <br><br>\n * <b>Notes:</b>\n * <ul>\n * <li>If the <code>growing</code> property is enabled, this property defines the minimum rows to be displayed\n * in the textarea.</li>\n * <li>The CSS <code>height</code> property wins over the <code>rows</code> property, if both are set.</li>\n * </ul>\n *\n * @public\n */\n @property({ type: Number })\n rows!: number;\n\n /**\n * Enables the component to automatically grow and shrink dynamically with its content.\n * <br><br>\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n growing!: boolean;\n\n /**\n * Defines the maximum number of lines that the component can grow.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n growingMaxLines: number = 0;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText: string = \"\";\n\n /**\n * Sets the maximum number of characters available in the textarea.\n *\n * @public\n */\n @property({ type: Number })\n maxlength?: number;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${ValueState}` = ValueState.Standard;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelClasses: string = \"\";\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelActiveClass: string = \"\";\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n /**\n * Defines is it the touch of the textarea (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n getInputDomRef() {\n return this.getDomRef()!.querySelector<HTMLTextAreaElement>(\"textarea\")!;\n }\n\n onBeforeRendering() {\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-textarea__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering() {\n this.handleGrowing();\n }\n\n handleInput = (event: InputEvent) => {\n this.value = (event.target as HTMLInputElement)?.value;\n };\n\n handleChange = () => {\n this.fireDecoratorEvent(\"change\");\n };\n\n handleGrowing = () => {\n if (this.growing) {\n const nativeTextArea = this.getInputDomRef();\n\n if (!this.rows) {\n this.rows = 1;\n }\n nativeTextArea.style.height = \"auto\";\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.height = `${nativeTextArea.scrollHeight + 2}px`;\n\n if (this.growingMaxLines) {\n const style = getComputedStyle(nativeTextArea);\n\n const lineHeight = parseInt(style.lineHeight);\n const paddingTop = parseInt(style.paddingTop);\n const paddingBottom = parseInt(style.paddingBottom);\n\n const heightRatio = this.growingMaxLines > this.rows ? this.growingMaxLines : this.rows;\n\n const growingMaxHeight = lineHeight * heightRatio + paddingTop + paddingBottom;\n\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.maxHeight = `${growingMaxHeight + 2}px`;\n }\n }\n };\n\n handleFocus = () => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.active = true;\n this.labelActiveClass = this._labelActiveClassName;\n }\n };\n\n handleClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n }\n\n handleBlur = () => {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n this.active = false;\n };\n\n get ariaInvalid(): string | null {\n return this.valueState === ValueState.Error ? \"true\" : null;\n }\n\n get hasValueState(): boolean {\n return this.valueState === ValueState.Error || this.valueState === ValueState.Warning || this.valueState === ValueState.Success;\n }\n\n get valueStateTypeMappings() {\n return {\n [ValueState.Success]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n [ValueState.Standard]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_STANDARD),\n [ValueState.Error]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n [ValueState.Warning]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n };\n }\n\n get ariaValueStateHiddenText(): string | undefined {\n if (!this.hasValueState) {\n return;\n }\n\n if (this.valueState === ValueState.Standard) {\n return;\n }\n\n return `${this.valueStateTypeMappings[this.valueState]}`;\n }\n\n get readOnlyText(): string {\n return UDExTextArea.i18nBundle.getText(READ_ONLY);\n }\n\n get ariaDescribedBy(): string | undefined {\n const valueStateTextDescId = this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n const readonlyTextDescId = this.readonly ? `${this._id}-readonlyDesc` : \"\";\n const supportingTextDescId = this._supportingText ? `${this._id}-supportingTextDesc` : \"\";\n if (!valueStateTextDescId && !supportingTextDescId && !readonlyTextDescId) {\n return;\n }\n return `${valueStateTextDescId} ${supportingTextDescId} ${readonlyTextDescId}`;\n }\n\n get _supportingText(): string | undefined {\n if (this.supportingText.length) {\n return this.supportingText;\n }\n\n const maxLength = this.maxlength;\n\n if (maxLength !== null && maxLength !== undefined) {\n const leftCharactersCount = maxLength - this.value.length;\n\n if (leftCharactersCount >= 0) {\n return UDExTextArea.i18nBundle.getText(TEXTAREA_CHARACTERS_LEFT, leftCharactersCount);\n }\n }\n }\n\n get textHiddenLabel(): string {\n return UDExTextArea.i18nBundle.getText(TEXT_FIELD);\n }\n}\n\nUDExTextArea.define();\n\nexport default UDExTextArea;\n"]}
|
|
1
|
+
{"version":3,"file":"TextArea.js","sourceRoot":"","sources":["../src/TextArea.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 litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n READ_ONLY,\n TEXTAREA_CHARACTERS_LEFT,\n TEXT_FIELD,\n VALUE_STATE_TYPE_ERROR,\n VALUE_STATE_TYPE_STANDARD,\n VALUE_STATE_TYPE_SUCCESS,\n VALUE_STATE_TYPE_WARNING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/accept.js\";\nimport \"@ui5/webcomponents-icons/dist/error.js\";\nimport \"@ui5/webcomponents-icons/dist/alert.js\";\n\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExValueState from \"./types/common.js\";\nimport TextAreaTemplate from \"./generated/templates/TextAreaTemplate.lit.js\";\n\n// Styles\nimport TextAreaCss from \"./generated/themes/TextArea.css.js\";\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-area\n * @public\n */\n@customElement({\n tag: \"udex-textarea\",\n renderer: litRender,\n styles: [TextAreaCss, getEffectiveScrollbarStyle()],\n template: TextAreaTemplate,\n dependencies: [UDExStatusMessage],\n})\n\nclass UDExTextArea extends UI5Element {\n eventDetails!: {\n \"change\": void,\n };\n\n _labelActiveClassName = \"udex-textarea__label--active\";\n\n /**\n * Defines label text for the textarea field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label: string = \"\";\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Defines the number of visible text lines for the component.\n * <br><br>\n * <b>Notes:</b>\n * <ul>\n * <li>If the <code>growing</code> property is enabled, this property defines the minimum rows to be displayed\n * in the textarea.</li>\n * <li>The CSS <code>height</code> property wins over the <code>rows</code> property, if both are set.</li>\n * </ul>\n *\n * @public\n */\n @property({ type: Number })\n rows!: number;\n\n /**\n * Enables the component to automatically grow and shrink dynamically with its content.\n * <br><br>\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n growing!: boolean;\n\n /**\n * Defines the maximum number of lines that the component can grow.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n growingMaxLines: number = 0;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText: string = \"\";\n\n /**\n * Sets the maximum number of characters available in the textarea.\n *\n * @public\n */\n @property({ type: Number })\n maxlength?: number;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: UDExValueState = UDExValueState.Standard;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelClasses: string = \"\";\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelActiveClass: string = \"\";\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName: string = \"\";\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\n /**\n * Defines is it the touch of the textarea (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n getInputDomRef() {\n return this.getDomRef()!.querySelector<HTMLTextAreaElement>(\"textarea\")!;\n }\n\n onBeforeRendering() {\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-textarea__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering() {\n this.handleGrowing();\n }\n\n handleInput = (event: InputEvent) => {\n this.value = (event.target as HTMLInputElement)?.value;\n };\n\n handleChange = () => {\n this.fireDecoratorEvent(\"change\");\n };\n\n handleGrowing = () => {\n if (this.growing) {\n const nativeTextArea = this.getInputDomRef();\n\n if (!this.rows) {\n this.rows = 1;\n }\n nativeTextArea.style.height = \"auto\";\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.height = `${nativeTextArea.scrollHeight + 2}px`;\n\n if (this.growingMaxLines) {\n const style = getComputedStyle(nativeTextArea);\n\n const lineHeight = parseInt(style.lineHeight);\n const paddingTop = parseInt(style.paddingTop);\n const paddingBottom = parseInt(style.paddingBottom);\n\n const heightRatio = this.growingMaxLines > this.rows ? this.growingMaxLines : this.rows;\n\n const growingMaxHeight = lineHeight * heightRatio + paddingTop + paddingBottom;\n\n // 2px - to avoid an unnecessary scrollbar, the border needs to be taken into account\n nativeTextArea.style.maxHeight = `${growingMaxHeight + 2}px`;\n }\n }\n };\n\n handleFocus = () => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.active = true;\n this.labelActiveClass = this._labelActiveClassName;\n }\n };\n\n handleClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n }\n\n handleBlur = () => {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n this.active = false;\n };\n\n get ariaInvalid(): string | null {\n return this.valueState === UDExValueState.Error ? \"true\" : null;\n }\n\n get hasValueState(): boolean {\n return this.valueState === UDExValueState.Error || this.valueState === UDExValueState.Warning || this.valueState === UDExValueState.Success;\n }\n\n get valueStateTypeMappings() {\n return {\n [UDExValueState.Success]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_SUCCESS),\n [UDExValueState.Standard]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_STANDARD),\n [UDExValueState.Error]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_ERROR),\n [UDExValueState.Warning]: UDExTextArea.i18nBundle.getText(VALUE_STATE_TYPE_WARNING),\n };\n }\n\n get ariaValueStateHiddenText(): string | undefined {\n if (!this.hasValueState) {\n return;\n }\n\n if (this.valueState === UDExValueState.Standard) {\n return;\n }\n\n return `${this.valueStateTypeMappings[this.valueState]}`;\n }\n\n get readOnlyText(): string {\n return UDExTextArea.i18nBundle.getText(READ_ONLY);\n }\n\n get ariaDescribedBy(): string | undefined {\n const valueStateTextDescId = this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n const readonlyTextDescId = this.readonly ? `${this._id}-readonlyDesc` : \"\";\n const supportingTextDescId = this._supportingText ? `${this._id}-supportingTextDesc` : \"\";\n if (!valueStateTextDescId && !supportingTextDescId && !readonlyTextDescId) {\n return;\n }\n return `${valueStateTextDescId} ${supportingTextDescId} ${readonlyTextDescId}`;\n }\n\n get _supportingText(): string | undefined {\n if (this.supportingText.length) {\n return this.supportingText;\n }\n\n const maxLength = this.maxlength;\n\n if (maxLength !== null && maxLength !== undefined) {\n const leftCharactersCount = maxLength - this.value.length;\n\n if (leftCharactersCount >= 0) {\n return UDExTextArea.i18nBundle.getText(TEXTAREA_CHARACTERS_LEFT, leftCharactersCount);\n }\n }\n }\n\n get textHiddenLabel(): string {\n return UDExTextArea.i18nBundle.getText(TEXT_FIELD);\n }\n}\n\nUDExTextArea.define();\n\nexport default UDExTextArea;\n"]}
|
package/dist/TextField.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
|
-
import
|
|
3
|
+
import UDExValueState from "./types/common.js";
|
|
4
4
|
type AccInfo = {
|
|
5
5
|
ariaInvalid?: string;
|
|
6
6
|
ariaDescribedBy?: string;
|
|
@@ -115,7 +115,7 @@ declare class UDExTextField extends UI5Element {
|
|
|
115
115
|
* @default "Standard"
|
|
116
116
|
* @public
|
|
117
117
|
*/
|
|
118
|
-
valueState: `${
|
|
118
|
+
valueState: `${UDExValueState}`;
|
|
119
119
|
/**
|
|
120
120
|
* Defines supporting text under the input field.
|
|
121
121
|
*
|
|
@@ -137,6 +137,12 @@ declare class UDExTextField extends UI5Element {
|
|
|
137
137
|
* @public
|
|
138
138
|
*/
|
|
139
139
|
active: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Defines the behaviour of autocomplete.
|
|
142
|
+
* @default "off"
|
|
143
|
+
* @public
|
|
144
|
+
*/
|
|
145
|
+
autocomplete: string;
|
|
140
146
|
/**
|
|
141
147
|
* Defines the inner stored show password button tooltip.
|
|
142
148
|
*
|
|
@@ -219,6 +225,8 @@ declare class UDExTextField extends UI5Element {
|
|
|
219
225
|
get valueStateTextId(): string;
|
|
220
226
|
get readOnlyStateTextId(): string;
|
|
221
227
|
get accInfo(): AccInfo;
|
|
228
|
+
get inputRole(): string | undefined;
|
|
229
|
+
get isAutoCompleteDisabled(): boolean;
|
|
222
230
|
handleKeydown(e: KeyboardEvent): void;
|
|
223
231
|
handleChange: () => void;
|
|
224
232
|
handleInput: (inputEvent: InputEvent) => void;
|
package/dist/TextField.js
CHANGED
|
@@ -15,7 +15,7 @@ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
|
15
15
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
16
16
|
import { VALUE_STATE_SUCCESS, VALUE_STATE_INFORMATION, VALUE_STATE_WARNING, VALUE_STATE_ERROR, READ_ONLY, } from "./generated/i18n/i18n-defaults.js";
|
|
17
17
|
import UDExControlButton from "./ControlButton.js";
|
|
18
|
-
import
|
|
18
|
+
import UDExValueState from "./types/common.js";
|
|
19
19
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
20
20
|
// Template
|
|
21
21
|
import TextFieldTemplate from "./generated/templates/TextFieldTemplate.lit.js";
|
|
@@ -63,7 +63,13 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
|
|
|
63
63
|
* @default "Standard"
|
|
64
64
|
* @public
|
|
65
65
|
*/
|
|
66
|
-
this.valueState =
|
|
66
|
+
this.valueState = UDExValueState.Standard;
|
|
67
|
+
/**
|
|
68
|
+
* Defines the behaviour of autocomplete.
|
|
69
|
+
* @default "off"
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
this.autocomplete = "off";
|
|
67
73
|
/**
|
|
68
74
|
* Defines the inner stored show password button tooltip.
|
|
69
75
|
*
|
|
@@ -129,10 +135,10 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
|
|
|
129
135
|
};
|
|
130
136
|
}
|
|
131
137
|
get hasValueState() {
|
|
132
|
-
return this.valueState !==
|
|
138
|
+
return this.valueState !== UDExValueState.Standard;
|
|
133
139
|
}
|
|
134
140
|
get valueStateText() {
|
|
135
|
-
return this.valueState !==
|
|
141
|
+
return this.valueState !== UDExValueState.Standard ? this.valueStateTypeMappings[this.valueState] : undefined;
|
|
136
142
|
}
|
|
137
143
|
get readOnlyStateText() {
|
|
138
144
|
return UDExTextField_1.i18nBundle.getText(READ_ONLY);
|
|
@@ -151,13 +157,19 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
|
|
|
151
157
|
}
|
|
152
158
|
get accInfo() {
|
|
153
159
|
return {
|
|
154
|
-
"ariaInvalid": this.valueState ===
|
|
160
|
+
"ariaInvalid": this.valueState === UDExValueState.Error ? "true" : undefined,
|
|
155
161
|
"ariaDescribedBy": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,
|
|
156
162
|
"ariaLabelledBy": this.accessibleNameRef || undefined,
|
|
157
163
|
"ariaLabel": this.accessibleName || undefined,
|
|
158
164
|
"ariaHasPopup": this._ariaHasPopup || undefined,
|
|
159
165
|
};
|
|
160
166
|
}
|
|
167
|
+
get inputRole() {
|
|
168
|
+
return this.isAutoCompleteDisabled ? "presentation" : undefined;
|
|
169
|
+
}
|
|
170
|
+
get isAutoCompleteDisabled() {
|
|
171
|
+
return this.autocomplete === "off" || this.autocomplete === "new-password";
|
|
172
|
+
}
|
|
161
173
|
handleKeydown(e) {
|
|
162
174
|
e.stopPropagation();
|
|
163
175
|
this.fireDecoratorEvent("keydown", { keyboardEvent: e });
|
|
@@ -232,6 +244,9 @@ __decorate([
|
|
|
232
244
|
__decorate([
|
|
233
245
|
property({ type: Boolean })
|
|
234
246
|
], UDExTextField.prototype, "active", void 0);
|
|
247
|
+
__decorate([
|
|
248
|
+
property({ type: String })
|
|
249
|
+
], UDExTextField.prototype, "autocomplete", void 0);
|
|
235
250
|
__decorate([
|
|
236
251
|
property({ type: String })
|
|
237
252
|
], UDExTextField.prototype, "showButtonTooltip", void 0);
|