com.phloxui
Version:
PhloxUI Ng2+ Framework
67 lines (66 loc) • 7.59 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var JsonSchemaUtils = /** @class */ (function () {
function JsonSchemaUtils() {
}
/**
* @param {?} key
* @param {?} jsonSchema
* @return {?}
*/
JsonSchemaUtils.getPropertiesValue = /**
* @param {?} key
* @param {?} jsonSchema
* @return {?}
*/
function (key, jsonSchema) {
if (key === null || typeof key === 'undefined' || jsonSchema === null || typeof jsonSchema === 'undefined') {
return null;
}
var /** @type {?} */ result = null;
var /** @type {?} */ schemaType = jsonSchema.type;
var /** @type {?} */ schemaProps = null;
if (schemaType !== null && typeof schemaType !== 'undefined') {
if (schemaType === 'object') {
schemaProps = jsonSchema.properties;
}
else if (schemaType === 'array') {
schemaProps = (jsonSchema.items !== null && typeof jsonSchema.items !== 'undefined') ? jsonSchema.items.properties : null;
}
}
if (key.indexOf(".") > 0) {
var /** @type {?} */ splitKeys = key.split(".");
if (splitKeys.length > 0) {
var /** @type {?} */ firstKey = splitKeys[0];
if (schemaProps !== null && typeof schemaProps !== 'undefined') {
var /** @type {?} */ firstValue = schemaProps[firstKey];
if (firstValue != null && typeof firstValue !== 'undefined') {
if (typeof firstValue === 'object') {
if (splitKeys.length > 1) {
var /** @type {?} */ secondKey = key.substring(key.indexOf(".") + 1, key.length);
return this.getPropertiesValue(secondKey, firstValue); // recursive beware looping
}
}
}
}
}
}
else {
if (schemaProps !== null && typeof schemaProps !== 'undefined') {
result = schemaProps[key];
}
else {
result = jsonSchema[key];
}
}
if (result != null && typeof result !== 'undefined') {
return result;
}
return null;
};
return JsonSchemaUtils;
}());
export { JsonSchemaUtils };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSnNvblNjaGVtYVV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvSnNvblNjaGVtYVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFBOzs7Ozs7OztJQUNnQixrQ0FBa0I7Ozs7O2NBQUMsR0FBVyxFQUFFLFVBQXNCO1FBQ2xFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssV0FBVyxJQUFJLFVBQVUsS0FBSyxJQUFJLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMzRyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2I7UUFFRCxxQkFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLHFCQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ2pDLHFCQUFJLFdBQVcsR0FBUSxJQUFJLENBQUM7UUFDNUIsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxPQUFPLFVBQVUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzdELEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixXQUFXLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQzthQUNyQztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsV0FBVyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQzNIO1NBQ0Y7UUFFRCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIscUJBQUksU0FBUyxHQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixxQkFBSSxRQUFRLEdBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLE9BQU8sV0FBVyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQy9ELHFCQUFJLFVBQVUsR0FBUSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBRTVDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQzt3QkFDNUQsRUFBRSxDQUFDLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQzs0QkFDbkMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUN6QixxQkFBSSxTQUFTLEdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBRXhFLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDOzZCQUN2RDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLEVBQUUsQ0FBQyxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUI7U0FDRjtRQUVELEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDOzswQkFsRGhCO0lBb0RDLENBQUE7QUFsREQsMkJBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvblNjaGVtYSB9IGZyb20gXCIuLi9tb2RlbC9Kc29uU2NoZW1hXCI7XG5cbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hVXRpbHMge1xuICBwdWJsaWMgc3RhdGljIGdldFByb3BlcnRpZXNWYWx1ZShrZXk6IHN0cmluZywganNvblNjaGVtYTogSnNvblNjaGVtYSk6IGFueSB7XG4gICAgaWYgKGtleSA9PT0gbnVsbCB8fCB0eXBlb2Yga2V5ID09PSAndW5kZWZpbmVkJyB8fCBqc29uU2NoZW1hID09PSBudWxsIHx8IHR5cGVvZiBqc29uU2NoZW1hID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgbGV0IHNjaGVtYVR5cGUgPSBqc29uU2NoZW1hLnR5cGU7XG4gICAgbGV0IHNjaGVtYVByb3BzOiBhbnkgPSBudWxsO1xuICAgIGlmIChzY2hlbWFUeXBlICE9PSBudWxsICYmIHR5cGVvZiBzY2hlbWFUeXBlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgaWYgKHNjaGVtYVR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHNjaGVtYVByb3BzID0ganNvblNjaGVtYS5wcm9wZXJ0aWVzO1xuICAgICAgfSBlbHNlIGlmIChzY2hlbWFUeXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgIHNjaGVtYVByb3BzID0gKGpzb25TY2hlbWEuaXRlbXMgIT09IG51bGwgJiYgdHlwZW9mIGpzb25TY2hlbWEuaXRlbXMgIT09ICd1bmRlZmluZWQnKSA/IGpzb25TY2hlbWEuaXRlbXMucHJvcGVydGllcyA6IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtleS5pbmRleE9mKFwiLlwiKSA+IDApIHtcbiAgICAgIGxldCBzcGxpdEtleXM6IHN0cmluZ1tdID0ga2V5LnNwbGl0KFwiLlwiKTtcbiAgICAgIGlmIChzcGxpdEtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgZmlyc3RLZXk6IHN0cmluZyA9IHNwbGl0S2V5c1swXTtcblxuICAgICAgICBpZiAoc2NoZW1hUHJvcHMgIT09IG51bGwgJiYgdHlwZW9mIHNjaGVtYVByb3BzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGxldCBmaXJzdFZhbHVlOiBhbnkgPSBzY2hlbWFQcm9wc1tmaXJzdEtleV07XG5cbiAgICAgICAgICBpZiAoZmlyc3RWYWx1ZSAhPSBudWxsICYmIHR5cGVvZiBmaXJzdFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBmaXJzdFZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICBpZiAoc3BsaXRLZXlzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2Vjb25kS2V5OiBzdHJpbmcgPSBrZXkuc3Vic3RyaW5nKGtleS5pbmRleE9mKFwiLlwiKSArIDEsIGtleS5sZW5ndGgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydGllc1ZhbHVlKHNlY29uZEtleSwgZmlyc3RWYWx1ZSk7IC8vIHJlY3Vyc2l2ZSBiZXdhcmUgbG9vcGluZ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzY2hlbWFQcm9wcyAhPT0gbnVsbCAmJiB0eXBlb2Ygc2NoZW1hUHJvcHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJlc3VsdCA9IHNjaGVtYVByb3BzW2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBqc29uU2NoZW1hW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdCAhPSBudWxsICYmIHR5cGVvZiByZXN1bHQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=