@ui5/webcomponents 2.18.1 → 2.19.0-rc.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/CHANGELOG.md +11 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/ColorPicker.d.ts +2 -0
- package/dist/ColorPicker.js +25 -1
- package/dist/ColorPicker.js.map +1 -1
- package/dist/Icon.d.ts +13 -0
- package/dist/Icon.js +28 -2
- package/dist/Icon.js.map +1 -1
- package/dist/Link.d.ts +7 -0
- package/dist/Link.js +5 -1
- package/dist/Link.js.map +1 -1
- package/dist/List.d.ts +9 -0
- package/dist/List.js +12 -0
- package/dist/List.js.map +1 -1
- package/dist/ListTemplate.js +6 -6
- package/dist/ListTemplate.js.map +1 -1
- package/dist/MultiInput.d.ts +2 -2
- package/dist/MultiInput.js +13 -15
- package/dist/MultiInput.js.map +1 -1
- package/dist/css/themes/List.css +1 -1
- package/dist/custom-elements-internal.json +29 -0
- package/dist/custom-elements.json +23 -0
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +5 -1
- package/dist/generated/i18n/i18n-defaults.js +7 -3
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/List.css.d.ts +1 -1
- package/dist/generated/themes/List.css.js +1 -1
- package/dist/generated/themes/List.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +6 -1
- package/dist/web-types.json +15 -1
- package/package.json +9 -9
- package/src/ListTemplate.tsx +32 -31
- package/src/i18n/messagebundle.properties +12 -0
- package/src/i18n/messagebundle_ar.properties +32 -2
- package/src/i18n/messagebundle_bg.properties +32 -2
- package/src/i18n/messagebundle_ca.properties +32 -2
- package/src/i18n/messagebundle_cnr.properties +32 -2
- package/src/i18n/messagebundle_cs.properties +32 -2
- package/src/i18n/messagebundle_cy.properties +33 -3
- package/src/i18n/messagebundle_da.properties +32 -2
- package/src/i18n/messagebundle_de.properties +53 -23
- package/src/i18n/messagebundle_el.properties +33 -3
- package/src/i18n/messagebundle_en.properties +374 -2
- package/src/i18n/messagebundle_en_GB.properties +32 -2
- package/src/i18n/messagebundle_en_US_sappsd.properties +46 -2
- package/src/i18n/messagebundle_en_US_saprigi.properties +46 -2
- package/src/i18n/messagebundle_en_US_saptrc.properties +46 -2
- package/src/i18n/messagebundle_es.properties +32 -2
- package/src/i18n/messagebundle_es_MX.properties +32 -2
- package/src/i18n/messagebundle_et.properties +30 -0
- package/src/i18n/messagebundle_fi.properties +32 -2
- package/src/i18n/messagebundle_fr.properties +33 -3
- package/src/i18n/messagebundle_fr_CA.properties +33 -3
- package/src/i18n/messagebundle_hi.properties +32 -2
- package/src/i18n/messagebundle_hr.properties +32 -2
- package/src/i18n/messagebundle_hu.properties +33 -3
- package/src/i18n/messagebundle_id.properties +34 -4
- package/src/i18n/messagebundle_it.properties +32 -2
- package/src/i18n/messagebundle_iw.properties +32 -2
- package/src/i18n/messagebundle_ja.properties +32 -2
- package/src/i18n/messagebundle_kk.properties +36 -6
- package/src/i18n/messagebundle_ko.properties +32 -2
- package/src/i18n/messagebundle_lt.properties +34 -4
- package/src/i18n/messagebundle_lv.properties +31 -1
- package/src/i18n/messagebundle_mk.properties +33 -3
- package/src/i18n/messagebundle_ms.properties +33 -3
- package/src/i18n/messagebundle_nl.properties +32 -2
- package/src/i18n/messagebundle_no.properties +32 -2
- package/src/i18n/messagebundle_pl.properties +32 -2
- package/src/i18n/messagebundle_pt.properties +32 -2
- package/src/i18n/messagebundle_pt_PT.properties +32 -2
- package/src/i18n/messagebundle_ro.properties +32 -2
- package/src/i18n/messagebundle_ru.properties +34 -4
- package/src/i18n/messagebundle_sh.properties +32 -2
- package/src/i18n/messagebundle_sk.properties +32 -2
- package/src/i18n/messagebundle_sl.properties +32 -2
- package/src/i18n/messagebundle_sr.properties +32 -2
- package/src/i18n/messagebundle_sv.properties +33 -3
- package/src/i18n/messagebundle_th.properties +35 -5
- package/src/i18n/messagebundle_tr.properties +32 -2
- package/src/i18n/messagebundle_uk.properties +32 -2
- package/src/i18n/messagebundle_vi.properties +32 -2
- package/src/i18n/messagebundle_zh_CN.properties +32 -2
- package/src/i18n/messagebundle_zh_TW.properties +32 -2
- package/src/themes/List.css +9 -1
package/dist/ColorPicker.d.ts
CHANGED
|
@@ -151,6 +151,8 @@ declare class ColorPicker extends UI5Element implements IFormInputElement {
|
|
|
151
151
|
get saturationInputLabel(): string;
|
|
152
152
|
get lightInputLabel(): string;
|
|
153
153
|
get alphaInputLabel(): string;
|
|
154
|
+
get percentageLabel(): string;
|
|
155
|
+
get colorFieldsAnnouncementText(): string;
|
|
154
156
|
get toggleModeTooltip(): string;
|
|
155
157
|
get inputsDisabled(): true | undefined;
|
|
156
158
|
get hexInputErrorState(): `${ValueState}`;
|
package/dist/ColorPicker.js
CHANGED
|
@@ -17,7 +17,9 @@ import { getRGBColor, getAlpha, } from "@ui5/webcomponents-base/dist/util/ColorC
|
|
|
17
17
|
import "@ui5/webcomponents-icons/dist/expand.js";
|
|
18
18
|
import ColorValue from "./colorpicker-utils/ColorValue.js";
|
|
19
19
|
import ColorPickerTemplate from "./ColorPickerTemplate.js";
|
|
20
|
-
import
|
|
20
|
+
import announce from "@ui5/webcomponents-base/dist/util/InvisibleMessage.js";
|
|
21
|
+
import InvisibleMessageMode from "@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js";
|
|
22
|
+
import { COLORPICKER_LABEL, COLORPICKER_SLIDER_GROUP, COLORPICKER_ALPHA_SLIDER, COLORPICKER_HUE_SLIDER, COLORPICKER_HEX, COLORPICKER_RED, COLORPICKER_GREEN, COLORPICKER_BLUE, COLORPICKER_ALPHA, COLORPICKER_SATURATION, COLORPICKER_LIGHT, COLORPICKER_HUE, COLORPICKER_TOGGLE_MODE_TOOLTIP, COLORPICKER_PERCENTAGE, COLORPICKER_COLOR_MODE_CHANGED, } from "./generated/i18n/i18n-defaults.js";
|
|
21
23
|
// Styles
|
|
22
24
|
import ColorPickerCss from "./generated/themes/ColorPicker.css.js";
|
|
23
25
|
const PICKER_POINTER_WIDTH = 6.5;
|
|
@@ -222,6 +224,8 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
222
224
|
}
|
|
223
225
|
_togglePickerMode() {
|
|
224
226
|
this._displayHSL = !this._displayHSL;
|
|
227
|
+
// Announce a message to screen readers
|
|
228
|
+
announce(this.colorFieldsAnnouncementText, InvisibleMessageMode.Polite);
|
|
225
229
|
}
|
|
226
230
|
_handleColorInputChange(e) {
|
|
227
231
|
const target = e.target;
|
|
@@ -412,6 +416,26 @@ let ColorPicker = ColorPicker_1 = class ColorPicker extends UI5Element {
|
|
|
412
416
|
get alphaInputLabel() {
|
|
413
417
|
return ColorPicker_1.i18nBundle.getText(COLORPICKER_ALPHA);
|
|
414
418
|
}
|
|
419
|
+
get percentageLabel() {
|
|
420
|
+
return ColorPicker_1.i18nBundle.getText(COLORPICKER_PERCENTAGE);
|
|
421
|
+
}
|
|
422
|
+
get colorFieldsAnnouncementText() {
|
|
423
|
+
const mode = this._displayHSL ? "HSL" : "RGB";
|
|
424
|
+
let text = "";
|
|
425
|
+
if (mode === "RGB") {
|
|
426
|
+
text = `${this.redInputLabel} ${this._colorValue.R}, `
|
|
427
|
+
+ `${this.greenInputLabel} ${this._colorValue.G}, `
|
|
428
|
+
+ `${this.blueInputLabel} ${this._colorValue.B}, `
|
|
429
|
+
+ `${this.alphaInputLabel} ${this._colorValue.Alpha}`;
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
text = `${this.hueInputLabel} ${this._colorValue.H}, `
|
|
433
|
+
+ `${this.saturationInputLabel} ${this._colorValue.S} ${this.percentageLabel}, `
|
|
434
|
+
+ `${this.lightInputLabel} ${this._colorValue.L} ${this.percentageLabel}, `
|
|
435
|
+
+ `${this.alphaInputLabel} ${this._colorValue.Alpha}`;
|
|
436
|
+
}
|
|
437
|
+
return ColorPicker_1.i18nBundle.getText(COLORPICKER_COLOR_MODE_CHANGED, mode, text);
|
|
438
|
+
}
|
|
415
439
|
get toggleModeTooltip() {
|
|
416
440
|
return ColorPicker_1.i18nBundle.getText(COLORPICKER_TOGGLE_MODE_TOOLTIP);
|
|
417
441
|
}
|
package/dist/ColorPicker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPicker.js","sourceRoot":"","sources":["../src/ColorPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tgetRGBColor,\n\tgetAlpha,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport type {\n\tColorHSL,\n\tColorRGB,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport \"@ui5/webcomponents-icons/dist/expand.js\";\nimport ColorValue from \"./colorpicker-utils/ColorValue.js\";\nimport ColorPickerTemplate from \"./ColorPickerTemplate.js\";\nimport type Input from \"./Input.js\";\nimport type Slider from \"./Slider.js\";\n\nimport {\n\tCOLORPICKER_LABEL,\n\tCOLORPICKER_SLIDER_GROUP,\n\tCOLORPICKER_ALPHA_SLIDER,\n\tCOLORPICKER_HUE_SLIDER,\n\tCOLORPICKER_HEX,\n\tCOLORPICKER_RED,\n\tCOLORPICKER_GREEN,\n\tCOLORPICKER_BLUE,\n\tCOLORPICKER_ALPHA,\n\tCOLORPICKER_SATURATION,\n\tCOLORPICKER_LIGHT,\n\tCOLORPICKER_HUE,\n\tCOLORPICKER_TOGGLE_MODE_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ColorPickerCss from \"./generated/themes/ColorPicker.css.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base/dist/index.js\";\n\nconst PICKER_POINTER_WIDTH = 6.5;\n\ntype ColorCoordinates = {\n\tx: number,\n\ty: number,\n}\n\ntype ColorChannelInput = {\n\tid: string,\n\tvalue: number,\n\taccessibleName: string\n\tlabel: string,\n\tshowPercentSymbol?: boolean,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-color-picker` allows users to choose any color and provides different input options for selecting colors.\n *\n * ### Usage\n *\n * #### When to use\n * Use the color picker if:\n *\n * - users need to select any color freely.\n *\n * #### When not to use\n *\n * - Users need to select one color from a predefined set of colors. Use the ColorPalette component instead.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ColorPicker.js\";`\n * @constructor\n * @since 1.0.0-rc.12\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-color-picker\",\n\trenderer: jsxRenderer,\n\tformAssociated: true,\n\tstyles: ColorPickerCss,\n\ttemplate: ColorPickerTemplate,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the the selected color is changed\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\nclass ColorPicker extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void;\n\t}\n\t/**\n\t * Defines the currently selected color of the component.\n\t *\n\t * **Note**: use HEX, RGB, RGBA, HSV formats or a CSS color name when modifying this property.\n\t * @default \"rgba(255,255,255,1)\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"rgba(255,255,255,1)\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * When set to `true`, the alpha slider and inputs for RGB values will not be displayed.\n\t * @default false\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property({ type: Boolean })\n\tsimplified = false;\n\n\t/**\n\t * Defines the current main color which is selected via the hue slider and is shown in the main color square.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_mainValue: ColorRGB;\n\n\t/**\n\t * Defines the currenty selected color.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_colorValue: ColorValue;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedCoordinates: ColorCoordinates;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_alpha = 1;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_hue = 0;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isSelectedColorChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isHueValueChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_wrongHEX = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_displayHSL = false;\n\n\tselectedHue: number;\n\n\tmouseDown: boolean;\n\n\tmouseIn: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._colorValue = new ColorValue();\n\n\t\t// Bottom Right corner\n\t\tthis._selectedCoordinates = {\n\t\t\tx: 256 - PICKER_POINTER_WIDTH,\n\t\t\ty: 256 - PICKER_POINTER_WIDTH,\n\t\t};\n\n\t\t// Default main color is red\n\t\tthis._mainValue = {\n\t\t\tr: 255,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t};\n\n\t\tthis.selectedHue = 0;\n\n\t\tthis.mouseDown = false;\n\t\tthis.mouseIn = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst valueAsRGB = getRGBColor(this.value);\n\t\tif (!this._isColorValueEqual(valueAsRGB)) {\n\t\t\tthis._colorValue.RGB = valueAsRGB;\n\t\t}\n\t\tconst alpha = getAlpha(this.value);\n\t\tif (alpha !== this._colorValue.Alpha) {\n\t\t\tthis._colorValue.Alpha = alpha;\n\t\t\tthis._alpha = this._colorValue.Alpha;\n\t\t}\n\t\tconst tempColor = this._colorValue.toRGBString();\n\t\tthis._updateColorGrid();\n\t\tthis.style.setProperty(getScopedVarName(\"--ui5_Color_Picker_Progress_Container_Color\"), tempColor);\n\t}\n\n\t_handleMouseDown(e: MouseEvent) {\n\t\tthis.mouseDown = true;\n\t\tthis.mouseIn = true;\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleMouseUp() {\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseOut(e: MouseEvent) {\n\t\tif (!this.mouseIn || !this.mouseDown) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst offsetHeight: number = target.offsetHeight;\n\t\tconst offsetWidth: number = target.offsetWidth;\n\t\tconst isLeft: boolean = e.offsetX <= 0;\n\t\tconst isUp: boolean = e.offsetY <= 0;\n\t\tconst isDown: boolean = e.offsetY >= target.offsetHeight;\n\t\tconst isRight: boolean = e.offsetX >= target.offsetWidth;\n\n\t\tlet x: number,\n\t\t\ty: number;\n\n\t\tif (isLeft) {\n\t\t\tx = 0;\n\t\t} else if (isRight) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\tx = offsetWidth;\n\t\t} else {\n\t\t\tx = e.offsetX;\n\t\t}\n\n\t\tif (isUp) {\n\t\t\ty = 0;\n\t\t} else if (isDown) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\ty = offsetHeight;\n\t\t} else {\n\t\t\ty = e.offsetY;\n\t\t}\n\n\t\tthis._changeSelectedColor(x, y);\n\t\tthis.mouseIn = false;\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseMove(e: MouseEvent) {\n\t\tif (!this.mouseDown || !this.mouseIn) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleAlphaInput(e: UI5CustomEvent<Input, \"input\"> | UI5CustomEvent<Slider, \"input\">) {\n\t\tconst aphaInputValue = String(e.currentTarget.value);\n\t\tthis._alpha = parseFloat(aphaInputValue);\n\t\tif (Number.isNaN(this._alpha)) {\n\t\t\tthis._alpha = 1;\n\t\t}\n\t\tthis._colorValue.Alpha = this._alpha;\n\t\tthis._isHueValueChanged = true;\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t}\n\n\t_handleHueInput(e: CustomEvent) {\n\t\tthis.selectedHue = (e.target as Slider).value;\n\t\tthis._hue = this.selectedHue;\n\t\tthis._setMainColor(this._hue);\n\t\t// Idication that changes to the hue value triggered as a result of user pressing over the hue slider.\n\t\tthis._isHueValueChanged = true;\n\t\tthis._colorValue.H = this._hue;\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t}\n\n\t_handleHEXChange(e: CustomEvent | KeyboardEvent) {\n\t\tconst input: Input = (e.target as Input);\n\t\tlet inputValueLowerCase = input.value.toLowerCase();\n\n\t\tif (inputValueLowerCase.startsWith(\"#\")) {\n\t\t\tinputValueLowerCase = inputValueLowerCase.slice(1);\n\t\t}\n\n\t\t// Shorthand Syntax\n\t\tif (inputValueLowerCase.length === 3) {\n\t\t\tinputValueLowerCase = `${inputValueLowerCase[0]}${inputValueLowerCase[0]}${inputValueLowerCase[1]}${inputValueLowerCase[1]}${inputValueLowerCase[2]}${inputValueLowerCase[2]}`;\n\t\t}\n\n\t\tthis._colorValue.HEX = inputValueLowerCase;\n\t\tconst isValidColor = this._colorValue.isColorValueValid();\n\n\t\tif (isValidColor && input.value !== inputValueLowerCase) {\n\t\t\tthis._wrongHEX = false;\n\t\t\tinput.value = inputValueLowerCase;\n\t\t}\n\n\t\tif (!isValidColor) {\n\t\t\tthis._wrongHEX = true;\n\t\t} else {\n\t\t\tthis._wrongHEX = false;\n\n\t\t\tconst color = this._colorValue.toRGBString();\n\t\t\tthis._setValue(color);\n\t\t}\n\t}\n\n\t_togglePickerMode() {\n\t\tthis._displayHSL = !this._displayHSL;\n\t}\n\n\t_handleColorInputChange(e: Event) {\n\t\tconst target = e.target as Input;\n\t\tconst targetValue = parseInt(target.value) || 0;\n\t\tlet normalizedValue = targetValue;\n\n\t\tswitch (target.id) {\n\t\tcase \"red\":\n\t\t\tthis._colorValue.R = targetValue;\n\t\t\tnormalizedValue = this._colorValue.R;\n\t\t\tbreak;\n\n\t\tcase \"green\":\n\t\t\tthis._colorValue.G = targetValue;\n\t\t\tnormalizedValue = this._colorValue.G;\n\t\t\tbreak;\n\n\t\tcase \"blue\":\n\t\t\tthis._colorValue.B = targetValue;\n\t\t\tnormalizedValue = this._colorValue.B;\n\t\t\tbreak;\n\n\t\tcase \"hue\":\n\t\t\tthis._colorValue.H = targetValue;\n\t\t\tnormalizedValue = this._colorValue.H;\n\t\t\tbreak;\n\n\t\tcase \"saturation\":\n\t\t\tthis._colorValue.S = targetValue;\n\t\t\tnormalizedValue = this._colorValue.S;\n\t\t\tbreak;\n\n\t\tcase \"light\":\n\t\t\tthis._colorValue.L = targetValue;\n\t\t\tnormalizedValue = this._colorValue.L;\n\t\t\tbreak;\n\t\t}\n\n\t\ttarget.value = String(normalizedValue);\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t\tthis._updateColorGrid();\n\t}\n\n\t_setMainColor(hueValue: number) {\n\t\tconst hueValueMod = hueValue * 4.251;\n\n\t\tif (hueValueMod <= 255) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: hueValueMod,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 510) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255 - (hueValueMod - 255),\n\t\t\t\tg: 255,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 765) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 255,\n\t\t\t\tb: hueValueMod - 510,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1020) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 765 - (hueValueMod - 255),\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1275) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: hueValueMod - 1020,\n\t\t\t\tg: 0,\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: 0,\n\t\t\t\tb: 1275 - (hueValueMod - 255),\n\t\t\t};\n\t\t}\n\t}\n\n\t_handleAlphaChange() {\n\t\tthis._alpha = this._alpha < 0 ? 0 : this._alpha;\n\t\tthis._alpha = this._alpha > 1 ? 1 : this._alpha;\n\n\t\tthis._colorValue.Alpha = this._alpha;\n\t}\n\n\t_changeSelectedColor(x: number, y: number) {\n\t\tthis._selectedCoordinates = {\n\t\t\tx: x - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: y - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\t// Idication that changes to the color settings are triggered as a result of user pressing over the main color section.\n\t\tthis._isSelectedColorChanged = true;\n\n\t\tconst tempColor = this._calculateColorFromCoordinates(x, y);\n\t\tif (tempColor) {\n\t\t\tthis._colorValue.HSL = tempColor;\n\n\t\t\tconst color = this._colorValue.toRGBString();\n\t\t\tthis._setValue(color);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._handleHEXChange(e);\n\t\t}\n\t}\n\n\t_calculateColorFromCoordinates(x: number, y: number) {\n\t\t// By using the selected coordinates(x = Lightness, y = Saturation) and hue(selected from the hue slider)\n\t\t// and HSL format, the color will be parsed to RGB\n\t\t// 0 ≤ H < 360\n\t\t// 4.251 because with 4.25 we get out of the colors range.\n\t\tconst h = this._hue;\n\t\tlet s = +(1 - (y / 256)).toFixed(2);\n\t\tlet l = +(x / 256).toFixed(2);\n\n\t\tif (Number.isNaN(s) || Number.isNaN(l)) {\n\t\t\t// The event is finished out of the main color section\n\t\t\treturn;\n\t\t}\n\n\t\t// Normalize values to be between 0 and 1 in case of rounding issues\n\t\ts = Math.max(0, Math.min(1, s));\n\t\tl = Math.max(0, Math.min(1, l));\n\n\t\treturn {\n\t\t\th: Math.round(h),\n\t\t\ts: Math.round(s * 100),\n\t\t\tl: Math.round(l * 100),\n\t\t};\n\t}\n\n\t_setValue(color: string) {\n\t\tthis.value = color;\n\t\tthis._wrongHEX = !this._colorValue.isColorValueValid();\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_updateColorGrid() {\n\t\tconst hslColours: ColorHSL = this._colorValue.HSL;\n\t\tthis._selectedCoordinates = {\n\t\t\tx: ((hslColours.l * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: (256 - (hslColours.s * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\tif (this._isSelectedColorChanged) { // We shouldn't update the hue value when user presses over the main color section.\n\t\t\tthis._isSelectedColorChanged = false;\n\t\t} else if (this._isHueValueChanged) { // We shouldn't recalculate the hue value when user changes the hue slider.\n\t\t\tthis._isHueValueChanged = false;\n\t\t\tthis._hue = this.selectedHue ? this.selectedHue : this._hue;\n\t\t} else {\n\t\t\tthis._hue = hslColours.h;\n\t\t}\n\n\t\tthis._setMainColor(this._hue);\n\t}\n\n\t_isColorValueEqual(value: ColorRGB): boolean {\n\t\treturn this._colorValue.R === value.r\n\t\t\t&& this._colorValue.G === value.g\n\t\t\t&& this._colorValue.B === value.b;\n\t}\n\n\tget colorPickerLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_LABEL);\n\t}\n\n\tget sliderGroupLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_SLIDER_GROUP);\n\t}\n\n\tget hueSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE_SLIDER);\n\t}\n\n\tget alphaSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA_SLIDER);\n\t}\n\n\tget hexInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HEX);\n\t}\n\n\tget redInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_RED);\n\t}\n\n\tget greenInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_GREEN);\n\t}\n\n\tget blueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_BLUE);\n\t}\n\n\tget hueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE);\n\t}\n\n\tget saturationInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_SATURATION);\n\t}\n\n\tget lightInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_LIGHT);\n\t}\n\n\tget alphaInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA);\n\t}\n\n\tget toggleModeTooltip() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_TOGGLE_MODE_TOOLTIP);\n\t}\n\n\tget inputsDisabled() {\n\t\treturn this._wrongHEX ? true : undefined;\n\t}\n\n\tget hexInputErrorState(): `${ValueState}` {\n\t\treturn this._wrongHEX ? \"Negative\" : \"None\";\n\t}\n\n\tget rgbInputs(): Array<ColorChannelInput> {\n\t\tconst redInput = {\n\t\t\tid: \"red\",\n\t\t\tvalue: this._colorValue.R,\n\t\t\tlabel: \"R\",\n\t\t\taccessibleName: this.redInputLabel,\n\t\t};\n\n\t\tconst greenInput = {\n\t\t\tid: \"green\",\n\t\t\tvalue: this._colorValue.G,\n\t\t\tlabel: \"G\",\n\t\t\taccessibleName: this.greenInputLabel,\n\t\t};\n\n\t\tconst blueInput = {\n\t\t\tid: \"blue\",\n\t\t\tvalue: this._colorValue.B,\n\t\t\tlabel: \"B\",\n\t\t\taccessibleName: this.blueInputLabel,\n\t\t};\n\n\t\treturn [redInput, greenInput, blueInput];\n\t}\n\n\tget hslInputs(): Array<ColorChannelInput> {\n\t\tconst hueInput = {\n\t\t\tid: \"hue\",\n\t\t\tvalue: this._colorValue.H,\n\t\t\tlabel: \"H\",\n\t\t\taccessibleName: this.hueInputLabel,\n\t\t};\n\n\t\tconst saturationInput = {\n\t\t\tid: \"saturation\",\n\t\t\tvalue: this._colorValue.S,\n\t\t\tlabel: \"S\",\n\t\t\taccessibleName: this.saturationInputLabel,\n\t\t\tshowPercentSymbol: true,\n\t\t};\n\n\t\tconst lightInput = {\n\t\t\tid: \"light\",\n\t\t\tvalue: this._colorValue.L,\n\t\t\tlabel: \"L\",\n\t\t\taccessibleName: this.lightInputLabel,\n\t\t\tshowPercentSymbol: true,\n\t\t};\n\n\t\treturn [hueInput, saturationInput, lightInput];\n\t}\n\n\tget HEX(): string {\n\t\treturn this._colorValue.HEX;\n\t}\n\n\tget colorChannelInputs() {\n\t\treturn this._displayHSL ? this.hslInputs : this.rgbInputs;\n\t}\n\n\tget _isDefaultPickerMode() {\n\t\treturn !this.simplified;\n\t}\n}\n\nColorPicker.define();\n\nexport default ColorPicker;\n"]}
|
|
1
|
+
{"version":3,"file":"ColorPicker.js","sourceRoot":"","sources":["../src/ColorPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport { isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport type { IFormInputElement } from \"@ui5/webcomponents-base/dist/features/InputElementsFormSupport.js\";\nimport {\n\tgetRGBColor,\n\tgetAlpha,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport type {\n\tColorHSL,\n\tColorRGB,\n} from \"@ui5/webcomponents-base/dist/util/ColorConversion.js\";\nimport \"@ui5/webcomponents-icons/dist/expand.js\";\nimport ColorValue from \"./colorpicker-utils/ColorValue.js\";\nimport ColorPickerTemplate from \"./ColorPickerTemplate.js\";\nimport announce from \"@ui5/webcomponents-base/dist/util/InvisibleMessage.js\";\nimport InvisibleMessageMode from \"@ui5/webcomponents-base/dist/types/InvisibleMessageMode.js\";\nimport type Input from \"./Input.js\";\nimport type Slider from \"./Slider.js\";\n\nimport {\n\tCOLORPICKER_LABEL,\n\tCOLORPICKER_SLIDER_GROUP,\n\tCOLORPICKER_ALPHA_SLIDER,\n\tCOLORPICKER_HUE_SLIDER,\n\tCOLORPICKER_HEX,\n\tCOLORPICKER_RED,\n\tCOLORPICKER_GREEN,\n\tCOLORPICKER_BLUE,\n\tCOLORPICKER_ALPHA,\n\tCOLORPICKER_SATURATION,\n\tCOLORPICKER_LIGHT,\n\tCOLORPICKER_HUE,\n\tCOLORPICKER_TOGGLE_MODE_TOOLTIP,\n\tCOLORPICKER_PERCENTAGE,\n\tCOLORPICKER_COLOR_MODE_CHANGED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ColorPickerCss from \"./generated/themes/ColorPicker.css.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base/dist/index.js\";\n\nconst PICKER_POINTER_WIDTH = 6.5;\n\ntype ColorCoordinates = {\n\tx: number,\n\ty: number,\n}\n\ntype ColorChannelInput = {\n\tid: string,\n\tvalue: number,\n\taccessibleName: string\n\tlabel: string,\n\tshowPercentSymbol?: boolean,\n}\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-color-picker` allows users to choose any color and provides different input options for selecting colors.\n *\n * ### Usage\n *\n * #### When to use\n * Use the color picker if:\n *\n * - users need to select any color freely.\n *\n * #### When not to use\n *\n * - Users need to select one color from a predefined set of colors. Use the ColorPalette component instead.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/ColorPicker.js\";`\n * @constructor\n * @since 1.0.0-rc.12\n * @extends UI5Element\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-color-picker\",\n\trenderer: jsxRenderer,\n\tformAssociated: true,\n\tstyles: ColorPickerCss,\n\ttemplate: ColorPickerTemplate,\n\tshadowRootOptions: { delegatesFocus: true },\n})\n/**\n * Fired when the the selected color is changed\n * @public\n */\n@event(\"change\", {\n\tbubbles: true,\n})\nclass ColorPicker extends UI5Element implements IFormInputElement {\n\teventDetails!: {\n\t\tchange: void;\n\t}\n\t/**\n\t * Defines the currently selected color of the component.\n\t *\n\t * **Note**: use HEX, RGB, RGBA, HSV formats or a CSS color name when modifying this property.\n\t * @default \"rgba(255,255,255,1)\"\n\t * @public\n\t */\n\t@property()\n\tvalue = \"rgba(255,255,255,1)\";\n\n\t/**\n\t * Determines the name by which the component will be identified upon submission in an HTML form.\n\t *\n\t * **Note:** This property is only applicable within the context of an HTML Form element.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * When set to `true`, the alpha slider and inputs for RGB values will not be displayed.\n\t * @default false\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property({ type: Boolean })\n\tsimplified = false;\n\n\t/**\n\t * Defines the current main color which is selected via the hue slider and is shown in the main color square.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_mainValue: ColorRGB;\n\n\t/**\n\t * Defines the currenty selected color.\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_colorValue: ColorValue;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_selectedCoordinates: ColorCoordinates;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_alpha = 1;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_hue = 0;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isSelectedColorChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isHueValueChanged = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_wrongHEX = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_displayHSL = false;\n\n\tselectedHue: number;\n\n\tmouseDown: boolean;\n\n\tmouseIn: boolean;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tasync formElementAnchor() {\n\t\treturn this.getFocusDomRefAsync();\n\t}\n\n\tget formFormattedValue() {\n\t\treturn this.value;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._colorValue = new ColorValue();\n\n\t\t// Bottom Right corner\n\t\tthis._selectedCoordinates = {\n\t\t\tx: 256 - PICKER_POINTER_WIDTH,\n\t\t\ty: 256 - PICKER_POINTER_WIDTH,\n\t\t};\n\n\t\t// Default main color is red\n\t\tthis._mainValue = {\n\t\t\tr: 255,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t};\n\n\t\tthis.selectedHue = 0;\n\n\t\tthis.mouseDown = false;\n\t\tthis.mouseIn = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst valueAsRGB = getRGBColor(this.value);\n\t\tif (!this._isColorValueEqual(valueAsRGB)) {\n\t\t\tthis._colorValue.RGB = valueAsRGB;\n\t\t}\n\t\tconst alpha = getAlpha(this.value);\n\t\tif (alpha !== this._colorValue.Alpha) {\n\t\t\tthis._colorValue.Alpha = alpha;\n\t\t\tthis._alpha = this._colorValue.Alpha;\n\t\t}\n\t\tconst tempColor = this._colorValue.toRGBString();\n\t\tthis._updateColorGrid();\n\t\tthis.style.setProperty(getScopedVarName(\"--ui5_Color_Picker_Progress_Container_Color\"), tempColor);\n\t}\n\n\t_handleMouseDown(e: MouseEvent) {\n\t\tthis.mouseDown = true;\n\t\tthis.mouseIn = true;\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleMouseUp() {\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseOut(e: MouseEvent) {\n\t\tif (!this.mouseIn || !this.mouseDown) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst offsetHeight: number = target.offsetHeight;\n\t\tconst offsetWidth: number = target.offsetWidth;\n\t\tconst isLeft: boolean = e.offsetX <= 0;\n\t\tconst isUp: boolean = e.offsetY <= 0;\n\t\tconst isDown: boolean = e.offsetY >= target.offsetHeight;\n\t\tconst isRight: boolean = e.offsetX >= target.offsetWidth;\n\n\t\tlet x: number,\n\t\t\ty: number;\n\n\t\tif (isLeft) {\n\t\t\tx = 0;\n\t\t} else if (isRight) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\tx = offsetWidth;\n\t\t} else {\n\t\t\tx = e.offsetX;\n\t\t}\n\n\t\tif (isUp) {\n\t\t\ty = 0;\n\t\t} else if (isDown) {\n\t\t\t// Note: - e.offsetWidth has been changed to e.target.offsetWidth as offsetWidth does not exist on the event object\n\t\t\ty = offsetHeight;\n\t\t} else {\n\t\t\ty = e.offsetY;\n\t\t}\n\n\t\tthis._changeSelectedColor(x, y);\n\t\tthis.mouseIn = false;\n\t\tthis.mouseDown = false;\n\t}\n\n\t_handleMouseMove(e: MouseEvent) {\n\t\tif (!this.mouseDown || !this.mouseIn) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._changeSelectedColor(e.offsetX, e.offsetY);\n\t}\n\n\t_handleAlphaInput(e: UI5CustomEvent<Input, \"input\"> | UI5CustomEvent<Slider, \"input\">) {\n\t\tconst aphaInputValue = String(e.currentTarget.value);\n\t\tthis._alpha = parseFloat(aphaInputValue);\n\t\tif (Number.isNaN(this._alpha)) {\n\t\t\tthis._alpha = 1;\n\t\t}\n\t\tthis._colorValue.Alpha = this._alpha;\n\t\tthis._isHueValueChanged = true;\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t}\n\n\t_handleHueInput(e: CustomEvent) {\n\t\tthis.selectedHue = (e.target as Slider).value;\n\t\tthis._hue = this.selectedHue;\n\t\tthis._setMainColor(this._hue);\n\t\t// Idication that changes to the hue value triggered as a result of user pressing over the hue slider.\n\t\tthis._isHueValueChanged = true;\n\t\tthis._colorValue.H = this._hue;\n\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t}\n\n\t_handleHEXChange(e: CustomEvent | KeyboardEvent) {\n\t\tconst input: Input = (e.target as Input);\n\t\tlet inputValueLowerCase = input.value.toLowerCase();\n\n\t\tif (inputValueLowerCase.startsWith(\"#\")) {\n\t\t\tinputValueLowerCase = inputValueLowerCase.slice(1);\n\t\t}\n\n\t\t// Shorthand Syntax\n\t\tif (inputValueLowerCase.length === 3) {\n\t\t\tinputValueLowerCase = `${inputValueLowerCase[0]}${inputValueLowerCase[0]}${inputValueLowerCase[1]}${inputValueLowerCase[1]}${inputValueLowerCase[2]}${inputValueLowerCase[2]}`;\n\t\t}\n\n\t\tthis._colorValue.HEX = inputValueLowerCase;\n\t\tconst isValidColor = this._colorValue.isColorValueValid();\n\n\t\tif (isValidColor && input.value !== inputValueLowerCase) {\n\t\t\tthis._wrongHEX = false;\n\t\t\tinput.value = inputValueLowerCase;\n\t\t}\n\n\t\tif (!isValidColor) {\n\t\t\tthis._wrongHEX = true;\n\t\t} else {\n\t\t\tthis._wrongHEX = false;\n\n\t\t\tconst color = this._colorValue.toRGBString();\n\t\t\tthis._setValue(color);\n\t\t}\n\t}\n\n\t_togglePickerMode() {\n\t\tthis._displayHSL = !this._displayHSL;\n\n\t\t// Announce a message to screen readers\n\t\tannounce(this.colorFieldsAnnouncementText, InvisibleMessageMode.Polite);\n\t}\n\n\t_handleColorInputChange(e: Event) {\n\t\tconst target = e.target as Input;\n\t\tconst targetValue = parseInt(target.value) || 0;\n\t\tlet normalizedValue = targetValue;\n\n\t\tswitch (target.id) {\n\t\tcase \"red\":\n\t\t\tthis._colorValue.R = targetValue;\n\t\t\tnormalizedValue = this._colorValue.R;\n\t\t\tbreak;\n\n\t\tcase \"green\":\n\t\t\tthis._colorValue.G = targetValue;\n\t\t\tnormalizedValue = this._colorValue.G;\n\t\t\tbreak;\n\n\t\tcase \"blue\":\n\t\t\tthis._colorValue.B = targetValue;\n\t\t\tnormalizedValue = this._colorValue.B;\n\t\t\tbreak;\n\n\t\tcase \"hue\":\n\t\t\tthis._colorValue.H = targetValue;\n\t\t\tnormalizedValue = this._colorValue.H;\n\t\t\tbreak;\n\n\t\tcase \"saturation\":\n\t\t\tthis._colorValue.S = targetValue;\n\t\t\tnormalizedValue = this._colorValue.S;\n\t\t\tbreak;\n\n\t\tcase \"light\":\n\t\t\tthis._colorValue.L = targetValue;\n\t\t\tnormalizedValue = this._colorValue.L;\n\t\t\tbreak;\n\t\t}\n\n\t\ttarget.value = String(normalizedValue);\n\t\tconst color = this._colorValue.toRGBString();\n\t\tthis._setValue(color);\n\t\tthis._updateColorGrid();\n\t}\n\n\t_setMainColor(hueValue: number) {\n\t\tconst hueValueMod = hueValue * 4.251;\n\n\t\tif (hueValueMod <= 255) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: hueValueMod,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 510) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255 - (hueValueMod - 255),\n\t\t\t\tg: 255,\n\t\t\t\tb: 0,\n\t\t\t};\n\t\t} else if (hueValueMod <= 765) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 255,\n\t\t\t\tb: hueValueMod - 510,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1020) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 0,\n\t\t\t\tg: 765 - (hueValueMod - 255),\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else if (hueValueMod <= 1275) {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: hueValueMod - 1020,\n\t\t\t\tg: 0,\n\t\t\t\tb: 255,\n\t\t\t};\n\t\t} else {\n\t\t\tthis._mainValue = {\n\t\t\t\tr: 255,\n\t\t\t\tg: 0,\n\t\t\t\tb: 1275 - (hueValueMod - 255),\n\t\t\t};\n\t\t}\n\t}\n\n\t_handleAlphaChange() {\n\t\tthis._alpha = this._alpha < 0 ? 0 : this._alpha;\n\t\tthis._alpha = this._alpha > 1 ? 1 : this._alpha;\n\n\t\tthis._colorValue.Alpha = this._alpha;\n\t}\n\n\t_changeSelectedColor(x: number, y: number) {\n\t\tthis._selectedCoordinates = {\n\t\t\tx: x - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: y - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\t// Idication that changes to the color settings are triggered as a result of user pressing over the main color section.\n\t\tthis._isSelectedColorChanged = true;\n\n\t\tconst tempColor = this._calculateColorFromCoordinates(x, y);\n\t\tif (tempColor) {\n\t\t\tthis._colorValue.HSL = tempColor;\n\n\t\t\tconst color = this._colorValue.toRGBString();\n\t\t\tthis._setValue(color);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._handleHEXChange(e);\n\t\t}\n\t}\n\n\t_calculateColorFromCoordinates(x: number, y: number) {\n\t\t// By using the selected coordinates(x = Lightness, y = Saturation) and hue(selected from the hue slider)\n\t\t// and HSL format, the color will be parsed to RGB\n\t\t// 0 ≤ H < 360\n\t\t// 4.251 because with 4.25 we get out of the colors range.\n\t\tconst h = this._hue;\n\t\tlet s = +(1 - (y / 256)).toFixed(2);\n\t\tlet l = +(x / 256).toFixed(2);\n\n\t\tif (Number.isNaN(s) || Number.isNaN(l)) {\n\t\t\t// The event is finished out of the main color section\n\t\t\treturn;\n\t\t}\n\n\t\t// Normalize values to be between 0 and 1 in case of rounding issues\n\t\ts = Math.max(0, Math.min(1, s));\n\t\tl = Math.max(0, Math.min(1, l));\n\n\t\treturn {\n\t\t\th: Math.round(h),\n\t\t\ts: Math.round(s * 100),\n\t\t\tl: Math.round(l * 100),\n\t\t};\n\t}\n\n\t_setValue(color: string) {\n\t\tthis.value = color;\n\t\tthis._wrongHEX = !this._colorValue.isColorValueValid();\n\t\tthis.fireDecoratorEvent(\"change\");\n\t}\n\n\t_updateColorGrid() {\n\t\tconst hslColours: ColorHSL = this._colorValue.HSL;\n\t\tthis._selectedCoordinates = {\n\t\t\tx: ((hslColours.l * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the width of the circle\n\t\t\ty: (256 - (hslColours.s * 2.56)) - PICKER_POINTER_WIDTH, // Center the coordinates, because of the height of the circle\n\t\t};\n\n\t\tif (this._isSelectedColorChanged) { // We shouldn't update the hue value when user presses over the main color section.\n\t\t\tthis._isSelectedColorChanged = false;\n\t\t} else if (this._isHueValueChanged) { // We shouldn't recalculate the hue value when user changes the hue slider.\n\t\t\tthis._isHueValueChanged = false;\n\t\t\tthis._hue = this.selectedHue ? this.selectedHue : this._hue;\n\t\t} else {\n\t\t\tthis._hue = hslColours.h;\n\t\t}\n\n\t\tthis._setMainColor(this._hue);\n\t}\n\n\t_isColorValueEqual(value: ColorRGB): boolean {\n\t\treturn this._colorValue.R === value.r\n\t\t\t&& this._colorValue.G === value.g\n\t\t\t&& this._colorValue.B === value.b;\n\t}\n\n\tget colorPickerLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_LABEL);\n\t}\n\n\tget sliderGroupLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_SLIDER_GROUP);\n\t}\n\n\tget hueSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE_SLIDER);\n\t}\n\n\tget alphaSliderLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA_SLIDER);\n\t}\n\n\tget hexInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HEX);\n\t}\n\n\tget redInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_RED);\n\t}\n\n\tget greenInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_GREEN);\n\t}\n\n\tget blueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_BLUE);\n\t}\n\n\tget hueInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_HUE);\n\t}\n\n\tget saturationInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_SATURATION);\n\t}\n\n\tget lightInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_LIGHT);\n\t}\n\n\tget alphaInputLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_ALPHA);\n\t}\n\n\tget percentageLabel() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_PERCENTAGE);\n\t}\n\n\tget colorFieldsAnnouncementText() {\n\t\tconst mode = this._displayHSL ? \"HSL\" : \"RGB\";\n\t\tlet text = \"\";\n\n\t\tif (mode === \"RGB\") {\n\t\t\ttext = `${this.redInputLabel} ${this._colorValue.R}, `\n\t\t\t\t+ `${this.greenInputLabel} ${this._colorValue.G}, `\n\t\t\t\t+ `${this.blueInputLabel} ${this._colorValue.B}, `\n\t\t\t\t+ `${this.alphaInputLabel} ${this._colorValue.Alpha}`;\n\t\t} else {\n\t\t\ttext = `${this.hueInputLabel} ${this._colorValue.H}, `\n\t\t\t\t+ `${this.saturationInputLabel} ${this._colorValue.S} ${this.percentageLabel}, `\n\t\t\t\t+ `${this.lightInputLabel} ${this._colorValue.L} ${this.percentageLabel}, `\n\t\t\t\t+ `${this.alphaInputLabel} ${this._colorValue.Alpha}`;\n\t\t}\n\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_COLOR_MODE_CHANGED, mode, text);\n\t}\n\n\tget toggleModeTooltip() {\n\t\treturn ColorPicker.i18nBundle.getText(COLORPICKER_TOGGLE_MODE_TOOLTIP);\n\t}\n\n\tget inputsDisabled() {\n\t\treturn this._wrongHEX ? true : undefined;\n\t}\n\n\tget hexInputErrorState(): `${ValueState}` {\n\t\treturn this._wrongHEX ? \"Negative\" : \"None\";\n\t}\n\n\tget rgbInputs(): Array<ColorChannelInput> {\n\t\tconst redInput = {\n\t\t\tid: \"red\",\n\t\t\tvalue: this._colorValue.R,\n\t\t\tlabel: \"R\",\n\t\t\taccessibleName: this.redInputLabel,\n\t\t};\n\n\t\tconst greenInput = {\n\t\t\tid: \"green\",\n\t\t\tvalue: this._colorValue.G,\n\t\t\tlabel: \"G\",\n\t\t\taccessibleName: this.greenInputLabel,\n\t\t};\n\n\t\tconst blueInput = {\n\t\t\tid: \"blue\",\n\t\t\tvalue: this._colorValue.B,\n\t\t\tlabel: \"B\",\n\t\t\taccessibleName: this.blueInputLabel,\n\t\t};\n\n\t\treturn [redInput, greenInput, blueInput];\n\t}\n\n\tget hslInputs(): Array<ColorChannelInput> {\n\t\tconst hueInput = {\n\t\t\tid: \"hue\",\n\t\t\tvalue: this._colorValue.H,\n\t\t\tlabel: \"H\",\n\t\t\taccessibleName: this.hueInputLabel,\n\t\t};\n\n\t\tconst saturationInput = {\n\t\t\tid: \"saturation\",\n\t\t\tvalue: this._colorValue.S,\n\t\t\tlabel: \"S\",\n\t\t\taccessibleName: this.saturationInputLabel,\n\t\t\tshowPercentSymbol: true,\n\t\t};\n\n\t\tconst lightInput = {\n\t\t\tid: \"light\",\n\t\t\tvalue: this._colorValue.L,\n\t\t\tlabel: \"L\",\n\t\t\taccessibleName: this.lightInputLabel,\n\t\t\tshowPercentSymbol: true,\n\t\t};\n\n\t\treturn [hueInput, saturationInput, lightInput];\n\t}\n\n\tget HEX(): string {\n\t\treturn this._colorValue.HEX;\n\t}\n\n\tget colorChannelInputs() {\n\t\treturn this._displayHSL ? this.hslInputs : this.rgbInputs;\n\t}\n\n\tget _isDefaultPickerMode() {\n\t\treturn !this.simplified;\n\t}\n}\n\nColorPicker.define();\n\nexport default ColorPicker;\n"]}
|
package/dist/Icon.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js";
|
|
2
3
|
import type { I18nText } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
3
5
|
import type IconDesign from "./types/IconDesign.js";
|
|
4
6
|
import IconMode from "./types/IconMode.js";
|
|
5
7
|
/**
|
|
@@ -82,6 +84,7 @@ declare class Icon extends UI5Element implements IIcon {
|
|
|
82
84
|
eventDetails: {
|
|
83
85
|
click: void;
|
|
84
86
|
};
|
|
87
|
+
static i18nBundle: I18nBundle;
|
|
85
88
|
/**
|
|
86
89
|
* Defines the component semantic design.
|
|
87
90
|
* @default "Default"
|
|
@@ -173,6 +176,16 @@ declare class Icon extends UI5Element implements IIcon {
|
|
|
173
176
|
onEnterDOM(): void;
|
|
174
177
|
onBeforeRendering(): Promise<void>;
|
|
175
178
|
get hasIconTooltip(): string | false | undefined;
|
|
179
|
+
_getAriaTypeDescription(): string;
|
|
180
|
+
get accessibilityInfo(): {
|
|
181
|
+
role?: undefined;
|
|
182
|
+
type?: undefined;
|
|
183
|
+
description?: undefined;
|
|
184
|
+
} | {
|
|
185
|
+
role: AriaRole;
|
|
186
|
+
type: string;
|
|
187
|
+
description: string | undefined;
|
|
188
|
+
};
|
|
176
189
|
}
|
|
177
190
|
export default Icon;
|
|
178
191
|
export type { IIcon, };
|
package/dist/Icon.js
CHANGED
|
@@ -4,6 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var Icon_1;
|
|
7
8
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
9
|
import jsxRender from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
9
10
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
@@ -11,11 +12,13 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
|
11
12
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
12
13
|
import { getIconData, getIconDataSync } from "@ui5/webcomponents-base/dist/asset-registries/Icons.js";
|
|
13
14
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
15
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
16
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
15
17
|
import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
16
18
|
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
17
19
|
import IconTemplate from "./IconTemplate.js";
|
|
18
20
|
import IconMode from "./types/IconMode.js";
|
|
21
|
+
import { ICON_ARIA_TYPE_IMAGE, ICON_ARIA_TYPE_INTERACTIVE } from "./generated/i18n/i18n-defaults.js";
|
|
19
22
|
// Styles
|
|
20
23
|
import iconCss from "./generated/themes/Icon.css.js";
|
|
21
24
|
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
|
|
@@ -89,7 +92,7 @@ const ICON_NOT_FOUND = "ICON_NOT_FOUND";
|
|
|
89
92
|
* @implements {IIcon}
|
|
90
93
|
* @public
|
|
91
94
|
*/
|
|
92
|
-
let Icon = class Icon extends UI5Element {
|
|
95
|
+
let Icon = Icon_1 = class Icon extends UI5Element {
|
|
93
96
|
constructor() {
|
|
94
97
|
super(...arguments);
|
|
95
98
|
/**
|
|
@@ -219,6 +222,26 @@ let Icon = class Icon extends UI5Element {
|
|
|
219
222
|
get hasIconTooltip() {
|
|
220
223
|
return this.showTooltip && this.effectiveAccessibleName;
|
|
221
224
|
}
|
|
225
|
+
_getAriaTypeDescription() {
|
|
226
|
+
switch (this.mode) {
|
|
227
|
+
case IconMode.Interactive:
|
|
228
|
+
return Icon_1.i18nBundle.getText(ICON_ARIA_TYPE_INTERACTIVE);
|
|
229
|
+
case IconMode.Image:
|
|
230
|
+
return Icon_1.i18nBundle.getText(ICON_ARIA_TYPE_IMAGE);
|
|
231
|
+
default:
|
|
232
|
+
return "";
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
get accessibilityInfo() {
|
|
236
|
+
if (this.mode === IconMode.Decorative) {
|
|
237
|
+
return {};
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
role: this.effectiveAccessibleRole,
|
|
241
|
+
type: this._getAriaTypeDescription(),
|
|
242
|
+
description: this.effectiveAccessibleName,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
222
245
|
};
|
|
223
246
|
__decorate([
|
|
224
247
|
property()
|
|
@@ -247,7 +270,10 @@ __decorate([
|
|
|
247
270
|
__decorate([
|
|
248
271
|
property({ noAttribute: true })
|
|
249
272
|
], Icon.prototype, "effectiveAccessibleName", void 0);
|
|
250
|
-
|
|
273
|
+
__decorate([
|
|
274
|
+
i18n("@ui5/webcomponents")
|
|
275
|
+
], Icon, "i18nBundle", void 0);
|
|
276
|
+
Icon = Icon_1 = __decorate([
|
|
251
277
|
customElement({
|
|
252
278
|
tag: "ui5-icon",
|
|
253
279
|
languageAware: true,
|
package/dist/Icon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { IconData, UnsafeIconData } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { getIconData, getIconDataSync } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport IconTemplate from \"./IconTemplate.js\";\nimport type IconDesign from \"./types/IconDesign.js\";\nimport IconMode from \"./types/IconMode.js\";\n\n// Styles\nimport iconCss from \"./generated/themes/Icon.css.js\";\n\n/**\n * Interface for components that represent an icon, usable in numerous higher-order components\n * @public\n */\ninterface IIcon extends HTMLElement { }\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-icon` component represents an SVG icon.\n * There are two main scenarios how the `ui5-icon` component is used:\n * as a purely decorative element,\n * or as an interactive element that can be focused and clicked.\n *\n * ### Usage\n *\n * 1. **Get familiar with the icons collections.**\n *\n * Before displaying an icon, you need to explore the icons collections to find and import the desired icon.\n *\n * Currently there are 3 icons collection, available as 3 npm packages:\n *\n * - [@ui5/webcomponents-icons](https://www.npmjs.com/package/@ui5/webcomponents-icons) represents the \"SAP-icons\" collection and includes the following\n * [icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons).\n * - [@ui5/webcomponents-icons-tnt](https://www.npmjs.com/package/@ui5/webcomponents-icons-tnt) represents the \"tnt\" collection and includes the following\n * [icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons-TNT).\n * - [@ui5/webcomponents-icons-business-suite](https://www.npmjs.com/package/@ui5/webcomponents-icons-business-suite) represents the \"business-suite\" collection and includes the following\n * [icons](https://ui5.sap.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/BusinessSuiteInAppSymbols).\n *\n * 2. **After exploring the icons collections, add one or more of the packages as dependencies to your project.**\n *\n * `npm i @ui5/webcomponents-icons`\n * `npm i @ui5/webcomponents-icons-tnt`\n * `npm i @ui5/webcomponents-icons-business-suite`\n *\n * 3. **Then, import the desired icon**.\n *\n * `import \"@ui5/\\{package_name\\}/dist/\\{icon_name\\}.js\";`\n *\n * **For Example**:\n *\n * For the standard \"SAP-icons\" icon collection, import an icon from the `@ui5/webcomponents-icons` package:\n *\n * `import \"@ui5/webcomponents-icons/dist/employee.js\";`\n *\n * For the \"tnt\" (SAP Fiori Tools) icon collection, import an icon from the `@ui5/webcomponents-icons-tnt` package:\n *\n * `import \"@ui5/webcomponents-icons-tnt/dist/antenna.js\";`\n *\n * For the \"business-suite\" (SAP Business Suite) icon collection, import an icon from the `@ui5/webcomponents-icons-business-suite` package:\n *\n * `import \"@ui5/webcomponents-icons-business-suite/dist/ab-testing.js\";`\n *\n * 4. **Display the icon using the `ui5-icon` web component.**\n * Set the icon collection (\"SAP-icons\", \"tnt\" or \"business-suite\" - \"SAP-icons\" is the default icon collection and can be skipped)\n * and the icon name to the `name` property.\n *\n * `<ui5-icon name=\"employee\"></ui5-icon>`\n * `<ui5-icon name=\"tnt/antenna\"></ui5-icon>`\n * `<ui5-icon name=\"business-suite/ab-testing\"></ui5-icon>`\n *\n * ### Keyboard Handling\n *\n * - [Space] / [Enter] or [Return] - Fires the `click` event if the `mode` property is set to `Interactive`.\n * - [Shift] - If [Space] / [Enter] or [Return] is pressed, pressing [Shift] releases the ui5-icon without triggering the click event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Icon.js\";`\n * @csspart root - Used to style the outermost wrapper of the `ui5-icon`.\n * @constructor\n * @extends UI5Element\n * @implements {IIcon}\n * @public\n */\n@customElement({\n\ttag: \"ui5-icon\",\n\tlanguageAware: true,\n\tthemeAware: true,\n\trenderer: jsxRender,\n\ttemplate: IconTemplate,\n\tstyles: iconCss,\n})\n/**\n * Fired on mouseup, `SPACE` and `ENTER`.\n * - on mouse click, the icon fires native `click` event\n * - on `SPACE` and `ENTER`, the icon fires custom `click` event\n * @public\n * @since 2.11.0\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass Icon extends UI5Element implements IIcon {\n\teventDetails!: {\n\t\tclick: void\n\t}\n\t/**\n\t * Defines the component semantic design.\n\t * @default \"Default\"\n\t * @public\n\t * @since 1.9.2\n\t */\n\t@property()\n\tdesign: `${IconDesign}` = \"Default\";\n\n\t/**\n\t * Defines the unique identifier (icon name) of the component.\n\t *\n\t * To browse all available icons, see the\n\t * [SAP Icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html),\n\t * [SAP Fiori Tools](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons-TNT) and\n\t * [SAP Business Suite](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html)\n\t *\n\t * Example:\n\t * `name='add'`, `name='delete'`, `name='employee'`.\n\t *\n\t * **Note:** To use the SAP Fiori Tools icons,\n\t * you need to set the `tnt` prefix in front of the icon's name.\n\t *\n\t * Example:\n\t * `name='tnt/antenna'`, `name='tnt/actor'`, `name='tnt/api'`.\n\t *\n\t * **Note:** To use the SAP Business Suite icons,\n\t * you need to set the `business-suite` prefix in front of the icon's name.\n\t *\n\t * Example:\n\t * `name='business-suite/3d'`, `name='business-suite/1x2-grid-layout'`, `name='business-suite/4x4-grid-layout'`.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * If not provided a default text alternative will be set, if present.\n\t *\n\t * **Note:** Every icon should have a text alternative in order to\n\t * calculate its accessible name.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines whether the component should have a tooltip.\n\t *\n\t * **Note:** The tooltip text should be provided via the `accessible-name` property.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowTooltip = false;\n\n\t/**\n\t * Defines the mode of the component.\n\t * @default \"Decorative\"\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tmode: `${IconMode}` = \"Decorative\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array })\n\tpathData: Array<string> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object, noAttribute: true })\n\taccData?: I18nText;\n\n\t/**\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\tinvalid = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\teffectiveAccessibleName?: string;\n\n\tltr?: boolean;\n\tpackageName?: string;\n\tviewBox?: string;\n\tcustomTemplate?: object;\n\tcustomTemplateAsString?: string;\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (this.mode !== IconMode.Interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.mode === IconMode.Interactive && isSpace(e)) {\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\t}\n\n\t/**\n\t* Enforce \"ltr\" direction, based on the icons collection metadata.\n\t*/\n\tget _dir() {\n\t\treturn this.ltr ? \"ltr\" : undefined;\n\t}\n\n\tget effectiveAriaHidden() {\n\t\treturn this.mode === IconMode.Decorative ? \"true\" : undefined;\n\t}\n\n\tget _tabIndex() {\n\t\treturn this.mode === IconMode.Interactive ? 0 : undefined;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\tswitch (this.mode) {\n\t\tcase IconMode.Interactive:\n\t\t\treturn \"button\";\n\t\tcase IconMode.Decorative:\n\t\t\treturn \"presentation\";\n\t\tdefault:\n\t\t\treturn \"img\";\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tconst name = this.name;\n\t\tif (!name) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet iconData: typeof ICON_NOT_FOUND | IconData | UnsafeIconData | undefined = getIconDataSync(name);\n\t\tif (!iconData) {\n\t\t\ticonData = await getIconData(name);\n\t\t}\n\n\t\tif (!iconData) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. Invalid icon name: ${this.name}`);\n\t\t}\n\n\t\tif (iconData === ICON_NOT_FOUND) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. You can either import the icon as a module in order to use it e.g. \"@ui5/webcomponents-icons/dist/${name.replace(\"sap-icon://\", \"\")}.js\", or setup a JSON build step and import \"@ui5/webcomponents-icons/dist/AllIcons.js\".`);\n\t\t}\n\n\t\tthis.viewBox = iconData.viewBox || \"0 0 512 512\";\n\n\t\tif (\"customTemplate\" in iconData && iconData.customTemplate) {\n\t\t\tthis.customTemplate = executeTemplate(iconData.customTemplate, this);\n\t\t}\n\n\t\tif (\"customTemplateAsString\" in iconData) {\n\t\t\tthis.customTemplateAsString = iconData.customTemplateAsString;\n\t\t}\n\n\t\t// in case a new valid name is set, show the icon\n\t\tthis.invalid = false;\n\t\tif (\"pathData\" in iconData && iconData.pathData) {\n\t\t\tthis.pathData = Array.isArray(iconData.pathData) ? iconData.pathData : [iconData.pathData];\n\t\t}\n\n\t\tthis.accData = iconData.accData;\n\t\tthis.ltr = iconData.ltr;\n\t\tthis.packageName = iconData.packageName;\n\n\t\tif (this.accessibleName) {\n\t\t\tthis.effectiveAccessibleName = this.accessibleName;\n\t\t} else if (this.accData) {\n\t\t\tif (this.packageName) {\n\t\t\t\tconst i18nBundle = await getI18nBundle(this.packageName);\n\t\t\t\tthis.effectiveAccessibleName = i18nBundle.getText(this.accData) || undefined;\n\t\t\t} else {\n\t\t\t\tthis.effectiveAccessibleName = this.accData?.defaultText || undefined;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.effectiveAccessibleName = undefined;\n\t\t}\n\t}\n\n\tget hasIconTooltip() {\n\t\treturn this.showTooltip && this.effectiveAccessibleName;\n\t}\n}\n\nIcon.define();\n\nexport default Icon;\nexport type {\n\tIIcon,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Icon.js","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { IconData, UnsafeIconData } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { getIconData, getIconDataSync } from \"@ui5/webcomponents-base/dist/asset-registries/Icons.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport IconTemplate from \"./IconTemplate.js\";\nimport type IconDesign from \"./types/IconDesign.js\";\nimport IconMode from \"./types/IconMode.js\";\n\nimport { ICON_ARIA_TYPE_IMAGE, ICON_ARIA_TYPE_INTERACTIVE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport iconCss from \"./generated/themes/Icon.css.js\";\n\n/**\n * Interface for components that represent an icon, usable in numerous higher-order components\n * @public\n */\ninterface IIcon extends HTMLElement { }\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-icon` component represents an SVG icon.\n * There are two main scenarios how the `ui5-icon` component is used:\n * as a purely decorative element,\n * or as an interactive element that can be focused and clicked.\n *\n * ### Usage\n *\n * 1. **Get familiar with the icons collections.**\n *\n * Before displaying an icon, you need to explore the icons collections to find and import the desired icon.\n *\n * Currently there are 3 icons collection, available as 3 npm packages:\n *\n * - [@ui5/webcomponents-icons](https://www.npmjs.com/package/@ui5/webcomponents-icons) represents the \"SAP-icons\" collection and includes the following\n * [icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons).\n * - [@ui5/webcomponents-icons-tnt](https://www.npmjs.com/package/@ui5/webcomponents-icons-tnt) represents the \"tnt\" collection and includes the following\n * [icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons-TNT).\n * - [@ui5/webcomponents-icons-business-suite](https://www.npmjs.com/package/@ui5/webcomponents-icons-business-suite) represents the \"business-suite\" collection and includes the following\n * [icons](https://ui5.sap.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/BusinessSuiteInAppSymbols).\n *\n * 2. **After exploring the icons collections, add one or more of the packages as dependencies to your project.**\n *\n * `npm i @ui5/webcomponents-icons`\n * `npm i @ui5/webcomponents-icons-tnt`\n * `npm i @ui5/webcomponents-icons-business-suite`\n *\n * 3. **Then, import the desired icon**.\n *\n * `import \"@ui5/\\{package_name\\}/dist/\\{icon_name\\}.js\";`\n *\n * **For Example**:\n *\n * For the standard \"SAP-icons\" icon collection, import an icon from the `@ui5/webcomponents-icons` package:\n *\n * `import \"@ui5/webcomponents-icons/dist/employee.js\";`\n *\n * For the \"tnt\" (SAP Fiori Tools) icon collection, import an icon from the `@ui5/webcomponents-icons-tnt` package:\n *\n * `import \"@ui5/webcomponents-icons-tnt/dist/antenna.js\";`\n *\n * For the \"business-suite\" (SAP Business Suite) icon collection, import an icon from the `@ui5/webcomponents-icons-business-suite` package:\n *\n * `import \"@ui5/webcomponents-icons-business-suite/dist/ab-testing.js\";`\n *\n * 4. **Display the icon using the `ui5-icon` web component.**\n * Set the icon collection (\"SAP-icons\", \"tnt\" or \"business-suite\" - \"SAP-icons\" is the default icon collection and can be skipped)\n * and the icon name to the `name` property.\n *\n * `<ui5-icon name=\"employee\"></ui5-icon>`\n * `<ui5-icon name=\"tnt/antenna\"></ui5-icon>`\n * `<ui5-icon name=\"business-suite/ab-testing\"></ui5-icon>`\n *\n * ### Keyboard Handling\n *\n * - [Space] / [Enter] or [Return] - Fires the `click` event if the `mode` property is set to `Interactive`.\n * - [Shift] - If [Space] / [Enter] or [Return] is pressed, pressing [Shift] releases the ui5-icon without triggering the click event.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Icon.js\";`\n * @csspart root - Used to style the outermost wrapper of the `ui5-icon`.\n * @constructor\n * @extends UI5Element\n * @implements {IIcon}\n * @public\n */\n@customElement({\n\ttag: \"ui5-icon\",\n\tlanguageAware: true,\n\tthemeAware: true,\n\trenderer: jsxRender,\n\ttemplate: IconTemplate,\n\tstyles: iconCss,\n})\n/**\n * Fired on mouseup, `SPACE` and `ENTER`.\n * - on mouse click, the icon fires native `click` event\n * - on `SPACE` and `ENTER`, the icon fires custom `click` event\n * @public\n * @since 2.11.0\n */\n@event(\"click\", {\n\tbubbles: true,\n})\nclass Icon extends UI5Element implements IIcon {\n\teventDetails!: {\n\t\tclick: void\n\t}\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Defines the component semantic design.\n\t * @default \"Default\"\n\t * @public\n\t * @since 1.9.2\n\t */\n\t@property()\n\tdesign: `${IconDesign}` = \"Default\";\n\n\t/**\n\t * Defines the unique identifier (icon name) of the component.\n\t *\n\t * To browse all available icons, see the\n\t * [SAP Icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html),\n\t * [SAP Fiori Tools](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons-TNT) and\n\t * [SAP Business Suite](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html)\n\t *\n\t * Example:\n\t * `name='add'`, `name='delete'`, `name='employee'`.\n\t *\n\t * **Note:** To use the SAP Fiori Tools icons,\n\t * you need to set the `tnt` prefix in front of the icon's name.\n\t *\n\t * Example:\n\t * `name='tnt/antenna'`, `name='tnt/actor'`, `name='tnt/api'`.\n\t *\n\t * **Note:** To use the SAP Business Suite icons,\n\t * you need to set the `business-suite` prefix in front of the icon's name.\n\t *\n\t * Example:\n\t * `name='business-suite/3d'`, `name='business-suite/1x2-grid-layout'`, `name='business-suite/4x4-grid-layout'`.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines the text alternative of the component.\n\t * If not provided a default text alternative will be set, if present.\n\t *\n\t * **Note:** Every icon should have a text alternative in order to\n\t * calculate its accessible name.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines whether the component should have a tooltip.\n\t *\n\t * **Note:** The tooltip text should be provided via the `accessible-name` property.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowTooltip = false;\n\n\t/**\n\t * Defines the mode of the component.\n\t * @default \"Decorative\"\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property()\n\tmode: `${IconMode}` = \"Decorative\";\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Array })\n\tpathData: Array<string> = [];\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object, noAttribute: true })\n\taccData?: I18nText;\n\n\t/**\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\tinvalid = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\teffectiveAccessibleName?: string;\n\n\tltr?: boolean;\n\tpackageName?: string;\n\tviewBox?: string;\n\tcustomTemplate?: object;\n\tcustomTemplateAsString?: string;\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (this.mode !== IconMode.Interactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault(); // prevent scrolling\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (this.mode === IconMode.Interactive && isSpace(e)) {\n\t\t\tthis.fireDecoratorEvent(\"click\");\n\t\t}\n\t}\n\n\t/**\n\t* Enforce \"ltr\" direction, based on the icons collection metadata.\n\t*/\n\tget _dir() {\n\t\treturn this.ltr ? \"ltr\" : undefined;\n\t}\n\n\tget effectiveAriaHidden() {\n\t\treturn this.mode === IconMode.Decorative ? \"true\" : undefined;\n\t}\n\n\tget _tabIndex() {\n\t\treturn this.mode === IconMode.Interactive ? 0 : undefined;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\tswitch (this.mode) {\n\t\tcase IconMode.Interactive:\n\t\t\treturn \"button\";\n\t\tcase IconMode.Decorative:\n\t\t\treturn \"presentation\";\n\t\tdefault:\n\t\t\treturn \"img\";\n\t\t}\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tconst name = this.name;\n\t\tif (!name) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet iconData: typeof ICON_NOT_FOUND | IconData | UnsafeIconData | undefined = getIconDataSync(name);\n\t\tif (!iconData) {\n\t\t\ticonData = await getIconData(name);\n\t\t}\n\n\t\tif (!iconData) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. Invalid icon name: ${this.name}`);\n\t\t}\n\n\t\tif (iconData === ICON_NOT_FOUND) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. You can either import the icon as a module in order to use it e.g. \"@ui5/webcomponents-icons/dist/${name.replace(\"sap-icon://\", \"\")}.js\", or setup a JSON build step and import \"@ui5/webcomponents-icons/dist/AllIcons.js\".`);\n\t\t}\n\n\t\tthis.viewBox = iconData.viewBox || \"0 0 512 512\";\n\n\t\tif (\"customTemplate\" in iconData && iconData.customTemplate) {\n\t\t\tthis.customTemplate = executeTemplate(iconData.customTemplate, this);\n\t\t}\n\n\t\tif (\"customTemplateAsString\" in iconData) {\n\t\t\tthis.customTemplateAsString = iconData.customTemplateAsString;\n\t\t}\n\n\t\t// in case a new valid name is set, show the icon\n\t\tthis.invalid = false;\n\t\tif (\"pathData\" in iconData && iconData.pathData) {\n\t\t\tthis.pathData = Array.isArray(iconData.pathData) ? iconData.pathData : [iconData.pathData];\n\t\t}\n\n\t\tthis.accData = iconData.accData;\n\t\tthis.ltr = iconData.ltr;\n\t\tthis.packageName = iconData.packageName;\n\n\t\tif (this.accessibleName) {\n\t\t\tthis.effectiveAccessibleName = this.accessibleName;\n\t\t} else if (this.accData) {\n\t\t\tif (this.packageName) {\n\t\t\t\tconst i18nBundle = await getI18nBundle(this.packageName);\n\t\t\t\tthis.effectiveAccessibleName = i18nBundle.getText(this.accData) || undefined;\n\t\t\t} else {\n\t\t\t\tthis.effectiveAccessibleName = this.accData?.defaultText || undefined;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.effectiveAccessibleName = undefined;\n\t\t}\n\t}\n\n\tget hasIconTooltip() {\n\t\treturn this.showTooltip && this.effectiveAccessibleName;\n\t}\n\n\t_getAriaTypeDescription() {\n\t\tswitch (this.mode) {\n\t\tcase IconMode.Interactive:\n\t\t\treturn Icon.i18nBundle.getText(ICON_ARIA_TYPE_INTERACTIVE);\n\t\tcase IconMode.Image:\n\t\t\treturn Icon.i18nBundle.getText(ICON_ARIA_TYPE_IMAGE);\n\t\tdefault:\n\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tget accessibilityInfo() {\n\t\tif (this.mode === IconMode.Decorative) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\trole: this.effectiveAccessibleRole as AriaRole,\n\t\t\ttype: this._getAriaTypeDescription(),\n\t\t\tdescription: this.effectiveAccessibleName,\n\t\t};\n\t}\n}\n\nIcon.define();\n\nexport default Icon;\nexport type {\n\tIIcon,\n};\n"]}
|
package/dist/Link.d.ts
CHANGED
|
@@ -200,6 +200,13 @@ declare class Link extends UI5Element implements ITabbable {
|
|
|
200
200
|
* @public
|
|
201
201
|
*/
|
|
202
202
|
endIcon?: string;
|
|
203
|
+
/**
|
|
204
|
+
* Defines the text of the component.
|
|
205
|
+
*
|
|
206
|
+
* **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
|
|
207
|
+
* @public
|
|
208
|
+
*/
|
|
209
|
+
text: Array<Node>;
|
|
203
210
|
_rel: string | undefined;
|
|
204
211
|
forcedTabIndex?: string;
|
|
205
212
|
_dummyAnchor: HTMLAnchorElement;
|
package/dist/Link.js
CHANGED
|
@@ -9,6 +9,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
11
11
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
12
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
12
13
|
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
13
14
|
import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
14
15
|
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
|
|
@@ -150,7 +151,7 @@ let Link = Link_1 = class Link extends UI5Element {
|
|
|
150
151
|
if (this.forcedTabIndex) {
|
|
151
152
|
return Number.parseInt(this.forcedTabIndex);
|
|
152
153
|
}
|
|
153
|
-
return this.disabled ? -1 : 0;
|
|
154
|
+
return (this.disabled || !this.textContent?.length) ? -1 : 0;
|
|
154
155
|
}
|
|
155
156
|
get ariaLabelText() {
|
|
156
157
|
return getEffectiveAriaLabelText(this);
|
|
@@ -255,6 +256,9 @@ __decorate([
|
|
|
255
256
|
__decorate([
|
|
256
257
|
property()
|
|
257
258
|
], Link.prototype, "endIcon", void 0);
|
|
259
|
+
__decorate([
|
|
260
|
+
slot({ type: Node, "default": true })
|
|
261
|
+
], Link.prototype, "text", void 0);
|
|
258
262
|
__decorate([
|
|
259
263
|
property({ noAttribute: true })
|
|
260
264
|
], Link.prototype, "_rel", void 0);
|
package/dist/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { AccessibilityAttributes } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport { getLocationHostname, getLocationPort, getLocationProtocol } from \"@ui5/webcomponents-base/dist/Location.js\";\nimport LinkDesign from \"./types/LinkDesign.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport type LinkAccessibleRole from \"./types/LinkAccessibleRole.js\";\nimport type InteractiveAreaSize from \"./types/InteractiveAreaSize.js\";\n// Template\nimport LinkTemplate from \"./LinkTemplate.js\";\n\nimport { LINK_SUBTLE, LINK_EMPHASIZED } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport linkCss from \"./generated/themes/Link.css.js\";\n\ntype LinkClickEventDetail = {\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\ntype LinkAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"current\">;\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-link` is a hyperlink component that is used to navigate to other\n * apps and web pages, or to trigger actions.\n * It is a clickable text element, visualized in such a way that it stands out\n * from the standard text.\n * On hover, it changes its style to an underlined text to provide additional feedback to the user.\n *\n * ### Usage\n *\n * You can set the `ui5-link` to be enabled or disabled.\n *\n * To create a visual hierarchy in large lists of links, you can set the less important links as\n * `Subtle` or the more important ones as `Emphasized`,\n * by using the `design` property.\n *\n * If the `href` property is set, the link behaves as the HTML\n * anchor tag (`<a></a>`) and opens the specified URL in the given target frame (`target` property).\n * To specify where the linked content is opened, you can use the `target` property.\n *\n * ### Responsive behavior\n *\n * If there is not enough space, the text of the `ui5-link` becomes truncated.\n * If the `wrappingType` property is set to `\"Normal\"`, the text is displayed\n * on several lines instead of being truncated.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Link\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart icon - Used to style the provided icon within the link\n * @csspart endIcon - Used to style the provided endIcon within the link\n * @slot {Array<Node>} default - Defines the text of the component.\n *\n * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n */\n@customElement({\n\ttag: \"ui5-link\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: LinkTemplate,\n\tstyles: linkCss,\n})\n/**\n * Fired when the component is triggered either with a mouse/tap\n * or by using the Enter key.\n * @public\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Link extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\tclick: LinkClickEventDetail;\n\t}\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** When disabled, the click event cannot be triggered by the user.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t @property()\n\t tooltip?: string;\n\n\t/**\n\t * Defines the component href.\n\t *\n\t * **Note:** Standard hyperlink behavior is supported.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\thref?: string;\n\n\t/**\n\t * Defines the component target.\n\t *\n\t * **Notes:**\n\t *\n\t * - `_self`\n\t * - `_top`\n\t * - `_blank`\n\t * - `_parent`\n\t * - `_search`\n\t *\n\t * **This property must only be used when the `href` property is set.**\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttarget?: string;\n\n\t/**\n\t * Defines the component design.\n\t *\n\t * **Note:** Avaialble options are `Default`, `Subtle`, and `Emphasized`.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${LinkDesign}` = \"Default\";\n\n\t/**\n\t * Defines the target area size of the link:\n\t * - **InteractiveAreaSize.Normal**: The default target area size.\n\t * - **InteractiveAreaSize.Large**: The target area size is enlarged to 24px in height.\n\t *\n\t * **Note:**The property is designed to make links easier to activate and helps meet the WCAG 2.2 Target Size requirement. It is applicable only for the SAP Horizon themes.\n\t * **Note:**To improve <code>ui5-link</code>'s reliability and usability, it is recommended to use the <code>InteractiveAreaSize.Large</code> value in scenarios where the <code>ui5-link</code> component is placed inside another interactive component, such as a list item or a table cell.\n\t * Setting the <code>interactiveAreaSize</code> property to <code>InteractiveAreaSize.Large</code> increases the <code>ui5-link</code>'s invisible touch area. As a result, the user's intended one-time selection command is more likely to activate the desired <code>ui5-link</code>, with minimal chance of unintentionally activating the underlying component.\n\t *\n\t * @public\n\t * @since 2.8.0\n\t * @default \"Normal\"\n\t */\n\t@property()\n\tinteractiveAreaSize: `${InteractiveAreaSize}` = \"Normal\";\n\n\t/**\n\t * Defines how the text of a component will be displayed when there is not enough space.\n\t *\n\t * **Note:** By default the text will wrap. If \"None\" is set - the text will truncate.\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"Normal\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the ARIA role of the component.\n\t *\n\t * **Note:** Use the <code>LinkAccessibleRole.Button</code> role in cases when navigation is not expected to occur and the href property is not defined.\n\t * @default \"Link\"\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property()\n\taccessibleRole: `${LinkAccessibleRole}` = \"Link\";\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`.\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * @public\n\t * @since 1.1.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: LinkAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component before the link's text.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Note:** Usage of icon-only link is not supported, the link must always have a text.\n\t *\n\t * **Note:** We recommend using аn icon in the beginning or the end only, and with text.\n\t *\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the link's text.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Note:** Usage of icon-only link is not supported, the link must always have a text.\n\t *\n\t * **Note:** We recommend using аn icon in the beginning or the end only, and with text.\n\t *\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t@property({ noAttribute: true })\n\t_rel: string | undefined;\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex?: string;\n\n\t_dummyAnchor: HTMLAnchorElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._dummyAnchor = document.createElement(\"a\");\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tconst needsNoReferrer = this.target !== \"_self\"\n\t\t\t&& this.href\n\t\t\t&& this._isCrossOrigin(this.href);\n\n\t\tthis._rel = needsNoReferrer ? \"noreferrer noopener\" : undefined;\n\t}\n\n\t_isCrossOrigin(href: string) {\n\t\tthis._dummyAnchor.href = href;\n\n\t\treturn !(this._dummyAnchor.hostname === getLocationHostname()\n\t\t\t&& this._dummyAnchor.port === getLocationPort()\n\t\t\t&& this._dummyAnchor.protocol === getLocationProtocol());\n\t}\n\n\tget effectiveTabIndex() {\n\t\tif (this.forcedTabIndex) {\n\t\t\treturn Number.parseInt(this.forcedTabIndex);\n\t\t}\n\n\t\treturn this.disabled ? -1 : 0;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget hasLinkType() {\n\t\treturn this.design !== LinkDesign.Default;\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Subtle\": LINK_SUBTLE,\n\t\t\t\"Emphasized\": LINK_EMPHASIZED,\n\t\t};\n\t}\n\n\tget linkTypeText() {\n\t\treturn Link.i18nBundle.getText(Link.typeTextMappings()[this.design]);\n\t}\n\n\tget parsedRef() {\n\t\treturn (this.href && this.href.length > 0) ? this.href : undefined;\n\t}\n\n\tget effectiveAccRole() {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t}\n\n\tget _hasPopup() {\n\t\treturn this.accessibilityAttributes.hasPopup;\n\t}\n\n\t_onclick(e: MouseEvent | KeyboardEvent) {\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\te.stopImmediatePropagation();\n\n\t\tconst executeEvent = this.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) && !this.href) {\n\t\t\tthis._onclick(e);\n\t\t\te.preventDefault();\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (!isSpace(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._onclick(e);\n\n\t\tif (this.href && !e.defaultPrevented) {\n\t\t\tconst customEvent = new MouseEvent(\"click\");\n\n\t\t\tcustomEvent.stopImmediatePropagation();\n\t\t\tthis.getDomRef()!.dispatchEvent(customEvent);\n\t\t}\n\t}\n}\n\nLink.define();\n\nexport default Link;\n\nexport type {\n\tLinkClickEventDetail,\n\tLinkAccessibilityAttributes,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { AccessibilityAttributes } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport toLowercaseEnumValue from \"@ui5/webcomponents-base/dist/util/toLowercaseEnumValue.js\";\nimport { getLocationHostname, getLocationPort, getLocationProtocol } from \"@ui5/webcomponents-base/dist/Location.js\";\nimport LinkDesign from \"./types/LinkDesign.js\";\nimport type WrappingType from \"./types/WrappingType.js\";\nimport type LinkAccessibleRole from \"./types/LinkAccessibleRole.js\";\nimport type InteractiveAreaSize from \"./types/InteractiveAreaSize.js\";\n// Template\nimport LinkTemplate from \"./LinkTemplate.js\";\n\nimport { LINK_SUBTLE, LINK_EMPHASIZED } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport linkCss from \"./generated/themes/Link.css.js\";\n\ntype LinkClickEventDetail = {\n\taltKey: boolean;\n\tctrlKey: boolean;\n\tmetaKey: boolean;\n\tshiftKey: boolean;\n}\n\ntype LinkAccessibilityAttributes = Pick<AccessibilityAttributes, \"expanded\" | \"hasPopup\" | \"current\">;\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-link` is a hyperlink component that is used to navigate to other\n * apps and web pages, or to trigger actions.\n * It is a clickable text element, visualized in such a way that it stands out\n * from the standard text.\n * On hover, it changes its style to an underlined text to provide additional feedback to the user.\n *\n * ### Usage\n *\n * You can set the `ui5-link` to be enabled or disabled.\n *\n * To create a visual hierarchy in large lists of links, you can set the less important links as\n * `Subtle` or the more important ones as `Emphasized`,\n * by using the `design` property.\n *\n * If the `href` property is set, the link behaves as the HTML\n * anchor tag (`<a></a>`) and opens the specified URL in the given target frame (`target` property).\n * To specify where the linked content is opened, you can use the `target` property.\n *\n * ### Responsive behavior\n *\n * If there is not enough space, the text of the `ui5-link` becomes truncated.\n * If the `wrappingType` property is set to `\"Normal\"`, the text is displayed\n * on several lines instead of being truncated.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Link\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @csspart icon - Used to style the provided icon within the link\n * @csspart endIcon - Used to style the provided endIcon within the link\n * @slot {Array<Node>} default - Defines the text of the component.\n *\n * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n */\n@customElement({\n\ttag: \"ui5-link\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: LinkTemplate,\n\tstyles: linkCss,\n})\n/**\n * Fired when the component is triggered either with a mouse/tap\n * or by using the Enter key.\n * @public\n * @param {boolean} altKey Returns whether the \"ALT\" key was pressed when the event was triggered.\n * @param {boolean} ctrlKey Returns whether the \"CTRL\" key was pressed when the event was triggered.\n * @param {boolean} metaKey Returns whether the \"META\" key was pressed when the event was triggered.\n * @param {boolean} shiftKey Returns whether the \"SHIFT\" key was pressed when the event was triggered.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Link extends UI5Element implements ITabbable {\n\teventDetails!: {\n\t\tclick: LinkClickEventDetail;\n\t}\n\t/**\n\t * Defines whether the component is disabled.\n\t *\n\t * **Note:** When disabled, the click event cannot be triggered by the user.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled = false;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.0.0\n\t */\n\t @property()\n\t tooltip?: string;\n\n\t/**\n\t * Defines the component href.\n\t *\n\t * **Note:** Standard hyperlink behavior is supported.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\thref?: string;\n\n\t/**\n\t * Defines the component target.\n\t *\n\t * **Notes:**\n\t *\n\t * - `_self`\n\t * - `_top`\n\t * - `_blank`\n\t * - `_parent`\n\t * - `_search`\n\t *\n\t * **This property must only be used when the `href` property is set.**\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttarget?: string;\n\n\t/**\n\t * Defines the component design.\n\t *\n\t * **Note:** Avaialble options are `Default`, `Subtle`, and `Emphasized`.\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property()\n\tdesign: `${LinkDesign}` = \"Default\";\n\n\t/**\n\t * Defines the target area size of the link:\n\t * - **InteractiveAreaSize.Normal**: The default target area size.\n\t * - **InteractiveAreaSize.Large**: The target area size is enlarged to 24px in height.\n\t *\n\t * **Note:**The property is designed to make links easier to activate and helps meet the WCAG 2.2 Target Size requirement. It is applicable only for the SAP Horizon themes.\n\t * **Note:**To improve <code>ui5-link</code>'s reliability and usability, it is recommended to use the <code>InteractiveAreaSize.Large</code> value in scenarios where the <code>ui5-link</code> component is placed inside another interactive component, such as a list item or a table cell.\n\t * Setting the <code>interactiveAreaSize</code> property to <code>InteractiveAreaSize.Large</code> increases the <code>ui5-link</code>'s invisible touch area. As a result, the user's intended one-time selection command is more likely to activate the desired <code>ui5-link</code>, with minimal chance of unintentionally activating the underlying component.\n\t *\n\t * @public\n\t * @since 2.8.0\n\t * @default \"Normal\"\n\t */\n\t@property()\n\tinteractiveAreaSize: `${InteractiveAreaSize}` = \"Normal\";\n\n\t/**\n\t * Defines how the text of a component will be displayed when there is not enough space.\n\t *\n\t * **Note:** By default the text will wrap. If \"None\" is set - the text will truncate.\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\twrappingType: `${WrappingType}` = \"Normal\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input\n\t * @default undefined\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the ARIA role of the component.\n\t *\n\t * **Note:** Use the <code>LinkAccessibleRole.Button</code> role in cases when navigation is not expected to occur and the href property is not defined.\n\t * @default \"Link\"\n\t * @public\n\t * @since 1.9.0\n\t */\n\t@property()\n\taccessibleRole: `${LinkAccessibleRole}` = \"Link\";\n\n\t/**\n\t * Defines the additional accessibility attributes that will be applied to the component.\n\t * The following fields are supported:\n\t *\n\t * - **expanded**: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed.\n\t * Accepts the following string values: `true` or `false`.\n\t *\n\t * - **hasPopup**: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button.\n\t * Accepts the following string values: `dialog`, `grid`, `listbox`, `menu` or `tree`.\n\t *\n\t * @public\n\t * @since 1.1.0\n\t * @default {}\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes: LinkAccessibilityAttributes = {};\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component before the link's text.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Note:** Usage of icon-only link is not supported, the link must always have a text.\n\t *\n\t * **Note:** We recommend using аn icon in the beginning or the end only, and with text.\n\t *\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the icon, displayed as graphical element within the component after the link's text.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * **Note:** Usage of icon-only link is not supported, the link must always have a text.\n\t *\n\t * **Note:** We recommend using аn icon in the beginning or the end only, and with text.\n\t *\n\t * See all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @since 2.0.0\n\t * @public\n\t */\n\t@property()\n\tendIcon?: string;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t@property({ noAttribute: true })\n\t_rel: string | undefined;\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex?: string;\n\n\t_dummyAnchor: HTMLAnchorElement;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._dummyAnchor = document.createElement(\"a\");\n\t}\n\n\tonEnterDOM() {\n\t\tif (isDesktop()) {\n\t\t\tthis.setAttribute(\"desktop\", \"\");\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tconst needsNoReferrer = this.target !== \"_self\"\n\t\t\t&& this.href\n\t\t\t&& this._isCrossOrigin(this.href);\n\n\t\tthis._rel = needsNoReferrer ? \"noreferrer noopener\" : undefined;\n\t}\n\n\t_isCrossOrigin(href: string) {\n\t\tthis._dummyAnchor.href = href;\n\n\t\treturn !(this._dummyAnchor.hostname === getLocationHostname()\n\t\t\t&& this._dummyAnchor.port === getLocationPort()\n\t\t\t&& this._dummyAnchor.protocol === getLocationProtocol());\n\t}\n\n\tget effectiveTabIndex() {\n\t\tif (this.forcedTabIndex) {\n\t\t\treturn Number.parseInt(this.forcedTabIndex);\n\t\t}\n\n\t\treturn (this.disabled || !this.textContent?.length) ? -1 : 0;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget hasLinkType() {\n\t\treturn this.design !== LinkDesign.Default;\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Subtle\": LINK_SUBTLE,\n\t\t\t\"Emphasized\": LINK_EMPHASIZED,\n\t\t};\n\t}\n\n\tget linkTypeText() {\n\t\treturn Link.i18nBundle.getText(Link.typeTextMappings()[this.design]);\n\t}\n\n\tget parsedRef() {\n\t\treturn (this.href && this.href.length > 0) ? this.href : undefined;\n\t}\n\n\tget effectiveAccRole() {\n\t\treturn toLowercaseEnumValue(this.accessibleRole);\n\t}\n\n\tget ariaDescriptionText() {\n\t\treturn this.accessibleDescription === \"\" ? undefined : this.accessibleDescription;\n\t}\n\n\tget _hasPopup() {\n\t\treturn this.accessibilityAttributes.hasPopup;\n\t}\n\n\t_onclick(e: MouseEvent | KeyboardEvent) {\n\t\tconst {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t} = e;\n\n\t\te.stopImmediatePropagation();\n\n\t\tconst executeEvent = this.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e) && !this.href) {\n\t\t\tthis._onclick(e);\n\t\t\te.preventDefault();\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (!isSpace(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._onclick(e);\n\n\t\tif (this.href && !e.defaultPrevented) {\n\t\t\tconst customEvent = new MouseEvent(\"click\");\n\n\t\t\tcustomEvent.stopImmediatePropagation();\n\t\t\tthis.getDomRef()!.dispatchEvent(customEvent);\n\t\t}\n\t}\n}\n\nLink.define();\n\nexport default Link;\n\nexport type {\n\tLinkClickEventDetail,\n\tLinkAccessibilityAttributes,\n};\n"]}
|
package/dist/List.d.ts
CHANGED
|
@@ -186,6 +186,15 @@ declare class List extends UI5Element {
|
|
|
186
186
|
* @public
|
|
187
187
|
*/
|
|
188
188
|
loadingDelay: number;
|
|
189
|
+
/**
|
|
190
|
+
* Indicates whether the List header is sticky or not.
|
|
191
|
+
* If stickyHeader is set to true, then whenever you scroll the content or
|
|
192
|
+
* the application, the header of the list will be always visible.
|
|
193
|
+
* @default false
|
|
194
|
+
* @public
|
|
195
|
+
* @since 2.19.0
|
|
196
|
+
*/
|
|
197
|
+
stickyHeader: boolean;
|
|
189
198
|
/**
|
|
190
199
|
* Defines the accessible name of the component.
|
|
191
200
|
* @default undefined
|
package/dist/List.js
CHANGED
|
@@ -141,6 +141,15 @@ let List = List_1 = class List extends UI5Element {
|
|
|
141
141
|
* @public
|
|
142
142
|
*/
|
|
143
143
|
this.loadingDelay = 1000;
|
|
144
|
+
/**
|
|
145
|
+
* Indicates whether the List header is sticky or not.
|
|
146
|
+
* If stickyHeader is set to true, then whenever you scroll the content or
|
|
147
|
+
* the application, the header of the list will be always visible.
|
|
148
|
+
* @default false
|
|
149
|
+
* @public
|
|
150
|
+
* @since 2.19.0
|
|
151
|
+
*/
|
|
152
|
+
this.stickyHeader = false;
|
|
144
153
|
/**
|
|
145
154
|
* Defines additional accessibility attributes on different areas of the component.
|
|
146
155
|
*
|
|
@@ -1029,6 +1038,9 @@ __decorate([
|
|
|
1029
1038
|
__decorate([
|
|
1030
1039
|
property({ type: Number })
|
|
1031
1040
|
], List.prototype, "loadingDelay", void 0);
|
|
1041
|
+
__decorate([
|
|
1042
|
+
property({ type: Boolean })
|
|
1043
|
+
], List.prototype, "stickyHeader", void 0);
|
|
1032
1044
|
__decorate([
|
|
1033
1045
|
property()
|
|
1034
1046
|
], List.prototype, "accessibleName", void 0);
|