PageSourceSearch

https://mass511.com/list-weather-stations-c1f07c7ac3f9f7e620e2.js

js mass511.com collected 2026-09-24 11:15:17 UTC 12,056 bytes, 248 lines download raw bytes

1"use strict";(self.webpackChunkone_web=self.webpackChunkone_web||[]).push([[7614],{10427:(t,e,s)=>{s.d(e,{Ay:()=>u,nU:()=>p});var i=s(71413),a=s(52706),r=s(30555),l=s(24634),o=s(56365),n=s(65585),d=(s(5366),Object.defineProperty),c=Object.getOwnPropertyDescriptor,h=(t,e,s,i)=>{for(var a,r=i>1?void 0:i?c(e,s):e,l=t.length-1;l>=0;l--)(a=t[l])&&(r=(i?a(e,s,r):a(r))||r);return i&&r&&d(e,s,r),r},p=(t=>(t.CENTER="CENTER",t.LEFT="LEFT",t.RIGHT="RIGHT",t))(p||{});let b=class extends i.WF{constructor(){super(...arguments),this.splash=!1,this.expanded=!1,this.forceExpanded=!1,this.noAutoClose=!1,this._disable=!1,this.onBodyClick=t=>{const e=this.renderRoot.querySelector("#toggler");(0,n.A)(this.noAutoClose?this:e,t)||(this.expanded=!1)},this.onBodyEsc=t=>{"Escape"===t.key&&(this.expanded=!1)}}get disable(){return this._disable}set disable(t){const e=this._disable;this._disable=t,this.expanded=!1,this.requestUpdate("disable",e)}static get styles(){return[o.A,l.A,i.AH`
2				:host {
3					position: relative;
4					display: flex;
5				}
6				.btn.btn-link {
7					margin-top: var(--gap);
8				}
9				.menu {
10					text-align: end;
11				}
12				.menu.splash-menu {
13					text-align: start;
14					width: 375px;
15				}
16				.menu.splash-menu {
17					color: rgb(var(--darker));
18					background-color: #fff;
19					font-size: var(--smaller);
20				}
21			`]}render(){return i.qy`
22			<popper-container
23				@click="${this.toggleExpanded}"
24				is-flip
25				?is-visible=${this.expanded||this.forceExpanded}
26				style=${this.splash?"width: 100%; height: 100%":""}
27			>
28				<div
29					slot="toggler"
30					id="toggler"
31					style=${this.splash?"width: 100%; height: 100%":""}
32					class=${(0,r.H)({active:this.expanded||this.forceExpanded})}
33				>
34					<slot name="toggler"></slot>
35				</div>
36				<div
37					class="menu ${this.splash?"splash-menu":""}"
38					role="menu"
39					part="menu"
40					aria-hidden=${!this.expanded}
41				>
42					<slot id="options"></slot>
43					${this.noAutoClose?i.qy`<button id="close-dropdown" class="btn btn-link">Close</button>`:null}
44				</div>
45			</popper-container>
46		`}updated(){(this.expanded||this.forceExpanded)&&this.dispatchEvent(new CustomEvent("show")),this.expanded||this.forceExpanded||this.dispatchEvent(new CustomEvent("hide"))}toggleExpanded(t){const e=this.renderRoot.querySelector("#close-dropdown");(0,n.A)(e,t)?this.expanded=!1:this.disable||this.noAutoClose&&this.expanded||(this.expanded=!this.expanded)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.onBodyClick),document.addEventListener("keyup",this.onBodyEsc)}disconnectedCallback(){document.removeEventListener("click",this.onBodyClick),document.removeEventListener("keyup",this.onBodyEsc),super.disconnectedCallback()}};h([(0,a.MZ)({type:Boolean})],b.prototype,"splash",2),h([(0,a.MZ)({type:Boolean,reflect:!0})],b.prototype,"expanded",2),h([(0,a.MZ)({type:Boolean,reflect:!0,attribute:"force-expanded"})],b.prototype,"forceExpanded",2),h([(0,a.MZ)({type:Boolean,reflect:!0,attribute:"no-auto-close"})],b.prototype,"noAutoClose",2),h([(0,a.MZ)({type:Boolean})],b.prototype,"disable",1),b=h([(0,a.EM)("dropdown-menu")],b);const u=b},97335:(t,e,s)=>{s.r(e),s.d(e,{default:()=>k});var i=s(92943),a=s(71413),r=s(52706),l=s(30555),o=s(80480),n=s(56599),d=s(35135),c=s(25461),h=s(5218),p=s(80027),b=s(52850),u=s(4983),v=s(73502),g=s(10514),y=s(21693),f=s(80662),w=s(32701),m=s(31376),$=s(24634),A=s(30842),L=s(69199),E=(s(15245),s(5233),s(4169),Object.defineProperty),S=Object.getOwnPropertyDescriptor,_=(t,e,s,i)=>{for(var a,r=i>1?void 0:i?S(e,s):e,l=t.length-1;l>=0;l--)(a=t[l])&&(r=(i?a(e,s,r):a(r))||r);return i&&r&&E(e,s,r),r};let k=class extends((0,n.N)(g.A)(L.A)){constructor(){super(...arguments),this.listType=b.OXP.WEATHER_STATIONS,this.stationListBodyRowWeather=t=>Object.keys(p.Bw).map((e=>a.qy`
47				<div
48					role="cell"
49					class=${(0,l.H)({"list-table_cell":!0,"alert-state":this.getAlertState(e,t.weatherStationFields)})}
50				>
51					<span class="small-label"><strong>${v.d[e]} </strong></span
52					>${this.getWeatherDisplay(e,t.weatherStationFields)}
53				</div>
54			`)),this.stationListBodyRow=t=>a.qy`
55		<div
56			class="list-table-row"
57			role="row"
58			style=${(0,o.W)({"--row-color":t.color||"rgb(var(--concrete))"})}
59		>
60			<div role="cell" class="list-table_cell">
61				<div class=" list-table-row_title-cell">
62					<img
63						src=${(0,d.J)(t.icon??void 0)}
64						alt="Weather Station ${t.status===u.LV.Alert?"Alert":""}"
65						class="list-table_icon"
66					/>
67					${t.title}
68					${t.status===u.LV.Alert||t.status===u.LV.AlertFreezing?a.qy`<div class="alert-tag">Alert</div>`:a.qy``}
69				</div>
70				<view-on-map-link .href="#${y.UG.MAP}/${t.uri}"></view-on-map-link>
71			</div>
72			<div role="cell" class="list-table_cell ">
73				<span class="small-label"><strong>Roadway: </strong></span>${t.location?.routeDesignator||"-"}
74			</div>
75			<!-- here -->
76			${this.stationListBodyRowWeather(t)}
77			<div role="cell" class="list-table_cell  list-table-row_title">
78				<span class="small-label"><strong>Last Updated: </strong></span>
79				<absolute-time
80					timestamp=${(0,d.J)(t.lastUpdated?.timestamp)}
81					timezone=${(0,d.J)(t.lastUpdated?.timezone)}
82					shortDate
83					ignore
84				></absolute-time>
85			</div>
86		</div>
87	`,this.quantities=t=>{if(t)return a.qy`${t.label}: ${t.value}`}}static get styles(){const t=`0.5rem 2.3fr repeat(${Object.keys(v.d).length-4}, 1fr)`;return[w.A,m.A,$.A,A.A,a.AH`
88				/* for android upper and lower bars */
89				:host {
90					display: block;
91					background-color: #fff;
92					box-shadow: var(--shadow-sm);
93					border-top: var(--border-width) solid rgb(var(--silver));
94					border-bottom: var(--border-width) solid rgb(var(--silver));
95				}
96
97				.alert-tag {
98					border: 1px solid rgb(var(--alert));
99					color: rgba(var(--alert), 1);
100					background-color: rgba(var(--alert), 0.01);
101					font-size: var(--smallest);
102					padding: 1px 3px 1px 3px;
103					margin-left: calc(var(--gap) / 4);
104				}
105
106				.alert-state {
107					color: rgb(var(--alert));
108				}
109
110				.list-table-row_title {
111					grid-column: 2 / 4;
112				}
113
114				@media (min-width: ${(0,a.iz)(b.EA.DESKTOP)}) {
115					.list-table-row {
116						grid-template-columns: ${(0,a.iz)(t)};
117					}
118
119					.list-table-row_title {
120						grid-column: auto;
121					}
122
123					.alert-tag {
124						margin: calc(var(--gap) / 2) 0;
125					}
126				}
127
128				@media (min-width: ${(0,a.iz)(b.EA.DESKTOP_XL)}) {
129					.alert-tag {
130						margin-left: 5px;
131					}
132				}
133			`]}onTableHeaderClick(t){return()=>this.updateSortType(t)}render(){return a.qy`
134			<h1 class="list-page-header">
135				${i.zx.find((({slug:t})=>t===this.page))?.label}
136			</h1>
137			<div id="scroll-sentinel"></div>
138			<div class="controls">${this.renderControls()}</div>
139			<div class="list-table" role="table" data-test-table>
140				<div
141					role="rowgroup"
142					class=${(0,l.H)({"list-table-header":!0,"sticky-header":!0,"sticky-header--shadow":this.isHeaderStuck})}
143				>
144					${this.stationListHeader()}
145					${this.isOffline||this.error?.type!==b.i65.INTERNAL_SERVER_ERROR?void 0:a.qy`
146								<div role="row" data-test-table-error>
147									<div role="cell" aria-rowspan="6" class="notification notification--error">
148										${(0,h._)(p.s1.error.application)}
149									</div>
150								</div>
151						  `}
152					${this.isOffline?a.qy`
153								<div role="row" data-test-table-network>
154									<div role="cell" aria-rowspan="6" class="notification notification--warning">
155										${(0,h._)(p.s1.error.network)}
156									</div>
157								</div>
158						  `:void 0}
159				</div>
160				<div role="rowgroup">
161					${this.error||this.weatherStationList&&0!==this.weatherStationList.length?void 0:a.qy`
162								<div role="row">
163									<div role="cell" aria-rowspan="6" class="notification notification--warning">
164										${this.renderNoData()}
165									</div>
166								</div>
167						  `}
168					${this.weatherStationList?a.qy` ${this.weatherStationList.map(this.stationListBodyRow)} `:void 0}
169				</div>
170			</div>
171			<span class="visually-hidden" aria-live="polite">
172				${L.A.ariaLive(k.tableDescription,this.sortType,this.sortDirection)}
173			</span>
174		`}stationListWeatherHeaders(){return Object.keys(p.Bw).map((t=>{const e=t;return a.qy`<div
175				class="list-table_header list-table_header--sortable"
176				role="columnheader"
177				aria-sort=${this.ariaSortDirection(e)}
178				title=${v.d[e]}
179			>
180				<button class="btn list-table_hbtn" @click=${this.onTableHeaderClick(e)}>
181					<span class="list-table_htxt">${v.d[e]}</span>
182					${a.qy`${this.renderSortArrow(t,this.sortType)}`}
183				</button>
184			</div>`}))}stationListHeader(){return a.qy`
185			<div role="row" class="list-table-row list-table-headers">
186				<div
187					class="list-table_header list-table_header--sortable"
188					role="columnheader"
189					aria-sort=${this.ariaSortDirection("NAME")}
190					title=${v.d.NAME}
191				>
192					<button class="btn list-table_hbtn" @click=${this.onTableHeaderClick("NAME")}>
193						<span class="list-table_htxt">${v.d.NAME}</span>
194						${a.qy`${this.renderSortArrow("NAME",this.sortType)}`}
195					</button>
196				</div>
197				<div
198					class="list-table_header list-table_header--sortable"
199					role="columnheader"
200					aria-sort=${this.ariaSortDirection("ROADWAY")}
201					title=${v.d.ROADWAY}
202				>
203					<button class="btn list-table_hbtn" @click=${this.onTableHeaderClick("ROADWAY")}>
204						<span class="list-table_htxt">${v.d.ROADWAY}</span>
205						${a.qy`${this.renderSortArrow("ROADWAY",this.sortType)}`}
206					</button>
207				</div>
208				${this.stationListWeatherHeaders()}
209				<div
210					class="list-table_header list-table_header--sortable"
211					role="columnheader"
212					aria-sort=${this.ariaSortDirection("LAST_UPDATED")}
213					title=${v.d.LAST_UPDATED}
214				>
215					<button class="btn list-table_hbtn" @click=${this.onTableHeaderClick("LAST_UPDATED")}>
216						<span class="list-table_htxt">${v.d.LAST_UPDATED}</span>
217						${a.qy`${this.renderSortArrow("LAST_UPDATED",this.sortType)}`}
218					</button>
219				</div>
220			</div>
221		`}renderFilters(){return a.qy`
222			<ow-multi-select
223				name="roadway"
224				label="Roadway"
225				class="form-element filter-select"
226				.value=${(0,c.V)(this.routes)}
227				.categorizedChoices=${this.getMultiSelectRoadwayChoices()}
228				?loading=${!this.allRoutes}
229				@change=${this.filterPredRoutes}
230			></ow-multi-select>
231			<ow-multi-select
232				name="area"
233				label="Predefined area"
234				class="form-element filter-select"
235				.value=${(0,c.V)(this.areas)}
236				.categorizedChoices=${this.getAllPredefinedAreaChoices()}
237				?loading=${!this.allPredefinedAreas}
238				@change=${this.filterArea}
239			></ow-multi-select>
240			<ow-multi-select
241				name="status"
242				label="Status"
243				class="form-element filter-select"
244				.value=${(0,c.V)(this.classificationsOrSlugs)}
245				.categorizedChoices=${[{choices:[{id:b.f2p.RWIS_NORMAL,label:"Weather Stations w/ No Alerts"},{id:b.f2p.RWIS_ALERT,label:"Weather Stations w/ Alerts"}]}]}
246				@change=${this.filterType}
247			></ow-multi-select>
248		`}getAlertState(t,e){let s=!1;return e&&e[t]&&e[t].inAlertState&&(s=!0),s}getWeatherDisplay(t,e){let s="N/A";if(e&&e[t]){const{displayValue:i}=e[t];i&&(s=i)}return s}stateChanged(t){this.allPredefinedAreas=t.filterList.allPredefinedAreas,this.allRoutes=t.filterList.allRoutes,this.sortDirection=t.filterList.sortDirection,this.sortType=t.filterList.sortType,this.freeSearchTerm=t.filterList.freeSearchTerm,this.routes=t.filterList.routes,this.areas=t.filterList.areas,this.classificationsOrSlugs=t.filterList.classificationsOrSlugs,this.page=t.routingList.page,this.pageRecordLimit=t.filterList.pageRecordLimit,this.currentPage=t.filterList.currentPage,this.totalRecords=t.filterList.totalRecords,this.isLoading=t.weatherStationList.isLoading,this.weatherStationList=(0,f.zE)(t),this.modalView=t.modalList.modalView,this.isOffline=t.layoutList.isOffline,this.error=t.weatherStationList.error}};k.tableDescription="Weather Stations",_([(0,r.MZ)({type:Array})],k.prototype,"weatherStationList",2),k=_([(0,r.EM)("list-weather-stations")],k)},65585:(t,e,s)=>{s.d(e,{A:()=>i});const i=(t,e)=>e.composedPath?!!e.composedPath().find((e=>t===e)):!!t.contains(e.target)}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.