UNPKG

cytoscape-angular

Version:
93 lines 12.8 kB
export class FormInfo { constructor(title, fieldsets, showSubmitButton = false, submitText = 'Submit', disableSubmitOnFormInvalid = false, /* if the model has a property that isn't in a fieldset, but it in an fieldset created by the form */ otherFieldsetTitle = null) { this.title = title; this.fieldsets = fieldsets; this.showSubmitButton = showSubmitButton; this.submitText = submitText; this.disableSubmitOnFormInvalid = disableSubmitOnFormInvalid; this.otherFieldsetTitle = otherFieldsetTitle; } } export class FieldsetInfo { constructor(legend, fieldInfos, displayOnlyIfProperties) { this.legend = legend; this.fieldInfos = fieldInfos; this.displayOnlyIfProperties = displayOnlyIfProperties; } showFieldsetForModel(model) { if (!this.displayOnlyIfProperties) { return true; } for (const fieldInfo of this.fieldInfos) { for (const modelProperty of Object.keys(model)) { if (fieldInfo.modelProperty === modelProperty) { return true; } } } return false; } } export class FieldInfo { constructor(/* label to show the user next to the field, can be a function for i18n/dynamic labels */ label, /* The form has a model, this is the name of the property on the form's model object that this field */ modelProperty, /* computed from the model property type by default */ type, /* The tooltip to display on hover */ tooltip, /* The list of Angular Form Validators for the control or a function that returns such an array */ validators, /* disable the field if it's not valid */ disableWhenInvalid = false, /* If true and model[modelProperty] is undefined, don't create a field.*/ hideWhenNoModelProperty = true, /* Input only - by default the label is used as a placeholder and floats (how to downcast in a template?) */ placeholder, /* Input only - same as HTML input (how to downcast in a template?) */ inputType = 'text', /* Input only - same as HTML input (how to downcast in a template?) */ inputSize = 8, /* Select only either an array of object or the name of a model property or function that is/returns an array of objects */ options, /* In an options object, what field to display to the user (or function that returns a string given the option object and the model) */ optionArrayLabelField, /* In an options object, what field to return for the value of the option (or function that returns a string given the option object and the model) */ optionArrayValueField) { this.label = label; this.modelProperty = modelProperty; this.type = type; this.tooltip = tooltip; this.validators = validators; this.disableWhenInvalid = disableWhenInvalid; this.hideWhenNoModelProperty = hideWhenNoModelProperty; this.placeholder = placeholder; this.inputType = inputType; this.inputSize = inputSize; this.options = options; this.optionArrayLabelField = optionArrayLabelField; this.optionArrayValueField = optionArrayValueField; this.fieldTypes = {}; } fieldType(model) { const cached = this.fieldTypes[this.modelProperty]; if (cached) { return cached; } else { const fieldValueType = typeof model[this.modelProperty]; const result = this.type ? this.type : (this.options ? 'options' : fieldValueType); this.fieldTypes[this.modelProperty] = result; return result; } } setValue(newValue, model, modelChange) { model[this.modelProperty] = newValue; modelChange.emit({ property: this.modelProperty, value: newValue }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3l0b3NjYXBlLWFuZ3VsYXIvc3JjL2xpYi9mbHVpZC1mb3JtL2Zvcm0taW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFtQixLQUFhLEVBQ2IsU0FBeUIsRUFDekIsbUJBQW1CLEtBQUssRUFDeEIsYUFBYSxRQUFRLEVBQ3JCLDZCQUE2QixLQUFLO0lBQ3pDLHFHQUFxRztJQUM5RixxQkFBcUIsSUFBSTtRQU56QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFRO1FBRWxDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBTztJQUM1QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFtQixNQUFjLEVBQ2QsVUFBdUIsRUFDdkIsdUJBQWtDO1FBRmxDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFhO1FBQ3ZCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBVztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFDRCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdkMsS0FBSyxNQUFNLGFBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLFNBQVMsQ0FBQyxhQUFhLEtBQUssYUFBYSxFQUFFO29CQUM3QyxPQUFPLElBQUksQ0FBQTtpQkFDWjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxTQUFTO0lBS3BCLFlBQVkseUZBQXlGLENBQ2xGLEtBQXlCO0lBQ2hDLHVHQUF1RztJQUNoRyxhQUFzQjtJQUM3QixzREFBc0Q7SUFDL0MsSUFBZ0I7SUFDdkIscUNBQXFDO0lBQzlCLE9BQWdCO0lBQ3ZCLGtHQUFrRztJQUMzRixVQUFxQztJQUM1Qyx5Q0FBeUM7SUFDbEMscUJBQXFCLEtBQUs7SUFDakMseUVBQXlFO0lBQ2xFLDBCQUEwQixJQUFJO0lBQ3JDLDRHQUE0RztJQUNyRyxXQUFvQjtJQUMzQixzRUFBc0U7SUFDL0QsWUFBb0IsTUFBTTtJQUNqQyxzRUFBc0U7SUFDL0QsWUFBb0IsQ0FBQztJQUM1QiwySEFBMkg7SUFDcEgsT0FBMkI7SUFDbEM7NkNBQ3lDO0lBQ2xDLHFCQUF5QztJQUNoRDtnRkFDNEU7SUFDckUscUJBQXlDO1FBMUJ6QyxVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQUV6QixrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUV0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRWhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFaEIsZUFBVSxHQUFWLFVBQVUsQ0FBMkI7UUFFckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFRO1FBRTFCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBTztRQUU5QixnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUVwQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUUxQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBRXJCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBRzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUFHekMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFvQjtRQS9CcEQsZUFBVSxHQUFHLEVBQUUsQ0FBQTtJQWlDdkIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2xELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxNQUFNLENBQUE7U0FDZDthQUFNO1lBQ0wsTUFBTSxjQUFjLEdBQUcsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUNsRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUE7WUFDNUMsT0FBTyxNQUFNLENBQUE7U0FDZDtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsUUFBYSxFQUFFLEtBQWEsRUFBRSxXQUE4QjtRQUNuRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQTtRQUNwQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6YmFuLXR5cGVzICovXG5pbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IHR5cGUgRmllbGRUeXBlID0gJ1NoYXBlUG9seWdvblBvaW50cycgfCAncGVyY2VudCcgfCAnTm9kZVNoYXBlJ3wgJ0xpbmVTdHlsZScgfCAnVGV4dFRyYW5zZm9ybWF0aW9uJyB8ICdGb250U3R5bGUnIHwgJ0ZvbnRXZWlnaHQnIHwgJ29wdGlvbnMnIHwgJ0NvbG91cicgfCAndW5kZWZpbmVkJyB8ICdvYmplY3QnIHwgJ2Jvb2xlYW4nIHwgJ251bWJlcicgfCAnc3RyaW5nJyB8ICdmdW5jdGlvbicgfCAnc3ltYm9sJyB8ICdiaWdpbnQnXG5cbmV4cG9ydCBjbGFzcyBGb3JtSW5mbyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aXRsZTogc3RyaW5nLFxuICAgICAgICAgICAgICBwdWJsaWMgZmllbGRzZXRzOiBGaWVsZHNldEluZm9bXSxcbiAgICAgICAgICAgICAgcHVibGljIHNob3dTdWJtaXRCdXR0b24gPSBmYWxzZSxcbiAgICAgICAgICAgICAgcHVibGljIHN1Ym1pdFRleHQgPSAnU3VibWl0JyxcbiAgICAgICAgICAgICAgcHVibGljIGRpc2FibGVTdWJtaXRPbkZvcm1JbnZhbGlkID0gZmFsc2UsXG4gICAgICAgICAgICAgIC8qIGlmIHRoZSBtb2RlbCBoYXMgYSBwcm9wZXJ0eSB0aGF0IGlzbid0IGluIGEgZmllbGRzZXQsIGJ1dCBpdCBpbiBhbiBmaWVsZHNldCBjcmVhdGVkIGJ5IHRoZSBmb3JtICovXG4gICAgICAgICAgICAgIHB1YmxpYyBvdGhlckZpZWxkc2V0VGl0bGUgPSBudWxsKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpZWxkc2V0SW5mbyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsZWdlbmQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgcHVibGljIGZpZWxkSW5mb3M6IEZpZWxkSW5mb1tdLFxuICAgICAgICAgICAgICBwdWJsaWMgZGlzcGxheU9ubHlJZlByb3BlcnRpZXM/OiBzdHJpbmdbXSkge1xuICB9XG5cbiAgc2hvd0ZpZWxkc2V0Rm9yTW9kZWwobW9kZWw6IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5kaXNwbGF5T25seUlmUHJvcGVydGllcykge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgZm9yIChjb25zdCBmaWVsZEluZm8gb2YgdGhpcy5maWVsZEluZm9zKSB7XG4gICAgICBmb3IgKGNvbnN0IG1vZGVsUHJvcGVydHkgb2YgT2JqZWN0LmtleXMobW9kZWwpKSB7XG4gICAgICAgIGlmIChmaWVsZEluZm8ubW9kZWxQcm9wZXJ0eSA9PT0gbW9kZWxQcm9wZXJ0eSkge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpZWxkSW5mbyB7XG4gIHByaXZhdGUgZmllbGRUeXBlcyA9IHt9XG4gIHVwZGF0ZU9uOiAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnIC8vIHNhbWUgYXMgQWJzdHJhY3RDb250cm9sT3B0aW9uc1xuICBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSB8IEZ1bmN0aW9uXG5cbiAgY29uc3RydWN0b3IoLyogbGFiZWwgdG8gc2hvdyB0aGUgdXNlciBuZXh0IHRvIHRoZSBmaWVsZCwgY2FuIGJlIGEgZnVuY3Rpb24gZm9yIGkxOG4vZHluYW1pYyBsYWJlbHMgKi9cbiAgICAgICAgICAgICAgcHVibGljIGxhYmVsPzogc3RyaW5nIHwgRnVuY3Rpb24sXG4gICAgICAgICAgICAgIC8qIFRoZSBmb3JtIGhhcyBhIG1vZGVsLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBvbiB0aGUgZm9ybSdzIG1vZGVsIG9iamVjdCB0aGF0IHRoaXMgZmllbGQgKi9cbiAgICAgICAgICAgICAgcHVibGljIG1vZGVsUHJvcGVydHk/OiBzdHJpbmcsXG4gICAgICAgICAgICAgIC8qIGNvbXB1dGVkIGZyb20gdGhlIG1vZGVsIHByb3BlcnR5IHR5cGUgYnkgZGVmYXVsdCAqL1xuICAgICAgICAgICAgICBwdWJsaWMgdHlwZT86IEZpZWxkVHlwZSxcbiAgICAgICAgICAgICAgLyogVGhlIHRvb2x0aXAgdG8gZGlzcGxheSBvbiBob3ZlciAqL1xuICAgICAgICAgICAgICBwdWJsaWMgdG9vbHRpcD86IHN0cmluZyxcbiAgICAgICAgICAgICAgLyogVGhlIGxpc3Qgb2YgQW5ndWxhciBGb3JtIFZhbGlkYXRvcnMgZm9yIHRoZSBjb250cm9sIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHN1Y2ggYW4gYXJyYXkgKi9cbiAgICAgICAgICAgICAgcHVibGljIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdIHwgRnVuY3Rpb24sXG4gICAgICAgICAgICAgIC8qIGRpc2FibGUgdGhlIGZpZWxkIGlmIGl0J3Mgbm90IHZhbGlkICovXG4gICAgICAgICAgICAgIHB1YmxpYyBkaXNhYmxlV2hlbkludmFsaWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgLyogSWYgdHJ1ZSBhbmQgbW9kZWxbbW9kZWxQcm9wZXJ0eV0gaXMgdW5kZWZpbmVkLCBkb24ndCBjcmVhdGUgYSBmaWVsZC4qL1xuICAgICAgICAgICAgICBwdWJsaWMgaGlkZVdoZW5Ob01vZGVsUHJvcGVydHkgPSB0cnVlLFxuICAgICAgICAgICAgICAvKiBJbnB1dCBvbmx5IC0gYnkgZGVmYXVsdCB0aGUgbGFiZWwgaXMgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGFuZCBmbG9hdHMgKGhvdyB0byBkb3duY2FzdCBpbiBhIHRlbXBsYXRlPykgKi9cbiAgICAgICAgICAgICAgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxuICAgICAgICAgICAgICAvKiBJbnB1dCBvbmx5IC0gc2FtZSBhcyBIVE1MIGlucHV0IChob3cgdG8gZG93bmNhc3QgaW4gYSB0ZW1wbGF0ZT8pICovXG4gICAgICAgICAgICAgIHB1YmxpYyBpbnB1dFR5cGU6IHN0cmluZyA9ICd0ZXh0JyxcbiAgICAgICAgICAgICAgLyogSW5wdXQgb25seSAtIHNhbWUgYXMgSFRNTCBpbnB1dCAoaG93IHRvIGRvd25jYXN0IGluIGEgdGVtcGxhdGU/KSAqL1xuICAgICAgICAgICAgICBwdWJsaWMgaW5wdXRTaXplOiBudW1iZXIgPSA4LFxuICAgICAgICAgICAgICAvKiBTZWxlY3Qgb25seSBlaXRoZXIgYW4gYXJyYXkgb2Ygb2JqZWN0IG9yIHRoZSBuYW1lIG9mIGEgbW9kZWwgcHJvcGVydHkgb3IgZnVuY3Rpb24gdGhhdCBpcy9yZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgKi9cbiAgICAgICAgICAgICAgcHVibGljIG9wdGlvbnM/OiBvYmplY3RbXSB8IHN0cmluZyxcbiAgICAgICAgICAgICAgLyogSW4gYW4gb3B0aW9ucyBvYmplY3QsIHdoYXQgZmllbGQgdG8gZGlzcGxheSB0byB0aGUgdXNlciAob3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nXG4gICAgICAgICAgICAgIGdpdmVuIHRoZSBvcHRpb24gb2JqZWN0IGFuZCB0aGUgbW9kZWwpICovXG4gICAgICAgICAgICAgIHB1YmxpYyBvcHRpb25BcnJheUxhYmVsRmllbGQ/OiBzdHJpbmcgfCBGdW5jdGlvbixcbiAgICAgICAgICAgICAgLyogSW4gYW4gb3B0aW9ucyBvYmplY3QsIHdoYXQgZmllbGQgdG8gcmV0dXJuIGZvciB0aGUgdmFsdWUgb2YgdGhlIG9wdGlvblxuICAgICAgICAgICAgICAob3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nIGdpdmVuIHRoZSBvcHRpb24gb2JqZWN0IGFuZCB0aGUgbW9kZWwpICovXG4gICAgICAgICAgICAgIHB1YmxpYyBvcHRpb25BcnJheVZhbHVlRmllbGQ/OiBzdHJpbmcgfCBGdW5jdGlvblxuICApIHtcbiAgfVxuXG4gIGZpZWxkVHlwZShtb2RlbDogb2JqZWN0KTogRmllbGRUeXBlIHtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmZpZWxkVHlwZXNbdGhpcy5tb2RlbFByb3BlcnR5XVxuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHJldHVybiBjYWNoZWRcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmllbGRWYWx1ZVR5cGUgPSB0eXBlb2YgbW9kZWxbdGhpcy5tb2RlbFByb3BlcnR5XVxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy50eXBlID8gdGhpcy50eXBlIDogKHRoaXMub3B0aW9ucyA/ICdvcHRpb25zJyA6IGZpZWxkVmFsdWVUeXBlKVxuICAgICAgdGhpcy5maWVsZFR5cGVzW3RoaXMubW9kZWxQcm9wZXJ0eV0gPSByZXN1bHRcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZShuZXdWYWx1ZTogYW55LCBtb2RlbDogb2JqZWN0LCBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4pIHtcbiAgICBtb2RlbFt0aGlzLm1vZGVsUHJvcGVydHldID0gbmV3VmFsdWVcbiAgICBtb2RlbENoYW5nZS5lbWl0KHtwcm9wZXJ0eTogdGhpcy5tb2RlbFByb3BlcnR5LCB2YWx1ZTogbmV3VmFsdWV9KVxuICB9XG59XG5cblxuIl19