terriajs
Version:
Geospatial data visualization platform.
41 lines • 1.87 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { makeObservable, observable, override, reaction } from "mobx";
import isDefined from "../../Core/isDefined";
import CommonStrata from "../Definition/CommonStrata";
import FunctionParameter from "./FunctionParameter";
export default class EnumerationParameter extends FunctionParameter {
static type = "enumeration";
type = "enumeration";
options;
constructor(catalogFunction, options) {
super(catalogFunction, options);
makeObservable(this);
this.options = options.options;
// Set value to something useful if undefined (and a value isRequired)
reaction(() => this.value, () => {
if (!isDefined(this.value) &&
this.isRequired &&
this.options?.[0]?.id) {
this.setValue(CommonStrata.user, this.options[0].id);
}
}, { fireImmediately: true });
}
get isValid() {
if (!isDefined(this.value)) {
return !this.isRequired;
}
return isDefined(this.options.find((option) => option.id === this.value));
}
}
__decorate([
observable
], EnumerationParameter.prototype, "options", void 0);
__decorate([
override
], EnumerationParameter.prototype, "isValid", null);
//# sourceMappingURL=EnumerationParameter.js.map