UNPKG

@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
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 };