@warp-ds/elements 2.10.0-next.20 → 2.10.0-next.22
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/dist/custom-elements.json +38 -0
- package/dist/docs/slider/api.md +16 -0
- package/dist/docs/slider/slider.md +16 -0
- package/dist/index.d.ts +8 -0
- package/dist/packages/checkbox-group/checkbox-group.js +6 -6
- package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
- package/dist/packages/checkbox-group/checkbox-group.test.js +93 -6
- package/dist/packages/combobox/combobox.test.js +101 -0
- package/dist/packages/radio-group/radio-group.js +1 -1
- package/dist/packages/radio-group/radio-group.js.map +2 -2
- package/dist/packages/radio-group/radio-group.test.js +78 -9
- package/dist/packages/select/locales/da/messages.mjs +1 -1
- package/dist/packages/select/locales/en/messages.mjs +1 -1
- package/dist/packages/select/locales/fi/messages.mjs +1 -1
- package/dist/packages/select/locales/nb/messages.mjs +1 -1
- package/dist/packages/select/locales/sv/messages.mjs +1 -1
- package/dist/packages/select/select.js +5 -5
- package/dist/packages/select/select.js.map +2 -2
- package/dist/packages/select/select.test.js +52 -0
- package/dist/packages/slider/locales/da/messages.mjs +1 -1
- package/dist/packages/slider/locales/en/messages.mjs +1 -1
- package/dist/packages/slider/locales/fi/messages.mjs +1 -1
- package/dist/packages/slider/locales/nb/messages.mjs +1 -1
- package/dist/packages/slider/locales/sv/messages.mjs +1 -1
- package/dist/packages/slider/react.d.ts +1 -1
- package/dist/packages/slider/slider.d.ts +8 -0
- package/dist/packages/slider/slider.js +52 -13
- package/dist/packages/slider/slider.js.map +3 -3
- package/dist/packages/slider/slider.react.stories.d.ts +1 -1
- package/dist/packages/slider/slider.stories.d.ts +2 -0
- package/dist/packages/slider/slider.stories.js +36 -0
- package/dist/packages/slider/slider.test.js +107 -0
- package/dist/packages/step/step.js +6 -6
- package/dist/packages/step/step.js.map +4 -4
- package/dist/packages/step/styles.d.ts +1 -0
- package/dist/packages/step/styles.js +2 -0
- package/dist/packages/textarea/locales/da/messages.mjs +1 -1
- package/dist/packages/textarea/locales/en/messages.mjs +1 -1
- package/dist/packages/textarea/locales/fi/messages.mjs +1 -1
- package/dist/packages/textarea/locales/nb/messages.mjs +1 -1
- package/dist/packages/textarea/locales/sv/messages.mjs +1 -1
- package/dist/packages/textarea/textarea.d.ts +1 -0
- package/dist/packages/textarea/textarea.js +20 -20
- package/dist/packages/textarea/textarea.js.map +4 -4
- package/dist/packages/textarea/textarea.test.js +73 -0
- package/dist/packages/textfield/locales/da/messages.mjs +1 -1
- package/dist/packages/textfield/locales/en/messages.mjs +1 -1
- package/dist/packages/textfield/locales/fi/messages.mjs +1 -1
- package/dist/packages/textfield/locales/nb/messages.mjs +1 -1
- package/dist/packages/textfield/locales/sv/messages.mjs +1 -1
- package/dist/packages/textfield/textfield.js +11 -11
- package/dist/packages/textfield/textfield.js.map +2 -2
- package/dist/packages/textfield/textfield.test.js +71 -0
- package/dist/web-types.json +13 -2
- package/eik/index.js +13 -13
- package/package.json +1 -1
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import { i18n } from "@lingui/core";
|
|
1
2
|
import { server, userEvent } from "vitest/browser";
|
|
2
3
|
import { html } from "lit";
|
|
3
4
|
import { expect, test, vi } from "vitest";
|
|
4
5
|
import { render } from "vitest-browser-lit";
|
|
5
6
|
import "./select.js";
|
|
7
|
+
import { messages } from "./locales/en/messages.mjs";
|
|
8
|
+
import { messages as nbMessages } from "./locales/nb/messages.mjs";
|
|
9
|
+
// Initialize i18n with English locale for tests
|
|
10
|
+
i18n.load("en", messages);
|
|
11
|
+
i18n.load("nb", nbMessages);
|
|
12
|
+
i18n.activate("en");
|
|
6
13
|
test("works in a form", async () => {
|
|
7
14
|
const component = html `
|
|
8
15
|
<form data-testid="flavour">
|
|
@@ -247,3 +254,48 @@ test.skipIf(server.browser === "chromium" && server.config.env.CI)("submits the
|
|
|
247
254
|
await userEvent.keyboard("{Enter}");
|
|
248
255
|
expect(onSubmit).toHaveBeenCalled();
|
|
249
256
|
});
|
|
257
|
+
test("renders optional indicator as 'Optional' without parentheses", async () => {
|
|
258
|
+
const page = render(html `
|
|
259
|
+
<w-select label="Country" optional>
|
|
260
|
+
<option value="no">Norway</option>
|
|
261
|
+
<option value="se">Sweden</option>
|
|
262
|
+
</w-select>
|
|
263
|
+
`);
|
|
264
|
+
await expect.element(page.getByText("Optional")).toBeVisible();
|
|
265
|
+
expect(page.getByText("(optional)").query()).toBeNull();
|
|
266
|
+
});
|
|
267
|
+
test("includes optional indicator in the accessible name", async () => {
|
|
268
|
+
const page = render(html `
|
|
269
|
+
<w-select label="Country" optional>
|
|
270
|
+
<option value="no">Norway</option>
|
|
271
|
+
<option value="se">Sweden</option>
|
|
272
|
+
</w-select>
|
|
273
|
+
`);
|
|
274
|
+
await expect
|
|
275
|
+
.element(page.getByRole("combobox", { name: /Country.*Optional/ }))
|
|
276
|
+
.toBeVisible();
|
|
277
|
+
});
|
|
278
|
+
test("does not render optional indicator when there is no label", async () => {
|
|
279
|
+
const page = render(html `
|
|
280
|
+
<w-select aria-label="Country" optional>
|
|
281
|
+
<option value="no">Norway</option>
|
|
282
|
+
<option value="se">Sweden</option>
|
|
283
|
+
</w-select>
|
|
284
|
+
`);
|
|
285
|
+
await expect.element(page.getByLabelText("Country")).toBeVisible();
|
|
286
|
+
expect(page.getByText("Optional").query()).toBeNull();
|
|
287
|
+
});
|
|
288
|
+
test("renders localized optional text based on document lang", async () => {
|
|
289
|
+
const originalLang = document.documentElement.lang;
|
|
290
|
+
document.documentElement.lang = "nb";
|
|
291
|
+
const page = render(html `
|
|
292
|
+
<w-select label="Country" optional data-testid="field">
|
|
293
|
+
<option value="no">Norway</option>
|
|
294
|
+
<option value="se">Sweden</option>
|
|
295
|
+
</w-select>
|
|
296
|
+
`);
|
|
297
|
+
const el = page.getByTestId("field").element();
|
|
298
|
+
await el.updateComplete;
|
|
299
|
+
await expect.element(page.getByText("Valgfri")).toBeVisible();
|
|
300
|
+
document.documentElement.lang = originalLang;
|
|
301
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Værdien skal være mellem \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumværdien må ikke være mindre end minimumværdien\"],\"slider.error.required\":[\"Dette felt er påkrævet\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
1
|
+
/*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valgfri\"],\"slider.error.out_of_bounds\":[\"Værdien skal være mellem \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumværdien må ikke være mindre end minimumværdien\"],\"slider.error.required\":[\"Dette felt er påkrævet\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Value must be between \",[\"min\"],\" and \",[\"max\"]],\"slider.error.overlap\":[\"The maximum value cannot be less than the minimum\"],\"slider.error.required\":[\"This field is required\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
1
|
+
/*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Optional\"],\"slider.error.out_of_bounds\":[\"Value must be between \",[\"min\"],\" and \",[\"max\"]],\"slider.error.overlap\":[\"The maximum value cannot be less than the minimum\"],\"slider.error.required\":[\"This field is required\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Arvon on oltava välillä \",[\"min\"],\" - \",[\"max\"]],\"slider.error.overlap\":[\"Maksimiarvo ei voi olla pienempi kuin minimiarvo\"],\"slider.error.required\":[\"Tämä kenttä on pakollinen\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
1
|
+
/*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valinnainen\"],\"slider.error.out_of_bounds\":[\"Arvon on oltava välillä \",[\"min\"],\" - \",[\"max\"]],\"slider.error.overlap\":[\"Maksimiarvo ei voi olla pienempi kuin minimiarvo\"],\"slider.error.required\":[\"Tämä kenttä on pakollinen\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Verdien må være mellom \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumsverdien kan ikke være mindre enn minimumsverdien\"],\"slider.error.required\":[\"Dette feltet er påkrevd\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
1
|
+
/*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valgfri\"],\"slider.error.out_of_bounds\":[\"Verdien må være mellom \",[\"min\"],\" og \",[\"max\"]],\"slider.error.overlap\":[\"Maksimumsverdien kan ikke være mindre enn minimumsverdien\"],\"slider.error.required\":[\"Dette feltet er påkrevd\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*eslint-disable*/ export const messages = JSON.parse("{\"slider.error.out_of_bounds\":[\"Värdet måste vara mellan \",[\"min\"],\" och \",[\"max\"]],\"slider.error.overlap\":[\"Maxvärdet kan inte vara mindre än minimivärdet\"],\"slider.error.required\":[\"Detta fält är obligatoriskt\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
1
|
+
/*eslint-disable*/ export const messages = JSON.parse("{\"select.label.optional\":[\"Valfritt\"],\"slider.error.out_of_bounds\":[\"Värdet måste vara mellan \",[\"min\"],\" och \",[\"max\"]],\"slider.error.overlap\":[\"Maxvärdet kan inte vara mindre än minimivärdet\"],\"slider.error.required\":[\"Detta fält är obligatoriskt\"],\"slider.label.from\":[\"From\"],\"slider.label.to\":[\"To\"],\"slider.placeholder.from\":[\"Min\"],\"slider.placeholder.to\":[\"Max\"]}");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { WarpSlider } from "./slider.js";
|
|
3
3
|
export { SliderThumb } from "../slider-thumb/react.js";
|
|
4
|
-
export declare const Slider: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpSlider>, "fieldset" | "label" | "disabled" | "invalid" | "helpText" | "max" | "min" | "required" | "step" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "updated" | "render" | "renderOptions" | "error" | "openEnded" | "markers" | "suffix" | "valueFormatter" | "tooltipFormatter" | "labelFormatter" | "hiddenTextfield" | "_invalidMessage" | "_hasInternalError" | "_showError" | "_tabbableElements" | "edgeMin" | "edgeMax" | "componentHasError" | "errorText"> & {} & Partial<Omit<WarpSlider, keyof HTMLElement>> & React.RefAttributes<WarpSlider>, "ref">, "help-text" | "open-ended" | "hidden-textfield"> & {
|
|
4
|
+
export declare const Slider: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpSlider>, "fieldset" | "label" | "disabled" | "invalid" | "helpText" | "optional" | "max" | "min" | "required" | "step" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "updated" | "_label" | "render" | "renderOptions" | "error" | "openEnded" | "markers" | "suffix" | "valueFormatter" | "tooltipFormatter" | "labelFormatter" | "hiddenTextfield" | "_invalidMessage" | "_hasInternalError" | "_showError" | "_tabbableElements" | "_hasLabel" | "edgeMin" | "edgeMax" | "componentHasError" | "errorText"> & {} & Partial<Omit<WarpSlider, keyof HTMLElement>> & React.RefAttributes<WarpSlider>, "ref">, "help-text" | "open-ended" | "hidden-textfield"> & {
|
|
5
5
|
openEnded?: boolean;
|
|
6
6
|
helpText?: string;
|
|
7
7
|
hiddenTextfield?: boolean;
|
|
@@ -48,6 +48,10 @@ declare class WarpSlider extends LitElement {
|
|
|
48
48
|
* Ensures a child slider thumb has a value before allowing the containing form to submit
|
|
49
49
|
*/
|
|
50
50
|
required: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether to show the optional indicator after the label.
|
|
53
|
+
*/
|
|
54
|
+
optional: boolean;
|
|
51
55
|
/**
|
|
52
56
|
* The minimum allowed value in the range inputs
|
|
53
57
|
* @default 0
|
|
@@ -98,6 +102,8 @@ declare class WarpSlider extends LitElement {
|
|
|
98
102
|
_showError: boolean;
|
|
99
103
|
/** @internal */
|
|
100
104
|
_tabbableElements: Array<HTMLElement>;
|
|
105
|
+
/** @internal */
|
|
106
|
+
_hasLabel: boolean;
|
|
101
107
|
constructor();
|
|
102
108
|
/** @internal */
|
|
103
109
|
get edgeMin(): string | undefined;
|
|
@@ -109,6 +115,8 @@ declare class WarpSlider extends LitElement {
|
|
|
109
115
|
get componentHasError(): boolean;
|
|
110
116
|
/** @internal */
|
|
111
117
|
get errorText(): string;
|
|
118
|
+
private _handleLabelSlotChange;
|
|
119
|
+
get _label(): import("lit").TemplateResult<1>;
|
|
112
120
|
render(): import("lit").TemplateResult<1>;
|
|
113
121
|
}
|
|
114
122
|
export { WarpSlider };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var me=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var P=a=>{throw TypeError(a)};var c=(a,r,e,o)=>{for(var t=o>1?void 0:o?ve(r,e):r,i=a.length-1,
|
|
1
|
+
var me=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var P=a=>{throw TypeError(a)};var c=(a,r,e,o)=>{for(var t=o>1?void 0:o?ve(r,e):r,i=a.length-1,n;i>=0;i--)(n=a[i])&&(t=(o?n(r,e,t):n(t))||t);return o&&t&&me(r,e,t),t};var fe=(a,r,e)=>r.has(a)||P("Cannot "+e);var R=(a,r,e)=>r.has(a)?P("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(a):r.set(a,e);var h=(a,r,e)=>(fe(a,r,"access private method"),e);import{css as qe,html as x,LitElement as le,nothing as T}from"lit";import{property as g,query as De,state as k}from"lit/decorators.js";var u=a=>typeof a=="string",we=a=>typeof a=="function",H=new Map,X="en";function Y(a){return[...Array.isArray(a)?a:[a],X]}function I(a,r,e){let o=Y(a);e||(e="default");let t;if(typeof e=="string")switch(t={day:"numeric",month:"short",year:"numeric"},e){case"full":t.weekday="long";case"long":t.month="long";break;case"short":t.month="numeric";break}else t=e;return E(()=>M("date",o,e),()=>new Intl.DateTimeFormat(o,t)).format(u(r)?new Date(r):r)}function xe(a,r,e){let o;if(e||(e="default"),typeof e=="string")switch(o={second:"numeric",minute:"numeric",hour:"numeric"},e){case"full":case"long":o.timeZoneName="short";break;case"short":delete o.second}else o=e;return I(a,r,o)}function $(a,r,e){let o=Y(a);return E(()=>M("number",o,e),()=>new Intl.NumberFormat(o,e)).format(r)}function V(a,r,e,{offset:o=0,...t}){let i=Y(a),n=r?E(()=>M("plural-ordinal",i),()=>new Intl.PluralRules(i,{type:"ordinal"})):E(()=>M("plural-cardinal",i),()=>new Intl.PluralRules(i,{type:"cardinal"}));return t[e]??t[n.select(e-o)]??t.other}function E(a,r){let e=a(),o=H.get(e);return o||(o=r(),H.set(e,o)),o}function M(a,r,e){let o=r.join("-");return`${a}-${o}-${JSON.stringify(e)}`}var Z=/\\u[a-fA-F0-9]{4}|\\x[a-fA-F0-9]{2}/,B=a=>a.replace(/\\u([a-fA-F0-9]{4})|\\x([a-fA-F0-9]{2})/g,(r,e,o)=>{if(e){let t=parseInt(e,16);return String.fromCharCode(t)}else{let t=parseInt(o,16);return String.fromCharCode(t)}}),J="%__lingui_octothorpe__%",ke=(a,r,e={})=>{let o=r||a,t=n=>typeof n=="object"?n:e[n],i=(n,s)=>{let b=Object.keys(e).length?t("number"):void 0,v=$(o,n,b);return s.replace(new RegExp(J,"g"),v)};return{plural:(n,s)=>{let{offset:b=0}=s,v=V(o,!1,n,s);return i(n-b,v)},selectordinal:(n,s)=>{let{offset:b=0}=s,v=V(o,!0,n,s);return i(n-b,v)},select:ye,number:(n,s)=>$(o,n,t(s)||{style:s}),date:(n,s)=>I(o,n,t(s)||s),time:(n,s)=>xe(o,n,t(s)||s)}},ye=(a,r)=>r[a]??r.other;function _e(a,r,e){return(o={},t)=>{let i=ke(r,e,t),n=(b,v=!1)=>Array.isArray(b)?b.reduce((y,_)=>{if(_==="#"&&v)return y+J;if(u(_))return y+_;let[D,f,O]=_,F={};f==="plural"||f==="selectordinal"||f==="select"?Object.entries(O).forEach(([C,ue])=>{F[C]=n(ue,f==="plural"||f==="selectordinal")}):F=O;let z;if(f){let C=i[f];z=C(o[D],F)}else z=o[D];return z==null?y:y+z},""):b,s=n(a);return u(s)&&Z.test(s)?B(s):u(s)?s:s?String(s):""}}var ze=Object.defineProperty,Ee=(a,r,e)=>r in a?ze(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e,Me=(a,r,e)=>(Ee(a,typeof r!="symbol"?r+"":r,e),e),A=class{constructor(){Me(this,"_events",{})}on(r,e){var o;return(o=this._events)[r]??(o[r]=[]),this._events[r].push(e),()=>this.removeListener(r,e)}removeListener(r,e){let o=this._getListeners(r);if(!o)return;let t=o.indexOf(e);~t&&o.splice(t,1)}emit(r,...e){let o=this._getListeners(r);o&&o.map(t=>t.apply(this,e))}_getListeners(r){let e=this._events[r];return Array.isArray(e)?e:!1}},Le=Object.defineProperty,Te=(a,r,e)=>r in a?Le(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e,w=(a,r,e)=>(Te(a,typeof r!="symbol"?r+"":r,e),e),N=class extends A{constructor(r){super(),w(this,"_locale",""),w(this,"_locales"),w(this,"_localeData",{}),w(this,"_messages",{}),w(this,"_missing"),w(this,"_messageCompiler"),w(this,"t",this._.bind(this)),r.missing!=null&&(this._missing=r.missing),r.messages!=null&&this.load(r.messages),r.localeData!=null&&this.loadLocaleData(r.localeData),(typeof r.locale=="string"||r.locales)&&this.activate(r.locale??X,r.locales)}get locale(){return this._locale}get locales(){return this._locales}get messages(){return this._messages[this._locale]??{}}get localeData(){return this._localeData[this._locale]??{}}_loadLocaleData(r,e){let o=this._localeData[r];o?Object.assign(o,e):this._localeData[r]=e}setMessagesCompiler(r){return this._messageCompiler=r,this}loadLocaleData(r,e){typeof r=="string"?this._loadLocaleData(r,e):Object.keys(r).forEach(o=>this._loadLocaleData(o,r[o])),this.emit("change")}_load(r,e){let o=this._messages[r];o?Object.assign(o,e):this._messages[r]=e}load(r,e){typeof r=="string"&&typeof e=="object"?this._load(r,e):Object.entries(r).forEach(([o,t])=>this._load(o,t)),this.emit("change")}loadAndActivate({locale:r,locales:e,messages:o}){this._locale=r,this._locales=e||void 0,this._messages[this._locale]=o,this.emit("change")}activate(r,e){this._locale=r,this._locales=e,this.emit("change")}_(r,e,o){if(!this.locale)throw new Error("Lingui: Attempted to call a translation function without setting a locale.\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\nThis issue may also occur due to a race condition in your initialization logic.");let t=o?.message;r||(r=""),u(r)||(e=r.values||e,t=r.message,r=r.id);let i=this.messages[r],n=i===void 0,s=this._missing;if(s&&n)return we(s)?s(this._locale,r):s;n&&this.emit("missing",{id:r,locale:this._locale});let b=i||t||r;return u(b)&&(this._messageCompiler?b=this._messageCompiler(b):console.warn(`Uncompiled message detected! Message:
|
|
2
2
|
|
|
3
3
|
> ${b}
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ That means you use raw catalog or your catalog doesn't have a translation for th
|
|
|
6
6
|
ICU features such as interpolation and plurals will not work properly for that message.
|
|
7
7
|
|
|
8
8
|
Please compile your catalog first.
|
|
9
|
-
`)),
|
|
9
|
+
`)),u(b)&&Z.test(b)?B(b):u(b)?b:_e(b,this._locale,this._locales)(e,o?.formats)}date(r,e){return I(this._locales||this._locale,r,e)}number(r,e){return $(this._locales||this._locale,r,e)}};function Se(a={}){return new N(a)}var p=Se();var Fe=["en","nb","fi","da","sv"],j="en",L=a=>Fe.find(r=>a===r||a.toLowerCase().includes(r))||j;function U(){if(typeof window>"u"){let a=process.env.NMP_LANGUAGE||Intl.DateTimeFormat().resolvedOptions().locale;return L(a)}try{let a=G(document);if(a)return L(a);let r=Ne();if(r)return L(r);let e=G(ee());return e?L(e):j}catch(a){return console.warn("could not detect locale, falling back to source locale",a),j}}var Q=(a,r,e,o,t)=>{p.load("en",a),p.load("nb",r),p.load("fi",e),p.load("da",o),p.load("sv",t);let i=U();p.activate(i),W(),$e()},Ce="warp-i18n-change";function W(){typeof window>"u"||window.dispatchEvent(new Event(Ce))}var K=!1;function $e(){if(K||typeof window>"u"||!document?.documentElement)return;K=!0;let a=()=>{let t=U();p.locale!==t&&(p.activate(t),W())},r=new MutationObserver(t=>{for(let i of t)if(i.type==="attributes"&&i.attributeName==="lang"){a();break}});r.observe(document.documentElement,{attributes:!0,attributeFilter:["lang"]});let e=ee();e&&e.documentElement&&e!==document&&r.observe(e.documentElement,{attributes:!0,attributeFilter:["lang"]});let o=Ae();o&&r.observe(o,{attributes:!0,attributeFilter:["lang"]})}function ee(){try{return window.parent?.document??null}catch{return null}}function G(a){try{return a?.documentElement?.lang??""}catch{return""}}function Ae(){try{return window.frameElement??null}catch{return null}}function Ne(){try{return window.frameElement?.getAttribute?.("lang")??""}catch{return""}}import{css as Ye}from"lit";import{unsafeCSS as Ie}from"lit";var re=Ye`
|
|
10
10
|
*,
|
|
11
11
|
:before,
|
|
12
12
|
:after {
|
|
@@ -279,7 +279,7 @@ Please compile your catalog first.
|
|
|
279
279
|
svg {
|
|
280
280
|
pointer-events: none;
|
|
281
281
|
}
|
|
282
|
-
`,
|
|
282
|
+
`,Be=Ie(`*, :before, :after {
|
|
283
283
|
--w-rotate: 0;
|
|
284
284
|
--w-rotate-x: 0;
|
|
285
285
|
--w-rotate-y: 0;
|
|
@@ -2445,7 +2445,7 @@ Please compile your catalog first.
|
|
|
2445
2445
|
display: none
|
|
2446
2446
|
}
|
|
2447
2447
|
}
|
|
2448
|
-
`);var oe=JSON.parse('{"slider.error.out_of_bounds":["V\xE6rdien skal v\xE6re mellem ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumv\xE6rdien m\xE5 ikke v\xE6re mindre end minimumv\xE6rdien"],"slider.error.required":["Dette felt er p\xE5kr\xE6vet"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var te=JSON.parse('{"slider.error.out_of_bounds":["Value must be between ",["min"]," and ",["max"]],"slider.error.overlap":["The maximum value cannot be less than the minimum"],"slider.error.required":["This field is required"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ae=JSON.parse('{"slider.error.out_of_bounds":["Arvon on oltava v\xE4lill\xE4 ",["min"]," - ",["max"]],"slider.error.overlap":["Maksimiarvo ei voi olla pienempi kuin minimiarvo"],"slider.error.required":["T\xE4m\xE4 kentt\xE4 on pakollinen"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ie=JSON.parse('{"slider.error.out_of_bounds":["Verdien m\xE5 v\xE6re mellom ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumsverdien kan ikke v\xE6re mindre enn minimumsverdien"],"slider.error.required":["Dette feltet er p\xE5krevd"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var
|
|
2448
|
+
`);var oe=JSON.parse('{"select.label.optional":["Valgfri"],"slider.error.out_of_bounds":["V\xE6rdien skal v\xE6re mellem ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumv\xE6rdien m\xE5 ikke v\xE6re mindre end minimumv\xE6rdien"],"slider.error.required":["Dette felt er p\xE5kr\xE6vet"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var te=JSON.parse('{"select.label.optional":["Optional"],"slider.error.out_of_bounds":["Value must be between ",["min"]," and ",["max"]],"slider.error.overlap":["The maximum value cannot be less than the minimum"],"slider.error.required":["This field is required"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ae=JSON.parse('{"select.label.optional":["Valinnainen"],"slider.error.out_of_bounds":["Arvon on oltava v\xE4lill\xE4 ",["min"]," - ",["max"]],"slider.error.overlap":["Maksimiarvo ei voi olla pienempi kuin minimiarvo"],"slider.error.required":["T\xE4m\xE4 kentt\xE4 on pakollinen"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ie=JSON.parse('{"select.label.optional":["Valgfri"],"slider.error.out_of_bounds":["Verdien m\xE5 v\xE6re mellom ",["min"]," og ",["max"]],"slider.error.overlap":["Maksimumsverdien kan ikke v\xE6re mindre enn minimumsverdien"],"slider.error.required":["Dette feltet er p\xE5krevd"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');var ne=JSON.parse('{"select.label.optional":["Valfritt"],"slider.error.out_of_bounds":["V\xE4rdet m\xE5ste vara mellan ",["min"]," och ",["max"]],"slider.error.overlap":["Maxv\xE4rdet kan inte vara mindre \xE4n minimiv\xE4rdet"],"slider.error.required":["Detta f\xE4lt \xE4r obligatoriskt"],"slider.label.from":["From"],"slider.label.to":["To"],"slider.placeholder.from":["Min"],"slider.placeholder.to":["Max"]}');import{css as je}from"lit";var se=je`
|
|
2449
2449
|
.w-slider {
|
|
2450
2450
|
position: relative;
|
|
2451
2451
|
border: none;
|
|
@@ -2615,23 +2615,35 @@ Please compile your catalog first.
|
|
|
2615
2615
|
bottom: 0;
|
|
2616
2616
|
grid-area: slider;
|
|
2617
2617
|
}
|
|
2618
|
-
`;var l,m,de,ce,be,he,ge,
|
|
2618
|
+
`;var l,m,de,ce,be,he,ge,pe,q,S,d=class extends le{constructor(){super();R(this,l);this.disabled=!1;this.openEnded=!1;this.invalid=!1;this.required=!1;this.optional=!1;this.hiddenTextfield=!1;this._invalidMessage="";this._hasInternalError=!1;this._showError=!1;this._tabbableElements=[];this._hasLabel=!1;Q(te,ie,ae,oe,ne)}get edgeMin(){return this.openEnded?(Number(this.min)-1).toString():this.min}get edgeMax(){return this.openEnded?(Number(this.max)+1).toString():this.max}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.step&&this.fieldset.style.setProperty("--step",String(this.step)),this.min!==void 0&&this.fieldset.style.setProperty("--min",this.edgeMin),this.max!==void 0&&this.fieldset.style.setProperty("--max",this.max),this.markers&&this.fieldset.style.setProperty("--markers",String(this.markers)),this.openEnded&&this.fieldset.style.setProperty("--over-under-offset","1"),this.label&&(this._hasLabel=!0);let e=this.querySelectorAll("w-slider-thumb");if(e.length===2){this.fieldset.style.setProperty("--range-slider-magic-pixel","1px");let t=[...e];this._tabbableElements[0]=t[0].shadowRoot.querySelector("input"),this._tabbableElements[1]=t[1].shadowRoot.querySelector("input"),this._tabbableElements[2]=t[0].shadowRoot.querySelector("w-textfield"),this._tabbableElements[3]=t[1].shadowRoot.querySelector("w-textfield")}else if(e.length===1){let t=[...e];this._tabbableElements[0]=t[0].shadowRoot.querySelector("input"),this._tabbableElements[1]=t[0].shadowRoot.querySelector("w-textfield")}this.invalid&&this.error&&(this._showError=!0),h(this,l,m).call(this)}updated(e){(e.has("disabled")||e.has("required")||e.has("min")||e.has("step")||e.has("max")||e.has("suffix")||e.has("labelFormatter")||e.has("valueFormatter")||e.has("_invalidMessage")||e.has("_hasInternalError"))&&h(this,l,m).call(this),(e.has("error")||e.has("invalid"))&&(this.error&&this.invalid?this._showError=!0:this._showError=!1,h(this,l,m).call(this))}get componentHasError(){return this.invalid||this._hasInternalError}get errorText(){return this._showError?this.error||this._invalidMessage:""}_handleLabelSlotChange(e){let t=e.target.assignedElements().length>0;this._hasLabel=t||!!this.label,console.log("Label content changed, has label:",this._hasLabel)}get _label(){let e=this._hasLabel&&this.optional&&!this.required?x`<span class="w-slider__optional"
|
|
2619
|
+
>${p._({id:"select.label.optional",message:"Optional",comment:"Shown behind label when marked as optional"})}</span
|
|
2620
|
+
>`:T;return this.label?x`<legend class="w-slider__label">
|
|
2621
|
+
<slot
|
|
2622
|
+
id="label"
|
|
2623
|
+
name="label"
|
|
2624
|
+
@slotchange=${this._handleLabelSlotChange}
|
|
2625
|
+
>${this.label}</slot
|
|
2626
|
+
>${e}
|
|
2627
|
+
</legend>`:x`<slot
|
|
2628
|
+
id="label"
|
|
2629
|
+
name="label"
|
|
2630
|
+
@slotchange=${this._handleLabelSlotChange}
|
|
2631
|
+
></slot
|
|
2632
|
+
>${e}`}render(){return x`
|
|
2619
2633
|
<fieldset
|
|
2620
2634
|
id="fieldset"
|
|
2621
2635
|
class="w-slider"
|
|
2622
2636
|
@input="${h(this,l,ce)}"
|
|
2623
2637
|
@focusout="${h(this,l,be)}"
|
|
2624
|
-
@slidervalidity="${h(this,l,
|
|
2638
|
+
@slidervalidity="${h(this,l,pe)}"
|
|
2625
2639
|
@thumbreset="${h(this,l,de)}"
|
|
2626
2640
|
@keydown="${h(this,l,he)}"
|
|
2627
|
-
aria-invalid="${this.errorText?"true":
|
|
2641
|
+
aria-invalid="${this.errorText?"true":T}"
|
|
2628
2642
|
?disabled="${this.disabled}"
|
|
2629
2643
|
>
|
|
2630
|
-
${this.
|
|
2631
|
-
<slot id="label" name="label">${this.label}</slot>
|
|
2632
|
-
</legend>`:x`<slot id="label" name="label"></slot>`}
|
|
2644
|
+
${this._label}
|
|
2633
2645
|
<slot class="w-slider__description" name="description"></slot>
|
|
2634
|
-
${this.markers?x`<div class="w-slider__markers"></div>`:
|
|
2646
|
+
${this.markers?x`<div class="w-slider__markers"></div>`:T}
|
|
2635
2647
|
<div class="w-slider__range">
|
|
2636
2648
|
<div class="w-slider__active-range"></div>
|
|
2637
2649
|
</div>
|
|
@@ -2653,7 +2665,34 @@ Please compile your catalog first.
|
|
|
2653
2665
|
${this.errorText}
|
|
2654
2666
|
</p>`:this.helpText?x`<p class="w-slider__help-text" aria-describes="fieldset">
|
|
2655
2667
|
${this.helpText}
|
|
2656
|
-
</p>`:
|
|
2668
|
+
</p>`:T}
|
|
2657
2669
|
</fieldset>
|
|
2658
|
-
`}};l=new WeakSet,m=function(){let e=this.querySelectorAll("w-slider-thumb"),o=!1;for(let t of e.values())t.min=this.edgeMin,t.max=this.edgeMax,t.step=this.step,t.suffix=this.suffix??"",t.required=this.required,t.labelFormatter=this.labelFormatter,t.valueFormatter=this.valueFormatter,t.tooltipFormatter=this.tooltipFormatter,t.openEnded=this.openEnded,t._hiddenTextfield=this.hiddenTextfield,t.ariaLabel||(t.slot||(t.ariaLabel=this.label||null),t.slot==="from"&&(t.ariaLabel=`${this.label} min`),t.slot==="to"&&(t.ariaLabel=`${this.label} max`)),(t.slot==="from"||t.slot==="to")&&(o=!0),t.disabled=this.disabled,t.invalid=!!this.errorText,h(this,l,
|
|
2670
|
+
`}};l=new WeakSet,m=function(){let e=this.querySelectorAll("w-slider-thumb"),o=!1;for(let t of e.values())t.min=this.edgeMin,t.max=this.edgeMax,t.step=this.step,t.suffix=this.suffix??"",t.required=this.required,t.labelFormatter=this.labelFormatter,t.valueFormatter=this.valueFormatter,t.tooltipFormatter=this.tooltipFormatter,t.openEnded=this.openEnded,t._hiddenTextfield=this.hiddenTextfield,t.ariaLabel||(t.slot||(t.ariaLabel=this.label||null),t.slot==="from"&&(t.ariaLabel=`${this.label} min`),t.slot==="to"&&(t.ariaLabel=`${this.label} max`)),(t.slot==="from"||t.slot==="to")&&(o=!0),t.disabled=this.disabled,t.invalid=!!this.errorText,h(this,l,S).call(this,t);o?(this.fieldset.style.setProperty("--active-range-inline-start-padding","var(--w-slider-thumb-size, 28px)"),this.fieldset.style.setProperty("--active-range-inline-end-padding","var(--w-slider-thumb-size, 28px)")):this.fieldset.style.setProperty("--active-range-border-radius","4px")},de=function(e){e.stopPropagation();let o=e.target;h(this,l,S).call(this,o)},ce=function(e){let o=e.target;h(this,l,S).call(this,o),o.slot&&h(this,l,ge).call(this)},be=function(){this.componentHasError?this._showError=!0:this._showError=!1,h(this,l,m).call(this)},he=function(e){if(e.key==="Tab"){let o=this._tabbableElements.indexOf(e.target.shadowRoot.activeElement);if(o===-1)return;let t=e.shiftKey?-1:1,i=this._tabbableElements[o+t];if(!i)return;e.preventDefault(),i.focus()}},ge=function(){let e=null,o=null,t=this.querySelectorAll("w-slider-thumb");for(let i of t.values())i.slot==="from"&&(e=i),i.slot==="to"&&(o=i);!e||!o||!e.invalid&&o.invalid},pe=function(e){e.stopPropagation();let o=this._hasInternalError||this.invalid,t=e.target;if(this._hasInternalError=!!e.detail.invalid||this.invalid,this._invalidMessage=e.detail.invalid,o===!0&&this._hasInternalError===!1){let i=this.querySelectorAll("w-slider-thumb");for(let n of i.values())n!==t&&n.updateFieldAfterValidation()}},q=function(e,o){return o.value??=this.openEnded?"":e,o.value===""?e:o.value},S=function(e){let o=e.slot;o||this.fieldset.style.setProperty("--from","0"),o==="from"&&this.fieldset.style.setProperty("--from",h(this,l,q).call(this,this.edgeMin,e)),(!o||o==="to")&&this.fieldset.style.setProperty("--to",h(this,l,q).call(this,this.edgeMax,e))},d.shadowRootOptions={...le.shadowRootOptions,delegatesFocus:!0},d.styles=[re,se,qe`
|
|
2671
|
+
:host {
|
|
2672
|
+
/* Added style API for optional only just to mirror other optional implementations */
|
|
2673
|
+
/* The rest of the styling API still needs to be implemented */
|
|
2674
|
+
--_padding-left: var(--w-c-slider-optional-padding-left, 0.8rem);
|
|
2675
|
+
--_font-weight: var(--w-c-slider-optional-font-weight, 400);
|
|
2676
|
+
--_font-size: var(
|
|
2677
|
+
--w-c-slider-optional-font-size,
|
|
2678
|
+
var(--w-font-size-s)
|
|
2679
|
+
);
|
|
2680
|
+
--_line-height: var(
|
|
2681
|
+
--w-c-slider-optional-line-height,
|
|
2682
|
+
var(--w-line-height-s)
|
|
2683
|
+
);
|
|
2684
|
+
--_color: var(
|
|
2685
|
+
--w-c-slider-optional-color,
|
|
2686
|
+
var(--w-s-color-text-subtle)
|
|
2687
|
+
);
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2690
|
+
.w-slider__optional {
|
|
2691
|
+
padding-left: var(--_padding-left);
|
|
2692
|
+
font-weight: var(--_font-weight);
|
|
2693
|
+
font-size: var(--_font-size);
|
|
2694
|
+
line-height: var(--_line-height);
|
|
2695
|
+
color: var(--_color);
|
|
2696
|
+
}
|
|
2697
|
+
`],c([g({reflect:!0})],d.prototype,"label",2),c([g({type:Boolean,reflect:!0})],d.prototype,"disabled",2),c([g({type:Boolean,attribute:"open-ended"})],d.prototype,"openEnded",2),c([g({type:String,reflect:!0})],d.prototype,"error",2),c([g({type:String,reflect:!0,attribute:"help-text"})],d.prototype,"helpText",2),c([g({type:Boolean,reflect:!0})],d.prototype,"invalid",2),c([g({type:Boolean,reflect:!0})],d.prototype,"required",2),c([g({type:Boolean,reflect:!0})],d.prototype,"optional",2),c([g({reflect:!0})],d.prototype,"min",2),c([g({reflect:!0})],d.prototype,"max",2),c([g({type:Number,reflect:!0})],d.prototype,"markers",2),c([g({type:Number,reflect:!0})],d.prototype,"step",2),c([g({reflect:!0})],d.prototype,"suffix",2),c([g({type:Boolean,reflect:!0,attribute:"hidden-textfield"})],d.prototype,"hiddenTextfield",2),c([g({attribute:!1})],d.prototype,"valueFormatter",2),c([g({attribute:!1})],d.prototype,"tooltipFormatter",2),c([g({attribute:!1})],d.prototype,"labelFormatter",2),c([De("fieldset")],d.prototype,"fieldset",2),c([k()],d.prototype,"_invalidMessage",2),c([k()],d.prototype,"_hasInternalError",2),c([k()],d.prototype,"_showError",2),c([k()],d.prototype,"_tabbableElements",2),c([k()],d.prototype,"_hasLabel",2);customElements.get("w-slider")||customElements.define("w-slider",d);export{d as WarpSlider};
|
|
2659
2698
|
//# sourceMappingURL=slider.js.map
|