@cas-smartdesign/lit-slider 7.2.2 → 7.2.3
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/slider.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { LitElement as p, unsafeCSS as
|
|
1
|
+
import { LitElement as p, unsafeCSS as m, css as g, html as d } from "lit";
|
|
2
2
|
import { property as o } from "lit/decorators/property.js";
|
|
3
|
-
import
|
|
3
|
+
import b from "hex-rgb";
|
|
4
4
|
import "@cas-smartdesign/lit-input";
|
|
5
|
-
import { Big as
|
|
5
|
+
import { Big as v } from "big.js";
|
|
6
6
|
class f {
|
|
7
7
|
constructor() {
|
|
8
8
|
this._rgbaColors = /* @__PURE__ */ new Map(), this._originalColors = /* @__PURE__ */ new Map();
|
|
@@ -53,7 +53,7 @@ class f {
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
convertFromHex(t) {
|
|
56
|
-
const e =
|
|
56
|
+
const e = b(t);
|
|
57
57
|
return e.alpha > 1 && (e.alpha /= 255), e;
|
|
58
58
|
}
|
|
59
59
|
convertFromRGBAString(t) {
|
|
@@ -131,7 +131,7 @@ const a = (l = class extends p {
|
|
|
131
131
|
if (Number.isNaN(e))
|
|
132
132
|
return this._value;
|
|
133
133
|
if (this.step && e >= this.min && e <= this.max) {
|
|
134
|
-
const i = new
|
|
134
|
+
const i = new v(e).minus(this.min).div(this.step).round().mul(this.step).plus(this.min);
|
|
135
135
|
e = Number.parseFloat(i.toString());
|
|
136
136
|
}
|
|
137
137
|
return e;
|
|
@@ -163,8 +163,8 @@ const a = (l = class extends p {
|
|
|
163
163
|
}
|
|
164
164
|
static get styles() {
|
|
165
165
|
return [
|
|
166
|
-
|
|
167
|
-
${
|
|
166
|
+
g`
|
|
167
|
+
${m(C)}
|
|
168
168
|
`
|
|
169
169
|
];
|
|
170
170
|
}
|
|
@@ -219,10 +219,12 @@ const a = (l = class extends p {
|
|
|
219
219
|
updateThumbPosition(t) {
|
|
220
220
|
if (this.thumbPosition = Math.min(
|
|
221
221
|
this.trackContainerWidth,
|
|
222
|
-
Math.max(0, t - this.getBoundingClientRect().left)
|
|
222
|
+
Math.max(0, Math.round(t - this.getBoundingClientRect().left))
|
|
223
223
|
), this.max - this.min > 1) {
|
|
224
|
-
const e = this.trackContainerWidth / (this.max - this.min)
|
|
225
|
-
|
|
224
|
+
const e = this.trackContainerWidth / (this.max - this.min);
|
|
225
|
+
this.thumbPosition % e && (this.thumbPosition = Math.round(
|
|
226
|
+
Math.ceil(this.thumbPosition / e) * e
|
|
227
|
+
));
|
|
226
228
|
}
|
|
227
229
|
}
|
|
228
230
|
onInputValueChange(t) {
|
package/dist/slider.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.mjs","sources":["../colorblender.ts","../slider.ts"],"sourcesContent":["import hexRgb from \"hex-rgb\";\n\nexport interface IColor {\n red: number;\n green: number;\n blue: number;\n alpha: number;\n}\n\nexport default class ColorBlender {\n private _rgbaColors: Map<number, IColor> = new Map();\n private _originalColors: Map<number, string> = new Map();\n\n public get colors(): Map<number, string> {\n return this._originalColors;\n }\n\n public set colors(newColors: Map<number, string>) {\n this._rgbaColors.clear();\n this._originalColors = newColors;\n if (newColors && newColors.size) {\n const invalidColorKey = Array.from(newColors.keys()).find((value) => {\n return value < 0 || value > 1;\n });\n if (invalidColorKey) {\n throw Error(\n \"The keys of the colors must represent the relative value where the color is fully applied.\",\n );\n }\n newColors.forEach((value, key) => {\n const color: IColor = this.convertFromRGBAString(value) || this.convertFromHex(value);\n if (Object.keys(color).length === 0 && color.constructor === Object) {\n throw Error(`Cannot convert color: ${value} to rgba-color`);\n } else {\n this._rgbaColors.set(key, color);\n }\n });\n const sortedEntries = Array.from(this._rgbaColors.entries()).sort();\n this._rgbaColors = new Map(sortedEntries);\n }\n }\n\n public blend(relativeValue: number): string {\n if (!this._rgbaColors.size) {\n throw Error(\"It is not possible to blend without a color list.\");\n }\n let leftColor: [number, IColor];\n let rightColor: [number, IColor];\n for (const entry of this._rgbaColors) {\n if (!leftColor) {\n leftColor = entry;\n }\n if (entry[0] < relativeValue) {\n leftColor = entry;\n } else if (entry[0] === relativeValue) {\n leftColor = rightColor = entry;\n break;\n } else {\n rightColor = entry;\n break;\n }\n }\n if (!rightColor) {\n rightColor = leftColor;\n }\n const diff = rightColor[0] - leftColor[0];\n if (diff) {\n return this.blendColors(leftColor[1], rightColor[1], (relativeValue - leftColor[0]) / diff);\n } else {\n return this.convertToRGBAString(leftColor[1]);\n }\n }\n\n private blendColors(colorA: IColor, colorB: IColor, relativeOffsetFromA: number): string {\n return this.convertToRGBAString({\n red: Math.round(colorA.red + (colorB.red - colorA.red) * relativeOffsetFromA),\n green: Math.round(colorA.green + (colorB.green - colorA.green) * relativeOffsetFromA),\n blue: Math.round(colorA.blue + (colorB.blue - colorA.blue) * relativeOffsetFromA),\n alpha: colorA.alpha + (colorB.alpha - colorA.alpha) * relativeOffsetFromA,\n });\n }\n\n private convertFromHex(hexColor: string): IColor {\n const color = hexRgb(hexColor);\n if (color.alpha > 1) {\n color.alpha /= 255;\n }\n return color;\n }\n\n private convertFromRGBAString(rgbaColor: string): IColor {\n const match = rgbaColor.match(/rgba?\\((\\d{1,3}), ?(\\d{1,3}), ?(\\d{1,3})\\)?(?:, ?(\\d(?:\\.\\d?))\\))?/);\n return match\n ? {\n red: parseInt(match[1], 10),\n green: parseInt(match[2], 10),\n blue: parseInt(match[3], 10),\n alpha: parseInt(match[4], 10) || 1,\n }\n : null;\n }\n\n public transparentize(color: string, alpha: number): string {\n return this.convertToRGBAString(this.convertFromRGBAString(color), alpha);\n }\n\n private convertToRGBAString(color: IColor, alpha?: number): string {\n return `rgba(${color.red},${color.green},${color.blue},${alpha || color.alpha})`;\n }\n}\n","import { LitElement, html, PropertyValues, unsafeCSS, TemplateResult, css } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport ColorBlender from \"./colorblender\";\nimport { ValidationLevel } from \"@cas-smartdesign/field-validation-message\";\nimport SDInput from \"@cas-smartdesign/lit-input\";\nimport \"@cas-smartdesign/lit-input\";\nimport { Big } from \"big.js\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [Slider.ID]: Slider;\n }\n}\n\nimport style from \"./style.scss?inline\";\n\ninterface IEventListenerRegistration {\n remove();\n}\n\nexport interface IValueChangeEvent {\n value: number;\n}\n\nexport interface CustomEventMap extends HTMLElementEventMap {\n \"immediate-value-change\": CustomEvent<IValueChangeEvent>;\n \"value-change\": CustomEvent<IValueChangeEvent>;\n}\n\nexport default interface Slider {\n addEventListener<K extends keyof CustomEventMap>(\n event: K,\n listener: ((this: this, ev: CustomEventMap[K]) => unknown) | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n removeEventListener<K extends keyof CustomEventMap>(\n type: K,\n listener: (this: this, ev: CustomEventMap[K]) => unknown,\n options?: boolean | EventListenerOptions,\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void;\n dispatchEvent<EventType extends CustomEventMap[keyof CustomEventMap]>(event: EventType): boolean;\n}\n\nexport default class Slider extends LitElement {\n public static readonly ID = \"sd-lit-slider\";\n\n @property({ type: Number })\n private thumbPosition = 0;\n private _value = 0;\n private _relativeValue = 0;\n\n @property({ type: Number, reflect: true })\n public min = 0;\n @property({ type: Number, reflect: true })\n public max = 1;\n @property({ type: Number, reflect: true })\n public step: number;\n @property({ type: Boolean, reflect: true })\n public editable: boolean;\n @property({ type: Boolean, reflect: true })\n public clampValue: boolean;\n @property({ type: String, reflect: true })\n public inputSuffix: string;\n @property({ type: Boolean, reflect: true })\n public disabled: boolean;\n @property({ type: String, attribute: true })\n public validationMessage: string;\n @property({ type: String, attribute: true })\n public validationIconSrc: string;\n @property({ type: String, attribute: true })\n public validationLevel: ValidationLevel;\n @property({ type: String, attribute: true })\n public decimalSeparator: string;\n\n @property({ type: Boolean })\n private active: boolean;\n\n private colorBlender: ColorBlender = new ColorBlender();\n private static defaultColor = \"rgb(20, 103, 186)\";\n @property()\n private baseColor: string = Slider.defaultColor;\n\n private resizeObserver: ResizeObserver;\n private lastKnownWidth: number;\n private _trackContainer: HTMLElement;\n private _inputElement: SDInput;\n private updateAlreadyRequested: boolean;\n\n constructor() {\n super();\n this.resizeObserver = new ResizeObserver(() => {\n window.requestAnimationFrame(() => {\n if (this.lastKnownWidth !== this.trackContainerWidth) {\n this.lastKnownWidth = this.trackContainerWidth;\n this.doUpdateRelativeValue(this._relativeValue, true);\n }\n });\n });\n }\n\n public firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n\n this.updateValue(Number.parseFloat(this.getAttribute(\"value\")) || this._value);\n\n this.addEventListener(\n this.useTouchEvents() ? \"touchstart\" : \"pointerdown\",\n (event: TouchEvent | PointerEvent) => {\n if (!this.hasAttribute(\"disabled\") && event.composedPath().indexOf(this.inputElement) === -1) {\n event.preventDefault();\n if ((event as PointerEvent).pointerId) {\n this.setPointerCapture((event as PointerEvent).pointerId);\n }\n this.focus();\n this.listenMoveEvents(\n (event as PointerEvent).clientX || (event as TouchEvent).changedTouches[0].clientX,\n );\n }\n },\n );\n this.addEventListener(\"keydown\", this.handleKeyDown, true);\n this.setAttribute(\"aria-valuemin\", this.min.toString());\n this.setAttribute(\"aria-valuemax\", this.max.toString());\n if (!this.hasAttribute(\"tabindex\")) {\n this.setAttribute(\"tabindex\", \"0\");\n }\n }\n\n public connectedCallback() {\n super.connectedCallback();\n [\"colors\", \"min\", \"max\", \"step\", \"editable\", \"inputSuffix\", \"value\"].forEach((p) => {\n this.upgradeProperty(p);\n });\n this.resizeObserver.observe(this);\n }\n\n public disconnectedCallback() {\n super.disconnectedCallback();\n this.lastKnownWidth = undefined;\n this.resizeObserver.disconnect();\n }\n\n private upgradeProperty(propertyName: string): void {\n if (Object.prototype.hasOwnProperty.call(this, propertyName)) {\n const value = this[propertyName];\n delete this[propertyName];\n this[propertyName] = value;\n }\n }\n\n static get observedAttributes() {\n const attributes = super.observedAttributes;\n attributes.push(\"value\");\n return attributes;\n }\n\n attributeChangedCallback(name: string, old: string | null, value: string | null): void {\n super.attributeChangedCallback(name, old, value);\n\n if ((name === \"value\" || name == \"step\") && this.hasUpdated) {\n this.updateValue(Number.parseFloat(value));\n }\n }\n\n private updateValue(newValue: number) {\n if (this.setValueInternal(newValue)) {\n if (this.inputElement) {\n this.inputElement.value = this.formattedValue();\n }\n if (this._value != newValue) {\n this.fireBothValueChangeEvents();\n }\n }\n }\n\n public get value(): number {\n return this._value;\n }\n\n public set value(newValue: number) {\n const hasChanged = this.setValueInternal(newValue);\n if (hasChanged) {\n this.fireBothValueChangeEvents();\n }\n }\n\n private roundToStep(rawValue: number): number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let roundedValue = Number.parseFloat(rawValue as any);\n if (Number.isNaN(roundedValue)) {\n return this._value;\n }\n if (this.step && roundedValue >= this.min && roundedValue <= this.max) {\n const offsetBigDecimal = new Big(roundedValue)\n .minus(this.min)\n .div(this.step)\n .round()\n .mul(this.step)\n .plus(this.min);\n roundedValue = Number.parseFloat(offsetBigDecimal.toString());\n }\n return roundedValue;\n }\n\n private setValueInternal(newValue: number): boolean {\n const roundedValue = this.roundToStep(newValue);\n const clampedValue = this.clampValue ? Math.max(this.min, Math.min(this.max, roundedValue)) : roundedValue;\n if (this._value !== clampedValue) {\n const oldValue = this._value;\n this._value = clampedValue;\n this.relativeValue = (clampedValue - this.min) / (this.max - this.min);\n this.setAttribute(\"aria-valuenow\", this._value.toString());\n this.requestUpdate(\"value\", oldValue);\n return true;\n }\n return false;\n }\n\n get relativeValue() {\n return this._relativeValue;\n }\n\n set relativeValue(newRelativeValue: number) {\n if (this._relativeValue !== newRelativeValue) {\n this.doUpdateRelativeValue(newRelativeValue);\n }\n }\n\n private doUpdateRelativeValue(newRelativeValue: number, skipColorUpdate?: boolean) {\n this._relativeValue = newRelativeValue;\n this.thumbPosition = Math.min(Math.max(0, newRelativeValue), 1) * this.trackContainerWidth;\n const newValueBasedOnRelativeValue = this.min + (this.max - this.min) * this._relativeValue;\n this.setValueInternal(newValueBasedOnRelativeValue);\n if (!skipColorUpdate && this.colors && this.colors.size) {\n this.baseColor = this.colorBlender.blend(this._relativeValue);\n }\n }\n\n public get colors(): Map<number, string> {\n return this.colorBlender.colors;\n }\n\n public set colors(newColors: Map<number, string>) {\n this.colorBlender.colors = newColors;\n if (this.colors && this.colors.size) {\n this.baseColor = this.colorBlender.blend(this._relativeValue);\n } else {\n this.baseColor = Slider.defaultColor;\n }\n }\n\n static get styles() {\n return [\n css`\n ${unsafeCSS(style)}\n `,\n ];\n }\n\n public render(): TemplateResult {\n const trackBackgroundColor = this.colorBlender.transparentize(this.baseColor, 0.26);\n const trackContainerStyle = `background-color:${trackBackgroundColor}; right: ${\n this.editable ? \"calc(var(--slider-suffix-width, 50px) + 8px)\" : \"0\"\n }`;\n const trackStyle = `transform: scaleX(${this.relativeValue}); background-color:${this.baseColor};`;\n const thumbStyle = `transform: translateX(${this.thumbPosition}px); background-color:${this.baseColor}; border-color:${trackBackgroundColor};`;\n return html`\n <div id=\"track-container\" style=\"${trackContainerStyle}\">\n <div id=\"track\" style=\"${trackStyle}\"></div>\n </div>\n <div id=\"thumb\" ?active=\"${this.active}\" style=\"${thumbStyle}\"></div>\n ${this.editable &&\n html`\n <sd-lit-input\n .value=\"${this.formattedValue()}\"\n @value-change=\"${this.onInputValueChange}\"\n ?disabled=\"${this.disabled}\"\n ><span slot=\"suffix\">${this.inputSuffix}</span>\n </sd-lit-input>\n `}\n ${this.validationMessage &&\n html`\n <sd-field-validation-message\n .message=\"${this.validationMessage}\"\n .icon=\"${this.validationIconSrc}\"\n .level=\"${this.validationLevel}\"\n >\n </sd-field-validation-message>\n `}\n `;\n }\n\n private listenMoveEvents(currentClientX: number) {\n this.active = true;\n this.onPointerMove(currentClientX);\n\n const eventListenersToRemove: IEventListenerRegistration[] = [];\n const pointerMoveListener = (event) => {\n event.stopPropagation();\n event.preventDefault();\n this.onPointerMove(event.clientX || (event.changedTouches && event.changedTouches[0].clientX));\n };\n const pointerUpListener = () => {\n this.active = false;\n eventListenersToRemove.forEach((reg) => reg.remove());\n this.fireValueChange();\n };\n if (this.useTouchEvents()) {\n eventListenersToRemove.push(this.addPointerEventListener(\"touchmove\", pointerMoveListener));\n eventListenersToRemove.push(this.addPointerEventListener(\"touchend\", pointerUpListener));\n eventListenersToRemove.push(this.addPointerEventListener(\"touchcancel\", pointerUpListener));\n } else {\n eventListenersToRemove.push(this.addPointerEventListener(\"pointermove\", pointerMoveListener));\n eventListenersToRemove.push(this.addPointerEventListener(\"pointerup\", pointerUpListener));\n }\n }\n\n private onPointerMove(clientX: number): void {\n if (this.updateAlreadyRequested) {\n return;\n }\n this.updateAlreadyRequested = true;\n window.requestAnimationFrame(async () => {\n this.updateAlreadyRequested = false;\n this.updateThumbPosition(clientX);\n const previousValue = this.relativeValue;\n this.relativeValue = this.thumbPosition / this.trackContainerWidth;\n if (this.relativeValue !== previousValue) {\n await this.updateComplete;\n this.fireValueChange(true);\n if (!this.active) {\n this.fireValueChange();\n }\n }\n });\n }\n\n private addPointerEventListener(type: string, listener: EventListener): IEventListenerRegistration {\n window.addEventListener(type, listener, true);\n return {\n remove: () => {\n window.removeEventListener(type, listener, true);\n },\n };\n }\n\n private updateThumbPosition(clientX: number): void {\n this.thumbPosition = Math.min(\n this.trackContainerWidth,\n Math.max(0, clientX - this.getBoundingClientRect().left),\n );\n if (this.max - this.min > 1) {\n // Enforce integer steps by pointer move events. Fixes #231868\n const thumbStepForIntegerOffset = this.trackContainerWidth / (this.max - this.min);\n const thumbPositionError = this.thumbPosition % thumbStepForIntegerOffset;\n if (thumbPositionError) {\n if (thumbPositionError < thumbStepForIntegerOffset / 2) {\n this.thumbPosition -= thumbPositionError;\n } else {\n this.thumbPosition += thumbStepForIntegerOffset - thumbPositionError;\n }\n }\n }\n }\n\n private onInputValueChange(event: CustomEvent) {\n this.value = Number(event.detail.value.replace(RegExp(this.escapedDecimalSeparator), \".\"));\n if (String(this.value) !== String(event.detail.value)) {\n (event.target as SDInput).value = String(this.value);\n }\n }\n\n private formattedValue(): string {\n return this.value.toString().replace(/\\./, this.decimalSeparatorOrDefault);\n }\n\n private get escapedDecimalSeparator(): string {\n return this.decimalSeparatorOrDefault.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n }\n\n private get decimalSeparatorOrDefault(): string {\n return this.decimalSeparator || Number(1.1).toLocaleString(this.navigatorLanguage).substring(1, 2);\n }\n\n private get navigatorLanguage(): string {\n if (navigator.languages && navigator.languages.length) {\n return navigator.languages[0];\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (navigator as any).userLanguage || navigator.language || (navigator as any).browserLanguage || \"en\";\n }\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (!this.hasAttribute(\"disabled\") && event.composedPath().indexOf(this.inputElement) === -1) {\n let offset = this.step || (this.max - this.min) / 100;\n if (this.max - this.min > 1) {\n // Enforce integer steps by keydown events. Fixes #231868\n offset = Math.round(offset) || 1;\n }\n switch (event.keyCode) {\n case 37:\n case 40:\n this.value = Math.max(this.value - offset, this.min);\n event.preventDefault();\n break;\n case 38:\n case 39:\n this.value = Math.min(this.value + offset, this.max);\n event.preventDefault();\n break;\n }\n }\n }\n\n private get inputElement(): SDInput {\n if (!this._inputElement) {\n this._inputElement = this.shadowRoot.querySelector(\"sd-lit-input\");\n }\n return this._inputElement;\n }\n\n private get trackContainer(): HTMLElement {\n if (!this._trackContainer) {\n this._trackContainer = this.shadowRoot.querySelector(\"#track-container\");\n }\n return this._trackContainer;\n }\n\n private get trackContainerWidth(): number {\n return this.trackContainer && this.trackContainer.offsetWidth;\n }\n\n private fireBothValueChangeEvents(): void {\n this.fireValueChange(true);\n this.fireValueChange();\n }\n\n private fireValueChange(immediate?: boolean): void {\n this.dispatchEvent(\n new CustomEvent<IValueChangeEvent>(`${immediate ? \"immediate-\" : \"\"}value-change`, {\n detail: { value: this.value },\n }),\n );\n }\n\n private useTouchEvents(): boolean {\n return this.hasAttribute(\"use-touch-events\");\n }\n}\n\nif (!customElements.get(Slider.ID)) {\n customElements.define(Slider.ID, Slider);\n}\n"],"names":["ColorBlender","newColors","value","key","color","sortedEntries","relativeValue","leftColor","rightColor","entry","diff","colorA","colorB","relativeOffsetFromA","hexColor","hexRgb","rgbaColor","match","alpha","_Slider","_a","LitElement","changedProperties","event","p","propertyName","attributes","name","old","newValue","rawValue","roundedValue","offsetBigDecimal","Big","clampedValue","oldValue","newRelativeValue","skipColorUpdate","newValueBasedOnRelativeValue","css","unsafeCSS","style","trackBackgroundColor","trackContainerStyle","trackStyle","thumbStyle","html","currentClientX","eventListenersToRemove","pointerMoveListener","pointerUpListener","reg","clientX","previousValue","type","listener","thumbStepForIntegerOffset","thumbPositionError","offset","immediate","__decorateClass","property","Slider"],"mappings":";;;;;AASA,MAAqBA,EAAa;AAAA,EAAlC,cAAA;AACI,SAAQ,kCAAuC,IAAA,GAC/C,KAAQ,sCAA2C,IAAA;AAAA,EAAI;AAAA,EAEvD,IAAW,SAA8B;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAW,OAAOC,GAAgC;AAG9C,QAFA,KAAK,YAAY,MAAA,GACjB,KAAK,kBAAkBA,GACnBA,KAAaA,EAAU,MAAM;AAI7B,UAHwB,MAAM,KAAKA,EAAU,MAAM,EAAE,KAAK,CAACC,MAChDA,IAAQ,KAAKA,IAAQ,CAC/B;AAEG,cAAM;AAAA,UACF;AAAA,QAAA;AAGR,MAAAD,EAAU,QAAQ,CAACC,GAAOC,MAAQ;AAC9B,cAAMC,IAAgB,KAAK,sBAAsBF,CAAK,KAAK,KAAK,eAAeA,CAAK;AACpF,YAAI,OAAO,KAAKE,CAAK,EAAE,WAAW,KAAKA,EAAM,gBAAgB;AACzD,gBAAM,MAAM,yBAAyBF,CAAK,gBAAgB;AAE1D,aAAK,YAAY,IAAIC,GAAKC,CAAK;AAAA,MAEvC,CAAC;AACD,YAAMC,IAAgB,MAAM,KAAK,KAAK,YAAY,QAAA,CAAS,EAAE,KAAA;AAC7D,WAAK,cAAc,IAAI,IAAIA,CAAa;AAAA,IAC5C;AAAA,EACJ;AAAA,EAEO,MAAMC,GAA+B;AACxC,QAAI,CAAC,KAAK,YAAY;AAClB,YAAM,MAAM,mDAAmD;AAEnE,QAAIC,GACAC;AACJ,eAAWC,KAAS,KAAK;AAIrB,UAHKF,MACDA,IAAYE,IAEZA,EAAM,CAAC,IAAIH;AACX,QAAAC,IAAYE;AAAA,eACLA,EAAM,CAAC,MAAMH,GAAe;AACnC,QAAAC,IAAYC,IAAaC;AACzB;AAAA,MACJ,OAAO;AACH,QAAAD,IAAaC;AACb;AAAA,MACJ;AAEJ,IAAKD,MACDA,IAAaD;AAEjB,UAAMG,IAAOF,EAAW,CAAC,IAAID,EAAU,CAAC;AACxC,WAAIG,IACO,KAAK,YAAYH,EAAU,CAAC,GAAGC,EAAW,CAAC,IAAIF,IAAgBC,EAAU,CAAC,KAAKG,CAAI,IAEnF,KAAK,oBAAoBH,EAAU,CAAC,CAAC;AAAA,EAEpD;AAAA,EAEQ,YAAYI,GAAgBC,GAAgBC,GAAqC;AACrF,WAAO,KAAK,oBAAoB;AAAA,MAC5B,KAAK,KAAK,MAAMF,EAAO,OAAOC,EAAO,MAAMD,EAAO,OAAOE,CAAmB;AAAA,MAC5E,OAAO,KAAK,MAAMF,EAAO,SAASC,EAAO,QAAQD,EAAO,SAASE,CAAmB;AAAA,MACpF,MAAM,KAAK,MAAMF,EAAO,QAAQC,EAAO,OAAOD,EAAO,QAAQE,CAAmB;AAAA,MAChF,OAAOF,EAAO,SAASC,EAAO,QAAQD,EAAO,SAASE;AAAA,IAAA,CACzD;AAAA,EACL;AAAA,EAEQ,eAAeC,GAA0B;AAC7C,UAAMV,IAAQW,EAAOD,CAAQ;AAC7B,WAAIV,EAAM,QAAQ,MACdA,EAAM,SAAS,MAEZA;AAAA,EACX;AAAA,EAEQ,sBAAsBY,GAA2B;AACrD,UAAMC,IAAQD,EAAU,MAAM,oEAAoE;AAClG,WAAOC,IACD;AAAA,MACI,KAAK,SAASA,EAAM,CAAC,GAAG,EAAE;AAAA,MAC1B,OAAO,SAASA,EAAM,CAAC,GAAG,EAAE;AAAA,MAC5B,MAAM,SAASA,EAAM,CAAC,GAAG,EAAE;AAAA,MAC3B,OAAO,SAASA,EAAM,CAAC,GAAG,EAAE,KAAK;AAAA,IAAA,IAErC;AAAA,EACV;AAAA,EAEO,eAAeb,GAAec,GAAuB;AACxD,WAAO,KAAK,oBAAoB,KAAK,sBAAsBd,CAAK,GAAGc,CAAK;AAAA,EAC5E;AAAA,EAEQ,oBAAoBd,GAAec,GAAwB;AAC/D,WAAO,QAAQd,EAAM,GAAG,IAAIA,EAAM,KAAK,IAAIA,EAAM,IAAI,IAAIc,KAASd,EAAM,KAAK;AAAA,EACjF;AACJ;;;;;;;ACxDA,MAAqBe,KAArBC,IAAA,cAAoCC,EAAW;AAAA,EA6C3C,cAAc;AACV,UAAA,GA1CJ,KAAQ,gBAAgB,GACxB,KAAQ,SAAS,GACjB,KAAQ,iBAAiB,GAGzB,KAAO,MAAM,GAEb,KAAO,MAAM,GAuBb,KAAQ,eAA6B,IAAIrB,EAAA,GAGzC,KAAQ,YAAoBoB,EAAO,cAU/B,KAAK,iBAAiB,IAAI,eAAe,MAAM;AAC3C,aAAO,sBAAsB,MAAM;AAC/B,QAAI,KAAK,mBAAmB,KAAK,wBAC7B,KAAK,iBAAiB,KAAK,qBAC3B,KAAK,sBAAsB,KAAK,gBAAgB,EAAI;AAAA,MAE5D,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EAEO,aAAaE,GAAmB;AACnC,UAAM,aAAaA,CAAiB,GAEpC,KAAK,YAAY,OAAO,WAAW,KAAK,aAAa,OAAO,CAAC,KAAK,KAAK,MAAM,GAE7E,KAAK;AAAA,MACD,KAAK,mBAAmB,eAAe;AAAA,MACvC,CAACC,MAAqC;AAClC,QAAI,CAAC,KAAK,aAAa,UAAU,KAAKA,EAAM,aAAA,EAAe,QAAQ,KAAK,YAAY,MAAM,OACtFA,EAAM,eAAA,GACDA,EAAuB,aACxB,KAAK,kBAAmBA,EAAuB,SAAS,GAE5D,KAAK,MAAA,GACL,KAAK;AAAA,UACAA,EAAuB,WAAYA,EAAqB,eAAe,CAAC,EAAE;AAAA,QAAA;AAAA,MAGvF;AAAA,IAAA,GAEJ,KAAK,iBAAiB,WAAW,KAAK,eAAe,EAAI,GACzD,KAAK,aAAa,iBAAiB,KAAK,IAAI,UAAU,GACtD,KAAK,aAAa,iBAAiB,KAAK,IAAI,UAAU,GACjD,KAAK,aAAa,UAAU,KAC7B,KAAK,aAAa,YAAY,GAAG;AAAA,EAEzC;AAAA,EAEO,oBAAoB;AACvB,UAAM,kBAAA,GACN,CAAC,UAAU,OAAO,OAAO,QAAQ,YAAY,eAAe,OAAO,EAAE,QAAQ,CAACC,MAAM;AAChF,WAAK,gBAAgBA,CAAC;AAAA,IAC1B,CAAC,GACD,KAAK,eAAe,QAAQ,IAAI;AAAA,EACpC;AAAA,EAEO,uBAAuB;AAC1B,UAAM,qBAAA,GACN,KAAK,iBAAiB,QACtB,KAAK,eAAe,WAAA;AAAA,EACxB;AAAA,EAEQ,gBAAgBC,GAA4B;AAChD,QAAI,OAAO,UAAU,eAAe,KAAK,MAAMA,CAAY,GAAG;AAC1D,YAAMvB,IAAQ,KAAKuB,CAAY;AAC/B,aAAO,KAAKA,CAAY,GACxB,KAAKA,CAAY,IAAIvB;AAAA,IACzB;AAAA,EACJ;AAAA,EAEA,WAAW,qBAAqB;AAC5B,UAAMwB,IAAa,MAAM;AACzB,WAAAA,EAAW,KAAK,OAAO,GAChBA;AAAA,EACX;AAAA,EAEA,yBAAyBC,GAAcC,GAAoB1B,GAA4B;AACnF,UAAM,yBAAyByB,GAAMC,GAAK1B,CAAK,IAE1CyB,MAAS,WAAWA,KAAQ,WAAW,KAAK,cAC7C,KAAK,YAAY,OAAO,WAAWzB,CAAK,CAAC;AAAA,EAEjD;AAAA,EAEQ,YAAY2B,GAAkB;AAClC,IAAI,KAAK,iBAAiBA,CAAQ,MAC1B,KAAK,iBACL,KAAK,aAAa,QAAQ,KAAK,eAAA,IAE/B,KAAK,UAAUA,KACf,KAAK,0BAAA;AAAA,EAGjB;AAAA,EAEA,IAAW,QAAgB;AACvB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAW,MAAMA,GAAkB;AAE/B,IADmB,KAAK,iBAAiBA,CAAQ,KAE7C,KAAK,0BAAA;AAAA,EAEb;AAAA,EAEQ,YAAYC,GAA0B;AAE1C,QAAIC,IAAe,OAAO,WAAWD,CAAe;AACpD,QAAI,OAAO,MAAMC,CAAY;AACzB,aAAO,KAAK;AAEhB,QAAI,KAAK,QAAQA,KAAgB,KAAK,OAAOA,KAAgB,KAAK,KAAK;AACnE,YAAMC,IAAmB,IAAIC,EAAIF,CAAY,EACxC,MAAM,KAAK,GAAG,EACd,IAAI,KAAK,IAAI,EACb,QACA,IAAI,KAAK,IAAI,EACb,KAAK,KAAK,GAAG;AAClB,MAAAA,IAAe,OAAO,WAAWC,EAAiB,SAAA,CAAU;AAAA,IAChE;AACA,WAAOD;AAAA,EACX;AAAA,EAEQ,iBAAiBF,GAA2B;AAChD,UAAME,IAAe,KAAK,YAAYF,CAAQ,GACxCK,IAAe,KAAK,aAAa,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAKH,CAAY,CAAC,IAAIA;AAC9F,QAAI,KAAK,WAAWG,GAAc;AAC9B,YAAMC,IAAW,KAAK;AACtB,kBAAK,SAASD,GACd,KAAK,iBAAiBA,IAAe,KAAK,QAAQ,KAAK,MAAM,KAAK,MAClE,KAAK,aAAa,iBAAiB,KAAK,OAAO,UAAU,GACzD,KAAK,cAAc,SAASC,CAAQ,GAC7B;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAcC,GAA0B;AACxC,IAAI,KAAK,mBAAmBA,KACxB,KAAK,sBAAsBA,CAAgB;AAAA,EAEnD;AAAA,EAEQ,sBAAsBA,GAA0BC,GAA2B;AAC/E,SAAK,iBAAiBD,GACtB,KAAK,gBAAgB,KAAK,IAAI,KAAK,IAAI,GAAGA,CAAgB,GAAG,CAAC,IAAI,KAAK;AACvE,UAAME,IAA+B,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK;AAC7E,SAAK,iBAAiBA,CAA4B,GAC9C,CAACD,KAAmB,KAAK,UAAU,KAAK,OAAO,SAC/C,KAAK,YAAY,KAAK,aAAa,MAAM,KAAK,cAAc;AAAA,EAEpE;AAAA,EAEA,IAAW,SAA8B;AACrC,WAAO,KAAK,aAAa;AAAA,EAC7B;AAAA,EAEA,IAAW,OAAOpC,GAAgC;AAC9C,SAAK,aAAa,SAASA,GACvB,KAAK,UAAU,KAAK,OAAO,OAC3B,KAAK,YAAY,KAAK,aAAa,MAAM,KAAK,cAAc,IAE5D,KAAK,YAAYmB,EAAO;AAAA,EAEhC;AAAA,EAEA,WAAW,SAAS;AAChB,WAAO;AAAA,MACHmB;AAAA,kBACMC,EAAUC,CAAK,CAAC;AAAA;AAAA,IAAA;AAAA,EAG9B;AAAA,EAEO,SAAyB;AAC5B,UAAMC,IAAuB,KAAK,aAAa,eAAe,KAAK,WAAW,IAAI,GAC5EC,IAAsB,oBAAoBD,CAAoB,YAChE,KAAK,WAAW,iDAAiD,GACrE,IACME,IAAa,qBAAqB,KAAK,aAAa,uBAAuB,KAAK,SAAS,KACzFC,IAAa,yBAAyB,KAAK,aAAa,yBAAyB,KAAK,SAAS,kBAAkBH,CAAoB;AAC3I,WAAOI;AAAA,+CACgCH,CAAmB;AAAA,yCACzBC,CAAU;AAAA;AAAA,uCAEZ,KAAK,MAAM,YAAYC,CAAU;AAAA,cAC1D,KAAK,YACPC;AAAA;AAAA,8BAEkB,KAAK,gBAAgB;AAAA,qCACd,KAAK,kBAAkB;AAAA,iCAC3B,KAAK,QAAQ;AAAA,2CACH,KAAK,WAAW;AAAA;AAAA,aAE9C;AAAA,cACC,KAAK,qBACPA;AAAA;AAAA,gCAEoB,KAAK,iBAAiB;AAAA,6BACzB,KAAK,iBAAiB;AAAA,8BACrB,KAAK,eAAe;AAAA;AAAA;AAAA,aAGrC;AAAA;AAAA,EAET;AAAA,EAEQ,iBAAiBC,GAAwB;AAC7C,SAAK,SAAS,IACd,KAAK,cAAcA,CAAc;AAEjC,UAAMC,IAAuD,CAAA,GACvDC,IAAsB,CAAC1B,MAAU;AACnC,MAAAA,EAAM,gBAAA,GACNA,EAAM,eAAA,GACN,KAAK,cAAcA,EAAM,WAAYA,EAAM,kBAAkBA,EAAM,eAAe,CAAC,EAAE,OAAQ;AAAA,IACjG,GACM2B,IAAoB,MAAM;AAC5B,WAAK,SAAS,IACdF,EAAuB,QAAQ,CAACG,MAAQA,EAAI,QAAQ,GACpD,KAAK,gBAAA;AAAA,IACT;AACA,IAAI,KAAK,oBACLH,EAAuB,KAAK,KAAK,wBAAwB,aAAaC,CAAmB,CAAC,GAC1FD,EAAuB,KAAK,KAAK,wBAAwB,YAAYE,CAAiB,CAAC,GACvFF,EAAuB,KAAK,KAAK,wBAAwB,eAAeE,CAAiB,CAAC,MAE1FF,EAAuB,KAAK,KAAK,wBAAwB,eAAeC,CAAmB,CAAC,GAC5FD,EAAuB,KAAK,KAAK,wBAAwB,aAAaE,CAAiB,CAAC;AAAA,EAEhG;AAAA,EAEQ,cAAcE,GAAuB;AACzC,IAAI,KAAK,2BAGT,KAAK,yBAAyB,IAC9B,OAAO,sBAAsB,YAAY;AACrC,WAAK,yBAAyB,IAC9B,KAAK,oBAAoBA,CAAO;AAChC,YAAMC,IAAgB,KAAK;AAC3B,WAAK,gBAAgB,KAAK,gBAAgB,KAAK,qBAC3C,KAAK,kBAAkBA,MACvB,MAAM,KAAK,gBACX,KAAK,gBAAgB,EAAI,GACpB,KAAK,UACN,KAAK,gBAAA;AAAA,IAGjB,CAAC;AAAA,EACL;AAAA,EAEQ,wBAAwBC,GAAcC,GAAqD;AAC/F,kBAAO,iBAAiBD,GAAMC,GAAU,EAAI,GACrC;AAAA,MACH,QAAQ,MAAM;AACV,eAAO,oBAAoBD,GAAMC,GAAU,EAAI;AAAA,MACnD;AAAA,IAAA;AAAA,EAER;AAAA,EAEQ,oBAAoBH,GAAuB;AAK/C,QAJA,KAAK,gBAAgB,KAAK;AAAA,MACtB,KAAK;AAAA,MACL,KAAK,IAAI,GAAGA,IAAU,KAAK,sBAAA,EAAwB,IAAI;AAAA,IAAA,GAEvD,KAAK,MAAM,KAAK,MAAM,GAAG;AAEzB,YAAMI,IAA4B,KAAK,uBAAuB,KAAK,MAAM,KAAK,MACxEC,IAAqB,KAAK,gBAAgBD;AAChD,MAAIC,MACIA,IAAqBD,IAA4B,IACjD,KAAK,iBAAiBC,IAEtB,KAAK,iBAAiBD,IAA4BC;AAAA,IAG9D;AAAA,EACJ;AAAA,EAEQ,mBAAmBlC,GAAoB;AAC3C,SAAK,QAAQ,OAAOA,EAAM,OAAO,MAAM,QAAQ,OAAO,KAAK,uBAAuB,GAAG,GAAG,CAAC,GACrF,OAAO,KAAK,KAAK,MAAM,OAAOA,EAAM,OAAO,KAAK,MAC/CA,EAAM,OAAmB,QAAQ,OAAO,KAAK,KAAK;AAAA,EAE3D;AAAA,EAEQ,iBAAyB;AAC7B,WAAO,KAAK,MAAM,SAAA,EAAW,QAAQ,MAAM,KAAK,yBAAyB;AAAA,EAC7E;AAAA,EAEA,IAAY,0BAAkC;AAC1C,WAAO,KAAK,0BAA0B,QAAQ,4BAA4B,MAAM;AAAA,EACpF;AAAA,EAEA,IAAY,4BAAoC;AAC5C,WAAO,KAAK,oBAA2B,IAAK,eAAe,KAAK,iBAAiB,EAAE,UAAU,GAAG,CAAC;AAAA,EACrG;AAAA,EAEA,IAAY,oBAA4B;AACpC,WAAI,UAAU,aAAa,UAAU,UAAU,SACpC,UAAU,UAAU,CAAC,IAGpB,UAAkB,gBAAgB,UAAU,YAAa,UAAkB,mBAAmB;AAAA,EAE9G;AAAA,EAEQ,cAAcA,GAA4B;AAC9C,QAAI,CAAC,KAAK,aAAa,UAAU,KAAKA,EAAM,aAAA,EAAe,QAAQ,KAAK,YAAY,MAAM,IAAI;AAC1F,UAAImC,IAAS,KAAK,SAAS,KAAK,MAAM,KAAK,OAAO;AAKlD,cAJI,KAAK,MAAM,KAAK,MAAM,MAEtBA,IAAS,KAAK,MAAMA,CAAM,KAAK,IAE3BnC,EAAM,SAAA;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACD,eAAK,QAAQ,KAAK,IAAI,KAAK,QAAQmC,GAAQ,KAAK,GAAG,GACnDnC,EAAM,eAAA;AACN;AAAA,QACJ,KAAK;AAAA,QACL,KAAK;AACD,eAAK,QAAQ,KAAK,IAAI,KAAK,QAAQmC,GAAQ,KAAK,GAAG,GACnDnC,EAAM,eAAA;AACN;AAAA,MAAA;AAAA,IAEZ;AAAA,EACJ;AAAA,EAEA,IAAY,eAAwB;AAChC,WAAK,KAAK,kBACN,KAAK,gBAAgB,KAAK,WAAW,cAAc,cAAc,IAE9D,KAAK;AAAA,EAChB;AAAA,EAEA,IAAY,iBAA8B;AACtC,WAAK,KAAK,oBACN,KAAK,kBAAkB,KAAK,WAAW,cAAc,kBAAkB,IAEpE,KAAK;AAAA,EAChB;AAAA,EAEA,IAAY,sBAA8B;AACtC,WAAO,KAAK,kBAAkB,KAAK,eAAe;AAAA,EACtD;AAAA,EAEQ,4BAAkC;AACtC,SAAK,gBAAgB,EAAI,GACzB,KAAK,gBAAA;AAAA,EACT;AAAA,EAEQ,gBAAgBoC,GAA2B;AAC/C,SAAK;AAAA,MACD,IAAI,YAA+B,GAAGA,IAAY,eAAe,EAAE,gBAAgB;AAAA,QAC/E,QAAQ,EAAE,OAAO,KAAK,MAAA;AAAA,MAAM,CAC/B;AAAA,IAAA;AAAA,EAET;AAAA,EAEQ,iBAA0B;AAC9B,WAAO,KAAK,aAAa,kBAAkB;AAAA,EAC/C;AACJ,GArZIvC,EAAuB,KAAK,iBAkC5BA,EAAe,eAAe,qBAnClCA;AAIYwC,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAHT1C,EAIT,WAAA,eAAA;AAKDyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GARxB1C,EASV,WAAA,KAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAVxB1C,EAWV,WAAA,KAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAZxB1C,EAaV,WAAA,MAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAdzB1C,EAeV,WAAA,UAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAhBzB1C,EAiBV,WAAA,YAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAlBxB1C,EAmBV,WAAA,aAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GApBzB1C,EAqBV,WAAA,UAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,WAAW,IAAM;AAAA,GAtB1B1C,EAuBV,WAAA,mBAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,WAAW,IAAM;AAAA,GAxB1B1C,EAyBV,WAAA,mBAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,WAAW,IAAM;AAAA,GA1B1B1C,EA2BV,WAAA,iBAAA;AAEAyC,EAAA;AAAA,EADNC,EAAS,EAAE,MAAM,QAAQ,WAAW,IAAM;AAAA,GA5B1B1C,EA6BV,WAAA,kBAAA;AAGCyC,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GA/BV1C,EAgCT,WAAA,QAAA;AAKAyC,EAAA;AAAA,EADPC,EAAA;AAAS,GApCO1C,EAqCT,WAAA,WAAA;AArCZ,IAAqB2C,IAArB3C;AAwZK,eAAe,IAAI2C,EAAO,EAAE,KAC7B,eAAe,OAAOA,EAAO,IAAIA,CAAM;"}
|
|
1
|
+
{"version":3,"file":"slider.mjs","sources":["../colorblender.ts","../slider.ts"],"sourcesContent":["import hexRgb from \"hex-rgb\";\n\nexport interface IColor {\n red: number;\n green: number;\n blue: number;\n alpha: number;\n}\n\nexport default class ColorBlender {\n private _rgbaColors: Map<number, IColor> = new Map();\n private _originalColors: Map<number, string> = new Map();\n\n public get colors(): Map<number, string> {\n return this._originalColors;\n }\n\n public set colors(newColors: Map<number, string>) {\n this._rgbaColors.clear();\n this._originalColors = newColors;\n if (newColors && newColors.size) {\n const invalidColorKey = Array.from(newColors.keys()).find((value) => {\n return value < 0 || value > 1;\n });\n if (invalidColorKey) {\n throw Error(\n \"The keys of the colors must represent the relative value where the color is fully applied.\",\n );\n }\n newColors.forEach((value, key) => {\n const color: IColor = this.convertFromRGBAString(value) || this.convertFromHex(value);\n if (Object.keys(color).length === 0 && color.constructor === Object) {\n throw Error(`Cannot convert color: ${value} to rgba-color`);\n } else {\n this._rgbaColors.set(key, color);\n }\n });\n const sortedEntries = Array.from(this._rgbaColors.entries()).sort();\n this._rgbaColors = new Map(sortedEntries);\n }\n }\n\n public blend(relativeValue: number): string {\n if (!this._rgbaColors.size) {\n throw Error(\"It is not possible to blend without a color list.\");\n }\n let leftColor: [number, IColor];\n let rightColor: [number, IColor];\n for (const entry of this._rgbaColors) {\n if (!leftColor) {\n leftColor = entry;\n }\n if (entry[0] < relativeValue) {\n leftColor = entry;\n } else if (entry[0] === relativeValue) {\n leftColor = rightColor = entry;\n break;\n } else {\n rightColor = entry;\n break;\n }\n }\n if (!rightColor) {\n rightColor = leftColor;\n }\n const diff = rightColor[0] - leftColor[0];\n if (diff) {\n return this.blendColors(leftColor[1], rightColor[1], (relativeValue - leftColor[0]) / diff);\n } else {\n return this.convertToRGBAString(leftColor[1]);\n }\n }\n\n private blendColors(colorA: IColor, colorB: IColor, relativeOffsetFromA: number): string {\n return this.convertToRGBAString({\n red: Math.round(colorA.red + (colorB.red - colorA.red) * relativeOffsetFromA),\n green: Math.round(colorA.green + (colorB.green - colorA.green) * relativeOffsetFromA),\n blue: Math.round(colorA.blue + (colorB.blue - colorA.blue) * relativeOffsetFromA),\n alpha: colorA.alpha + (colorB.alpha - colorA.alpha) * relativeOffsetFromA,\n });\n }\n\n private convertFromHex(hexColor: string): IColor {\n const color = hexRgb(hexColor);\n if (color.alpha > 1) {\n color.alpha /= 255;\n }\n return color;\n }\n\n private convertFromRGBAString(rgbaColor: string): IColor {\n const match = rgbaColor.match(/rgba?\\((\\d{1,3}), ?(\\d{1,3}), ?(\\d{1,3})\\)?(?:, ?(\\d(?:\\.\\d?))\\))?/);\n return match\n ? {\n red: parseInt(match[1], 10),\n green: parseInt(match[2], 10),\n blue: parseInt(match[3], 10),\n alpha: parseInt(match[4], 10) || 1,\n }\n : null;\n }\n\n public transparentize(color: string, alpha: number): string {\n return this.convertToRGBAString(this.convertFromRGBAString(color), alpha);\n }\n\n private convertToRGBAString(color: IColor, alpha?: number): string {\n return `rgba(${color.red},${color.green},${color.blue},${alpha || color.alpha})`;\n }\n}\n","import { LitElement, html, PropertyValues, unsafeCSS, TemplateResult, css } from \"lit\";\nimport { property } from \"lit/decorators/property.js\";\nimport ColorBlender from \"./colorblender\";\nimport { ValidationLevel } from \"@cas-smartdesign/field-validation-message\";\nimport SDInput from \"@cas-smartdesign/lit-input\";\nimport \"@cas-smartdesign/lit-input\";\nimport { Big } from \"big.js\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [Slider.ID]: Slider;\n }\n}\n\nimport style from \"./style.scss?inline\";\n\ninterface IEventListenerRegistration {\n remove();\n}\n\nexport interface IValueChangeEvent {\n value: number;\n}\n\nexport interface CustomEventMap extends HTMLElementEventMap {\n \"immediate-value-change\": CustomEvent<IValueChangeEvent>;\n \"value-change\": CustomEvent<IValueChangeEvent>;\n}\n\nexport default interface Slider {\n addEventListener<K extends keyof CustomEventMap>(\n event: K,\n listener: ((this: this, ev: CustomEventMap[K]) => unknown) | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n removeEventListener<K extends keyof CustomEventMap>(\n type: K,\n listener: (this: this, ev: CustomEventMap[K]) => unknown,\n options?: boolean | EventListenerOptions,\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void;\n dispatchEvent<EventType extends CustomEventMap[keyof CustomEventMap]>(event: EventType): boolean;\n}\n\nexport default class Slider extends LitElement {\n public static readonly ID = \"sd-lit-slider\";\n\n @property({ type: Number })\n private thumbPosition = 0;\n private _value = 0;\n private _relativeValue = 0;\n\n @property({ type: Number, reflect: true })\n public min = 0;\n @property({ type: Number, reflect: true })\n public max = 1;\n @property({ type: Number, reflect: true })\n public step: number;\n @property({ type: Boolean, reflect: true })\n public editable: boolean;\n @property({ type: Boolean, reflect: true })\n public clampValue: boolean;\n @property({ type: String, reflect: true })\n public inputSuffix: string;\n @property({ type: Boolean, reflect: true })\n public disabled: boolean;\n @property({ type: String, attribute: true })\n public validationMessage: string;\n @property({ type: String, attribute: true })\n public validationIconSrc: string;\n @property({ type: String, attribute: true })\n public validationLevel: ValidationLevel;\n @property({ type: String, attribute: true })\n public decimalSeparator: string;\n\n @property({ type: Boolean })\n private active: boolean;\n\n private colorBlender: ColorBlender = new ColorBlender();\n private static defaultColor = \"rgb(20, 103, 186)\";\n @property()\n private baseColor: string = Slider.defaultColor;\n\n private resizeObserver: ResizeObserver;\n private lastKnownWidth: number;\n private _trackContainer: HTMLElement;\n private _inputElement: SDInput;\n private updateAlreadyRequested: boolean;\n\n constructor() {\n super();\n this.resizeObserver = new ResizeObserver(() => {\n window.requestAnimationFrame(() => {\n if (this.lastKnownWidth !== this.trackContainerWidth) {\n this.lastKnownWidth = this.trackContainerWidth;\n this.doUpdateRelativeValue(this._relativeValue, true);\n }\n });\n });\n }\n\n public firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n\n this.updateValue(Number.parseFloat(this.getAttribute(\"value\")) || this._value);\n\n this.addEventListener(\n this.useTouchEvents() ? \"touchstart\" : \"pointerdown\",\n (event: TouchEvent | PointerEvent) => {\n if (!this.hasAttribute(\"disabled\") && event.composedPath().indexOf(this.inputElement) === -1) {\n event.preventDefault();\n if ((event as PointerEvent).pointerId) {\n this.setPointerCapture((event as PointerEvent).pointerId);\n }\n this.focus();\n this.listenMoveEvents(\n (event as PointerEvent).clientX || (event as TouchEvent).changedTouches[0].clientX,\n );\n }\n },\n );\n this.addEventListener(\"keydown\", this.handleKeyDown, true);\n this.setAttribute(\"aria-valuemin\", this.min.toString());\n this.setAttribute(\"aria-valuemax\", this.max.toString());\n if (!this.hasAttribute(\"tabindex\")) {\n this.setAttribute(\"tabindex\", \"0\");\n }\n }\n\n public connectedCallback() {\n super.connectedCallback();\n [\"colors\", \"min\", \"max\", \"step\", \"editable\", \"inputSuffix\", \"value\"].forEach((p) => {\n this.upgradeProperty(p);\n });\n this.resizeObserver.observe(this);\n }\n\n public disconnectedCallback() {\n super.disconnectedCallback();\n this.lastKnownWidth = undefined;\n this.resizeObserver.disconnect();\n }\n\n private upgradeProperty(propertyName: string): void {\n if (Object.prototype.hasOwnProperty.call(this, propertyName)) {\n const value = this[propertyName];\n delete this[propertyName];\n this[propertyName] = value;\n }\n }\n\n static get observedAttributes() {\n const attributes = super.observedAttributes;\n attributes.push(\"value\");\n return attributes;\n }\n\n attributeChangedCallback(name: string, old: string | null, value: string | null): void {\n super.attributeChangedCallback(name, old, value);\n\n if ((name === \"value\" || name == \"step\") && this.hasUpdated) {\n this.updateValue(Number.parseFloat(value));\n }\n }\n\n private updateValue(newValue: number) {\n if (this.setValueInternal(newValue)) {\n if (this.inputElement) {\n this.inputElement.value = this.formattedValue();\n }\n if (this._value != newValue) {\n this.fireBothValueChangeEvents();\n }\n }\n }\n\n public get value(): number {\n return this._value;\n }\n\n public set value(newValue: number) {\n const hasChanged = this.setValueInternal(newValue);\n if (hasChanged) {\n this.fireBothValueChangeEvents();\n }\n }\n\n private roundToStep(rawValue: number): number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let roundedValue = Number.parseFloat(rawValue as any);\n if (Number.isNaN(roundedValue)) {\n return this._value;\n }\n if (this.step && roundedValue >= this.min && roundedValue <= this.max) {\n const offsetBigDecimal = new Big(roundedValue)\n .minus(this.min)\n .div(this.step)\n .round()\n .mul(this.step)\n .plus(this.min);\n roundedValue = Number.parseFloat(offsetBigDecimal.toString());\n }\n return roundedValue;\n }\n\n private setValueInternal(newValue: number): boolean {\n const roundedValue = this.roundToStep(newValue);\n const clampedValue = this.clampValue ? Math.max(this.min, Math.min(this.max, roundedValue)) : roundedValue;\n if (this._value !== clampedValue) {\n const oldValue = this._value;\n this._value = clampedValue;\n this.relativeValue = (clampedValue - this.min) / (this.max - this.min);\n this.setAttribute(\"aria-valuenow\", this._value.toString());\n this.requestUpdate(\"value\", oldValue);\n return true;\n }\n return false;\n }\n\n get relativeValue() {\n return this._relativeValue;\n }\n\n set relativeValue(newRelativeValue: number) {\n if (this._relativeValue !== newRelativeValue) {\n this.doUpdateRelativeValue(newRelativeValue);\n }\n }\n\n private doUpdateRelativeValue(newRelativeValue: number, skipColorUpdate?: boolean) {\n this._relativeValue = newRelativeValue;\n this.thumbPosition = Math.min(Math.max(0, newRelativeValue), 1) * this.trackContainerWidth;\n const newValueBasedOnRelativeValue = this.min + (this.max - this.min) * this._relativeValue;\n this.setValueInternal(newValueBasedOnRelativeValue);\n if (!skipColorUpdate && this.colors && this.colors.size) {\n this.baseColor = this.colorBlender.blend(this._relativeValue);\n }\n }\n\n public get colors(): Map<number, string> {\n return this.colorBlender.colors;\n }\n\n public set colors(newColors: Map<number, string>) {\n this.colorBlender.colors = newColors;\n if (this.colors && this.colors.size) {\n this.baseColor = this.colorBlender.blend(this._relativeValue);\n } else {\n this.baseColor = Slider.defaultColor;\n }\n }\n\n static get styles() {\n return [\n css`\n ${unsafeCSS(style)}\n `,\n ];\n }\n\n public render(): TemplateResult {\n const trackBackgroundColor = this.colorBlender.transparentize(this.baseColor, 0.26);\n const trackContainerStyle = `background-color:${trackBackgroundColor}; right: ${\n this.editable ? \"calc(var(--slider-suffix-width, 50px) + 8px)\" : \"0\"\n }`;\n const trackStyle = `transform: scaleX(${this.relativeValue}); background-color:${this.baseColor};`;\n const thumbStyle = `transform: translateX(${this.thumbPosition}px); background-color:${this.baseColor}; border-color:${trackBackgroundColor};`;\n return html`\n <div id=\"track-container\" style=\"${trackContainerStyle}\">\n <div id=\"track\" style=\"${trackStyle}\"></div>\n </div>\n <div id=\"thumb\" ?active=\"${this.active}\" style=\"${thumbStyle}\"></div>\n ${this.editable &&\n html`\n <sd-lit-input\n .value=\"${this.formattedValue()}\"\n @value-change=\"${this.onInputValueChange}\"\n ?disabled=\"${this.disabled}\"\n ><span slot=\"suffix\">${this.inputSuffix}</span>\n </sd-lit-input>\n `}\n ${this.validationMessage &&\n html`\n <sd-field-validation-message\n .message=\"${this.validationMessage}\"\n .icon=\"${this.validationIconSrc}\"\n .level=\"${this.validationLevel}\"\n >\n </sd-field-validation-message>\n `}\n `;\n }\n\n private listenMoveEvents(currentClientX: number) {\n this.active = true;\n this.onPointerMove(currentClientX);\n\n const eventListenersToRemove: IEventListenerRegistration[] = [];\n const pointerMoveListener = (event) => {\n event.stopPropagation();\n event.preventDefault();\n this.onPointerMove(event.clientX || (event.changedTouches && event.changedTouches[0].clientX));\n };\n const pointerUpListener = () => {\n this.active = false;\n eventListenersToRemove.forEach((reg) => reg.remove());\n this.fireValueChange();\n };\n if (this.useTouchEvents()) {\n eventListenersToRemove.push(this.addPointerEventListener(\"touchmove\", pointerMoveListener));\n eventListenersToRemove.push(this.addPointerEventListener(\"touchend\", pointerUpListener));\n eventListenersToRemove.push(this.addPointerEventListener(\"touchcancel\", pointerUpListener));\n } else {\n eventListenersToRemove.push(this.addPointerEventListener(\"pointermove\", pointerMoveListener));\n eventListenersToRemove.push(this.addPointerEventListener(\"pointerup\", pointerUpListener));\n }\n }\n\n private onPointerMove(clientX: number): void {\n if (this.updateAlreadyRequested) {\n return;\n }\n this.updateAlreadyRequested = true;\n window.requestAnimationFrame(async () => {\n this.updateAlreadyRequested = false;\n this.updateThumbPosition(clientX);\n const previousValue = this.relativeValue;\n this.relativeValue = this.thumbPosition / this.trackContainerWidth;\n if (this.relativeValue !== previousValue) {\n await this.updateComplete;\n this.fireValueChange(true);\n if (!this.active) {\n this.fireValueChange();\n }\n }\n });\n }\n\n private addPointerEventListener(type: string, listener: EventListener): IEventListenerRegistration {\n window.addEventListener(type, listener, true);\n return {\n remove: () => {\n window.removeEventListener(type, listener, true);\n },\n };\n }\n\n private updateThumbPosition(clientX: number): void {\n this.thumbPosition = Math.min(\n this.trackContainerWidth,\n Math.max(0, Math.round(clientX - this.getBoundingClientRect().left)),\n );\n if (this.max - this.min > 1) {\n // Enforce integer steps by pointer move events. Fixes #231868\n const thumbStepForIntegerOffset = this.trackContainerWidth / (this.max - this.min);\n const thumbPositionError = this.thumbPosition % thumbStepForIntegerOffset;\n if (thumbPositionError) {\n this.thumbPosition = Math.round(\n Math.ceil(this.thumbPosition / thumbStepForIntegerOffset) * thumbStepForIntegerOffset,\n );\n }\n }\n }\n\n private onInputValueChange(event: CustomEvent) {\n this.value = Number(event.detail.value.replace(RegExp(this.escapedDecimalSeparator), \".\"));\n if (String(this.value) !== String(event.detail.value)) {\n (event.target as SDInput).value = String(this.value);\n }\n }\n\n private formattedValue(): string {\n return this.value.toString().replace(/\\./, this.decimalSeparatorOrDefault);\n }\n\n private get escapedDecimalSeparator(): string {\n return this.decimalSeparatorOrDefault.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n }\n\n private get decimalSeparatorOrDefault(): string {\n return this.decimalSeparator || Number(1.1).toLocaleString(this.navigatorLanguage).substring(1, 2);\n }\n\n private get navigatorLanguage(): string {\n if (navigator.languages && navigator.languages.length) {\n return navigator.languages[0];\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (navigator as any).userLanguage || navigator.language || (navigator as any).browserLanguage || \"en\";\n }\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n if (!this.hasAttribute(\"disabled\") && event.composedPath().indexOf(this.inputElement) === -1) {\n let offset = this.step || (this.max - this.min) / 100;\n if (this.max - this.min > 1) {\n // Enforce integer steps by keydown events. Fixes #231868\n offset = Math.round(offset) || 1;\n }\n switch (event.keyCode) {\n case 37:\n case 40:\n this.value = Math.max(this.value - offset, this.min);\n event.preventDefault();\n break;\n case 38:\n case 39:\n this.value = Math.min(this.value + offset, this.max);\n event.preventDefault();\n break;\n }\n }\n }\n\n private get inputElement(): SDInput {\n if (!this._inputElement) {\n this._inputElement = this.shadowRoot.querySelector(\"sd-lit-input\");\n }\n return this._inputElement;\n }\n\n private get trackContainer(): HTMLElement {\n if (!this._trackContainer) {\n this._trackContainer = this.shadowRoot.querySelector(\"#track-container\");\n }\n return this._trackContainer;\n }\n\n private get trackContainerWidth(): number {\n return this.trackContainer && this.trackContainer.offsetWidth;\n }\n\n private fireBothValueChangeEvents(): void {\n this.fireValueChange(true);\n this.fireValueChange();\n }\n\n private fireValueChange(immediate?: boolean): void {\n this.dispatchEvent(\n new CustomEvent<IValueChangeEvent>(`${immediate ? \"immediate-\" : \"\"}value-change`, {\n detail: { value: this.value },\n }),\n );\n }\n\n private useTouchEvents(): boolean {\n return this.hasAttribute(\"use-touch-events\");\n }\n}\n\nif (!customElements.get(Slider.ID)) {\n customElements.define(Slider.ID, Slider);\n}\n"],"names":["ColorBlender","newColors","value","key","color","sortedEntries","relativeValue","leftColor","rightColor","entry","diff","colorA","colorB","relativeOffsetFromA","hexColor","hexRgb","rgbaColor","match","alpha","_Slider","_a","LitElement","changedProperties","event","p","propertyName","attributes","name","old","newValue","rawValue","roundedValue","offsetBigDecimal","Big","clampedValue","oldValue","newRelativeValue","skipColorUpdate","newValueBasedOnRelativeValue","css","unsafeCSS","style","trackBackgroundColor","trackContainerStyle","trackStyle","thumbStyle","html","currentClientX","eventListenersToRemove","pointerMoveListener","pointerUpListener","reg","clientX","previousValue","type","listener","thumbStepForIntegerOffset","offset","immediate","__decorateClass","property","Slider"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cas-smartdesign/lit-slider",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.3",
|
|
4
4
|
"description": "A slider element based on LitElement & material components",
|
|
5
5
|
"main": "dist/slider-with-externals.js",
|
|
6
6
|
"module": "dist/slider.mjs",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@types/big.js": "^6.2.2",
|
|
18
|
-
"@cas-smartdesign/
|
|
19
|
-
"@cas-smartdesign/
|
|
18
|
+
"@cas-smartdesign/license-generator": "^1.7.0",
|
|
19
|
+
"@cas-smartdesign/element-preview": "^0.3.0"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|