/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import * as tslib_1 from "tslib";
import { Base, String_$type, markType } from "./type";
import { Dictionary$2 } from "./Dictionary$2";
import { PropertyEditorDescriptionObjectDescriptionMetadata } from "./PropertyEditorDescriptionObjectDescriptionMetadata";
import { PropertyEditorPropertyDescriptionButtonClickEventArgsDescriptionMetadata } from "./PropertyEditorPropertyDescriptionButtonClickEventArgsDescriptionMetadata";
import { PropertyEditorPropertyDescriptionChangedEventArgsDescriptionMetadata } from "./PropertyEditorPropertyDescriptionChangedEventArgsDescriptionMetadata";
import { PropertyEditorPropertyDescriptionTargetPropertyUpdatingEventArgsDescriptionMetadata } from "./PropertyEditorPropertyDescriptionTargetPropertyUpdatingEventArgsDescriptionMetadata";
import { PropertyEditorPropertyDescriptionDescription } from "./PropertyEditorPropertyDescriptionDescription";
/**
 * @hidden
 */
var PropertyEditorPropertyDescriptionDescriptionMetadata = /** @class */ /*@__PURE__*/ (function (_super) {
    tslib_1.__extends(PropertyEditorPropertyDescriptionDescriptionMetadata, _super);
    function PropertyEditorPropertyDescriptionDescriptionMetadata() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    PropertyEditorPropertyDescriptionDescriptionMetadata.b = function (a) {
        if (PropertyEditorPropertyDescriptionDescriptionMetadata.a == null) {
            PropertyEditorPropertyDescriptionDescriptionMetadata.a = new Dictionary$2(String_$type, String_$type, 0);
            PropertyEditorPropertyDescriptionDescriptionMetadata.c(PropertyEditorPropertyDescriptionDescriptionMetadata.a);
        }
        if (a.k(PropertyEditorPropertyDescriptionDescriptionMetadata.a)) {
            return;
        }
        a.aa(PropertyEditorPropertyDescriptionDescriptionMetadata.a);
        PropertyEditorDescriptionObjectDescriptionMetadata.d(a);
        PropertyEditorPropertyDescriptionButtonClickEventArgsDescriptionMetadata.d(a);
        PropertyEditorPropertyDescriptionChangedEventArgsDescriptionMetadata.d(a);
        PropertyEditorPropertyDescriptionTargetPropertyUpdatingEventArgsDescriptionMetadata.d(a);
    };
    PropertyEditorPropertyDescriptionDescriptionMetadata.c = function (a) {
        a.item("PropertyPath", "String");
        a.item("Label", "String");
        a.item("ValueType", "ExportedType:string:PropertyEditorValueType");
        a.item("ValueType@names", "Unhandled;Number;StringValue;Date;Brush;Color;BrushCollection;Boolean1;SubType;Collection;Array;Point;Size;Rect;ColorCollection;EnumValue;MethodRef;EventRef;DataRef;TimeSpan;Button;Slider;TemplateRef");
        a.item("PropertyDescriptionType", "String");
        a.item("ShouldOverrideDefaultEditor", "Boolean");
        a.item("ElementDescriptionType", "String");
        a.item("DropDownNames", "Array:string");
        a.item("DropDownValues", "Array:string");
        a.item("PrimitiveValue", "Unknown");
        a.item("Min", "Number:double");
        a.item("EditorWidth", "Number:double");
        a.item("LabelWidth", "Number:double");
        a.item("Max", "Number:double");
        a.item("Step", "Number:double");
        a.item("ComplexValue", "ExportedType:PropertyEditorDescriptionObject");
        a.item("ComplexValues", "Collection:PropertyEditorDescriptionObject:PropertyEditorDescriptionObjectCollection:PropertyEditorDescriptionObject");
        a.item("Properties", "Collection:PropertyEditorPropertyDescription:PropertyEditorPropertyDescriptionCollection:PropertyEditorPropertyDescription");
        a.item("ButtonClickedRef", "EventRef::buttonClicked");
        a.item("ChangedRef", "EventRef::changed");
        a.item("TargetPropertyUpdatingRef", "EventRef::targetPropertyUpdating");
    };
    PropertyEditorPropertyDescriptionDescriptionMetadata.d = function (a) {
        PropertyEditorPropertyDescriptionDescriptionMetadata.b(a);
        a.ac("PropertyEditorPropertyDescription", function () { return new PropertyEditorPropertyDescriptionDescription(); });
        a.ab("PropertyEditorPropertyDescription", PropertyEditorPropertyDescriptionDescriptionMetadata.a);
    };
    PropertyEditorPropertyDescriptionDescriptionMetadata.$t = markType(PropertyEditorPropertyDescriptionDescriptionMetadata, 'PropertyEditorPropertyDescriptionDescriptionMetadata');
    PropertyEditorPropertyDescriptionDescriptionMetadata.a = null;
    return PropertyEditorPropertyDescriptionDescriptionMetadata;
}(Base));
export { PropertyEditorPropertyDescriptionDescriptionMetadata };
