@nectary/components 5.42.3 → 5.42.4
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/bundle.js +51 -2
- package/package.json +1 -1
- package/time-picker/index.d.ts +8 -0
- package/time-picker/index.js +51 -2
- package/time-picker/types.d.ts +8 -0
package/bundle.js
CHANGED
|
@@ -17157,7 +17157,7 @@ const getShortestCssDeg = (currentDeg, nextDeg) => {
|
|
|
17157
17157
|
}
|
|
17158
17158
|
return currentDeg + diff;
|
|
17159
17159
|
};
|
|
17160
|
-
const templateHTML$3 = '<style>:host{display:block;outline:0}#wrapper{display:flex;flex-direction:column;width:248px;padding:16px;box-sizing:border-box;gap:16px}#header{position:relative;width:100%;height:48px;font:var(--sinch-comp-time-picker-header-font);line-height:48px;user-select:none;color:var(--sinch-comp-time-picker-header-color-default-text-initial)}#footer{display:flex;justify-content:center;width:100%;height:32px}#picker{position:relative;width:216px;height:216px;border-radius:50%;box-sizing:border-box;border:1px solid var(--sinch-comp-time-picker-watch-face-color-default-border-initial);background-color:var(--sinch-comp-time-picker-watch-face-color-default-background-initial)}#picker-hours,#picker-minutes{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:50%;pointer-events:none;user-select:none}.digit-hour-12,.digit-hour-24,.digit-minute{position:absolute;width:28px;height:28px;text-align:center;top:calc(50% - 14px);left:calc(50% - 14px);z-index:1;cursor:pointer}.digit-hour-12{font:var(--sinch-comp-time-picker-digit-font-default-h12);color:var(--sinch-comp-time-picker-digit-color-default-h12-initial);line-height:28px}.digit-hour-12.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h12);color:var(--sinch-comp-time-picker-digit-color-checked-h12-default)}.digit-hour-24{font:var(--sinch-comp-time-picker-digit-font-default-h24);color:var(--sinch-comp-time-picker-digit-color-default-h24-initial);line-height:28px}.digit-hour-24.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h24);color:var(--sinch-comp-time-picker-digit-color-checked-h24-initial)}.digit-minute{font:var(--sinch-comp-time-picker-digit-font-default-minutes);color:var(--sinch-comp-time-picker-digit-color-default-minute-initial);line-height:28px}.digit-minute.selected{font:var(--sinch-comp-time-picker-digit-font-checked-minutes);color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch{position:absolute;left:0;top:0;width:100%;height:100%;cursor:pointer;border-radius:50%}#needle-hour,#needle-minute,#picker-touch::after{background-color:var(--sinch-comp-time-picker-needle-color-default-background-initial)}#needle-hour,#needle-minute{position:absolute;transform-origin:bottom center;transform:rotate(0);bottom:50%;height:50px;transition-duration:.25s;transition-timing-function:ease-in-out;transition-property:transform height;z-index:2;outline:0}@media (prefers-reduced-motion){#needle-hour,#needle-minute{transition:none}}#needle-hour{width:4px;left:calc(50% - 2px);border-radius:2px}#needle-minute{width:2px;left:calc(50% - 1px);border-radius:1px}#needle-hour:focus-visible,#needle-minute:focus-visible{background-color:var(--sinch-comp-time-picker-needle-color-default-background-focus)}#needle-minute:not(.selected)::after{content:"";position:absolute;transform:translateX(-50%);left:0;top:-16px;width:4px;height:4px;border-radius:50%;background-color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%)}#header-hours,#header-minutes{position:absolute;padding:0 4px;width:50px;outline:0}#header-hours{right:calc(50% + 8px);text-align:right}#header-minutes{left:calc(50% + 8px)}#header-colon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#submit{position:absolute;right:0;top:50%;transform:translateY(-50%)}#submit-icon{--sinch-global-color-icon:var(--sinch-comp-time-picker-header-color-default-icon-initial)}:host([ampm]) .digit-hour-24{display:none}:host(:not([ampm])) #footer{display:none}</style><div id="wrapper"><div id="header"><div id="header-hours" role="meter" aria-valuemin="0" aria-valuemax="23" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><div id="header-colon">:</div><div id="header-minutes" role="meter" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><sinch-button id="submit" size="s" aria-label="Submit"><sinch-icon icons-version="2" name="fa-check" id="icon-submit" slot="icon"></sinch-icon></sinch-button></div><div id="picker" role="group" aria-label="Time picker clock face"><div id="picker-hours"></div><div id="picker-minutes"></div><div id="picker-touch"><div id="needle-hour" tabindex="0" role="slider" aria-
|
|
17160
|
+
const templateHTML$3 = '<style>:host{display:block;outline:0}#wrapper{display:flex;flex-direction:column;width:248px;padding:16px;box-sizing:border-box;gap:16px}#header{position:relative;width:100%;height:48px;font:var(--sinch-comp-time-picker-header-font);line-height:48px;user-select:none;color:var(--sinch-comp-time-picker-header-color-default-text-initial)}#footer{display:flex;justify-content:center;width:100%;height:32px}#picker{position:relative;width:216px;height:216px;border-radius:50%;box-sizing:border-box;border:1px solid var(--sinch-comp-time-picker-watch-face-color-default-border-initial);background-color:var(--sinch-comp-time-picker-watch-face-color-default-background-initial)}#picker-hours,#picker-minutes{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:50%;pointer-events:none;user-select:none}.digit-hour-12,.digit-hour-24,.digit-minute{position:absolute;width:28px;height:28px;text-align:center;top:calc(50% - 14px);left:calc(50% - 14px);z-index:1;cursor:pointer}.digit-hour-12{font:var(--sinch-comp-time-picker-digit-font-default-h12);color:var(--sinch-comp-time-picker-digit-color-default-h12-initial);line-height:28px}.digit-hour-12.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h12);color:var(--sinch-comp-time-picker-digit-color-checked-h12-default)}.digit-hour-24{font:var(--sinch-comp-time-picker-digit-font-default-h24);color:var(--sinch-comp-time-picker-digit-color-default-h24-initial);line-height:28px}.digit-hour-24.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h24);color:var(--sinch-comp-time-picker-digit-color-checked-h24-initial)}.digit-minute{font:var(--sinch-comp-time-picker-digit-font-default-minutes);color:var(--sinch-comp-time-picker-digit-color-default-minute-initial);line-height:28px}.digit-minute.selected{font:var(--sinch-comp-time-picker-digit-font-checked-minutes);color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch{position:absolute;left:0;top:0;width:100%;height:100%;cursor:pointer;border-radius:50%}#needle-hour,#needle-minute,#picker-touch::after{background-color:var(--sinch-comp-time-picker-needle-color-default-background-initial)}#needle-hour,#needle-minute{position:absolute;transform-origin:bottom center;transform:rotate(0);bottom:50%;height:50px;transition-duration:.25s;transition-timing-function:ease-in-out;transition-property:transform height;z-index:2;outline:0}@media (prefers-reduced-motion){#needle-hour,#needle-minute{transition:none}}#needle-hour{width:4px;left:calc(50% - 2px);border-radius:2px}#needle-minute{width:2px;left:calc(50% - 1px);border-radius:1px}#needle-hour:focus-visible,#needle-minute:focus-visible{background-color:var(--sinch-comp-time-picker-needle-color-default-background-focus)}#needle-minute:not(.selected)::after{content:"";position:absolute;transform:translateX(-50%);left:0;top:-16px;width:4px;height:4px;border-radius:50%;background-color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%)}#header-hours,#header-minutes{position:absolute;padding:0 4px;width:50px;outline:0}#header-hours{right:calc(50% + 8px);text-align:right}#header-minutes{left:calc(50% + 8px)}#header-colon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#submit{position:absolute;right:0;top:50%;transform:translateY(-50%)}#submit-icon{--sinch-global-color-icon:var(--sinch-comp-time-picker-header-color-default-icon-initial)}:host([ampm]) .digit-hour-24{display:none}:host(:not([ampm])) #footer{display:none}</style><div id="wrapper"><div id="header"><div id="header-hours" role="meter" aria-valuemin="0" aria-valuemax="23" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><div id="header-colon">:</div><div id="header-minutes" role="meter" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><sinch-button id="submit" size="s" aria-label="Submit"><sinch-icon icons-version="2" name="fa-check" id="icon-submit" slot="icon"></sinch-icon></sinch-button></div><div id="picker" role="group" aria-label="Time picker clock face"><div id="picker-hours"></div><div id="picker-minutes"></div><div id="picker-touch"><div id="needle-hour" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="23" aria-valuenow="0"></div><div id="needle-minute" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0"></div></div></div><div id="footer"><sinch-segmented-control id="ampm"><sinch-segmented-control-option value="am" text="AM" aria-label="AM"></sinch-segmented-control-option><sinch-segmented-control-option value="pm" text="PM" aria-label="PM"></sinch-segmented-control-option></sinch-segmented-control></div></div>';
|
|
17161
17161
|
const template$3 = document.createElement("template");
|
|
17162
17162
|
template$3.innerHTML = templateHTML$3;
|
|
17163
17163
|
const PICKER_RADIUS = 216 / 2;
|
|
@@ -17277,7 +17277,16 @@ class TimePicker extends NectaryElement {
|
|
|
17277
17277
|
this.#controller = null;
|
|
17278
17278
|
}
|
|
17279
17279
|
static get observedAttributes() {
|
|
17280
|
-
return [
|
|
17280
|
+
return [
|
|
17281
|
+
"value",
|
|
17282
|
+
"ampm",
|
|
17283
|
+
"submit-aria-label",
|
|
17284
|
+
"hour-meter-aria-label",
|
|
17285
|
+
"minute-meter-aria-label",
|
|
17286
|
+
"hour-needle-aria-label",
|
|
17287
|
+
"minute-needle-aria-label",
|
|
17288
|
+
"no-submit"
|
|
17289
|
+
];
|
|
17281
17290
|
}
|
|
17282
17291
|
attributeChangedCallback(name, prevValue, newVal) {
|
|
17283
17292
|
if (isAttrEqual(prevValue, newVal)) {
|
|
@@ -17303,6 +17312,22 @@ class TimePicker extends NectaryElement {
|
|
|
17303
17312
|
updateAttribute(this.#$submitButton, "aria-label", newVal);
|
|
17304
17313
|
break;
|
|
17305
17314
|
}
|
|
17315
|
+
case "hour-meter-aria-label": {
|
|
17316
|
+
updateAttribute(this.#$headerHours, "aria-label", newVal);
|
|
17317
|
+
break;
|
|
17318
|
+
}
|
|
17319
|
+
case "minute-meter-aria-label": {
|
|
17320
|
+
updateAttribute(this.#$headerMinutes, "aria-label", newVal);
|
|
17321
|
+
break;
|
|
17322
|
+
}
|
|
17323
|
+
case "hour-needle-aria-label": {
|
|
17324
|
+
updateAttribute(this.#$needleHour, "aria-label", newVal);
|
|
17325
|
+
break;
|
|
17326
|
+
}
|
|
17327
|
+
case "minute-needle-aria-label": {
|
|
17328
|
+
updateAttribute(this.#$needleMinute, "aria-label", newVal);
|
|
17329
|
+
break;
|
|
17330
|
+
}
|
|
17306
17331
|
case "no-submit": {
|
|
17307
17332
|
const isNoSubmit = isAttrTrue(newVal);
|
|
17308
17333
|
updateBooleanAttribute(this, "no-submit", isNoSubmit);
|
|
@@ -17329,6 +17354,30 @@ class TimePicker extends NectaryElement {
|
|
|
17329
17354
|
get submitAriaLabel() {
|
|
17330
17355
|
return getAttribute(this, "submit-aria-label", "");
|
|
17331
17356
|
}
|
|
17357
|
+
set hourMeterAriaLabel(value) {
|
|
17358
|
+
updateAttribute(this, "hour-meter-aria-label", value);
|
|
17359
|
+
}
|
|
17360
|
+
get hourMeterAriaLabel() {
|
|
17361
|
+
return getAttribute(this, "hour-meter-aria-label", "");
|
|
17362
|
+
}
|
|
17363
|
+
set minuteMeterAriaLabel(value) {
|
|
17364
|
+
updateAttribute(this, "minute-meter-aria-label", value);
|
|
17365
|
+
}
|
|
17366
|
+
get minuteMeterAriaLabel() {
|
|
17367
|
+
return getAttribute(this, "minute-meter-aria-label", "");
|
|
17368
|
+
}
|
|
17369
|
+
set hourNeedleAriaLabel(value) {
|
|
17370
|
+
updateAttribute(this, "hour-needle-aria-label", value);
|
|
17371
|
+
}
|
|
17372
|
+
get hourNeedleAriaLabel() {
|
|
17373
|
+
return getAttribute(this, "hour-needle-aria-label", "");
|
|
17374
|
+
}
|
|
17375
|
+
set minuteNeedleAriaLabel(value) {
|
|
17376
|
+
updateAttribute(this, "minute-needle-aria-label", value);
|
|
17377
|
+
}
|
|
17378
|
+
get minuteNeedleAriaLabel() {
|
|
17379
|
+
return getAttribute(this, "minute-needle-aria-label", "");
|
|
17380
|
+
}
|
|
17332
17381
|
set noSubmit(value) {
|
|
17333
17382
|
updateBooleanAttribute(this, "no-submit", value);
|
|
17334
17383
|
}
|
package/package.json
CHANGED
package/time-picker/index.d.ts
CHANGED
|
@@ -17,6 +17,14 @@ export declare class TimePicker extends NectaryElement {
|
|
|
17
17
|
get ampm(): boolean;
|
|
18
18
|
set submitAriaLabel(value: string);
|
|
19
19
|
get submitAriaLabel(): string;
|
|
20
|
+
set hourMeterAriaLabel(value: string);
|
|
21
|
+
get hourMeterAriaLabel(): string;
|
|
22
|
+
set minuteMeterAriaLabel(value: string);
|
|
23
|
+
get minuteMeterAriaLabel(): string;
|
|
24
|
+
set hourNeedleAriaLabel(value: string);
|
|
25
|
+
get hourNeedleAriaLabel(): string;
|
|
26
|
+
set minuteNeedleAriaLabel(value: string);
|
|
27
|
+
get minuteNeedleAriaLabel(): string;
|
|
20
28
|
set noSubmit(value: boolean);
|
|
21
29
|
get noSubmit(): boolean;
|
|
22
30
|
get submitButtonRect(): TRect;
|
package/time-picker/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { defineCustomElement, NectaryElement } from "../utils/element.js";
|
|
|
6
6
|
import { getRect } from "../utils/rect.js";
|
|
7
7
|
import { getReactEventHandler } from "../utils/get-react-event-handler.js";
|
|
8
8
|
import { stringifyHourFace, stringifyMinute, parseTime, hourToIndex, stringifyHour, getNeedleRotationDeg, getShortestCssDeg, stringifyTime } from "./utils.js";
|
|
9
|
-
const templateHTML = '<style>:host{display:block;outline:0}#wrapper{display:flex;flex-direction:column;width:248px;padding:16px;box-sizing:border-box;gap:16px}#header{position:relative;width:100%;height:48px;font:var(--sinch-comp-time-picker-header-font);line-height:48px;user-select:none;color:var(--sinch-comp-time-picker-header-color-default-text-initial)}#footer{display:flex;justify-content:center;width:100%;height:32px}#picker{position:relative;width:216px;height:216px;border-radius:50%;box-sizing:border-box;border:1px solid var(--sinch-comp-time-picker-watch-face-color-default-border-initial);background-color:var(--sinch-comp-time-picker-watch-face-color-default-background-initial)}#picker-hours,#picker-minutes{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:50%;pointer-events:none;user-select:none}.digit-hour-12,.digit-hour-24,.digit-minute{position:absolute;width:28px;height:28px;text-align:center;top:calc(50% - 14px);left:calc(50% - 14px);z-index:1;cursor:pointer}.digit-hour-12{font:var(--sinch-comp-time-picker-digit-font-default-h12);color:var(--sinch-comp-time-picker-digit-color-default-h12-initial);line-height:28px}.digit-hour-12.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h12);color:var(--sinch-comp-time-picker-digit-color-checked-h12-default)}.digit-hour-24{font:var(--sinch-comp-time-picker-digit-font-default-h24);color:var(--sinch-comp-time-picker-digit-color-default-h24-initial);line-height:28px}.digit-hour-24.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h24);color:var(--sinch-comp-time-picker-digit-color-checked-h24-initial)}.digit-minute{font:var(--sinch-comp-time-picker-digit-font-default-minutes);color:var(--sinch-comp-time-picker-digit-color-default-minute-initial);line-height:28px}.digit-minute.selected{font:var(--sinch-comp-time-picker-digit-font-checked-minutes);color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch{position:absolute;left:0;top:0;width:100%;height:100%;cursor:pointer;border-radius:50%}#needle-hour,#needle-minute,#picker-touch::after{background-color:var(--sinch-comp-time-picker-needle-color-default-background-initial)}#needle-hour,#needle-minute{position:absolute;transform-origin:bottom center;transform:rotate(0);bottom:50%;height:50px;transition-duration:.25s;transition-timing-function:ease-in-out;transition-property:transform height;z-index:2;outline:0}@media (prefers-reduced-motion){#needle-hour,#needle-minute{transition:none}}#needle-hour{width:4px;left:calc(50% - 2px);border-radius:2px}#needle-minute{width:2px;left:calc(50% - 1px);border-radius:1px}#needle-hour:focus-visible,#needle-minute:focus-visible{background-color:var(--sinch-comp-time-picker-needle-color-default-background-focus)}#needle-minute:not(.selected)::after{content:"";position:absolute;transform:translateX(-50%);left:0;top:-16px;width:4px;height:4px;border-radius:50%;background-color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%)}#header-hours,#header-minutes{position:absolute;padding:0 4px;width:50px;outline:0}#header-hours{right:calc(50% + 8px);text-align:right}#header-minutes{left:calc(50% + 8px)}#header-colon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#submit{position:absolute;right:0;top:50%;transform:translateY(-50%)}#submit-icon{--sinch-global-color-icon:var(--sinch-comp-time-picker-header-color-default-icon-initial)}:host([ampm]) .digit-hour-24{display:none}:host(:not([ampm])) #footer{display:none}</style><div id="wrapper"><div id="header"><div id="header-hours" role="meter" aria-valuemin="0" aria-valuemax="23" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><div id="header-colon">:</div><div id="header-minutes" role="meter" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><sinch-button id="submit" size="s" aria-label="Submit"><sinch-icon icons-version="2" name="fa-check" id="icon-submit" slot="icon"></sinch-icon></sinch-button></div><div id="picker" role="group" aria-label="Time picker clock face"><div id="picker-hours"></div><div id="picker-minutes"></div><div id="picker-touch"><div id="needle-hour" tabindex="0" role="slider" aria-
|
|
9
|
+
const templateHTML = '<style>:host{display:block;outline:0}#wrapper{display:flex;flex-direction:column;width:248px;padding:16px;box-sizing:border-box;gap:16px}#header{position:relative;width:100%;height:48px;font:var(--sinch-comp-time-picker-header-font);line-height:48px;user-select:none;color:var(--sinch-comp-time-picker-header-color-default-text-initial)}#footer{display:flex;justify-content:center;width:100%;height:32px}#picker{position:relative;width:216px;height:216px;border-radius:50%;box-sizing:border-box;border:1px solid var(--sinch-comp-time-picker-watch-face-color-default-border-initial);background-color:var(--sinch-comp-time-picker-watch-face-color-default-background-initial)}#picker-hours,#picker-minutes{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:50%;pointer-events:none;user-select:none}.digit-hour-12,.digit-hour-24,.digit-minute{position:absolute;width:28px;height:28px;text-align:center;top:calc(50% - 14px);left:calc(50% - 14px);z-index:1;cursor:pointer}.digit-hour-12{font:var(--sinch-comp-time-picker-digit-font-default-h12);color:var(--sinch-comp-time-picker-digit-color-default-h12-initial);line-height:28px}.digit-hour-12.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h12);color:var(--sinch-comp-time-picker-digit-color-checked-h12-default)}.digit-hour-24{font:var(--sinch-comp-time-picker-digit-font-default-h24);color:var(--sinch-comp-time-picker-digit-color-default-h24-initial);line-height:28px}.digit-hour-24.selected{font:var(--sinch-comp-time-picker-digit-font-checked-h24);color:var(--sinch-comp-time-picker-digit-color-checked-h24-initial)}.digit-minute{font:var(--sinch-comp-time-picker-digit-font-default-minutes);color:var(--sinch-comp-time-picker-digit-color-default-minute-initial);line-height:28px}.digit-minute.selected{font:var(--sinch-comp-time-picker-digit-font-checked-minutes);color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch{position:absolute;left:0;top:0;width:100%;height:100%;cursor:pointer;border-radius:50%}#needle-hour,#needle-minute,#picker-touch::after{background-color:var(--sinch-comp-time-picker-needle-color-default-background-initial)}#needle-hour,#needle-minute{position:absolute;transform-origin:bottom center;transform:rotate(0);bottom:50%;height:50px;transition-duration:.25s;transition-timing-function:ease-in-out;transition-property:transform height;z-index:2;outline:0}@media (prefers-reduced-motion){#needle-hour,#needle-minute{transition:none}}#needle-hour{width:4px;left:calc(50% - 2px);border-radius:2px}#needle-minute{width:2px;left:calc(50% - 1px);border-radius:1px}#needle-hour:focus-visible,#needle-minute:focus-visible{background-color:var(--sinch-comp-time-picker-needle-color-default-background-focus)}#needle-minute:not(.selected)::after{content:"";position:absolute;transform:translateX(-50%);left:0;top:-16px;width:4px;height:4px;border-radius:50%;background-color:var(--sinch-comp-time-picker-digit-color-checked-minute-initial)}#picker-touch::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%)}#header-hours,#header-minutes{position:absolute;padding:0 4px;width:50px;outline:0}#header-hours{right:calc(50% + 8px);text-align:right}#header-minutes{left:calc(50% + 8px)}#header-colon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#submit{position:absolute;right:0;top:50%;transform:translateY(-50%)}#submit-icon{--sinch-global-color-icon:var(--sinch-comp-time-picker-header-color-default-icon-initial)}:host([ampm]) .digit-hour-24{display:none}:host(:not([ampm])) #footer{display:none}</style><div id="wrapper"><div id="header"><div id="header-hours" role="meter" aria-valuemin="0" aria-valuemax="23" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><div id="header-colon">:</div><div id="header-minutes" role="meter" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0" aria-valuetext="0"><span>00</span></div><sinch-button id="submit" size="s" aria-label="Submit"><sinch-icon icons-version="2" name="fa-check" id="icon-submit" slot="icon"></sinch-icon></sinch-button></div><div id="picker" role="group" aria-label="Time picker clock face"><div id="picker-hours"></div><div id="picker-minutes"></div><div id="picker-touch"><div id="needle-hour" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="23" aria-valuenow="0"></div><div id="needle-minute" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="59" aria-valuenow="0"></div></div></div><div id="footer"><sinch-segmented-control id="ampm"><sinch-segmented-control-option value="am" text="AM" aria-label="AM"></sinch-segmented-control-option><sinch-segmented-control-option value="pm" text="PM" aria-label="PM"></sinch-segmented-control-option></sinch-segmented-control></div></div>';
|
|
10
10
|
const template = document.createElement("template");
|
|
11
11
|
template.innerHTML = templateHTML;
|
|
12
12
|
const PICKER_RADIUS = 216 / 2;
|
|
@@ -126,7 +126,16 @@ class TimePicker extends NectaryElement {
|
|
|
126
126
|
this.#controller = null;
|
|
127
127
|
}
|
|
128
128
|
static get observedAttributes() {
|
|
129
|
-
return [
|
|
129
|
+
return [
|
|
130
|
+
"value",
|
|
131
|
+
"ampm",
|
|
132
|
+
"submit-aria-label",
|
|
133
|
+
"hour-meter-aria-label",
|
|
134
|
+
"minute-meter-aria-label",
|
|
135
|
+
"hour-needle-aria-label",
|
|
136
|
+
"minute-needle-aria-label",
|
|
137
|
+
"no-submit"
|
|
138
|
+
];
|
|
130
139
|
}
|
|
131
140
|
attributeChangedCallback(name, prevValue, newVal) {
|
|
132
141
|
if (isAttrEqual(prevValue, newVal)) {
|
|
@@ -152,6 +161,22 @@ class TimePicker extends NectaryElement {
|
|
|
152
161
|
updateAttribute(this.#$submitButton, "aria-label", newVal);
|
|
153
162
|
break;
|
|
154
163
|
}
|
|
164
|
+
case "hour-meter-aria-label": {
|
|
165
|
+
updateAttribute(this.#$headerHours, "aria-label", newVal);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
case "minute-meter-aria-label": {
|
|
169
|
+
updateAttribute(this.#$headerMinutes, "aria-label", newVal);
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case "hour-needle-aria-label": {
|
|
173
|
+
updateAttribute(this.#$needleHour, "aria-label", newVal);
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
case "minute-needle-aria-label": {
|
|
177
|
+
updateAttribute(this.#$needleMinute, "aria-label", newVal);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
155
180
|
case "no-submit": {
|
|
156
181
|
const isNoSubmit = isAttrTrue(newVal);
|
|
157
182
|
updateBooleanAttribute(this, "no-submit", isNoSubmit);
|
|
@@ -178,6 +203,30 @@ class TimePicker extends NectaryElement {
|
|
|
178
203
|
get submitAriaLabel() {
|
|
179
204
|
return getAttribute(this, "submit-aria-label", "");
|
|
180
205
|
}
|
|
206
|
+
set hourMeterAriaLabel(value) {
|
|
207
|
+
updateAttribute(this, "hour-meter-aria-label", value);
|
|
208
|
+
}
|
|
209
|
+
get hourMeterAriaLabel() {
|
|
210
|
+
return getAttribute(this, "hour-meter-aria-label", "");
|
|
211
|
+
}
|
|
212
|
+
set minuteMeterAriaLabel(value) {
|
|
213
|
+
updateAttribute(this, "minute-meter-aria-label", value);
|
|
214
|
+
}
|
|
215
|
+
get minuteMeterAriaLabel() {
|
|
216
|
+
return getAttribute(this, "minute-meter-aria-label", "");
|
|
217
|
+
}
|
|
218
|
+
set hourNeedleAriaLabel(value) {
|
|
219
|
+
updateAttribute(this, "hour-needle-aria-label", value);
|
|
220
|
+
}
|
|
221
|
+
get hourNeedleAriaLabel() {
|
|
222
|
+
return getAttribute(this, "hour-needle-aria-label", "");
|
|
223
|
+
}
|
|
224
|
+
set minuteNeedleAriaLabel(value) {
|
|
225
|
+
updateAttribute(this, "minute-needle-aria-label", value);
|
|
226
|
+
}
|
|
227
|
+
get minuteNeedleAriaLabel() {
|
|
228
|
+
return getAttribute(this, "minute-needle-aria-label", "");
|
|
229
|
+
}
|
|
181
230
|
set noSubmit(value) {
|
|
182
231
|
updateBooleanAttribute(this, "no-submit", value);
|
|
183
232
|
}
|
package/time-picker/types.d.ts
CHANGED
|
@@ -10,6 +10,14 @@ export type TSinchTimePickerProps = {
|
|
|
10
10
|
'no-submit'?: boolean;
|
|
11
11
|
/** Submit button label that is used for a11y */
|
|
12
12
|
'submit-aria-label': string;
|
|
13
|
+
/** Hours meter label that is used for a11y */
|
|
14
|
+
'hour-meter-aria-label': string;
|
|
15
|
+
/** Minutes meter label that is used for a11y */
|
|
16
|
+
'minute-meter-aria-label': string;
|
|
17
|
+
/** Hour needle slider label that is used for a11y */
|
|
18
|
+
'hour-needle-aria-label': string;
|
|
19
|
+
/** Minute needle slider label that is used for a11y */
|
|
20
|
+
'minute-needle-aria-label': string;
|
|
13
21
|
readonly submitButtonRect?: TRect;
|
|
14
22
|
readonly amButtonRect?: TRect | null;
|
|
15
23
|
readonly pmButtonRect?: TRect | null;
|