UNPKG

@scania/tegel

Version:
50 lines (45 loc) 8.34 kB
'use strict'; var index = require('./index-DGsdvbvx.js'); const stepCss = () => `:host{position:relative;display:table-cell}:host [role=listitem]{display:flex;justify-content:start;flex-direction:row;align-items:center;gap:8px}:host [role=listitem].text-below{flex-direction:column}:host [role=listitem].lg{padding:0 20px;font:var(--tds-detail-01);letter-spacing:var(--tds-detail-01-ls)}:host [role=listitem].lg .content-container{height:30px;min-width:30px}:host [role=listitem].lg .content-container tds-icon{vertical-align:bottom}:host [role=listitem].lg .content-container .index-container{vertical-align:sub}:host [role=listitem].lg.vertical::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:36px;width:1px;top:40px;left:36px}:host [role=listitem].lg.horizontal::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;left:calc(50% + 16px + 16px);right:0;top:16px}:host [role=listitem].lg.horizontal::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;right:calc(50% + 16px + 16px);left:0;top:16px}:host [role=listitem].lg.horizontal.hide-labels::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;left:calc(50% + 16px + 8px);right:0;top:16px}:host [role=listitem].lg.horizontal.hide-labels::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;right:calc(50% + 16px + 8px);left:0;top:16px}:host [role=listitem].lg.horizontal.text-aside:not(.hide-labels)::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;left:auto;right:-10px;width:10px}:host [role=listitem].lg.horizontal.text-aside:not(.hide-labels)::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;top:16px;left:-10px;right:auto;width:10px}:host [role=listitem].sm{padding:0 20px;font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls)}:host [role=listitem].sm .index-container{vertical-align:-webkit-baseline-middle;vertical-align:-moz-middle-with-baseline}:host [role=listitem].sm .content-container{height:24px;min-width:24px}:host [role=listitem].sm .tds-step-icon{vertical-align:-webkit-baseline-middle;vertical-align:-moz-middle-with-baseline;margin-top:-2px}:host [role=listitem].sm.vertical::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:20px;width:1px;top:34px;left:32px}:host [role=listitem].sm.vertical::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:20px;width:1px;top:34px;left:32px}:host [role=listitem].sm.horizontal::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;left:calc(50% + 12px + 16px);right:0;top:13px}:host [role=listitem].sm.horizontal::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;left:0;right:calc(50% + 12px + 16px);top:13px}:host [role=listitem].sm.horizontal.hide-labels::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;left:calc(50% + 12px + 8px);right:0;top:13px}:host [role=listitem].sm.horizontal.hide-labels::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;right:calc(50% + 12px + 8px);left:0;top:13px}:host [role=listitem].sm.horizontal.text-aside:not(.hide-labels)::after{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;top:13px;left:auto;right:-10px;width:10px}:host [role=listitem].sm.horizontal.text-aside:not(.hide-labels)::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;top:13px;left:-10px;right:auto;width:10px}:host [role=listitem] .content-container{border-radius:100px;border:1px solid var(--tds-stepper-icon-background);text-align:center;position:relative}:host [role=listitem] .content-container.error{border-color:var(--tds-stepper-icon-step-border-color-warning);color:var(--tds-stepper-icon-step-border-color-warning)}:host [role=listitem] .content-container.success{background-color:var(--tds-stepper-icon-step-border-color-success);border-color:var(--tds-stepper-icon-step-border-color-success);color:var(--tds-white)}:host [role=listitem] .content-container.current{background-color:var(--tds-stepper-icon-step-border-color-current);color:var(--tds-stepper-color)}:host [role=listitem] .content-container.upcoming{background-color:transparent;border-color:var(--tds-stepper-label-border-color-upcoming);color:var(--tds-stepper-label-text-color-upcoming)}:host [role=listitem] .label{text-align:center}:host [role=listitem] .label.lg{font:var(--tds-detail-01);letter-spacing:var(--tds-detail-01-ls)}:host [role=listitem] .label.sm{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls)}:host [role=listitem] .label.upcoming{color:var(--tds-stepper-label-text-color-upcoming);opacity:var(--tds-stepper-label-text-opacity-upcoming)}:host(:last-of-type) [role=listitem].horizontal.text-aside{padding-right:0;padding-left:20px}:host(:last-of-type) [role=listitem].horizontal.text-aside::before{content:" ";position:absolute;background-color:var(--tds-stepper-divider-line);height:1px;width:20px;left:-10px;right:auto;top:16px}:host(:last-of-type) [role=listitem].horizontal.text-aside.sm.hide-labels::before{top:13px;width:13px;left:0;right:calc(50% + 20px)}:host(:last-of-type) [role=listitem].sm::after,:host(:last-of-type) [role=listitem].lg::after{display:none}:host(:last-of-type) [role=listitem].sm.vertical::before{display:none}:host(:first-of-type) [role=listitem].sm::before,:host(:first-of-type) [role=listitem].lg::before{display:none}`; const propToStateMap = { orientation: 'orientation', labelPosition: 'labelPosition', size: 'size', hideLabels: 'hideLabels', }; const TdsStep = class { constructor(hostRef) { index.registerInstance(this, hostRef); /** State of the Step */ this.state = 'upcoming'; } /* Needs to be onload to do this on any updates. */ componentWillLoad() { this.stepperEl = this.el.closest('tds-stepper'); if (!this.stepperEl) return; this.orientation = this.stepperEl.orientation; this.labelPosition = this.stepperEl.labelPosition; this.size = this.stepperEl.size; this.hideLabels = this.stepperEl.hideLabels; this.stepperId = this.stepperEl.stepperId; } handlePropsChange(event) { if (this.stepperId === event.detail.stepperId) { event.detail.changed.forEach((changedProp) => { if (typeof this[changedProp] === 'undefined') { throw new Error(`Stepper prop is not supported: ${changedProp}`); } else if (changedProp in propToStateMap) { this[propToStateMap[changedProp]] = event.detail[changedProp]; } }); } } render() { return (index.h(index.Host, { key: '71ffa72c7207f344cfd9e614354b52c57e133a36' }, index.h("div", { key: '9e738ad1d10d83c7a3f29fe4602fdb698ff4a574', role: "listitem", "aria-disabled": this.state === 'upcoming' ? 'true' : 'false', "aria-current": this.tdsAriaCurrent, tabIndex: -1, "aria-label": `Step ${this.index}: ${this.state}`, class: `${this.size} ${this.orientation} text-${this.labelPosition} ${this.hideLabels ? 'hide-labels' : ''}` }, index.h("span", { key: '6d7c25472829f5459bb97d8f5a1a0cec3343f595', class: `${this.state} content-container` }, this.state === 'success' || this.state === 'error' ? (index.h("tds-icon", { "aria-hidden": "true", svgTitle: `tds-step-icon-${this.stepperId}`, class: 'tds-step-icon', name: this.state === 'success' ? 'tick' : 'warning', size: this.size === 'lg' ? '20px' : '16px' })) : (index.h("span", { "aria-hidden": "true", class: "index-container" }, this.index))), !this.hideLabels && (index.h("div", { key: 'bd3f88a33114c3eee0fe6402ad4365ad1d4a5b10', "aria-hidden": "true", class: `label ${this.size} ${this.state}` }, index.h("slot", { key: 'cc7a809cc19505b21a748fe5eb58cc8900188625', name: "label" })))))); } get el() { return index.getElement(this); } }; TdsStep.style = stepCss(); exports.tds_step = TdsStep;