@arcgis/coding-components
Version:
Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.
69 lines (68 loc) • 3.33 kB
JavaScript
import { c as o } from "../../chunks/runtime.js";
import { repeat as a } from "lit-html/directives/repeat.js";
import { html as i } from "lit";
import { LitElement as r, createEvent as c } from "@arcgis/lumina";
import { a as n } from "../../chunks/sql-expr-defaults.js";
import { u as m } from "../../chunks/useT9n.js";
import { css as d } from "@lit/reactive-element/css-tag.js";
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
v4.32.14 */
const h = d`:host{calcite-flow{height:100%}calcite-list-item-group{background-color:var(--calcite-color-foreground-2)}}`;
class f extends r {
constructor() {
super(...arguments), this.messages = m(), this._filterValue = "", this._flowItemRenderers = [], this._mutationCounter = 1, this.loading = !1, this.arcgisClose = c({ bubbles: !1 }), this.arcgisFieldSelected = c({ bubbles: !1 });
}
static {
this.properties = { _filterValue: 16, _flowItemRenderers: 16, _mutationCounter: 16, loading: 5, modelId: 1 };
}
static {
this.styles = h;
}
// #endregion
// #region Lifecycle
willUpdate(t) {
t.has("modelId") && (this._flowItemRenderers = []);
}
disconnectedCallback() {
super.disconnectedCallback(), this._flowObserver?.disconnect();
}
// #endregion
// #region Private Methods
_handleSelectField(t) {
if (t.target instanceof HTMLElement)
switch (t.target.tagName.toLowerCase()) {
case "calcite-list-item": {
const s = t.target.value;
this.arcgisFieldSelected.emit(s ?? "");
break;
}
case "calcite-action":
t.stopPropagation();
break;
}
}
_handleSelectDomain(t) {
const e = t.target.value;
this.arcgisFieldSelected.emit(e ? `'${e}'` : "");
}
_emitClose() {
this.arcgisClose.emit();
}
// #endregion
// #region Rendering
render() {
const t = n.getFeatureLayerForModel(this.modelId ?? "");
return this.loading || !this.modelId || !t ? i`<calcite-block .heading=${this.messages.availablefields ?? ""}></calcite-block>` : i`<calcite-flow><calcite-flow-item .heading=${this.messages.availablefields ?? ""} closable @calciteFlowItemClose=${this._emitClose}><calcite-list label=fields filter-enabled>${a(t.fields, (e) => e.name, (e) => i`<calcite-list-item @click=${this._handleSelectField} .label=${e.name} .description=${e.alias ?? ""} .value=${e.name}>${e.domain && i`<calcite-action slot=actions-end text=open icon=chevron-right @click=${() => {
const s = e.domain;
s?.type === "coded-value" && (this._flowItemRenderers = [
...this._flowItemRenderers,
() => i`<calcite-flow-item closable .heading=${this.messages.domainvalues ?? ""} .description=${e.name} @calciteFlowItemClose=${this._emitClose}><calcite-list label=domains>${a(s.codedValues, (l) => l.code, (l) => i`<calcite-list-item @click=${this._handleSelectDomain} .label=${l.name} .description=${String(l.code)} .value=${String(l.code)}></calcite-list-item>`)}</calcite-list></calcite-flow-item>`
]);
}}></calcite-action>` || ""}</calcite-list-item>`)}</calcite-list></calcite-flow-item>${this._flowItemRenderers.map((e) => e())}</calcite-flow>`;
}
}
o("arcgis-sql-expression-fields", f);
export {
f as SqlExpressionFields
};