@refinitiv-ui/elements 6.0.0-next.3 → 6.0.2
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 +51 -0
- package/README.md +3 -15
- package/lib/accordion/index.js +2 -2
- 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 +34 -32
- package/lib/autosuggest/index.js +246 -202
- package/lib/autosuggest/themes/halo/dark/index.js +1 -1
- package/lib/autosuggest/themes/halo/light/index.js +1 -1
- package/lib/autosuggest/themes/solar/charcoal/index.js +1 -1
- package/lib/autosuggest/themes/solar/pearl/index.js +1 -1
- package/lib/button/index.js +2 -1
- package/lib/button/themes/halo/dark/index.js +1 -1
- package/lib/button/themes/halo/light/index.js +1 -1
- package/lib/button/themes/solar/charcoal/index.js +1 -1
- package/lib/button/themes/solar/pearl/index.js +1 -1
- package/lib/calendar/index.d.ts +1 -1
- package/lib/calendar/themes/halo/dark/index.js +1 -1
- package/lib/calendar/themes/halo/light/index.js +1 -1
- package/lib/calendar/themes/solar/charcoal/index.js +1 -1
- package/lib/calendar/themes/solar/pearl/index.js +1 -1
- package/lib/chart/plugins/doughnut-center-label.js +1 -1
- package/lib/chart/themes/halo/dark/index.js +1 -1
- package/lib/chart/themes/halo/light/index.js +1 -1
- package/lib/checkbox/index.d.ts +8 -15
- package/lib/checkbox/index.js +19 -41
- package/lib/checkbox/themes/halo/dark/index.js +1 -1
- package/lib/checkbox/themes/halo/light/index.js +1 -1
- package/lib/checkbox/themes/solar/charcoal/index.js +1 -1
- package/lib/checkbox/themes/solar/pearl/index.js +1 -1
- package/lib/clock/custom-elements.json +10 -10
- package/lib/clock/custom-elements.md +1 -1
- package/lib/clock/index.d.ts +44 -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/combo-box/index.d.ts +4 -3
- package/lib/combo-box/index.js +7 -3
- package/lib/combo-box/themes/halo/dark/index.js +1 -1
- package/lib/combo-box/themes/halo/light/index.js +1 -1
- package/lib/combo-box/themes/solar/charcoal/index.js +1 -1
- package/lib/combo-box/themes/solar/pearl/index.js +1 -1
- package/lib/datetime-field/index.d.ts +1 -1
- package/lib/datetime-field/utils.d.ts +1 -1
- package/lib/datetime-picker/themes/halo/dark/index.js +1 -1
- package/lib/datetime-picker/themes/halo/light/index.js +1 -1
- package/lib/datetime-picker/themes/solar/charcoal/index.js +1 -1
- package/lib/datetime-picker/themes/solar/pearl/index.js +1 -1
- package/lib/email-field/themes/halo/dark/index.js +1 -1
- package/lib/email-field/themes/halo/light/index.js +1 -1
- package/lib/email-field/themes/solar/charcoal/index.js +1 -1
- package/lib/email-field/themes/solar/pearl/index.js +1 -1
- package/lib/flag/utils/FlagLoader.d.ts +2 -32
- package/lib/flag/utils/FlagLoader.js +2 -69
- package/lib/heatmap/index.d.ts +2 -2
- package/lib/heatmap/themes/halo/dark/index.js +1 -1
- package/lib/heatmap/themes/halo/light/index.js +1 -1
- package/lib/icon/utils/IconLoader.d.ts +2 -37
- package/lib/icon/utils/IconLoader.js +2 -76
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- 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/helpers/types.d.ts +6 -6
- package/lib/item/index.d.ts +2 -2
- package/lib/item/index.js +0 -1
- package/lib/item/themes/halo/dark/index.js +1 -1
- package/lib/item/themes/halo/light/index.js +1 -1
- package/lib/list/elements/list-item.d.ts +30 -0
- package/lib/list/elements/list-item.js +19 -0
- package/lib/list/elements/list.d.ts +307 -0
- package/lib/list/elements/list.js +632 -0
- package/lib/list/helpers/renderer.d.ts +0 -1
- package/lib/list/helpers/renderer.js +1 -3
- package/lib/list/index.d.ts +3 -317
- package/lib/list/index.js +3 -641
- package/lib/list/themes/halo/dark/index.js +4 -1
- package/lib/list/themes/halo/light/index.js +5 -2
- package/lib/list/themes/solar/charcoal/index.js +4 -1
- package/lib/list/themes/solar/pearl/index.js +4 -1
- package/lib/multi-input/index.d.ts +1 -5
- package/lib/multi-input/index.js +17 -18
- package/lib/notification/themes/halo/dark/index.js +1 -1
- package/lib/notification/themes/halo/light/index.js +1 -1
- package/lib/notification/themes/solar/charcoal/index.js +1 -1
- package/lib/notification/themes/solar/pearl/index.js +1 -1
- package/lib/number-field/themes/halo/dark/index.js +1 -1
- package/lib/number-field/themes/halo/light/index.js +1 -1
- package/lib/number-field/themes/solar/charcoal/index.js +1 -1
- package/lib/number-field/themes/solar/pearl/index.js +1 -1
- package/lib/overlay/index.d.ts +2 -1
- package/lib/overlay-menu/helpers/constants.d.ts +6 -0
- package/lib/overlay-menu/helpers/constants.js +7 -0
- package/lib/overlay-menu/helpers/types.d.ts +0 -6
- package/lib/overlay-menu/helpers/types.js +1 -7
- package/lib/overlay-menu/index.d.ts +1 -1
- package/lib/overlay-menu/index.js +1 -1
- package/lib/password-field/themes/halo/dark/index.js +1 -1
- package/lib/password-field/themes/halo/light/index.js +1 -1
- package/lib/password-field/themes/solar/charcoal/index.js +1 -1
- package/lib/password-field/themes/solar/pearl/index.js +1 -1
- package/lib/pill/index.d.ts +11 -3
- package/lib/pill/index.js +25 -11
- package/lib/radio-button/index.d.ts +7 -11
- package/lib/radio-button/index.js +14 -25
- package/lib/radio-button/themes/halo/dark/index.js +1 -1
- package/lib/radio-button/themes/halo/light/index.js +1 -1
- package/lib/radio-button/themes/solar/charcoal/index.js +1 -1
- package/lib/radio-button/themes/solar/pearl/index.js +1 -1
- package/lib/rating/custom-elements.json +4 -4
- package/lib/rating/custom-elements.md +2 -2
- package/lib/rating/index.d.ts +84 -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/themes/halo/dark/index.js +1 -1
- package/lib/search-field/themes/halo/light/index.js +1 -1
- package/lib/search-field/themes/solar/charcoal/index.js +1 -1
- package/lib/search-field/themes/solar/pearl/index.js +1 -1
- package/lib/select/index.d.ts +13 -1
- package/lib/select/index.js +25 -7
- package/lib/select/themes/halo/dark/index.js +1 -1
- package/lib/select/themes/halo/light/index.js +1 -1
- package/lib/select/themes/solar/charcoal/index.js +1 -1
- package/lib/select/themes/solar/pearl/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 +112 -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/themes/halo/dark/index.js +1 -1
- package/lib/sparkline/themes/halo/light/index.js +1 -1
- package/lib/tab/themes/halo/dark/index.js +1 -1
- package/lib/tab/themes/halo/light/index.js +1 -1
- package/lib/tab/themes/solar/charcoal/index.js +1 -1
- package/lib/tab/themes/solar/pearl/index.js +1 -1
- package/lib/tab-bar/index.d.ts +6 -7
- package/lib/tab-bar/index.js +12 -10
- package/lib/tab-bar/themes/halo/dark/index.js +1 -0
- package/lib/tab-bar/themes/halo/light/index.js +1 -0
- package/lib/tab-bar/themes/solar/charcoal/index.js +1 -0
- package/lib/tab-bar/themes/solar/pearl/index.js +1 -0
- package/lib/text-field/index.js +2 -3
- package/lib/text-field/themes/halo/dark/index.js +1 -1
- package/lib/text-field/themes/halo/light/index.js +1 -1
- package/lib/text-field/themes/solar/charcoal/index.js +1 -1
- package/lib/text-field/themes/solar/pearl/index.js +1 -1
- package/lib/toggle/index.d.ts +7 -10
- package/lib/toggle/index.js +14 -24
- package/lib/toggle/themes/halo/dark/index.js +1 -1
- package/lib/toggle/themes/halo/light/index.js +1 -1
- package/lib/toggle/themes/solar/charcoal/index.js +1 -1
- package/lib/toggle/themes/solar/pearl/index.js +1 -1
- package/lib/tooltip/helpers/overflow-tooltip.d.ts +11 -4
- package/lib/tooltip/helpers/overflow-tooltip.js +34 -6
- package/lib/tooltip/index.d.ts +2 -2
- package/lib/tooltip/index.js +2 -2
- package/lib/tree/elements/tree-item.d.ts +4 -0
- package/lib/tree/elements/tree-item.js +5 -2
- package/lib/tree/elements/tree.d.ts +7 -0
- package/lib/tree/elements/tree.js +12 -1
- package/lib/tree/helpers/renderer.d.ts +0 -1
- package/lib/tree/helpers/renderer.js +0 -2
- package/lib/tree/index.d.ts +2 -1
- package/lib/tree/themes/halo/dark/index.js +2 -2
- package/lib/tree/themes/halo/light/index.js +3 -3
- package/lib/tree/themes/solar/charcoal/index.js +2 -2
- package/lib/tree/themes/solar/pearl/index.js +2 -2
- package/lib/tree-select/index.js +15 -5
- package/lib/tree-select/themes/halo/dark/index.js +1 -1
- package/lib/tree-select/themes/halo/light/index.js +1 -1
- package/lib/tree-select/themes/solar/charcoal/index.js +1 -1
- package/lib/tree-select/themes/solar/pearl/index.js +1 -1
- package/lib/version.js +1 -1
- package/package.json +20 -19
- package/lib/clock/utils/timestamps.d.ts +0 -6
- package/lib/clock/utils/timestamps.js +0 -6
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@refinitiv-ui/elements/icon/themes/solar/charcoal';
|
|
2
2
|
|
|
3
|
-
elf.customStyles.define('ef-password-field', ':host{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;font-family:inherit;font-size:13rem;font-weight:400;height:23px;width:140px;max-width:100%;padding:0 5px;margin:1px 0;outline:0;box-sizing:border-box;display:inline-flex;align-items:center;position:relative;vertical-align:middle;color:#c2c2c2;border-radius:0;text-overflow:ellipsis;background-color:#000;border:1px solid #4a4a52}:host([type=number]){padding-right:0}:host([error]),:host([error][warning]){border:1px solid #f5475b}:host([error][disabled]),:host([error][warning][disabled]){color:rgba(194,194,194,.6);border:1px solid rgba(245,71,91,.6)}:host ::-ms-clear{display:none}:host [part=input]{color:inherit;padding:0;margin:0;flex:1 1 auto;min-width:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;touch-action:manipulation}:host [part=input]::-webkit-clear-button,:host [part=input]::-webkit-inner-spin-button,:host [part=input]::-webkit-search-cancel-button,:host [part=input]::-webkit-search-decoration{-webkit-appearance:none}:host [part=input]:invalid{box-shadow:none}:host [part=icon]{color:#e2e2e2;min-width:1em}:host([disabled]) [part=input]{-webkit-user-select:none;-moz-user-select:none
|
|
3
|
+
elf.customStyles.define('ef-password-field', ':host{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;font-family:inherit;font-size:13rem;font-weight:400;height:23px;width:140px;max-width:100%;padding:0 5px;margin:1px 0;outline:0;box-sizing:border-box;display:inline-flex;align-items:center;position:relative;vertical-align:middle;color:#c2c2c2;border-radius:0;text-overflow:ellipsis;background-color:#000;border:1px solid #4a4a52}:host([type=number]){padding-right:0}:host([error]),:host([error][warning]){border:1px solid #f5475b}:host([error][disabled]),:host([error][warning][disabled]){color:rgba(194,194,194,.6);border:1px solid rgba(245,71,91,.6)}:host ::-ms-clear{display:none}:host [part=input]{color:inherit;padding:0;margin:0;flex:1 1 auto;min-width:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;touch-action:manipulation}:host [part=input]::-webkit-clear-button,:host [part=input]::-webkit-inner-spin-button,:host [part=input]::-webkit-search-cancel-button,:host [part=input]::-webkit-search-decoration{-webkit-appearance:none}:host [part=input]:invalid{box-shadow:none}:host [part=icon]{color:#e2e2e2;min-width:1em}:host([disabled]) [part=input]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([disabled]){border:1px solid rgba(74,74,82,.6);color:rgba(194,194,194,.6)}:host([readonly]){border:1px solid rgba(74,74,82,.6)}:host(:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #77777d}:host([warning]){background-color:#000;border:1px solid #f93}:host([warning][disabled]){border:1px solid rgba(255,153,51,.6);color:rgba(194,194,194,.6)}:host([warning][readonly]){border:1px solid rgba(255,153,51,.6)}:host([warning]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #ffb366}:host([error]),:host([error][warning]:not([focused])){background-color:#000;border:1px solid #f5475b}:host([error][disabled]),:host([error][warning]:not([focused])[disabled]){border:1px solid rgba(245,71,91,.6);color:rgba(194,194,194,.6)}:host([error][readonly]),:host([error][warning]:not([focused])[readonly]){border:1px solid rgba(245,71,91,.6)}:host([error]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover),:host([error][warning]:not([focused]):not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #f87584}:host([highlight]){background-color:#1b252f;border:1px solid #4a4a52}:host([highlight][disabled]){border:1px solid rgba(74,74,82,.6);color:rgba(194,194,194,.6);background-color:rgba(27,37,47,.6)}:host([highlight][readonly]){border:1px solid rgba(74,74,82,.6)}:host([highlight]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #77777d}:host([indirect]){color:#0fd;background-color:#000;border:1px solid #898623}:host([indirect][disabled]){border:1px solid rgba(137,134,35,.6);color:rgba(0,255,221,.6)}:host([indirect][readonly]){border:1px solid rgba(137,134,35,.6)}:host([indirect]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #a7a45a}:host([focused]){background-size:100% 2px,100% 1px!important;background-position:center bottom!important;border-color:#f93;border-style:dotted}:host([disabled]) [part=input]::-webkit-input-placeholder{color:rgba(102,101,112,.6)}:host([disabled]) [part=input]::-moz-placeholder{color:rgba(102,101,112,.6)}:host([disabled]) [part=input]:-ms-input-placeholder{color:rgba(102,101,112,.6)}:host [part=icon]:hover{cursor:pointer}:host [part=input]::-ms-reveal{display:none}');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@refinitiv-ui/elements/icon/themes/solar/pearl';
|
|
2
2
|
|
|
3
|
-
elf.customStyles.define('ef-password-field', ':host{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;font-family:inherit;font-size:13rem;font-weight:400;height:23px;width:140px;max-width:100%;padding:0 5px;margin:1px 0;outline:0;box-sizing:border-box;display:inline-flex;align-items:center;position:relative;vertical-align:middle;color:#484848;border-radius:0;text-overflow:ellipsis;background-color:#fff;border:1px solid #a9afba}:host([type=number]){padding-right:0}:host([error]),:host([error][warning]){border:1px solid #d94255}:host([error][disabled]),:host([error][warning][disabled]){color:rgba(72,72,72,.6);border:1px solid rgba(217,66,85,.6)}:host ::-ms-clear{display:none}:host [part=input]{color:inherit;padding:0;margin:0;flex:1 1 auto;min-width:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;touch-action:manipulation}:host [part=input]::-webkit-clear-button,:host [part=input]::-webkit-inner-spin-button,:host [part=input]::-webkit-search-cancel-button,:host [part=input]::-webkit-search-decoration{-webkit-appearance:none}:host [part=input]:invalid{box-shadow:none}:host [part=icon]{color:#acafb5;min-width:1em}:host([disabled]) [part=input]{-webkit-user-select:none;-moz-user-select:none
|
|
3
|
+
elf.customStyles.define('ef-password-field', ':host{display:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;font-family:inherit;font-size:13rem;font-weight:400;height:23px;width:140px;max-width:100%;padding:0 5px;margin:1px 0;outline:0;box-sizing:border-box;display:inline-flex;align-items:center;position:relative;vertical-align:middle;color:#484848;border-radius:0;text-overflow:ellipsis;background-color:#fff;border:1px solid #a9afba}:host([type=number]){padding-right:0}:host([error]),:host([error][warning]){border:1px solid #d94255}:host([error][disabled]),:host([error][warning][disabled]){color:rgba(72,72,72,.6);border:1px solid rgba(217,66,85,.6)}:host ::-ms-clear{display:none}:host [part=input]{color:inherit;padding:0;margin:0;flex:1 1 auto;min-width:0;width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-overflow:ellipsis;touch-action:manipulation}:host [part=input]::-webkit-clear-button,:host [part=input]::-webkit-inner-spin-button,:host [part=input]::-webkit-search-cancel-button,:host [part=input]::-webkit-search-decoration{-webkit-appearance:none}:host [part=input]:invalid{box-shadow:none}:host [part=icon]{color:#acafb5;min-width:1em}:host([disabled]) [part=input]{-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([disabled]){border:1px solid rgba(169,175,186,.6);color:rgba(72,72,72,.6)}:host([readonly]){border:1px solid rgba(169,175,186,.6)}:host(:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #bfc3cb}:host([warning]){background-color:#fff;border:1px solid #f93}:host([warning][disabled]){border:1px solid rgba(255,153,51,.6);color:rgba(72,72,72,.6)}:host([warning][readonly]){border:1px solid rgba(255,153,51,.6)}:host([warning]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #ffb366}:host([error]),:host([error][warning]:not([focused])){background-color:#fff;border:1px solid #d94255}:host([error][disabled]),:host([error][warning]:not([focused])[disabled]){border:1px solid rgba(217,66,85,.6);color:rgba(72,72,72,.6)}:host([error][readonly]),:host([error][warning]:not([focused])[readonly]){border:1px solid rgba(217,66,85,.6)}:host([error]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover),:host([error][warning]:not([focused]):not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #e37180}:host([highlight]){background-color:#b0ffff;border:1px solid #a9afba}:host([highlight][disabled]){border:1px solid rgba(169,175,186,.6);color:rgba(72,72,72,.6);background-color:rgba(176,255,255,.6)}:host([highlight][readonly]){border:1px solid rgba(169,175,186,.6)}:host([highlight]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #bfc3cb}:host([indirect]){color:#009494;background-color:#effefe;border:1px solid #898623}:host([indirect][disabled]){border:1px solid rgba(137,134,35,.6);color:rgba(0,148,148,.6)}:host([indirect][readonly]){border:1px solid rgba(137,134,35,.6)}:host([indirect]:not([focused]):not(:focus):not([disabled]):not([readonly]):hover){border:1px solid #a7a45a}:host([focused]){background-size:100% 2px,100% 1px!important;background-position:center bottom!important;border-color:#ffb266;border-style:dotted}:host([disabled]) [part=input]::-webkit-input-placeholder{color:rgba(102,101,112,.6)}:host([disabled]) [part=input]::-moz-placeholder{color:rgba(102,101,112,.6)}:host([disabled]) [part=input]:-ms-input-placeholder{color:rgba(102,101,112,.6)}:host [part=icon]:hover{cursor:pointer}:host [part=input]::-ms-reveal{display:none}');
|
package/lib/pill/index.d.ts
CHANGED
|
@@ -49,14 +49,22 @@ export declare class Pill extends ControlElement {
|
|
|
49
49
|
* Set property pressed true on tap start and false on tap end
|
|
50
50
|
*/
|
|
51
51
|
private pressed;
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Reference to the close icon
|
|
54
|
+
*/
|
|
55
|
+
private closeIconRef;
|
|
56
|
+
/**
|
|
57
|
+
* Reference to the label element
|
|
58
|
+
*/
|
|
59
|
+
private labelRef;
|
|
53
60
|
protected firstUpdated(changedProperties: PropertyValues): void;
|
|
54
61
|
/**
|
|
55
|
-
*
|
|
62
|
+
* Compute property values that depend on other properties
|
|
63
|
+
* and are used in the rest of the update process.
|
|
56
64
|
* @param changedProperties Properties that has changed
|
|
57
65
|
* @returns {void}
|
|
58
66
|
*/
|
|
59
|
-
protected
|
|
67
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
60
68
|
/**
|
|
61
69
|
* Handles key down event
|
|
62
70
|
* @param event Key down event object
|
package/lib/pill/index.js
CHANGED
|
@@ -2,7 +2,9 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { ControlElement, css, html } from '@refinitiv-ui/core';
|
|
3
3
|
import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
|
|
4
4
|
import { property } from '@refinitiv-ui/core/decorators/property.js';
|
|
5
|
-
import {
|
|
5
|
+
import { registerOverflowTooltip } from '../tooltip/index.js';
|
|
6
|
+
import { isElementOverflown } from '@refinitiv-ui/utils/element.js';
|
|
7
|
+
import { createRef, ref } from '@refinitiv-ui/core/directives/ref.js';
|
|
6
8
|
import { VERSION } from '../version.js';
|
|
7
9
|
import '../icon/index.js';
|
|
8
10
|
/**
|
|
@@ -43,6 +45,14 @@ let Pill = class Pill extends ControlElement {
|
|
|
43
45
|
* Set property pressed true on tap start and false on tap end
|
|
44
46
|
*/
|
|
45
47
|
this.pressed = false;
|
|
48
|
+
/**
|
|
49
|
+
* Reference to the close icon
|
|
50
|
+
*/
|
|
51
|
+
this.closeIconRef = createRef();
|
|
52
|
+
/**
|
|
53
|
+
* Reference to the label element
|
|
54
|
+
*/
|
|
55
|
+
this.labelRef = createRef();
|
|
46
56
|
}
|
|
47
57
|
/**
|
|
48
58
|
* Element version number
|
|
@@ -77,13 +87,16 @@ let Pill = class Pill extends ControlElement {
|
|
|
77
87
|
this.addEventListener('tapend', this.onEndPress);
|
|
78
88
|
this.addEventListener('mouseleave', this.onEndPress);
|
|
79
89
|
this.addEventListener('keydown', this.onKeyDown);
|
|
90
|
+
registerOverflowTooltip(this, undefined, () => this.labelRef.value ? isElementOverflown(this.labelRef.value) : false);
|
|
80
91
|
}
|
|
81
92
|
/**
|
|
82
|
-
*
|
|
93
|
+
* Compute property values that depend on other properties
|
|
94
|
+
* and are used in the rest of the update process.
|
|
83
95
|
* @param changedProperties Properties that has changed
|
|
84
96
|
* @returns {void}
|
|
85
97
|
*/
|
|
86
|
-
|
|
98
|
+
willUpdate(changedProperties) {
|
|
99
|
+
super.willUpdate(changedProperties);
|
|
87
100
|
if (changedProperties.has('toggles') || changedProperties.has('active')) {
|
|
88
101
|
if (this.toggles) {
|
|
89
102
|
this.setAttribute('aria-pressed', String(this.active));
|
|
@@ -92,7 +105,6 @@ let Pill = class Pill extends ControlElement {
|
|
|
92
105
|
this.removeAttribute('aria-pressed');
|
|
93
106
|
}
|
|
94
107
|
}
|
|
95
|
-
super.update(changedProperties);
|
|
96
108
|
}
|
|
97
109
|
/**
|
|
98
110
|
* Handles key down event
|
|
@@ -105,7 +117,12 @@ let Pill = class Pill extends ControlElement {
|
|
|
105
117
|
}
|
|
106
118
|
}
|
|
107
119
|
get closeTemplate() {
|
|
108
|
-
return this.clears && !this.readonly ? html `<ef-icon
|
|
120
|
+
return this.clears && !this.readonly ? html `<ef-icon
|
|
121
|
+
${ref(this.closeIconRef)}
|
|
122
|
+
part="close"
|
|
123
|
+
icon="cross"
|
|
124
|
+
aria-hidden="true"
|
|
125
|
+
@tap="${this.clear}"></ef-icon>` : null;
|
|
109
126
|
}
|
|
110
127
|
/**
|
|
111
128
|
* A `TemplateResult` that will be used
|
|
@@ -114,7 +131,7 @@ let Pill = class Pill extends ControlElement {
|
|
|
114
131
|
*/
|
|
115
132
|
render() {
|
|
116
133
|
return html `
|
|
117
|
-
<div part="content" role="none">
|
|
134
|
+
<div ${ref(this.labelRef)} part="content" role="none">
|
|
118
135
|
<slot>...</slot>
|
|
119
136
|
</div>
|
|
120
137
|
${this.closeTemplate}
|
|
@@ -135,8 +152,8 @@ let Pill = class Pill extends ControlElement {
|
|
|
135
152
|
* @returns true if element property pressed could be set
|
|
136
153
|
*/
|
|
137
154
|
couldBePressed(event) {
|
|
138
|
-
const
|
|
139
|
-
return !this.readonly && (!
|
|
155
|
+
const closeIconEl = this.closeIconRef.value;
|
|
156
|
+
return !this.readonly && (!closeIconEl || !event.composedPath().includes(closeIconEl));
|
|
140
157
|
}
|
|
141
158
|
/**
|
|
142
159
|
* change state of `pressed` property to be false if mouse leave pill or tap is end on pill
|
|
@@ -180,9 +197,6 @@ __decorate([
|
|
|
180
197
|
__decorate([
|
|
181
198
|
property({ type: Boolean, reflect: true })
|
|
182
199
|
], Pill.prototype, "pressed", void 0);
|
|
183
|
-
__decorate([
|
|
184
|
-
query('[part=close]')
|
|
185
|
-
], Pill.prototype, "closeElement", void 0);
|
|
186
200
|
Pill = __decorate([
|
|
187
201
|
customElement('ef-pill', {
|
|
188
202
|
alias: 'coral-pill'
|
|
@@ -31,20 +31,10 @@ export declare class RadioButton extends ControlElement {
|
|
|
31
31
|
* @return CSS template
|
|
32
32
|
*/
|
|
33
33
|
static get styles(): CSSResultGroup;
|
|
34
|
-
private _checked;
|
|
35
34
|
/**
|
|
36
35
|
* Radio button checked state
|
|
37
|
-
* @param value checked state
|
|
38
|
-
* @default false
|
|
39
|
-
* @returns {void}
|
|
40
|
-
*/
|
|
41
|
-
set checked(value: boolean);
|
|
42
|
-
get checked(): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Aria indicating checked state
|
|
45
|
-
* @ignore
|
|
46
36
|
*/
|
|
47
|
-
|
|
37
|
+
checked: boolean;
|
|
48
38
|
/**
|
|
49
39
|
* Getter for label
|
|
50
40
|
*/
|
|
@@ -59,6 +49,12 @@ export declare class RadioButton extends ControlElement {
|
|
|
59
49
|
* @returns {void}
|
|
60
50
|
*/
|
|
61
51
|
disconnectedCallback(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Called before update() to compute values needed during the update.
|
|
54
|
+
* @param changedProperties Properties that has changed
|
|
55
|
+
* @returns {void}
|
|
56
|
+
*/
|
|
57
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
62
58
|
/**
|
|
63
59
|
* Invoked whenever the element is updated
|
|
64
60
|
* @param changedProperties changed properties
|
|
@@ -27,12 +27,10 @@ let RadioButton = class RadioButton extends ControlElement {
|
|
|
27
27
|
constructor() {
|
|
28
28
|
super(...arguments);
|
|
29
29
|
this.defaultRole = 'radio';
|
|
30
|
-
this._checked = false;
|
|
31
30
|
/**
|
|
32
|
-
*
|
|
33
|
-
* @ignore
|
|
31
|
+
* Radio button checked state
|
|
34
32
|
*/
|
|
35
|
-
this.
|
|
33
|
+
this.checked = false;
|
|
36
34
|
}
|
|
37
35
|
/**
|
|
38
36
|
* Element version number
|
|
@@ -71,23 +69,6 @@ let RadioButton = class RadioButton extends ControlElement {
|
|
|
71
69
|
}
|
|
72
70
|
`;
|
|
73
71
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Radio button checked state
|
|
76
|
-
* @param value checked state
|
|
77
|
-
* @default false
|
|
78
|
-
* @returns {void}
|
|
79
|
-
*/
|
|
80
|
-
set checked(value) {
|
|
81
|
-
const oldValue = this._checked;
|
|
82
|
-
if (oldValue !== value) {
|
|
83
|
-
this._checked = value;
|
|
84
|
-
this.ariaChecked = String(value);
|
|
85
|
-
void this.requestUpdate('checked', oldValue);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
get checked() {
|
|
89
|
-
return this._checked;
|
|
90
|
-
}
|
|
91
72
|
/**
|
|
92
73
|
* Called when connected to DOM
|
|
93
74
|
* @returns {void}
|
|
@@ -105,6 +86,17 @@ let RadioButton = class RadioButton extends ControlElement {
|
|
|
105
86
|
removeFromRegistry(this);
|
|
106
87
|
super.disconnectedCallback();
|
|
107
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Called before update() to compute values needed during the update.
|
|
91
|
+
* @param changedProperties Properties that has changed
|
|
92
|
+
* @returns {void}
|
|
93
|
+
*/
|
|
94
|
+
willUpdate(changedProperties) {
|
|
95
|
+
super.willUpdate(changedProperties);
|
|
96
|
+
if (changedProperties.has('checked')) {
|
|
97
|
+
this.setAttribute('aria-checked', String(this.checked));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
108
100
|
/**
|
|
109
101
|
* Invoked whenever the element is updated
|
|
110
102
|
* @param changedProperties changed properties
|
|
@@ -246,10 +238,7 @@ let RadioButton = class RadioButton extends ControlElement {
|
|
|
246
238
|
};
|
|
247
239
|
__decorate([
|
|
248
240
|
property({ type: Boolean, reflect: true })
|
|
249
|
-
], RadioButton.prototype, "checked",
|
|
250
|
-
__decorate([
|
|
251
|
-
property({ type: String, reflect: true, attribute: 'aria-checked' })
|
|
252
|
-
], RadioButton.prototype, "ariaChecked", void 0);
|
|
241
|
+
], RadioButton.prototype, "checked", void 0);
|
|
253
242
|
__decorate([
|
|
254
243
|
query('[part=label]', true)
|
|
255
244
|
], RadioButton.prototype, "labelEl", void 0);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@refinitiv-ui/elements/tooltip/themes/halo/dark';
|
|
2
2
|
|
|
3
|
-
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation;--check-color:#6678FF;color:#ccc}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#0d0d0d;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none
|
|
3
|
+
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation;--check-color:#6678FF;color:#ccc}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#0d0d0d;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;border:1px solid #404040;width:14px;height:14px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#6678ff);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:8px;height:8px}:host [part=label]{margin:0 7px;cursor:default}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#ccc)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{border-color:#334bff;box-shadow:0 0 0 #334bff}}:host(:not([readonly])) [part=container]{cursor:pointer}:host(:hover:not([checked]):not([indeterminate]):not([readonly])) [part=container]{border-color:grey}:host(:hover:not([readonly])){color:#fff}:host([disabled]),:host([disabled]) [part=label]{opacity:.5}:host([checked]) [part=container]{border:1px solid #334bff}:host(:focus[readonly]:not([checked])) [part=container]{border-color:#404040}:host([focused=visible]){outline:#334bff solid 1px;outline-offset:2px}');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@refinitiv-ui/elements/tooltip/themes/halo/light';
|
|
2
2
|
|
|
3
|
-
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation;--check-color:#334BFF;color:#404040}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#fff;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none
|
|
3
|
+
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation;--check-color:#334BFF;color:#404040}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#fff;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;border:1px solid #595959;width:14px;height:14px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#334bff);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:8px;height:8px}:host [part=label]{margin:0 7px;cursor:default}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#404040)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{border-color:#334bff;box-shadow:0 0 0 #334bff}}:host(:not([readonly])) [part=container]{cursor:pointer}:host(:hover:not([checked]):not([indeterminate]):not([readonly])) [part=container]{border-color:#0d0d0d}:host(:hover:not([readonly])){color:#0d0d0d}:host([disabled]),:host([disabled]) [part=label]{opacity:.5}:host([checked]) [part=container]{border:1px solid #334bff}:host(:focus[readonly]:not([checked])) [part=container]{border-color:#595959}:host([focused=visible]){outline:#334bff solid 1px;outline-offset:2px}');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@refinitiv-ui/elements/tooltip/themes/solar/charcoal';
|
|
2
2
|
|
|
3
|
-
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#000;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.6);-webkit-user-select:none;-moz-user-select:none
|
|
3
|
+
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#000;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.6);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;border:1px solid #4a4a52;height:11px;width:11px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#f93);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:7px;height:7px}:host [part=label]{cursor:default;margin:0 4px}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#e2e2e2)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65;opacity:rgba(194,194,194,.6)}:host([checked][disabled]) [part=check]{color:#c2c2c2}:host([checked][readonly]) [part=check]{color:rgba(194,194,194,.5)}:host([disabled]) [part=container],:host([readonly]) [part=container]{color:rgba(194,194,194,.6);border-color:rgba(74,74,82,.6);background-color:rgba(0,0,0,.6)}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{box-shadow:0 0 0 #f93;border:1px dotted #f93}}');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@refinitiv-ui/elements/tooltip/themes/solar/pearl';
|
|
2
2
|
|
|
3
|
-
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#fff;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.3);-webkit-user-select:none;-moz-user-select:none
|
|
3
|
+
elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#fff;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;border:1px solid #a9afba;height:11px;width:11px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#ee7600);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:7px;height:7px}:host [part=label]{cursor:default;margin:0 4px}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#acafb5)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65;opacity:rgba(72,72,72,.6)}:host([checked][disabled]) [part=check]{color:#a9afba}:host([checked][readonly]) [part=check]{color:rgba(169,175,186,.5)}:host([disabled]) [part=container],:host([readonly]) [part=container]{color:rgba(72,72,72,.6);border-color:rgba(169,175,186,.6);background-color:rgba(255,255,255,.6)}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{box-shadow:0 0 0 #ffb266;border:1px dotted #ffb266}}');
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"name": "max",
|
|
16
16
|
"description": "Set number of total stars",
|
|
17
17
|
"type": "string",
|
|
18
|
-
"default": "\"5\""
|
|
18
|
+
"default": "\"'5'\""
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"name": "value",
|
|
22
22
|
"description": "Set number of selected stars. Value can be any number between 0 and `max`.\nDecimal values are calculated to empty star (0 - .25); half-star (.25 - .75) and full star (.75 - 1)",
|
|
23
23
|
"type": "string",
|
|
24
|
-
"default": "\"0\""
|
|
24
|
+
"default": "\"'0'\""
|
|
25
25
|
}
|
|
26
26
|
],
|
|
27
27
|
"properties": [
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"attribute": "max",
|
|
38
38
|
"description": "Set number of total stars",
|
|
39
39
|
"type": "string",
|
|
40
|
-
"default": "\"5\""
|
|
40
|
+
"default": "\"'5'\""
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"name": "value",
|
|
44
44
|
"attribute": "value",
|
|
45
45
|
"description": "Set number of selected stars. Value can be any number between 0 and `max`.\nDecimal values are calculated to empty star (0 - .25); half-star (.25 - .75) and full star (.75 - 1)",
|
|
46
46
|
"type": "string",
|
|
47
|
-
"default": "\"0\""
|
|
47
|
+
"default": "\"'0'\""
|
|
48
48
|
}
|
|
49
49
|
],
|
|
50
50
|
"events": [
|
|
@@ -7,8 +7,8 @@ Star visualisation component that is generally used for ranking
|
|
|
7
7
|
| Property | Attribute | Type | Default | Description |
|
|
8
8
|
|---------------|---------------|-----------|---------|--------------------------------------------------|
|
|
9
9
|
| `interactive` | `interactive` | `boolean` | false | Make it possible to interact with rating control and change the value |
|
|
10
|
-
| `max` | `max` | `string` | "5"
|
|
11
|
-
| `value` | `value` | `string` | "0"
|
|
10
|
+
| `max` | `max` | `string` | "'5'" | Set number of total stars |
|
|
11
|
+
| `value` | `value` | `string` | "'0'" | Set number of selected stars. Value can be any number between 0 and `max`.<br />Decimal values are calculated to empty star (0 - .25); half-star (.25 - .75) and full star (.75 - 1) |
|
|
12
12
|
|
|
13
13
|
## Events
|
|
14
14
|
|
package/lib/rating/index.d.ts
CHANGED
|
@@ -10,64 +10,116 @@ export declare class Rating extends BasicElement {
|
|
|
10
10
|
* @returns version number
|
|
11
11
|
*/
|
|
12
12
|
static get version(): string;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* A `CSSResultGroup` that will be used
|
|
15
|
+
* to style the host, slotted children
|
|
16
|
+
* and the internal template of the element.
|
|
17
|
+
* @returns CSS template
|
|
18
|
+
*/
|
|
19
|
+
static get styles(): CSSResultGroup;
|
|
20
|
+
private MAX_VALUE;
|
|
21
|
+
private MIN_VALUE;
|
|
15
22
|
/**
|
|
16
23
|
* Make it possible to interact with rating control and change the value
|
|
17
24
|
*/
|
|
18
25
|
interactive: boolean;
|
|
19
26
|
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
* Internal max value of rating.
|
|
28
|
+
* Controlled by public setter and getter
|
|
29
|
+
*/
|
|
30
|
+
private _max;
|
|
31
|
+
/**
|
|
32
|
+
* Set number of total stars
|
|
33
|
+
* @param max max value
|
|
34
|
+
* @default '5'
|
|
35
|
+
*/
|
|
36
|
+
set max(max: string);
|
|
37
|
+
get max(): string;
|
|
23
38
|
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
39
|
+
* Converts max value from string to number for calculations
|
|
40
|
+
* @returns maximum value of rating as a number
|
|
41
|
+
*/
|
|
42
|
+
private get maxNumber();
|
|
28
43
|
/**
|
|
29
|
-
*
|
|
44
|
+
* Internal value of rating.
|
|
45
|
+
* Controlled by public setter and getter
|
|
30
46
|
*/
|
|
31
|
-
private
|
|
47
|
+
private _value;
|
|
48
|
+
/**
|
|
49
|
+
* Set number of selected stars. Value can be any number between 0 and `max`.
|
|
50
|
+
* Decimal values are calculated to empty star (0 - .25); half-star (.25 - .75) and full star (.75 - 1)
|
|
51
|
+
* @param value Element value
|
|
52
|
+
* @default '0'
|
|
53
|
+
*/
|
|
54
|
+
set value(value: string);
|
|
55
|
+
get value(): string;
|
|
32
56
|
/**
|
|
33
57
|
* Converts value from string to number for calculations
|
|
34
58
|
* @returns value of rating as a number
|
|
35
59
|
*/
|
|
36
60
|
private get valueNumber();
|
|
37
61
|
/**
|
|
38
|
-
*
|
|
39
|
-
* @
|
|
62
|
+
* Called before update() to compute values needed during the update.
|
|
63
|
+
* @param changedProperties Properties that has changed
|
|
64
|
+
* @returns {void}
|
|
40
65
|
*/
|
|
41
|
-
|
|
66
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
42
67
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* CSS3 specification does not allow to select items preceding the hover, but allows to select the following items.
|
|
46
|
-
* Therefore `flex: reverse` style is applied and the items are constructed in the reverse mode to mimic the correct behaviour.
|
|
47
|
-
* @param {Number} max Number of stars
|
|
48
|
-
* @param {Number} value Value
|
|
68
|
+
* Invoked when the element is first updated
|
|
69
|
+
* @param changedProperties changed properties
|
|
49
70
|
* @returns {void}
|
|
50
71
|
*/
|
|
51
|
-
|
|
72
|
+
protected firstUpdated(changedProperties: PropertyValues): void;
|
|
52
73
|
/**
|
|
53
|
-
*
|
|
54
|
-
* @param {number} index index of star
|
|
74
|
+
* Handles interactive and aria attribute changes
|
|
55
75
|
* @returns {void}
|
|
56
76
|
*/
|
|
57
|
-
private
|
|
77
|
+
private interactiveChanged;
|
|
58
78
|
/**
|
|
59
|
-
*
|
|
60
|
-
* @param
|
|
79
|
+
* Handles key input
|
|
80
|
+
* @param event Key down event object
|
|
61
81
|
* @returns {void}
|
|
62
82
|
*/
|
|
63
|
-
protected
|
|
83
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
64
84
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* @returns CSS template
|
|
85
|
+
* Update value and fired value-changed event
|
|
86
|
+
* @param value value to updated
|
|
87
|
+
* @returns {void}
|
|
69
88
|
*/
|
|
70
|
-
|
|
89
|
+
private notifyValueChange;
|
|
90
|
+
/**
|
|
91
|
+
* Check if passed value is a valid value
|
|
92
|
+
* @override
|
|
93
|
+
* @param value Value to check
|
|
94
|
+
* @returns {boolean} false if value is invalid
|
|
95
|
+
*/
|
|
96
|
+
protected isValidValue(value: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Increases the value of rating by half or 1 if not specific amount but not exceed max value
|
|
99
|
+
* @param value step up value to specific number (optional)
|
|
100
|
+
* @returns {void}
|
|
101
|
+
*/
|
|
102
|
+
private stepUp;
|
|
103
|
+
/**
|
|
104
|
+
* Decrease the value of rating by half or 1 if not specific amount but not exceed min value
|
|
105
|
+
* @param value step down value to specific number (optional)
|
|
106
|
+
* @returns {void}
|
|
107
|
+
*/
|
|
108
|
+
private stepDown;
|
|
109
|
+
/**
|
|
110
|
+
* Process click event to set the new value
|
|
111
|
+
* @param {number} index index of star
|
|
112
|
+
* @returns {void}
|
|
113
|
+
*/
|
|
114
|
+
private handleTap;
|
|
115
|
+
/**
|
|
116
|
+
* Render rating based on max number of stars and value.
|
|
117
|
+
* Note: to speed up the component, hover state is implemented using CSS only.
|
|
118
|
+
* CSS3 specification does not allow to select items preceding the hover, but allows to select the following items.
|
|
119
|
+
* Therefore `flex: reverse` style is applied and the items are constructed in the reverse mode to mimic the correct behaviour.
|
|
120
|
+
* @returns stars template
|
|
121
|
+
*/
|
|
122
|
+
private get starsTemplate();
|
|
71
123
|
/**
|
|
72
124
|
* A `TemplateResult` that will be used
|
|
73
125
|
* to render the updated internal template.
|