@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
66 lines • 11.1 kB
JavaScript
import { LogLevel } from '@microsoft/windows-admin-center-sdk/core/diagnostics/log-level';
import { Logging } from '@microsoft/windows-admin-center-sdk/core/diagnostics/logging';
import { SchemaUtilities } from './schema-utilities';
/**
* Schema Form Data Type Store
* It maintains the data type registrations per form instance.
*/
export class SchemaDataTypeStore {
constructor() {
this.dataTypeMap = {};
for (const type in SchemaDataTypeStore.dataTypeRegistrationsFromClass) {
if (SchemaDataTypeStore.dataTypeRegistrationsFromClass.hasOwnProperty(type)) {
this.registerDataType(SchemaDataTypeStore.dataTypeRegistrationsFromClass[type]);
}
}
}
/**
* It registers the data type registration.
*/
static registerDataType(dataTypeRegistration) {
const fullType = SchemaUtilities.generateFullTypeStringByDataTypeRegistration(dataTypeRegistration);
SchemaDataTypeStore.dataTypeRegistrationsFromClass[fullType] = dataTypeRegistration;
}
/**
* It returns the names of all the data type registrations.
*/
getAllRegistrations() {
const result = [];
for (const type in this.dataTypeMap) {
if (this.dataTypeMap.hasOwnProperty(type)) {
result.push(this.dataTypeMap[type]);
}
}
return result;
}
/**
* It gets the data type registration by type.
*/
getDataTypeRegistration(type, format) {
const fullType = SchemaUtilities.generateFullTypeString(type, format);
const result = this.dataTypeMap[fullType];
if (!result) {
Logging.log({
level: LogLevel.Error,
message: 'Failed to find data type registration',
params: {
type: fullType
},
source: 'SchemaFormDataTypeStore.getDataTypeRegistration'
});
}
return result;
}
/**
* It registers the data type registration.
*/
registerDataType(dataTypeRegistration) {
const fullType = SchemaUtilities.generateFullTypeStringByDataTypeRegistration(dataTypeRegistration);
this.dataTypeMap[fullType] = dataTypeRegistration;
}
}
/**
* It's used to store the data type registrations submitted from the form field components.
*/
SchemaDataTypeStore.dataTypeRegistrationsFromClass = {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc2NoZW1hL3NjaGVtYS1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBZTVCO1FBVlEsZ0JBQVcsR0FBNkMsRUFBRSxDQUFDO1FBVy9ELEtBQUssTUFBTSxJQUFJLElBQUksbUJBQW1CLENBQUMsOEJBQThCLEVBQUU7WUFDbkUsSUFBSSxtQkFBbUIsQ0FBQyw4QkFBOEIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25GO1NBQ0o7SUFDTCxDQUFDO0lBZEQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsb0JBQTBDO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyw0Q0FBNEMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BHLG1CQUFtQixDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO0lBQ3hGLENBQUM7SUFTRDs7T0FFRztJQUNJLG1CQUFtQjtRQUN0QixNQUFNLE1BQU0sR0FBMkIsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNqQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN2QztTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNEOztPQUVHO0lBQ0ksdUJBQXVCLENBQUMsSUFBeUIsRUFBRSxNQUFlO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDUixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3JCLE9BQU8sRUFBRSx1Q0FBdUM7Z0JBQ2hELE1BQU0sRUFBRTtvQkFDSixJQUFJLEVBQUUsUUFBUTtpQkFDakI7Z0JBQ0QsTUFBTSxFQUFFLGlEQUFpRDthQUM1RCxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLG9CQUEwQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsNENBQTRDLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO0lBQ3RELENBQUM7O0FBekREOztHQUVHO0FBQ1csa0RBQThCLEdBQTZDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZy1sZXZlbCc7XHJcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZ2dpbmcnO1xyXG5pbXBvcnQgeyBTY2hlbWFQcmltaXRpdmVUeXBlLCBTY2hlbWFQcm9wZXJ0eSB9IGZyb20gJy4vc2NoZW1hLW1vZGVscyc7XHJcbmltcG9ydCB7IFNjaGVtYVV0aWxpdGllcyB9IGZyb20gJy4vc2NoZW1hLXV0aWxpdGllcyc7XHJcblxyXG4vKipcclxuICogU2NoZW1hIEZvcm0gRGF0YSBUeXBlIFN0b3JlXHJcbiAqIEl0IG1haW50YWlucyB0aGUgZGF0YSB0eXBlIHJlZ2lzdHJhdGlvbnMgcGVyIGZvcm0gaW5zdGFuY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2NoZW1hRGF0YVR5cGVTdG9yZSB7XHJcbiAgICAvKipcclxuICAgICAqIEl0J3MgdXNlZCB0byBzdG9yZSB0aGUgZGF0YSB0eXBlIHJlZ2lzdHJhdGlvbnMgc3VibWl0dGVkIGZyb20gdGhlIGZvcm0gZmllbGQgY29tcG9uZW50cy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBkYXRhVHlwZVJlZ2lzdHJhdGlvbnNGcm9tQ2xhc3M6IHsgW3R5cGU6IHN0cmluZ106IERhdGFUeXBlUmVnaXN0cmF0aW9uIH0gPSB7fTtcclxuICAgIHByaXZhdGUgZGF0YVR5cGVNYXA6IHsgW3R5cGU6IHN0cmluZ106IERhdGFUeXBlUmVnaXN0cmF0aW9uIH0gPSB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IHJlZ2lzdGVycyB0aGUgZGF0YSB0eXBlIHJlZ2lzdHJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZWdpc3RlckRhdGFUeXBlKGRhdGFUeXBlUmVnaXN0cmF0aW9uOiBEYXRhVHlwZVJlZ2lzdHJhdGlvbik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZ1bGxUeXBlID0gU2NoZW1hVXRpbGl0aWVzLmdlbmVyYXRlRnVsbFR5cGVTdHJpbmdCeURhdGFUeXBlUmVnaXN0cmF0aW9uKGRhdGFUeXBlUmVnaXN0cmF0aW9uKTtcclxuICAgICAgICBTY2hlbWFEYXRhVHlwZVN0b3JlLmRhdGFUeXBlUmVnaXN0cmF0aW9uc0Zyb21DbGFzc1tmdWxsVHlwZV0gPSBkYXRhVHlwZVJlZ2lzdHJhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgaW4gU2NoZW1hRGF0YVR5cGVTdG9yZS5kYXRhVHlwZVJlZ2lzdHJhdGlvbnNGcm9tQ2xhc3MpIHtcclxuICAgICAgICAgICAgaWYgKFNjaGVtYURhdGFUeXBlU3RvcmUuZGF0YVR5cGVSZWdpc3RyYXRpb25zRnJvbUNsYXNzLmhhc093blByb3BlcnR5KHR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGF0YVR5cGUoU2NoZW1hRGF0YVR5cGVTdG9yZS5kYXRhVHlwZVJlZ2lzdHJhdGlvbnNGcm9tQ2xhc3NbdHlwZV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCByZXR1cm5zIHRoZSBuYW1lcyBvZiBhbGwgdGhlIGRhdGEgdHlwZSByZWdpc3RyYXRpb25zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QWxsUmVnaXN0cmF0aW9ucygpOiBEYXRhVHlwZVJlZ2lzdHJhdGlvbltdIHtcclxuICAgICAgICBjb25zdCByZXN1bHQ6IERhdGFUeXBlUmVnaXN0cmF0aW9uW10gPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5kYXRhVHlwZU1hcCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhVHlwZU1hcC5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5kYXRhVHlwZU1hcFt0eXBlXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSXQgZ2V0cyB0aGUgZGF0YSB0eXBlIHJlZ2lzdHJhdGlvbiBieSB0eXBlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF0YVR5cGVSZWdpc3RyYXRpb24odHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZSwgZm9ybWF0Pzogc3RyaW5nKTogRGF0YVR5cGVSZWdpc3RyYXRpb24ge1xyXG4gICAgICAgIGNvbnN0IGZ1bGxUeXBlID0gU2NoZW1hVXRpbGl0aWVzLmdlbmVyYXRlRnVsbFR5cGVTdHJpbmcodHlwZSwgZm9ybWF0KTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRhdGFUeXBlTWFwW2Z1bGxUeXBlXTtcclxuICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmxvZyh7XHJcbiAgICAgICAgICAgICAgICBsZXZlbDogTG9nTGV2ZWwuRXJyb3IsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnRmFpbGVkIHRvIGZpbmQgZGF0YSB0eXBlIHJlZ2lzdHJhdGlvbicsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmdWxsVHlwZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogJ1NjaGVtYUZvcm1EYXRhVHlwZVN0b3JlLmdldERhdGFUeXBlUmVnaXN0cmF0aW9uJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogSXQgcmVnaXN0ZXJzIHRoZSBkYXRhIHR5cGUgcmVnaXN0cmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJEYXRhVHlwZShkYXRhVHlwZVJlZ2lzdHJhdGlvbjogRGF0YVR5cGVSZWdpc3RyYXRpb24pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmdWxsVHlwZSA9IFNjaGVtYVV0aWxpdGllcy5nZW5lcmF0ZUZ1bGxUeXBlU3RyaW5nQnlEYXRhVHlwZVJlZ2lzdHJhdGlvbihkYXRhVHlwZVJlZ2lzdHJhdGlvbik7XHJcbiAgICAgICAgdGhpcy5kYXRhVHlwZU1hcFtmdWxsVHlwZV0gPSBkYXRhVHlwZVJlZ2lzdHJhdGlvbjtcclxuICAgIH1cclxufVxyXG4vKipcclxuICogSXQgZGVzY3JpYmVzIGFsbCB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZvciBhIHNjaGVtYSBmb3JtIGZpZWxkLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhVHlwZVJlZ2lzdHJhdGlvbiB7XHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIHByaW1pdGl2ZSB0eXBlIG9mIHRoZSBkYXRhIHR5cGUuXHJcbiAgICAgKi9cclxuICAgIHR5cGU6IFNjaGVtYVByaW1pdGl2ZVR5cGU7XHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBkYXRhIHR5cGUuIFRoZSBkZXNjcmlwdGlvbiB3aWxsIGJlIHVzZWQgaW4gdGhlIGVkaXRvciB3aGljaCBhIGRhdGEgdHlwZSBpcyBjaG9zZW5cclxuICAgICAqIHRvIGhlbHAgZXhwbGFpbiBob3cgdGhlIGNob3NlbiBkYXRhIHR5cGUgd29ya3MuXHJcbiAgICAgKi9cclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIGZvcm1hdCBvZiB0aGUgZGF0YSB0eXBlLiBGb3JtYXQgbWFwcyB0byBhIHNwZWNpZmljIFVJIGNvbnRyb2wgZm9yIHRoZSBkYXRhIHR5cGUuXHJcbiAgICAgKi9cclxuICAgIGZvcm1hdDogc3RyaW5nO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZWZpbmVzIGhvdyB0aGUgYW5ndWxhciB0ZW1wbGF0ZSBodG1sIHNob3VsZCBiZSBnZW5lcmF0ZWQgZm9yIHRoZSBzY2hlbWEgcHJvcGVydHkuXHJcbiAgICAgKi9cclxuICAgIGxvYWRlckNvbXBvbmVudD86IFR5cGU8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgaG93IHRoZSBvYmplY3QgdHlwZSBzY2hlbWEgc2hvdWxkIGxvb2sgbGlrZSBmb3IgdGhlIG9iamVjdCB0eXBlIHNjaGVtYS5cclxuICAgICAqL1xyXG4gICAgcHJlZGVmaW5lZE9iamVjdFByb3BlcnRpZXM/OiBTY2hlbWFQcm9wZXJ0eVtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGVmaW5lcyB0aGUgc2NoZW1hIG9mIHRoZSBvcHRpb24gcHJvcGVydHkuXHJcbiAgICAgKiBFeGFtcGxlOiBmb3IgZHJvcCBkb3duIGxpc3QgZmllbGQsIHRoZSBvcHRpb24gcHJvcGVydGllcyB3b3VsZCBiZSBhbiBhcnJheSBmb3Iga2V5IHZhbHVlIHBhaXJzIHRvIHByb3ZpZGUgZHJvcCBkb3duIG9wdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIG9wdGlvblByb3BlcnRpZXM/OiBTY2hlbWFQcm9wZXJ0eVtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVyZSBpcyB0aGUgcGxhY2UgdG8gYXBwZW5kIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciB0aGUgZGF0YSB0eXBlLlxyXG4gICAgICogRS5nLiBKc29uIG9iamVjdCBkYXRhIHR5cGUgaGFzIGEgdGFnIHNheXMgXCJmb3JtLWVkaXRvclwiIHRvIGluZGljYXRlIHRoYXQgZGF0YSB0eXBlIGlzIG9ubHkgdXNlZCBmb3IgZm9ybSBlZGl0b3IsIGl0J3Mgbm90IGF2YWlsYWJsZVxyXG4gICAgICogZm9yIG5vcm1hbCBmb3Jtcy5cclxuICAgICAqL1xyXG4gICAgdGFncz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGVmaW5lcyB3aGV0aGVyIHRoZSBmb3JtYXQgb2YgdGhpcyBkYXRhIHR5cGUgaXMgdGhlIGRlZmF1bHQgZm9ybWF0IG9mIHRoYXQgdHlwZS5cclxuICAgICAqL1xyXG4gICAgaXNEZWZhdWx0Rm9ybWF0PzogYm9vbGVhbjtcclxuXHJcbiAgICBkZWZhdWx0RGF0YUhhbmRsZXI/OiAoc2NoZW1hOiBTY2hlbWFQcm9wZXJ0eSkgPT4gYW55O1xyXG59XHJcbiJdfQ==