Skip to content

Commit

Permalink
Replace polymer paper-slider (#18168)
Browse files Browse the repository at this point in the history
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
  • Loading branch information
silamon and bramkragten committed Oct 16, 2023
1 parent 434b959 commit 62d21be
Show file tree
Hide file tree
Showing 24 changed files with 169 additions and 358 deletions.
9 changes: 0 additions & 9 deletions demo/src/configs/jimpower/theme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,11 @@ export const demoThemeJimpower = () => ({
"primary-color": "#5294E2",
"label-badge-red": "var(--accent-color)",
"paper-tabs-selection-bar-color": "green",
"paper-slider-knob-color": "var(--accent-color)",
"light-primary-color": "var(--accent-color)",
"primary-background-color": "#383C45",
"primary-text-color": "#FFFFFF",
"paper-item-selected_-_background-color": "#434954",
"paper-slider-active-color": "var(--accent-color)",
"secondary-background-color": "#383C45",
"paper-slider-container-color":
"linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat",
"paper-slider-disabled-active-color": "var(--disabled-text-color)",
"disabled-text-color": "#7F848E",
"paper-item-icon_-_color": "green",
"paper-grey-200": "#414A59",
Expand All @@ -32,14 +27,10 @@ export const demoThemeJimpower = () => ({
"switch-unchecked-button-color": "var(--disabled-text-color)",
"label-badge-border-color": "green",
"paper-listbox-color": "var(--primary-color)",
"paper-slider-disabled-secondary-color": "var(--disabled-text-color)",
"card-background-color": "#434954",
"label-badge-text-color": "var(--primary-text-color)",
"paper-slider-knob-start-color": "var(--accent-color)",
"switch-unchecked-track-color": "var(--disabled-text-color)",
"dark-primary-color": "var(--accent-color)",
"paper-slider-secondary-color": "var(--secondary-background-color)",
"paper-slider-pin-color": "var(--accent-color)",
"paper-item-icon-active-color": "#F9C536",
"accent-color": "#E45E65",
"table-row-alternative-background-color": "#3E424B",
Expand Down
9 changes: 0 additions & 9 deletions demo/src/configs/kernehed/theme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,12 @@ export const demoThemeKernehed = () => ({
"primary-color": "#2980b9",
"label-badge-red": "var(--accent-color)",
"paper-tabs-selection-bar-color": "green",
"paper-slider-knob-color": "var(--accent-color)",
"primary-text-color": "#FFFFFF",
"light-primary-color": "var(--accent-color)",
"primary-background-color": "#222222",
"sidebar-icon-color": "#777777",
"paper-item-selected_-_background-color": "#292929",
"paper-slider-active-color": "var(--accent-color)",
"secondary-background-color": "#222222",
"paper-slider-container-color":
"linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat",
"paper-slider-disabled-active-color": "var(--disabled-text-color)",
"disabled-text-color": "#777777",
"paper-item-icon_-_color": "green",
"paper-grey-200": "#222222",
Expand All @@ -33,14 +28,10 @@ export const demoThemeKernehed = () => ({
"switch-unchecked-button-color": "var(--disabled-text-color)",
"label-badge-border-color": "green",
"paper-listbox-color": "#777777",
"paper-slider-disabled-secondary-color": "var(--disabled-text-color)",
"card-background-color": "#292929",
"label-badge-text-color": "var(--primary-text-color)",
"paper-slider-knob-start-color": "var(--accent-color)",
"switch-unchecked-track-color": "var(--disabled-text-color)",
"dark-primary-color": "var(--accent-color)",
"paper-slider-secondary-color": "var(--secondary-background-color)",
"paper-slider-pin-color": "var(--accent-color)",
"paper-item-icon-active-color": "#b58e31",
"accent-color": "#2980b9",
"table-row-alternative-background-color": "#292929",
Expand Down
5 changes: 0 additions & 5 deletions demo/src/configs/teachingbirds/theme.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,20 @@
export const demoThemeTeachingbirds = () => ({
"paper-card-header-color": "var(--paper-item-icon-color)",
"paper-slider-pin-color": "var(--primary-color)",
"paper-listbox-background-color": "#202020",
"paper-grey-50": "var(--primary-text-color)",
"paper-item-icon-color": "#d3d3d3",
"divider-color": "rgba(255, 255, 255, 0.12)",
"primary-color": "#389638",
"light-primary-color": "#6f956f",
"label-badge-red": "var(--primary-color)",
"paper-slider-secondary-color": "var(--light-primary-color)",
"paper-slider-knob-color": "var(--primary-color)",
"paper-listbox-color": "#FFFFFF",
"paper-toggle-button-checked-bar-color": "var(--light-primary-color)",
"switch-unchecked-track-color": "var(--primary-text-color)",
"card-background-color": "#4e4e4e",
"label-badge-text-color": "var(--text-primary-color)",
"primary-background-color": "#303030",
"sidebar-icon-color": "var(--paper-item-icon-color)",
"paper-slider-active-color": "#d8bf50",
"secondary-background-color": "#2b2b2b",
"paper-slider-knob-start-color": "var(--primary-color)",
"paper-item-icon-active-color": "#d8bf50",
"switch-checked-color": "var(--primary-color)",
"secondary-text-color": "#389638",
Expand Down
2 changes: 1 addition & 1 deletion gallery/src/pages/components/ha-control-circular-slider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ export class DemoHaCircularSlider extends LitElement {
<div class="field">
<p>Current</p>
<ha-slider
labeled
min="10"
max="30"
.value=${this.current}
@change=${this._currentChanged}
pin
></ha-slider>
<p>${this.current} °C</p>
</div>
Expand Down
6 changes: 3 additions & 3 deletions gallery/src/pages/components/ha-hs-color-picker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ export class DemoHaHsColorPicker extends LitElement {
></ha-hs-color-picker>
<p>Hue : ${this.value[0]}</p>
<ha-slider
labeled
step="1"
pin
min="0"
max="360"
.value=${this.value[0]}
Expand All @@ -67,8 +67,8 @@ export class DemoHaHsColorPicker extends LitElement {
</ha-slider>
<p>Saturation : ${this.value[1]}</p>
<ha-slider
labeled
step="0.01"
pin
min="0"
max="1"
.value=${this.value[1]}
Expand All @@ -77,8 +77,8 @@ export class DemoHaHsColorPicker extends LitElement {
</ha-slider>
<p>Color Brighness : ${this.brightness}</p>
<ha-slider
labeled
step="1"
pin
min="0"
max="255"
.value=${this.brightness}
Expand Down
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
"@material/mwc-radio": "0.27.0",
"@material/mwc-ripple": "0.27.0",
"@material/mwc-select": "0.27.0",
"@material/mwc-slider": "0.27.0",
"@material/mwc-switch": "0.27.0",
"@material/mwc-tab": "0.27.0",
"@material/mwc-tab-bar": "0.27.0",
Expand All @@ -89,7 +88,6 @@
"@polymer/paper-input": "3.2.1",
"@polymer/paper-item": "3.0.1",
"@polymer/paper-listbox": "3.0.1",
"@polymer/paper-slider": "3.0.1",
"@polymer/paper-tabs": "3.1.0",
"@polymer/paper-toast": "3.0.1",
"@polymer/polymer": "3.5.1",
Expand Down
3 changes: 1 addition & 2 deletions src/components/ha-form/ha-form-integer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ export class HaFormInteger extends LitElement implements HaFormElement {
`
: ""}
<ha-slider
pin
ignore-bar-touch
labeled
.value=${this._value}
.min=${this.schema.valueMin}
.max=${this.schema.valueMax}
Expand Down
90 changes: 0 additions & 90 deletions src/components/ha-labeled-slider.js

This file was deleted.

96 changes: 96 additions & 0 deletions src/components/ha-labeled-slider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import { CSSResultGroup, LitElement, css, html, nothing } from "lit";
import { customElement, property } from "lit/decorators";
import "./ha-icon";
import "./ha-slider";
import { fireEvent } from "../common/dom/fire_event";

@customElement("ha-labeled-slider")
class HaLabeledSlider extends LitElement {
@property() public labeled? = false;

@property() public caption?: string;

@property() public disabled?: boolean;

@property() public required?: boolean;

@property() public min: number = 0;

@property() public max: number = 100;

@property() public step: number = 1;

@property() public helper?: string;

@property() public extra = false;

@property() public icon?: string;

@property() public value?: number;

protected render() {
return html`
<div class="title">${this._getTitle()}</div>
<div class="extra-container"><slot name="extra"></slot></div>
<div class="slider-container">
${this.icon ? html`<ha-icon icon=${this.icon}></ha-icon>` : nothing}
<ha-slider
.min=${this.min}
.max=${this.max}
.step=${this.step}
labeled=${this.labeled}
.disabled=${this.disabled}
.value=${this.value}
@change=${this._inputChanged}
></ha-slider>
</div>
${this.helper
? html`<ha-input-helper-text> ${this.helper} </ha-input-helper-text>`
: nothing}
`;
}

private _getTitle(): string {
return `${this.caption}${this.caption && this.required ? " *" : ""}`;
}

private _inputChanged(ev) {
fireEvent(this, "value-changed", {
value: Number((ev.target as any).value),
});
}

static get styles(): CSSResultGroup {
return css`
:host {
display: block;
}
.title {
margin: 5px 0 8px;
color: var(--primary-text-color);
}
.slider-container {
display: flex;
}
ha-icon {
margin-top: 8px;
color: var(--secondary-text-color);
}
ha-slider {
flex-grow: 1;
background-image: var(--ha-slider-background);
border-radius: 4px;
}
`;
}
}

declare global {
interface HTMLElementTagNameMap {
"ha-labeled-slider": HaLabeledSlider;
}
}
12 changes: 5 additions & 7 deletions src/components/ha-selector/ha-selector-color-temp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export class HaColorTempSelector extends LitElement {
protected render() {
return html`
<ha-labeled-slider
pin
labeled
icon="hass:thermometer"
.caption=${this.label || ""}
.min=${this.selector.color_temp?.min_mireds ?? 153}
Expand All @@ -33,27 +33,25 @@ export class HaColorTempSelector extends LitElement {
.disabled=${this.disabled}
.helper=${this.helper}
.required=${this.required}
@change=${this._valueChanged}
@value-changed=${this._valueChanged}
></ha-labeled-slider>
`;
}

private _valueChanged(ev: CustomEvent) {
fireEvent(this, "value-changed", {
value: Number((ev.target as any).value),
value: Number((ev.detail as any).value),
});
}

static styles = css`
ha-labeled-slider {
--ha-slider-background: -webkit-linear-gradient(
var(--float-end),
--ha-slider-background: linear-gradient(
to var(--float-end),
rgb(255, 160, 0) 0%,
white 50%,
rgb(166, 209, 255) 100%
);
/* The color temp minimum value shouldn't be rendered differently. It's not "off". */
--paper-slider-knob-start-border-color: var(--primary-color);
}
`;
}
Expand Down
Loading

0 comments on commit 62d21be

Please sign in to comment.