@refinitiv-ui/elements 6.0.0-next.1 → 6.0.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 +21 -0
- package/lib/accordion/index.d.ts +5 -0
- package/lib/appstate-bar/index.d.ts +5 -0
- package/lib/autosuggest/custom-elements.json +5 -15
- package/lib/autosuggest/custom-elements.md +14 -14
- package/lib/autosuggest/helpers/renderer.d.ts +8 -0
- package/lib/autosuggest/helpers/renderer.js +35 -0
- package/lib/autosuggest/helpers/types.d.ts +101 -1
- package/lib/autosuggest/helpers/utils.d.ts +1 -8
- package/lib/autosuggest/helpers/utils.js +0 -27
- package/lib/autosuggest/index.d.ts +38 -32
- package/lib/autosuggest/index.js +246 -191
- package/lib/autosuggest/themes/halo/dark/index.js +1 -1
- package/lib/autosuggest/themes/halo/light/index.js +1 -1
- package/lib/button/index.d.ts +5 -0
- package/lib/button/index.js +1 -1
- package/lib/button/themes/halo/dark/index.js +1 -1
- package/lib/button/themes/halo/light/index.js +1 -1
- package/lib/button-bar/index.d.ts +5 -0
- package/lib/calendar/index.d.ts +5 -0
- package/lib/calendar/themes/halo/dark/index.js +1 -1
- package/lib/calendar/themes/halo/light/index.js +1 -1
- package/lib/canvas/index.d.ts +5 -0
- package/lib/card/index.d.ts +21 -0
- package/lib/card/index.js +31 -8
- package/lib/card/themes/halo/dark/index.js +1 -1
- package/lib/card/themes/halo/light/index.js +1 -1
- package/lib/chart/index.d.ts +5 -0
- package/lib/checkbox/index.d.ts +5 -0
- package/lib/clock/custom-elements.json +10 -10
- package/lib/clock/custom-elements.md +1 -1
- package/lib/clock/index.d.ts +49 -16
- package/lib/clock/index.js +178 -61
- package/lib/clock/themes/halo/dark/index.js +1 -1
- package/lib/clock/themes/halo/light/index.js +1 -1
- package/lib/clock/themes/solar/charcoal/index.js +1 -1
- package/lib/clock/themes/solar/pearl/index.js +1 -1
- package/lib/collapse/index.d.ts +5 -0
- package/lib/collapse/themes/halo/dark/index.js +1 -1
- package/lib/collapse/themes/halo/light/index.js +1 -1
- package/lib/color-dialog/elements/color-palettes.d.ts +5 -0
- package/lib/color-dialog/elements/grayscale-palettes.d.ts +5 -0
- package/lib/color-dialog/index.d.ts +5 -0
- package/lib/color-dialog/index.js +11 -6
- package/lib/combo-box/custom-elements.json +0 -22
- package/lib/combo-box/custom-elements.md +0 -7
- package/lib/combo-box/index.d.ts +5 -0
- package/lib/combo-box/themes/halo/dark/index.js +1 -1
- package/lib/combo-box/themes/halo/light/index.js +1 -1
- package/lib/counter/index.d.ts +5 -0
- package/lib/counter/themes/halo/dark/index.js +1 -1
- package/lib/counter/themes/halo/light/index.js +1 -1
- package/lib/datetime-field/custom-elements.json +0 -75
- package/lib/datetime-field/custom-elements.md +27 -36
- package/lib/datetime-field/index.d.ts +5 -0
- package/lib/datetime-picker/index.d.ts +5 -0
- package/lib/dialog/index.d.ts +5 -0
- package/lib/dialog/themes/halo/dark/index.js +1 -1
- package/lib/dialog/themes/halo/light/index.js +1 -1
- package/lib/email-field/index.d.ts +5 -0
- package/lib/flag/index.d.ts +5 -0
- package/lib/flag/utils/FlagLoader.d.ts +2 -32
- package/lib/flag/utils/FlagLoader.js +2 -69
- package/lib/header/index.d.ts +5 -0
- package/lib/heatmap/index.d.ts +5 -0
- package/lib/icon/index.d.ts +5 -0
- package/lib/icon/utils/IconLoader.d.ts +2 -37
- package/lib/icon/utils/IconLoader.js +2 -76
- package/lib/interactive-chart/index.d.ts +5 -0
- package/lib/interactive-chart/themes/halo/dark/index.js +1 -1
- package/lib/interactive-chart/themes/halo/light/index.js +1 -1
- package/lib/item/index.d.ts +5 -0
- package/lib/item/themes/halo/dark/index.js +1 -1
- package/lib/item/themes/halo/light/index.js +1 -1
- package/lib/label/index.d.ts +5 -0
- package/lib/layout/index.d.ts +5 -0
- package/lib/led-gauge/index.d.ts +5 -0
- package/lib/list/index.d.ts +5 -0
- package/lib/list/themes/halo/dark/index.js +1 -1
- package/lib/list/themes/halo/light/index.js +1 -1
- package/lib/loader/index.d.ts +6 -0
- package/lib/loader/index.js +4 -0
- package/lib/multi-input/index.d.ts +5 -0
- package/lib/multi-input/themes/halo/dark/index.js +1 -1
- package/lib/multi-input/themes/halo/light/index.js +1 -1
- package/lib/notification/elements/notification-tray.d.ts +5 -0
- package/lib/notification/elements/notification.d.ts +5 -0
- package/lib/number-field/custom-elements.json +0 -48
- package/lib/number-field/custom-elements.md +20 -26
- package/lib/number-field/index.d.ts +5 -0
- package/lib/number-field/themes/halo/dark/index.js +1 -1
- package/lib/number-field/themes/halo/light/index.js +1 -1
- package/lib/overlay/elements/overlay-backdrop.d.ts +5 -0
- package/lib/overlay/elements/overlay-viewport.d.ts +5 -0
- package/lib/overlay/elements/overlay.d.ts +5 -0
- package/lib/overlay/managers/focus-manager.js +9 -3
- package/lib/overlay/themes/halo/dark/index.js +1 -1
- package/lib/overlay/themes/halo/light/index.js +1 -1
- package/lib/overlay-menu/index.d.ts +5 -0
- package/lib/overlay-menu/themes/halo/dark/index.js +1 -1
- package/lib/overlay-menu/themes/halo/light/index.js +1 -1
- package/lib/pagination/index.d.ts +5 -0
- package/lib/panel/index.d.ts +5 -0
- package/lib/password-field/custom-elements.json +0 -7
- package/lib/password-field/custom-elements.md +0 -6
- package/lib/password-field/index.d.ts +5 -0
- package/lib/pill/index.d.ts +5 -0
- package/lib/pill/themes/halo/dark/index.js +1 -1
- package/lib/pill/themes/halo/light/index.js +1 -1
- package/lib/progress-bar/index.d.ts +5 -0
- package/lib/radio-button/index.d.ts +5 -0
- package/lib/rating/custom-elements.json +4 -4
- package/lib/rating/custom-elements.md +2 -2
- package/lib/rating/index.d.ts +89 -32
- package/lib/rating/index.js +209 -80
- package/lib/rating/themes/halo/dark/index.js +1 -1
- package/lib/rating/themes/halo/light/index.js +1 -1
- package/lib/rating/themes/solar/charcoal/index.js +1 -1
- package/lib/rating/themes/solar/pearl/index.js +1 -1
- package/lib/rating/utils.d.ts +9 -0
- package/lib/rating/utils.js +11 -0
- package/lib/search-field/custom-elements.json +0 -7
- package/lib/search-field/custom-elements.md +0 -6
- package/lib/search-field/index.d.ts +5 -0
- package/lib/select/index.d.ts +5 -0
- package/lib/select/themes/halo/dark/index.js +1 -1
- package/lib/select/themes/halo/light/index.js +1 -1
- package/lib/sidebar-layout/index.d.ts +5 -0
- package/lib/sidebar-layout/themes/halo/dark/index.js +1 -1
- package/lib/sidebar-layout/themes/halo/light/index.js +1 -1
- package/lib/slider/constants.d.ts +5 -1
- package/lib/slider/constants.js +6 -1
- package/lib/slider/index.d.ts +117 -49
- package/lib/slider/index.js +331 -182
- package/lib/slider/themes/halo/dark/index.js +1 -1
- package/lib/slider/themes/halo/light/index.js +1 -1
- package/lib/slider/themes/solar/charcoal/index.js +1 -1
- package/lib/slider/themes/solar/pearl/index.js +1 -1
- package/lib/slider/utils.d.ts +1 -9
- package/lib/slider/utils.js +1 -18
- package/lib/sparkline/index.d.ts +5 -0
- package/lib/swing-gauge/index.d.ts +5 -0
- package/lib/tab/index.d.ts +5 -0
- package/lib/tab/themes/halo/dark/index.js +1 -1
- package/lib/tab/themes/halo/light/index.js +1 -1
- package/lib/tab-bar/index.d.ts +5 -0
- package/lib/tab-bar/themes/halo/dark/index.js +1 -1
- package/lib/tab-bar/themes/halo/light/index.js +1 -1
- package/lib/text-field/custom-elements.json +0 -22
- package/lib/text-field/custom-elements.md +0 -7
- package/lib/text-field/index.d.ts +5 -0
- package/lib/time-picker/index.d.ts +5 -0
- package/lib/toggle/index.d.ts +5 -0
- package/lib/toggle/themes/halo/dark/index.js +1 -1
- package/lib/toggle/themes/halo/light/index.js +1 -1
- package/lib/tooltip/elements/tooltip-element.d.ts +1 -2
- package/lib/tooltip/index.d.ts +5 -0
- package/lib/tornado-chart/elements/tornado-chart.d.ts +5 -0
- package/lib/tornado-chart/elements/tornado-item.d.ts +5 -0
- package/lib/tree/elements/tree-item.d.ts +5 -0
- package/lib/tree/elements/tree.d.ts +5 -0
- package/lib/tree/helpers/renderer.js +14 -15
- package/lib/tree/themes/halo/dark/index.js +2 -2
- package/lib/tree/themes/halo/light/index.js +2 -2
- package/lib/tree-select/index.d.ts +5 -0
- package/lib/tree-select/themes/halo/dark/index.js +1 -1
- package/lib/tree-select/themes/halo/light/index.js +1 -1
- package/lib/version.js +1 -1
- package/package.json +16 -16
- package/lib/clock/utils/timestamps.d.ts +0 -6
- package/lib/clock/utils/timestamps.js +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.0.0](https://github.com/Refinitiv/refinitiv-ui/compare/@refinitiv-ui/elements@6.0.0-next.3...@refinitiv-ui/elements@6.0.0) (2022-06-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **clock:** a11y, tick, show-seconds should not pronounce all the time ([#339](https://github.com/Refinitiv/refinitiv-ui/issues/339)) ([b4e51ac](https://github.com/Refinitiv/refinitiv-ui/commit/b4e51ac1a4b181d99ff37cc30980fd4fc55dd426))
|
|
12
|
+
* **clock:** sync interactiveChange code with rating ([#346](https://github.com/Refinitiv/refinitiv-ui/issues/346)) ([6837206](https://github.com/Refinitiv/refinitiv-ui/commit/6837206d9a32a4d05a18fef262e4277e8630c568))
|
|
13
|
+
* **utils:** improve svg security ([#342](https://github.com/Refinitiv/refinitiv-ui/issues/342)) ([ef53c5c](https://github.com/Refinitiv/refinitiv-ui/commit/ef53c5c8918548a0c2aa67a1934ba0823698a9e8))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **clock:** improve clock accessibility ([#308](https://github.com/Refinitiv/refinitiv-ui/issues/308)) ([c0a9bb0](https://github.com/Refinitiv/refinitiv-ui/commit/c0a9bb04c212b6aa4dbce495bec4faebd9080eaf)), closes [#311](https://github.com/Refinitiv/refinitiv-ui/issues/311)
|
|
19
|
+
* **rating:** add accessibility support ([2a1b7e4](https://github.com/Refinitiv/refinitiv-ui/commit/2a1b7e47199de3c1cca73b0a86150da07612c347))
|
|
20
|
+
* **slider:** add arrow key navigation support and aria attributes ([#299](https://github.com/Refinitiv/refinitiv-ui/issues/299)) ([056a45b](https://github.com/Refinitiv/refinitiv-ui/commit/056a45b56911ed0f7634ea1b4abe38c6392144d4)), closes [#332](https://github.com/Refinitiv/refinitiv-ui/issues/332) [#341](https://github.com/Refinitiv/refinitiv-ui/issues/341)
|
|
21
|
+
* **slider:** add localised label for slider thumb ([#351](https://github.com/Refinitiv/refinitiv-ui/issues/351)) ([ba9cc8d](https://github.com/Refinitiv/refinitiv-ui/commit/ba9cc8d563444dba35a082a3898dc4e8f9235074))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
## [5.12.2](https://github.com/Refinitiv/refinitiv-ui/compare/@refinitiv-ui/elements@5.12.1...@refinitiv-ui/elements@5.12.2) (2022-02-17)
|
|
7
28
|
|
|
8
29
|
**Note:** Version bump only for package @refinitiv-ui/elements
|
package/lib/accordion/index.d.ts
CHANGED
|
@@ -60,6 +60,11 @@ export declare class Accordion extends Collapse {
|
|
|
60
60
|
*/
|
|
61
61
|
protected render(): TemplateResult;
|
|
62
62
|
}
|
|
63
|
+
declare global {
|
|
64
|
+
interface HTMLElementTagNameMap {
|
|
65
|
+
'ef-accordion': Accordion;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
63
68
|
|
|
64
69
|
declare global {
|
|
65
70
|
interface HTMLElementTagNameMap {
|
|
@@ -55,6 +55,11 @@ export declare class AppstateBar extends BasicElement {
|
|
|
55
55
|
*/
|
|
56
56
|
protected render(): TemplateResult;
|
|
57
57
|
}
|
|
58
|
+
declare global {
|
|
59
|
+
interface HTMLElementTagNameMap {
|
|
60
|
+
'ef-appstate-bar': AppstateBar;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
58
63
|
|
|
59
64
|
declare global {
|
|
60
65
|
interface HTMLElementTagNameMap {
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
"attributes": [
|
|
8
8
|
{
|
|
9
9
|
"name": "attach",
|
|
10
|
-
"description": "An HTML Element or CSS selector"
|
|
11
|
-
"type": "AutosuggestTargetElement | string | null"
|
|
10
|
+
"description": "An HTML Element or CSS selector"
|
|
12
11
|
},
|
|
13
12
|
{
|
|
14
13
|
"name": "request-on-focus",
|
|
@@ -59,16 +58,10 @@
|
|
|
59
58
|
"type": "100",
|
|
60
59
|
"default": "100"
|
|
61
60
|
},
|
|
62
|
-
{
|
|
63
|
-
"name": "defaultMoreSearchText (readonly)",
|
|
64
|
-
"type": "\"More results for {0}\"",
|
|
65
|
-
"default": "\"More results for {0}\""
|
|
66
|
-
},
|
|
67
61
|
{
|
|
68
62
|
"name": "attach",
|
|
69
63
|
"attribute": "attach",
|
|
70
|
-
"description": "An HTML Element or CSS selector"
|
|
71
|
-
"type": "AutosuggestTargetElement | string | null"
|
|
64
|
+
"description": "An HTML Element or CSS selector"
|
|
72
65
|
},
|
|
73
66
|
{
|
|
74
67
|
"name": "requestOnFocus",
|
|
@@ -100,8 +93,7 @@
|
|
|
100
93
|
},
|
|
101
94
|
{
|
|
102
95
|
"name": "query",
|
|
103
|
-
"description": "An object that represents a query from attach target"
|
|
104
|
-
"type": "AutosuggestQuery | null"
|
|
96
|
+
"description": "An object that represents a query from attach target"
|
|
105
97
|
},
|
|
106
98
|
{
|
|
107
99
|
"name": "debounceRate",
|
|
@@ -113,19 +105,17 @@
|
|
|
113
105
|
{
|
|
114
106
|
"name": "renderer",
|
|
115
107
|
"description": "A renderer applied to suggestion.\nBy default a render maps data to item attributes",
|
|
116
|
-
"
|
|
117
|
-
"default": "\"itemRenderer\""
|
|
108
|
+
"default": "\"renderer\""
|
|
118
109
|
},
|
|
119
110
|
{
|
|
120
111
|
"name": "highlightable",
|
|
121
112
|
"description": "A function that is applied to every suggestion during the render process\nto say whether the item can be highlighted and selected. Only items that return true are considered.\nBy default the function checks for `item` `highlightable` property.",
|
|
122
|
-
"type": "AutosuggestHighlightable",
|
|
123
113
|
"default": "\"itemHighlightable\""
|
|
124
114
|
},
|
|
125
115
|
{
|
|
126
116
|
"name": "suggestions",
|
|
127
117
|
"description": "A list of suggestion items",
|
|
128
|
-
"type": "
|
|
118
|
+
"type": "object",
|
|
129
119
|
"default": "[]"
|
|
130
120
|
},
|
|
131
121
|
{
|
|
@@ -8,20 +8,20 @@ custom rendering, pagination, asynchronous data request, etc.
|
|
|
8
8
|
|
|
9
9
|
## Properties
|
|
10
10
|
|
|
11
|
-
| Property | Attribute | Type
|
|
12
|
-
|
|
13
|
-
| `attach` | `attach` |
|
|
14
|
-
| `debounceRate` | `debounce-rate` | `number`
|
|
15
|
-
| `highlightable` | |
|
|
16
|
-
| `htmlRenderer` | `html-renderer` | `boolean`
|
|
17
|
-
| `loading` | `loading` | `boolean`
|
|
18
|
-
| `moreResults` | `more-results` | `boolean`
|
|
19
|
-
| `moreSearchText` | `more-search-text` | `string`
|
|
20
|
-
| `opened` | `opened` | `boolean`
|
|
21
|
-
| `query` | |
|
|
22
|
-
| `renderer` | |
|
|
23
|
-
| `requestOnFocus` | `request-on-focus` | `boolean`
|
|
24
|
-
| `suggestions` | | `
|
|
11
|
+
| Property | Attribute | Type | Default | Description |
|
|
12
|
+
|------------------|--------------------|-----------|------------------------|--------------------------------------------------|
|
|
13
|
+
| `attach` | `attach` | | null | An HTML Element or CSS selector |
|
|
14
|
+
| `debounceRate` | `debounce-rate` | `number` | "100" | Debounce rate in ms of the filter as a number.<br />Used to throttle the filter rate so as not to trigger unneeded filtering |
|
|
15
|
+
| `highlightable` | | | "itemHighlightable" | A function that is applied to every suggestion during the render process<br />to say whether the item can be highlighted and selected. Only items that return true are considered.<br />By default the function checks for `item` `highlightable` property. |
|
|
16
|
+
| `htmlRenderer` | `html-renderer` | `boolean` | false | If set to true, the render function is not called. Instead the wrapper element<br />should populate and destroy suggestion elements. Rendering items manually<br />may have performance benefits in frameworks that use virtual DOM (such as `Vue`, `React`, `hyperHTML` and others) |
|
|
17
|
+
| `loading` | `loading` | `boolean` | false | If set to true show loading mask |
|
|
18
|
+
| `moreResults` | `more-results` | `boolean` | false | If set to true display 'Has more results' item |
|
|
19
|
+
| `moreSearchText` | `more-search-text` | `string` | "More results for {0}" | Custom text for More Search |
|
|
20
|
+
| `opened` | `opened` | `boolean` | false | Auto suggest popup's open state |
|
|
21
|
+
| `query` | | | null | An object that represents a query from attach target |
|
|
22
|
+
| `renderer` | | | "renderer" | A renderer applied to suggestion.<br />By default a render maps data to item attributes |
|
|
23
|
+
| `requestOnFocus` | `request-on-focus` | `boolean` | false | Request suggestions when attach target is focused |
|
|
24
|
+
| `suggestions` | | `object` | [] | A list of suggestion items |
|
|
25
25
|
|
|
26
26
|
## Methods
|
|
27
27
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AutosuggestRenderer } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Build item element from data object
|
|
4
|
+
* @param suggestion Suggestion data
|
|
5
|
+
* @param query A query data (usually string, but could be any entity )
|
|
6
|
+
* @returns item
|
|
7
|
+
*/
|
|
8
|
+
export declare const renderer: AutosuggestRenderer;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { uuid } from '@refinitiv-ui/utils/uuid.js';
|
|
2
|
+
import { updateElementContent } from './utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build item element from data object
|
|
5
|
+
* @param suggestion Suggestion data
|
|
6
|
+
* @param query A query data (usually string, but could be any entity )
|
|
7
|
+
* @returns item
|
|
8
|
+
*/
|
|
9
|
+
export const renderer = (suggestion, query) => {
|
|
10
|
+
if (typeof suggestion !== 'object') {
|
|
11
|
+
const value = suggestion || '';
|
|
12
|
+
suggestion = {
|
|
13
|
+
label: value,
|
|
14
|
+
value
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const { type, label, title, icon, disabled, value, id } = suggestion;
|
|
18
|
+
const el = document.createElement('ef-item');
|
|
19
|
+
const isTextType = !type || type === 'text';
|
|
20
|
+
const elId = id || (isTextType ? uuid() : '');
|
|
21
|
+
if (elId) {
|
|
22
|
+
el.id = elId;
|
|
23
|
+
}
|
|
24
|
+
el.tabIndex = -1;
|
|
25
|
+
el.setAttribute('role', isTextType ? 'option' : 'presentation');
|
|
26
|
+
el.type = type || null;
|
|
27
|
+
el.disabled = !!disabled;
|
|
28
|
+
el.icon = icon || null;
|
|
29
|
+
el.value = value || label || '';
|
|
30
|
+
if (title) {
|
|
31
|
+
el.title = title;
|
|
32
|
+
}
|
|
33
|
+
updateElementContent(el, query || '', label || '', el.value);
|
|
34
|
+
return el;
|
|
35
|
+
};
|
|
@@ -3,7 +3,7 @@ export declare type AutosuggestSelectItemEvent = CustomEvent<{
|
|
|
3
3
|
query: string;
|
|
4
4
|
suggestion: Suggestion;
|
|
5
5
|
}>;
|
|
6
|
-
export declare type AutosuggestHighlightItem = {
|
|
6
|
+
export declare type AutosuggestHighlightItem = HTMLElement & {
|
|
7
7
|
highlighted: boolean;
|
|
8
8
|
};
|
|
9
9
|
export declare type AutosuggestHighlightItemEvent = CustomEvent<{
|
|
@@ -41,6 +41,10 @@ export interface Suggestion {
|
|
|
41
41
|
* Sort data item into the group.
|
|
42
42
|
*/
|
|
43
43
|
group?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Suggestion unique id.
|
|
46
|
+
*/
|
|
47
|
+
id?: string;
|
|
44
48
|
}
|
|
45
49
|
export declare type AutosuggestItem = Suggestion | string | unknown;
|
|
46
50
|
export interface AutosuggestQuery {
|
|
@@ -52,3 +56,99 @@ export declare type AutosuggestTargetElement = HTMLElement & {
|
|
|
52
56
|
export declare type AutosuggestMethodType = 'click' | 'enter' | 'clear' | 'reset' | 'navigation';
|
|
53
57
|
export declare type AutosuggestRenderer = (suggestion: AutosuggestItem, query: AutosuggestQuery | null) => HTMLElement;
|
|
54
58
|
export declare type AutosuggestHighlightable = (suggestion: AutosuggestItem, target: HTMLElement) => boolean;
|
|
59
|
+
/**
|
|
60
|
+
* @event item-highlight
|
|
61
|
+
* Fired when an item gets highlighted or highlight is removed
|
|
62
|
+
*/
|
|
63
|
+
export declare type ItemHighlightEvent = CustomEvent<{
|
|
64
|
+
/**
|
|
65
|
+
* New highlight target
|
|
66
|
+
*/
|
|
67
|
+
target: AutosuggestTargetElement | null;
|
|
68
|
+
/**
|
|
69
|
+
* New suggestion
|
|
70
|
+
*/
|
|
71
|
+
suggestion: AutosuggestItem | null;
|
|
72
|
+
/**
|
|
73
|
+
* Old highlight target
|
|
74
|
+
*/
|
|
75
|
+
oldTarget: AutosuggestTargetElement | null;
|
|
76
|
+
/**
|
|
77
|
+
* Old suggestion
|
|
78
|
+
*/
|
|
79
|
+
oldSuggestion: AutosuggestItem | null;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* @event add-attach-target-events
|
|
83
|
+
* Fired when attach has been set.
|
|
84
|
+
* Add attach target listeners
|
|
85
|
+
*/
|
|
86
|
+
export declare type AddAttachTargetEventsEvent = CustomEvent;
|
|
87
|
+
/**
|
|
88
|
+
* @event remove-attach-target-events
|
|
89
|
+
* Fired when attach has been removed.
|
|
90
|
+
* Remove attach target listeners
|
|
91
|
+
*/
|
|
92
|
+
export declare type RemoveAttachTargetEventsEvent = CustomEvent;
|
|
93
|
+
/**
|
|
94
|
+
* @event item-select
|
|
95
|
+
* Fired when an item gets selected
|
|
96
|
+
*/
|
|
97
|
+
export declare type ItemSelectEvent = CustomEvent<{
|
|
98
|
+
/**
|
|
99
|
+
* Select method
|
|
100
|
+
*/
|
|
101
|
+
method: AutosuggestMethodType;
|
|
102
|
+
/**
|
|
103
|
+
* Selection target
|
|
104
|
+
*/
|
|
105
|
+
target: AutosuggestTargetElement;
|
|
106
|
+
/**
|
|
107
|
+
* Selected suggestion
|
|
108
|
+
*/
|
|
109
|
+
suggestion: AutosuggestItem | null;
|
|
110
|
+
/**
|
|
111
|
+
* Saved query object
|
|
112
|
+
*/
|
|
113
|
+
query: AutosuggestQuery | null;
|
|
114
|
+
}>;
|
|
115
|
+
/**
|
|
116
|
+
* @event suggestions-fetch-requested
|
|
117
|
+
* Fired when auto suggest requests the data
|
|
118
|
+
*/
|
|
119
|
+
export declare type SuggestionsFetchRequestedEvent = CustomEvent<{
|
|
120
|
+
/**
|
|
121
|
+
* Input query
|
|
122
|
+
*/
|
|
123
|
+
query: AutosuggestQuery | null;
|
|
124
|
+
/**
|
|
125
|
+
* The reason to fetch data
|
|
126
|
+
*/
|
|
127
|
+
reason: AutosuggestReason;
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* @event suggestions-clear-requested
|
|
131
|
+
* Fired when auto suggest requests to clear the data.
|
|
132
|
+
* If used in reactive application, prevent default and set suggestions to []
|
|
133
|
+
*/
|
|
134
|
+
export declare type SuggestionsClearRequestedEvent = CustomEvent;
|
|
135
|
+
/**
|
|
136
|
+
* @event suggestions-query
|
|
137
|
+
* Fired when input value has changed and the query must be set.
|
|
138
|
+
*/
|
|
139
|
+
export declare type SuggestionsQueryEvent = CustomEvent<{
|
|
140
|
+
/**
|
|
141
|
+
* The reason to request query
|
|
142
|
+
*/
|
|
143
|
+
reason: AutosuggestReason;
|
|
144
|
+
}>;
|
|
145
|
+
/**
|
|
146
|
+
* @event suggestions-changed
|
|
147
|
+
* Fired when suggestions changed
|
|
148
|
+
*/
|
|
149
|
+
export declare type SuggestionsChangedEvent = CustomEvent<{
|
|
150
|
+
/**
|
|
151
|
+
* Suggestion Items
|
|
152
|
+
*/
|
|
153
|
+
value: AutosuggestItem[];
|
|
154
|
+
}>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Item } from '../../item';
|
|
2
|
-
import
|
|
2
|
+
import { AutosuggestHighlightable } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Check whether item can be highlighted
|
|
5
5
|
* @param suggestion Suggestion object
|
|
@@ -30,10 +30,3 @@ export declare const queryWordSelect: (text: string, query?: string, pattern?: s
|
|
|
30
30
|
* @return {void}
|
|
31
31
|
*/
|
|
32
32
|
export declare const updateElementContent: (el: Item, query: string, label: string, value: string | number) => void;
|
|
33
|
-
/**
|
|
34
|
-
* Build item element from data object
|
|
35
|
-
* @param suggestion Suggestion data
|
|
36
|
-
* @param query A query data (usually string, but could be any entity )
|
|
37
|
-
* @returns item
|
|
38
|
-
*/
|
|
39
|
-
export declare const itemRenderer: AutosuggestRenderer;
|
|
@@ -46,30 +46,3 @@ export const updateElementContent = (el, query, label, value) => {
|
|
|
46
46
|
el.label = `${value}`;
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
/**
|
|
50
|
-
* Build item element from data object
|
|
51
|
-
* @param suggestion Suggestion data
|
|
52
|
-
* @param query A query data (usually string, but could be any entity )
|
|
53
|
-
* @returns item
|
|
54
|
-
*/
|
|
55
|
-
export const itemRenderer = (suggestion, query) => {
|
|
56
|
-
const el = document.createElement('ef-item');
|
|
57
|
-
if (typeof suggestion === 'object') {
|
|
58
|
-
const { type, label, title, icon, disabled, value } = suggestion;
|
|
59
|
-
el.type = type || null;
|
|
60
|
-
el.disabled = !!disabled;
|
|
61
|
-
el.icon = icon || null;
|
|
62
|
-
el.value = value || label || '';
|
|
63
|
-
if (title) {
|
|
64
|
-
el.title = title;
|
|
65
|
-
}
|
|
66
|
-
updateElementContent(el, query || '', label || '', el.value);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
const value = suggestion || '';
|
|
70
|
-
el.label = value;
|
|
71
|
-
el.value = value;
|
|
72
|
-
updateElementContent(el, query || '', value, value);
|
|
73
|
-
}
|
|
74
|
-
return el;
|
|
75
|
-
};
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { JSXInterface } from '../jsx';
|
|
2
2
|
import { CSSResultGroup, ElementSize, PropertyValues, TemplateResult } from '@refinitiv-ui/core';
|
|
3
|
+
import { TranslateDirective } from '@refinitiv-ui/translate';
|
|
3
4
|
import type { AutosuggestTargetElement, AutosuggestHighlightable, AutosuggestMethodType, AutosuggestQuery, AutosuggestRenderer, AutosuggestReason, AutosuggestItem, AutosuggestSelectItemEvent, AutosuggestHighlightItemEvent } from './helpers/types';
|
|
5
|
+
import { escapeRegExp, itemHighlightable, queryWordSelect } from './helpers/utils.js';
|
|
6
|
+
import { renderer } from './helpers/renderer.js';
|
|
4
7
|
import { Overlay } from '../overlay/index.js';
|
|
5
8
|
import '../loader/index.js';
|
|
6
9
|
import '../item/index.js';
|
|
7
|
-
|
|
8
|
-
export {
|
|
10
|
+
import '@refinitiv-ui/phrasebook/locale/en/autosuggest.js';
|
|
11
|
+
export type { AutosuggestTargetElement, AutosuggestHighlightable, AutosuggestMethodType, AutosuggestQuery, AutosuggestRenderer, AutosuggestReason, AutosuggestItem, ItemHighlightEvent, AddAttachTargetEventsEvent, RemoveAttachTargetEventsEvent, ItemSelectEvent, SuggestionsFetchRequestedEvent, SuggestionsClearRequestedEvent, SuggestionsQueryEvent, SuggestionsChangedEvent } from './helpers/types';
|
|
12
|
+
export { updateElementContent } from './helpers/utils.js';
|
|
13
|
+
export { itemHighlightable, escapeRegExp, queryWordSelect, renderer, renderer as itemRenderer };
|
|
9
14
|
/**
|
|
10
15
|
* Shows suggestions based on users' query.
|
|
11
16
|
* It can be used by attaching to text form control
|
|
@@ -34,6 +39,7 @@ export declare class Autosuggest extends Overlay {
|
|
|
34
39
|
* @returns version number
|
|
35
40
|
*/
|
|
36
41
|
static get version(): string;
|
|
42
|
+
protected readonly defaultRole: string | null;
|
|
37
43
|
/**
|
|
38
44
|
* A `CSSResultGroup` that will be used
|
|
39
45
|
* to style the host, slotted children
|
|
@@ -70,10 +76,8 @@ export declare class Autosuggest extends Overlay {
|
|
|
70
76
|
*/
|
|
71
77
|
static ItemHighlightable(suggestion: AutosuggestItem, target: HTMLElement): boolean;
|
|
72
78
|
static readonly defaultDebounceRate = 100;
|
|
73
|
-
static readonly defaultMoreSearchText = "More results for {0}";
|
|
74
79
|
/**
|
|
75
80
|
* An HTML Element or CSS selector
|
|
76
|
-
* @type {AutosuggestTargetElement | string | null}
|
|
77
81
|
*/
|
|
78
82
|
attach: AutosuggestTargetElement | string | null;
|
|
79
83
|
/**
|
|
@@ -95,7 +99,6 @@ export declare class Autosuggest extends Overlay {
|
|
|
95
99
|
loading: boolean;
|
|
96
100
|
/**
|
|
97
101
|
* An object that represents a query from attach target
|
|
98
|
-
* @type {AutosuggestQuery | null}
|
|
99
102
|
*/
|
|
100
103
|
query: AutosuggestQuery | null;
|
|
101
104
|
/**
|
|
@@ -107,19 +110,16 @@ export declare class Autosuggest extends Overlay {
|
|
|
107
110
|
/**
|
|
108
111
|
* A renderer applied to suggestion.
|
|
109
112
|
* By default a render maps data to item attributes
|
|
110
|
-
* @type {AutosuggestRenderer}
|
|
111
113
|
*/
|
|
112
114
|
renderer: AutosuggestRenderer;
|
|
113
115
|
/**
|
|
114
116
|
* A function that is applied to every suggestion during the render process
|
|
115
117
|
* to say whether the item can be highlighted and selected. Only items that return true are considered.
|
|
116
118
|
* By default the function checks for `item` `highlightable` property.
|
|
117
|
-
* @type {AutosuggestHighlightable}
|
|
118
119
|
*/
|
|
119
120
|
highlightable: AutosuggestHighlightable;
|
|
120
121
|
/**
|
|
121
122
|
* A list of suggestion items
|
|
122
|
-
* @type {AutosuggestItem[]}
|
|
123
123
|
*/
|
|
124
124
|
suggestions: AutosuggestItem[];
|
|
125
125
|
/**
|
|
@@ -128,11 +128,15 @@ export declare class Autosuggest extends Overlay {
|
|
|
128
128
|
* may have performance benefits in frameworks that use virtual DOM (such as `Vue`, `React`, `hyperHTML` and others)
|
|
129
129
|
*/
|
|
130
130
|
htmlRenderer: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Autosuggest internal translation strings
|
|
133
|
+
*/
|
|
134
|
+
protected t: TranslateDirective;
|
|
131
135
|
protected moreResultsItem?: HTMLElement | null;
|
|
132
|
-
private
|
|
133
|
-
private
|
|
134
|
-
private
|
|
135
|
-
private
|
|
136
|
+
private contentSlotRef;
|
|
137
|
+
private contentElementRef;
|
|
138
|
+
private headerElementRef;
|
|
139
|
+
private footerElementRef;
|
|
136
140
|
private suggestionMap;
|
|
137
141
|
protected highlightedItem: HTMLElement | null;
|
|
138
142
|
protected attachTarget: AutosuggestTargetElement | null;
|
|
@@ -180,20 +184,6 @@ export declare class Autosuggest extends Overlay {
|
|
|
180
184
|
* @returns {void}
|
|
181
185
|
*/
|
|
182
186
|
resizedCallback(size: ElementSize): void;
|
|
183
|
-
/**
|
|
184
|
-
* @returns template of loader if currently query loading
|
|
185
|
-
*/
|
|
186
|
-
protected get loaderTemplate(): TemplateResult | null;
|
|
187
|
-
/**
|
|
188
|
-
* @returns template of moreResults
|
|
189
|
-
*/
|
|
190
|
-
protected get moreResultsTemplate(): TemplateResult | null;
|
|
191
|
-
/**
|
|
192
|
-
* A `TemplateResult` that will be used
|
|
193
|
-
* to render the updated internal template.
|
|
194
|
-
* @return Render template
|
|
195
|
-
*/
|
|
196
|
-
protected render(): TemplateResult;
|
|
197
187
|
/**
|
|
198
188
|
* Called once after the component is first rendered
|
|
199
189
|
* @param changedProperties map of changed properties with old values
|
|
@@ -277,14 +267,12 @@ export declare class Autosuggest extends Overlay {
|
|
|
277
267
|
* @returns {void}
|
|
278
268
|
*/
|
|
279
269
|
protected highlightItem(target?: HTMLElement | null, silent?: boolean): void;
|
|
270
|
+
private xmlSerializer;
|
|
280
271
|
/**
|
|
281
272
|
* Calculate more search text inner html
|
|
282
|
-
* @param moreResults True if has more results
|
|
283
|
-
* @param moreSearchText More search text template
|
|
284
|
-
* @param query A query
|
|
285
273
|
* @returns innerHTML
|
|
286
274
|
*/
|
|
287
|
-
protected
|
|
275
|
+
protected get moreResultsTextTemplate(): TemplateResult | null;
|
|
288
276
|
/**
|
|
289
277
|
* Call this method to request suggestions
|
|
290
278
|
* @private
|
|
@@ -391,7 +379,7 @@ export declare class Autosuggest extends Overlay {
|
|
|
391
379
|
*/
|
|
392
380
|
private debounceRateChange;
|
|
393
381
|
/**
|
|
394
|
-
* fire event and
|
|
382
|
+
* fire event and re-init listeners if attach was changed
|
|
395
383
|
* @returns {void}
|
|
396
384
|
*/
|
|
397
385
|
private attachChangeFrameCallback;
|
|
@@ -496,7 +484,6 @@ export declare class Autosuggest extends Overlay {
|
|
|
496
484
|
* @returns {void}
|
|
497
485
|
*/
|
|
498
486
|
private notifySuggestions;
|
|
499
|
-
private removeChildNode;
|
|
500
487
|
private generateSuggestionsFragment;
|
|
501
488
|
/**
|
|
502
489
|
* Set the width
|
|
@@ -509,6 +496,20 @@ export declare class Autosuggest extends Overlay {
|
|
|
509
496
|
* @returns {void}
|
|
510
497
|
*/
|
|
511
498
|
private onItemMousedown;
|
|
499
|
+
/**
|
|
500
|
+
* @returns template of loader if currently query loading
|
|
501
|
+
*/
|
|
502
|
+
protected get loaderTemplate(): TemplateResult | null;
|
|
503
|
+
/**
|
|
504
|
+
* @returns template of moreResults
|
|
505
|
+
*/
|
|
506
|
+
protected get moreResultsTemplate(): TemplateResult | null;
|
|
507
|
+
/**
|
|
508
|
+
* A `TemplateResult` that will be used
|
|
509
|
+
* to render the updated internal template.
|
|
510
|
+
* @return Render template
|
|
511
|
+
*/
|
|
512
|
+
protected render(): TemplateResult;
|
|
512
513
|
/**
|
|
513
514
|
* IE11 only: Restrict maximum height of content element
|
|
514
515
|
* @param [maxHeight] Maximum height of content element
|
|
@@ -522,6 +523,11 @@ export declare class Autosuggest extends Overlay {
|
|
|
522
523
|
*/
|
|
523
524
|
private calculateContentMaxHeight;
|
|
524
525
|
}
|
|
526
|
+
declare global {
|
|
527
|
+
interface HTMLElementTagNameMap {
|
|
528
|
+
'ef-autosuggest': Autosuggest;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
525
531
|
|
|
526
532
|
declare global {
|
|
527
533
|
interface HTMLElementTagNameMap {
|