@arcgis/map-components
Version:
ArcGIS Map Components
95 lines (94 loc) • 6.83 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import { c as $ } from "../../chunks/runtime.js";
import { css as V, html as l } from "lit";
import { LitElement as C, createEvent as p } from "@arcgis/lumina";
import { createRef as u, ref as v } from "lit/directives/ref.js";
const I = V`:host{min-height:var(--arcgis-internal-panel-height-md, 420px);height:100%}`;
class x extends C {
constructor() {
super(...arguments), this._flowItemElement = u(), this._switchToVersion = !0, this._switchToVersionCheckboxElement = u(), this._versionNameInputElement = u(), this.selected = !1, this.showBackButton = !1, this.arcgisAlterVersion = p(), this.arcgisCreateVersion = p(), this.arcgisFlowItemBack = p(), this.arcgisFlowItemClose = p();
}
static {
this.properties = { _validationError: 16, selected: 7, showBackButton: 7, versionPropertiesElementProps: 0 };
}
static {
this.styles = I;
}
load() {
const { versionPropertiesElementProps: { versionInfo: t } } = this;
t ? (this._mode = "edit", this._fullVersionName = t.versionIdentifier.name, this._ownerName = this._fullVersionName.substring(0, this._fullVersionName.lastIndexOf(".")), this._versionName = this._fullVersionName.substring(this._fullVersionName.lastIndexOf(".") + 1)) : this._mode = "create";
}
updated() {
this._mode === "create" && this._versionNameInputElement.value?.setFocus();
}
async setFocus() {
this._flowItemElement.value?.setFocus();
}
goBack() {
}
_handleCancel() {
this.arcgisFlowItemBack.emit();
}
_handleChange(t) {
const { _mode: s, _ownerName: h, _versionName: d, versionPropertiesElementProps: { currentUser: m, isVersionAdministrator: e, serviceUrl: r, versionInfo: i } } = this;
let { _alterVersionParameters: o, _createVersionParameters: a } = this;
switch (s === "create" && (a || (a = {
access: "public",
description: "",
featureServerUrl: r,
ownerName: m,
versionName: ""
})), s === "edit" && (o || (o = {
featureServerUrl: r,
versionIdentifier: i.versionIdentifier,
ownerName: h,
versionName: d,
access: i.access,
description: i.description
})), t.type) {
case "calciteChipGroupSelect": {
const c = t.target.label, n = t.target.selectedItems[0].label;
s === "create" && (a = { ...a, [c]: n }), s === "edit" && (o = { ...o, [c]: n });
break;
}
case "calciteInputTextInput": {
const c = t.target.name, n = t.target.value;
s === "create" && (a = { ...a, [c]: n }), s === "edit" && (o = { ...o, [c]: n });
break;
}
case "calciteTextAreaInput": {
const c = t.target.name, n = t.target.value;
s === "create" && c && (a = { ...a, [c]: n }), s === "edit" && c && (o = { ...o, [c]: n });
break;
}
}
s === "create" && (a.access !== "public" && m.toUpperCase() !== a.ownerName?.toUpperCase() && !e ? (this._switchToVersionCheckboxElement.value.checked = !1, this._switchToVersionCheckboxElement.value.disabled = !0, this._switchToVersion = !1) : this._switchToVersionCheckboxElement.value.disabled = !1, this._createVersionParameters = a), s === "edit" && (this._alterVersionParameters = o);
}
_handleClose() {
this.arcgisFlowItemClose.emit();
}
_handleSave() {
const { _alterVersionParameters: t, _createVersionParameters: s, _mode: h, _switchToVersion: d, versionPropertiesElementProps: { strings: m } } = this, e = [".", ";", "'", '"'];
if (e.some((i) => s?.versionName?.includes(i)) || e.some((i) => t?.versionName?.includes(i))) {
this._validationError = m.validationErrors.invalidCharacters;
return;
}
h === "create" && this.arcgisCreateVersion.emit({
createVersionParameters: s,
switchToVersion: d
}), h === "edit" && this.arcgisAlterVersion.emit({
alterVersionParameters: t
});
}
_handleSwitchToVersionChange(t) {
this._switchToVersion = t.target.checked;
}
render() {
const { selected: t, showBackButton: s, versionPropertiesElementProps: { closable: h, currentUser: d, state: m, strings: e, versionInfo: r }, _mode: i, _ownerName: o, _versionName: a } = this, c = l`<calcite-button appearance=outline slot=footer width=full =${this._handleCancel}>${e.actions.cancelSave}</calcite-button><calcite-button appearance=solid slot=footer width=full =${this._handleSave}>${e.actions.saveVersion}</calcite-button>`, n = l`<calcite-label>${e.input.versionAccess}<calcite-chip-group label=access =${this._handleChange} selection-mode=single-persist><calcite-chip .selected=${i === "edit" && r.access === "public" || i === "create"} label=public>${e.accessLevels.public}</calcite-chip><calcite-chip .selected=${i === "edit" && r.access === "protected"} label=protected>${e.accessLevels.protected}</calcite-chip><calcite-chip .selected=${i === "edit" && r.access === "private"} label=private>${e.accessLevels.private}</calcite-chip></calcite-chip-group></calcite-label>`, _ = l`<calcite-label>${e.input.versionDescription}<calcite-text-area limit-text max-length=64 name=description resize=none rows=2 scale=s .value=${i === "edit" ? r.description : ""} =${this._handleChange}></calcite-text-area></calcite-label>`, f = l`<calcite-label>${e.input.versionName}<calcite-input-text max-length=62 name=versionName .value=${i === "edit" ? a : ""} =${this._handleChange} ${v(this._versionNameInputElement)}></calcite-input-text></calcite-label>`, b = l`<calcite-label>${e.input.versionOwner}<calcite-input-text name=ownerName .value=${i === "edit" ? o : d} =${this._handleChange}></calcite-input-text></calcite-label>`, g = i === "create" ? l`<calcite-label layout=inline><calcite-checkbox checked name=switchToVersion =${this._handleSwitchToVersionChange} ${v(this._switchToVersionCheckboxElement)}></calcite-checkbox>${e.actions.switchToVersion}</calcite-label>` : void 0, w = this._validationError ? l`<calcite-notice closable kind=warning open scale=s width=full =${() => this._validationError = void 0}><div slot=message>${this._validationError}</div></calcite-notice>` : void 0;
return l`<calcite-flow-item .closable=${h} .description=${r ? r.versionIdentifier.name : ""} .heading=${r ? e.actions.editVersion : e.actions.newVersion} .selected=${t} .showBackButton=${s} =${this._handleClose} ${v(this._flowItemElement)}><calcite-panel .loading=${m === "executing"}><calcite-block expanded .label=${e.headers.versionProperties}>${f}${_}${n}${b}${g}${w}</calcite-block>${c}</calcite-panel></calcite-flow-item>`;
}
}
$("arcgis-version-management-version-properties", x);
export {
x as ArcgisVersionManagementVersionProperties
};