com.phloxui
Version:
PhloxUI Ng2+ Framework
333 lines (332 loc) • 23.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* <p style="text-indent: 2em;">
* A model class representing a single <code>Phlox Application</code>. An <code>application</code> may also consist of its <code>settings</code> and
* common <code>I18N</code>. An instance of this class is usually obtained from [[PhloxAppInfoService.getAppInfo]] which may load the info from backend
* server to return the user configurations such as language settings, user preferences, etc.
* </p>
*
* @author shiorin, tee4cute
* @see [[PhloxAppInfoService]]
*/
var PhloxAppInfo = /** @class */ (function () {
function PhloxAppInfo(name, tagline, group, iconURL) {
if (name === void 0) { name = 'App Name'; }
if (tagline === void 0) { tagline = 'App Tagline'; }
this.name = name;
this.tagline = tagline;
this.iconURL = iconURL;
this.group = group;
// Init default settings
this.settings = {
RIPPLE_EFFECT_DURATION: PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_DURATION,
RIPPLE_EFFECT_WIDTH_RATIO: PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_WIDTH_RATIO,
RIPPLE_EFFECT_HEIGHT_RATIO: PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_HEIGHT_RATIO,
RIPPLE_EFFECT_REMOVE_DURATION: PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_REMOVE_DURATION,
APP_SWITCHER_POPOVER_DELAY: PhloxAppInfo.DEFAULT_APP_SWITCHER_POPOVER_DELAY,
WIZARD_HEADER_HEIGHT: PhloxAppInfo.DEFAULT_WIZARD_HEADER_HEIGHT,
WIZARD_FOOTER_HEIGHT: PhloxAppInfo.DEFAULT_WIZARD_FOOTER_HEIGHT,
OBJECT_ID_FIELD_NAME: PhloxAppInfo.DEFAULT_OBJECT_ID_FIELD_NAME,
CONNECTION_TIMEOUT: PhloxAppInfo.DEFAULT_CONNECTION_TIMEOUT,
UI_SYSTEM_CLOCK_INTERVAL: PhloxAppInfo.DEFAULT_UI_SYSTEM_CLOCK_INTERVAL,
UI_ANIMATE_INTERVAL: PhloxAppInfo.DEFAULT_UI_ANIMATE_INTERVAL,
MAX_NOTIFICATIONS: PhloxAppInfo.DEFAULT_MAX_NOTIFICATIONS,
LANGUAGE_FIELD_NAME: PhloxAppInfo.DEFAULT_LANGUAGE_FIELD_NAME,
PAGE_LOAD_TIMEOUT: PhloxAppInfo.DEFAULT_PAGE_LOAD_TIMEOUT,
SYSTEM_YEAR_OFFSET: PhloxAppInfo.DEFAULT_SYSTEM_YEAR_OFFSET,
DATE_PATTERN: PhloxAppInfo.DEFAULT_DATE_PATTERN,
YEAR_OFFSET: PhloxAppInfo.DEFAULT_YEAR_OFFSET,
TIMEZONE: PhloxAppInfo.DEFAULT_TIMEZONE,
TIME_PATTERN: PhloxAppInfo.DEFAULT_TIME_PATTERN,
DEFAULT_DATA_LANGUAGES: PhloxAppInfo.DEFAULT_DATA_LANGUAGES,
COUNTRY_CODE: PhloxAppInfo.DEFAULT_COUNTRY_CODE,
DEFAULT_TIME_OUT_LOGIN_USER_SESSION: PhloxAppInfo.DEFAULT_TIME_OUT_LOGIN_USER_SESSION
};
// init default i18n
this.i18n = {
YES: 'Yes',
NO: 'No',
OK: 'OK',
CANCEL: 'Cancel',
CLOSE: 'Close',
CONFIRM: 'Confirm',
LANG: {
EN: { iconURL: null, code: 'en', name: 'English' },
TH: { iconURL: null, code: 'th', name: 'Thailand' },
JP: { iconURL: null, code: 'ja', name: 'Japanese' },
KR: { iconURL: null, code: 'kr', name: 'Korean' }
},
INVALID_DATA: 'Invalid Data'
};
// default resources
this.resources = {
CROSS_ROUND_BTN: 'http://i249.photobucket.com/albums/gg202/sound_horizon/cross_circle.png'
};
}
/**
* @return {?}
*/
PhloxAppInfo.prototype.getName = /**
* @return {?}
*/
function () {
return this.name;
};
/**
* @param {?} name
* @return {?}
*/
PhloxAppInfo.prototype.setName = /**
* @param {?} name
* @return {?}
*/
function (name) {
this.name = name;
};
/**
* @return {?}
*/
PhloxAppInfo.prototype.getTagline = /**
* @return {?}
*/
function () {
return this.tagline;
};
/**
* @param {?} tagline
* @return {?}
*/
PhloxAppInfo.prototype.setTagline = /**
* @param {?} tagline
* @return {?}
*/
function (tagline) {
this.tagline = tagline;
};
/**
* @return {?}
*/
PhloxAppInfo.prototype.getSettings = /**
* @return {?}
*/
function () {
return this.settings;
};
/**
* @param {?} settings
* @return {?}
*/
PhloxAppInfo.prototype.setSettings = /**
* @param {?} settings
* @return {?}
*/
function (settings) {
this.settings = settings;
};
/**
* @return {?}
*/
PhloxAppInfo.prototype.getIconURL = /**
* @return {?}
*/
function () {
return this.iconURL;
};
/**
* @param {?} iconURL
* @return {?}
*/
PhloxAppInfo.prototype.setIconURL = /**
* @param {?} iconURL
* @return {?}
*/
function (iconURL) {
this.iconURL = iconURL;
};
/**
* @return {?}
*/
PhloxAppInfo.prototype.getGroup = /**
* @return {?}
*/
function () {
return this.group;
};
/**
* @param {?} group
* @return {?}
*/
PhloxAppInfo.prototype.setGroup = /**
* @param {?} group
* @return {?}
*/
function (group) {
this.group = group;
};
/**
* @return {?}
*/
PhloxAppInfo.prototype.getI18n = /**
* @return {?}
*/
function () {
return this.i18n;
};
/**
* @param {?} i18n
* @return {?}
*/
PhloxAppInfo.prototype.setI18n = /**
* @param {?} i18n
* @return {?}
*/
function (i18n) {
this.i18n = i18n;
};
/**
* @return {?}
*/
PhloxAppInfo.prototype.getResources = /**
* @return {?}
*/
function () {
return this.resources;
};
/**
* @param {?} resources
* @return {?}
*/
PhloxAppInfo.prototype.setResources = /**
* @param {?} resources
* @return {?}
*/
function (resources) {
this.resources = resources;
};
PhloxAppInfo.DEFAULT_DATA_LANGUAGES = [
{ iconURL: null, code: 'th', country: 'TH', label: 'Thailand', countryCode: '+66' },
{ iconURL: null, code: 'en', country: 'EN', label: 'English', countryCode: '+44' },
{ iconURL: null, code: 'ja', country: 'JP', label: 'Japanese', countryCode: '+81' },
{ iconURL: null, code: 'kr', country: 'KR', label: 'Korean', countryCode: '+82' }
];
PhloxAppInfo.DEFAULT_COUNTRY_CODE = 'TH';
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_DURATION = 1.5;
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_WIDTH_RATIO = 0.5;
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_HEIGHT_RATIO = 0.5;
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_REMOVE_DURATION = 0.8;
PhloxAppInfo.DEFAULT_APP_SWITCHER_POPOVER_DELAY = 800;
PhloxAppInfo.DEFAULT_WIZARD_HEADER_HEIGHT = 140;
PhloxAppInfo.DEFAULT_WIZARD_FOOTER_HEIGHT = 140;
PhloxAppInfo.DEFAULT_OBJECT_ID_FIELD_NAME = '_uuid';
PhloxAppInfo.DEFAULT_LANGUAGE_FIELD_NAME = '_lang';
PhloxAppInfo.DEFAULT_CONNECTION_TIMEOUT = 7000;
PhloxAppInfo.DEFAULT_UI_SYSTEM_CLOCK_INTERVAL = 20;
PhloxAppInfo.DEFAULT_UI_ANIMATE_INTERVAL = 600;
PhloxAppInfo.DEFAULT_MAX_NOTIFICATIONS = 50;
PhloxAppInfo.DEFAULT_PAGE_LOAD_TIMEOUT = 8000;
PhloxAppInfo.DEFAULT_SYSTEM_YEAR_OFFSET = 543;
PhloxAppInfo.DEFAULT_DATE_PATTERN = 'dd/MM/yyyy';
PhloxAppInfo.DEFAULT_TIME_PATTERN = 'HH:mm:ss';
PhloxAppInfo.DEFAULT_YEAR_OFFSET = 543;
PhloxAppInfo.DEFAULT_TIMEZONE = 700;
PhloxAppInfo.DEFAULT_DATA_DATE_TIME_PATTERN = 'yyyy-MM-dd HH:mm:ss';
PhloxAppInfo.DEFAULT_DATA_DATE_PATTERN = 'yyyy-MM-dd';
PhloxAppInfo.DEFAULT_DATA_TIME_PATTERN = 'HH:mm:ss';
PhloxAppInfo.DEFAULT_DATA_TIME_ZONE = 700;
PhloxAppInfo.DEFAULT_TIME_OUT_LOGIN_USER_SESSION = 10000;
return PhloxAppInfo;
}());
export { PhloxAppInfo };
function PhloxAppInfo_tsickle_Closure_declarations() {
/** @type {?} */
PhloxAppInfo.DEFAULT_DATA_LANGUAGES;
/** @type {?} */
PhloxAppInfo.DEFAULT_COUNTRY_CODE;
/** @type {?} */
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_DURATION;
/** @type {?} */
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_WIDTH_RATIO;
/** @type {?} */
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_HEIGHT_RATIO;
/** @type {?} */
PhloxAppInfo.DEFAULT_RIPPLE_EFFECT_REMOVE_DURATION;
/** @type {?} */
PhloxAppInfo.DEFAULT_APP_SWITCHER_POPOVER_DELAY;
/** @type {?} */
PhloxAppInfo.DEFAULT_WIZARD_HEADER_HEIGHT;
/** @type {?} */
PhloxAppInfo.DEFAULT_WIZARD_FOOTER_HEIGHT;
/** @type {?} */
PhloxAppInfo.DEFAULT_OBJECT_ID_FIELD_NAME;
/** @type {?} */
PhloxAppInfo.DEFAULT_LANGUAGE_FIELD_NAME;
/** @type {?} */
PhloxAppInfo.DEFAULT_CONNECTION_TIMEOUT;
/** @type {?} */
PhloxAppInfo.DEFAULT_UI_SYSTEM_CLOCK_INTERVAL;
/** @type {?} */
PhloxAppInfo.DEFAULT_UI_ANIMATE_INTERVAL;
/** @type {?} */
PhloxAppInfo.DEFAULT_MAX_NOTIFICATIONS;
/** @type {?} */
PhloxAppInfo.DEFAULT_PAGE_LOAD_TIMEOUT;
/** @type {?} */
PhloxAppInfo.DEFAULT_SYSTEM_YEAR_OFFSET;
/** @type {?} */
PhloxAppInfo.DEFAULT_DATE_PATTERN;
/** @type {?} */
PhloxAppInfo.DEFAULT_TIME_PATTERN;
/** @type {?} */
PhloxAppInfo.DEFAULT_YEAR_OFFSET;
/** @type {?} */
PhloxAppInfo.DEFAULT_TIMEZONE;
/** @type {?} */
PhloxAppInfo.DEFAULT_DATA_DATE_TIME_PATTERN;
/** @type {?} */
PhloxAppInfo.DEFAULT_DATA_DATE_PATTERN;
/** @type {?} */
PhloxAppInfo.DEFAULT_DATA_TIME_PATTERN;
/** @type {?} */
PhloxAppInfo.DEFAULT_DATA_TIME_ZONE;
/** @type {?} */
PhloxAppInfo.DEFAULT_TIME_OUT_LOGIN_USER_SESSION;
/**
* An application name.
* @type {?}
*/
PhloxAppInfo.prototype.name;
/**
* An application tagline.
* @type {?}
*/
PhloxAppInfo.prototype.tagline;
/**
* An application icon url.
* @type {?}
*/
PhloxAppInfo.prototype.iconURL;
/**
* An application group.
* @type {?}
*/
PhloxAppInfo.prototype.group;
/**
* An application settings object.
* @type {?}
*/
PhloxAppInfo.prototype.settings;
/**
* An application I18N object.
* @type {?}
*/
PhloxAppInfo.prototype.i18n;
/**
* An application resources object.
* @type {?}
*/
PhloxAppInfo.prototype.resources;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGhsb3hBcHBJbmZvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L21vZGVsL1BobG94QXBwSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUF5RUUsc0JBQVksSUFBeUIsRUFBRSxPQUErQixFQUFFLEtBQWEsRUFBRSxPQUFlO1FBQTFGLHFCQUFBLEVBQUEsaUJBQXlCO1FBQUUsd0JBQUEsRUFBQSx1QkFBK0I7UUFDcEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7O1FBR25CLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDZCxzQkFBc0IsRUFBRSxZQUFZLENBQUMsOEJBQThCO1lBQ25FLHlCQUF5QixFQUFFLFlBQVksQ0FBQyxpQ0FBaUM7WUFDekUsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLGtDQUFrQztZQUMzRSw2QkFBNkIsRUFBRSxZQUFZLENBQUMscUNBQXFDO1lBQ2pGLDBCQUEwQixFQUFFLFlBQVksQ0FBQyxrQ0FBa0M7WUFDM0Usb0JBQW9CLEVBQUUsWUFBWSxDQUFDLDRCQUE0QjtZQUMvRCxvQkFBb0IsRUFBRSxZQUFZLENBQUMsNEJBQTRCO1lBQy9ELG9CQUFvQixFQUFFLFlBQVksQ0FBQyw0QkFBNEI7WUFDL0Qsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDBCQUEwQjtZQUMzRCx3QkFBd0IsRUFBRSxZQUFZLENBQUMsZ0NBQWdDO1lBQ3ZFLG1CQUFtQixFQUFFLFlBQVksQ0FBQywyQkFBMkI7WUFDN0QsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLHlCQUF5QjtZQUN6RCxtQkFBbUIsRUFBRSxZQUFZLENBQUMsMkJBQTJCO1lBQzdELGlCQUFpQixFQUFFLFlB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QUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7UUFDbkYsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7UUFDbEYsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7UUFDbkYsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7S0FDbEY7d0NBQ3FELElBQUk7a0RBQ00sR0FBRztxREFDQSxHQUFHO3NEQUNGLEdBQUc7eURBQ0EsR0FBRztzREFDTixHQUFHO2dEQUNULEdBQUc7Z0RBQ0gsR0FBRztnREFDSCxPQUFPOytDQUNSLE9BQU87OENBQ1IsSUFBSTtvREFDRSxFQUFFOytDQUNQLEdBQUc7NkNBQ0wsRUFBRTs2Q0FDRixJQUFJOzhDQUNILEdBQUc7d0NBQ1QsWUFBWTt3Q0FDWixVQUFVO3VDQUNYLEdBQUc7b0NBQ04sR0FBRztrREFDVyxxQkFBcUI7NkNBQzFCLFlBQVk7NkNBQ1osVUFBVTswQ0FDYixHQUFHO3VEQUNVLEtBQUs7dUJBMUM1RTs7U0FVYSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiA8cCBzdHlsZT1cInRleHQtaW5kZW50OiAyZW07XCI+XG4gKiBBIG1vZGVsIGNsYXNzIHJlcHJlc2VudGluZyBhIHNpbmdsZSA8Y29kZT5QaGxveCBBcHBsaWNhdGlvbjwvY29kZT4uIEFuIDxjb2RlPmFwcGxpY2F0aW9uPC9jb2RlPiBtYXkgYWxzbyBjb25zaXN0IG9mIGl0cyA8Y29kZT5zZXR0aW5nczwvY29kZT4gYW5kXG4gKiBjb21tb24gPGNvZGU+STE4TjwvY29kZT4uIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgaXMgdXN1YWxseSBvYnRhaW5lZCBmcm9tIFtbUGhsb3hBcHBJbmZvU2VydmljZS5nZXRBcHBJbmZvXV0gd2hpY2ggbWF5IGxvYWQgdGhlIGluZm8gZnJvbSBiYWNrZW5kXG4gKiBzZXJ2ZXIgdG8gcmV0dXJuIHRoZSB1c2VyIGNvbmZpZ3VyYXRpb25zIHN1Y2ggYXMgbGFuZ3VhZ2Ugc2V0dGluZ3MsIHVzZXIgcHJlZmVyZW5jZXMsIGV0Yy5cbiAqIDwvcD5cbiAqXG4gKiBAYXV0aG9yIHNoaW9yaW4sIHRlZTRjdXRlXG4gKiBAc2VlIFtbUGhsb3hBcHBJbmZvU2VydmljZV1dXG4gKi9cbmV4cG9ydCBjbGFzcyBQaGxveEFwcEluZm8ge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9EQVRBX0xBTkdVQUdFUzogYW55W10gPSBbXG4gICAgeyBpY29uVVJMOiBudWxsLCBjb2RlOiAndGgnLCBjb3VudHJ5OiAnVEgnLCBsYWJlbDogJ1RoYWlsYW5kJywgY291bnRyeUNvZGU6ICcrNjYnIH0sXG4gICAgeyBpY29uVVJMOiBudWxsLCBjb2RlOiAnZW4nLCBjb3VudHJ5OiAnRU4nLCBsYWJlbDogJ0VuZ2xpc2gnLCBjb3VudHJ5Q29kZTogJys0NCcgfSxcbiAgICB7IGljb25VUkw6IG51bGwsIGNvZGU6ICdqYScsIGNvdW50cnk6ICdKUCcsIGxhYmVsOiAnSmFwYW5lc2UnLCBjb3VudHJ5Q29kZTogJys4MScgfSxcbiAgICB7IGljb25VUkw6IG51bGwsIGNvZGU6ICdrcicsIGNvdW50cnk6ICdLUicsIGxhYmVsOiAnS29yZWFuJywgY291bnRyeUNvZGU6ICcrODInIH1cbiAgXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0NPVU5UUllfQ09ERTogc3RyaW5nID0gJ1RIJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JJUFBMRV9FRkZFQ1RfRFVSQVRJT046IG51bWJlciA9IDEuNTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JJUFBMRV9FRkZFQ1RfV0lEVEhfUkFUSU86IG51bWJlciA9IDAuNTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JJUFBMRV9FRkZFQ1RfSEVJR0hUX1JBVElPOiBudW1iZXIgPSAwLjU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9SSVBQTEVfRUZGRUNUX1JFTU9WRV9EVVJBVElPTjogbnVtYmVyID0gMC44O1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQVBQX1NXSVRDSEVSX1BPUE9WRVJfREVMQVk6IG51bWJlciA9IDgwMDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1dJWkFSRF9IRUFERVJfSEVJR0hUOiBudW1iZXIgPSAxNDA7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9XSVpBUkRfRk9PVEVSX0hFSUdIVDogbnVtYmVyID0gMTQwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfT0JKRUNUX0lEX0ZJRUxEX05BTUU6IHN0cmluZyA9ICdfdXVpZCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MQU5HVUFHRV9GSUVMRF9OQU1FOiBzdHJpbmcgPSAnX2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQ09OTkVDVElPTl9USU1FT1VUOiBudW1iZXIgPSA3MDAwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVUlfU1lTVEVNX0NMT0NLX0lOVEVSVkFMOiBudW1iZXIgPSAyMDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1VJX0FOSU1BVEVfSU5URVJWQUw6IG51bWJlciA9IDYwMDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX01BWF9OT1RJRklDQVRJT05TOiBudW1iZXIgPSA1MDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1BBR0VfTE9BRF9USU1FT1VUOiBudW1iZXIgPSA4MDAwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfU1lTVEVNX1lFQVJfT0ZGU0VUOiBudW1iZXIgPSA1NDM7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9EQVRFX1BBVFRFUk46IHN0cmluZyA9ICdkZC9NTS95eXl5JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJTUVfUEFUVEVSTjogc3RyaW5nID0gJ0hIOm1tOnNzJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1lFQVJfT0ZGU0VUOiBudW1iZXIgPSA1NDM7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9USU1FWk9ORTogbnVtYmVyID0gNzAwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfREFUQV9EQVRFX1RJTUVfUEFUVEVSTjogc3RyaW5nID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfREFUQV9EQVRFX1BBVFRFUk46IHN0cmluZyA9ICd5eXl5LU1NLWRkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RBVEFfVElNRV9QQVRURVJOOiBzdHJpbmcgPSAnSEg6bW06c3MnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfREFUQV9USU1FX1pPTkU6IG51bWJlciA9IDcwMDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJTUVfT1VUX0xPR0lOX1VTRVJfU0VTU0lPTjogbnVtYmVyID0gMTAwMDA7XG5cbiAgLyoqXG4gICAqIEFuIGFwcGxpY2F0aW9uIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQW4gYXBwbGljYXRpb24gdGFnbGluZS5cbiAgICovXG4gIHB1YmxpYyB0YWdsaW5lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcHBsaWNhdGlvbiBpY29uIHVybC5cbiAgICovXG4gIHB1YmxpYyBpY29uVVJMOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcHBsaWNhdGlvbiBncm91cC5cbiAgICovXG4gIHB1YmxpYyBncm91cDogc3RyaW5nO1xuICAvKipcbiAgICogQW4gYXBwbGljYXRpb24gc2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHNldHRpbmdzOiBhbnk7XG4gIC8qKlxuICAgKiBBbiBhcHBsaWNhdGlvbiBJMThOIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBpMThuOiBhbnk7XG4gIC8qKlxuICAgKiBBbiBhcHBsaWNhdGlvbiByZXNvdXJjZXMgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHJlc291cmNlczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZyA9ICdBcHAgTmFtZScsIHRhZ2xpbmU6IHN0cmluZyA9ICdBcHAgVGFnbGluZScsIGdyb3VwOiBzdHJpbmcsIGljb25VUkw6IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy50YWdsaW5lID0gdGFnbGluZTtcbiAgICB0aGlzLmljb25VUkwgPSBpY29uVVJMO1xuICAgIHRoaXMuZ3JvdXAgPSBncm91cDtcblxuICAgIC8vIEluaXQgZGVmYXVsdCBzZXR0aW5nc1xuICAgIHRoaXMuc2V0dGluZ3MgPSB7XG4gICAgICBSSVBQTEVfRUZGRUNUX0RVUkFUSU9OOiBQaGxveEFwcEluZm8uREVGQVVMVF9SSVBQTEVfRUZGRUNUX0RVUkFUSU9OLFxuICAgICAgUklQUExFX0VGRkVDVF9XSURUSF9SQVRJTzogUGhsb3hBcHBJbmZvLkRFRkFVTFRfUklQUExFX0VGRkVDVF9XSURUSF9SQVRJTyxcbiAgICAgIFJJUFBMRV9FRkZFQ1RfSEVJR0hUX1JBVElPOiBQaGxveEFwcEluZm8uREVGQVVMVF9SSVBQTEVfRUZGRUNUX0hFSUdIVF9SQVRJTyxcbiAgICAgIFJJUFBMRV9FRkZFQ1RfUkVNT1ZFX0RVUkFUSU9OOiBQaGxveEFwcEluZm8uREVGQVVMVF9SSVBQTEVfRUZGRUNUX1JFTU9WRV9EVVJBVElPTixcbiAgICAgIEFQUF9TV0lUQ0hFUl9QT1BPVkVSX0RFTEFZOiBQaGxveEFwcEluZm8uREVGQVVMVF9BUFBfU1dJVENIRVJfUE9QT1ZFUl9ERUxBWSxcbiAgICAgIFdJWkFSRF9IRUFERVJfSEVJR0hUOiBQaGxveEFwcEluZm8uREVGQVVMVF9XSVpBUkRfSEVBREVSX0hFSUdIVCxcbiAgICAgIFdJWkFSRF9GT09URVJfSEVJR0hUOiBQaGxveEFwcEluZm8uREVGQVVMVF9XSVpBUkRfRk9PVEVSX0hFSUdIVCxcbiAgICAgIE9CSkVDVF9JRF9GSUVMRF9OQU1FOiBQaGxveEFwcEluZm8uREVGQVVMVF9PQkpFQ1RfSURfRklFTERfTkFNRSxcbiAgICAgIENPTk5FQ1RJT05fVElNRU9VVDogUGhsb3hBcHBJbmZvLkRFRkFVTFRfQ09OTkVDVElPTl9USU1FT1VULFxuICAgICAgVUlfU1lTVEVNX0NMT0NLX0lOVEVSVkFMOiBQaGxveEFwcEluZm8uREVGQVVMVF9VSV9TWVNURU1fQ0xPQ0tfSU5URVJWQUwsXG4gICAgICBVSV9BTklNQVRFX0lOVEVSVkFMOiBQaGxveEFwcEluZm8uREVGQVVMVF9VSV9BTklNQVRFX0lOVEVSVkFMLFxuICAgICAgTUFYX05PVElGSUNBVElPTlM6IFBobG94QXBwSW5mby5ERUZBVUxUX01BWF9OT1RJRklDQVRJT05TLFxuICAgICAgTEFOR1VBR0VfRklFTERfTkFNRTogUGhsb3hBcHBJbmZvLkRFRkFVTFRfTEFOR1VBR0VfRklFTERfTkFNRSxcbiAgICAgIFBBR0VfTE9BRF9USU1FT1VUOiBQaGxveEFwcEluZm8uREVGQVVMVF9QQUdFX0xPQURfVElNRU9VVCxcbiAgICAgIFNZU1RFTV9ZRUFSX09GRlNFVDogUGhsb3hBcHBJbmZvLkRFRkFVTFRfU1lTVEVNX1lFQVJfT0ZGU0VULFxuICAgICAgREFURV9QQVRURVJOOiBQaGxveEFwcEluZm8uREVGQVVMVF9EQVRFX1BBVFRFUk4sXG4gICAgICBZRUFSX09GRlNFVDogUGhsb3hBcHBJbmZvLkRFRkFVTFRfWUVBUl9PRkZTRVQsXG4gICAgICBUSU1FWk9ORTogUGhsb3hBcHBJbmZvLkRFRkFVTFRfVElNRVpPTkUsXG4gICAgICBUSU1FX1BBVFRFUk46IFBobG94QXBwSW5mby5ERUZBVUxUX1RJTUVfUEFUVEVSTixcbiAgICAgIERFRkFVTFRfREFUQV9MQU5HVUFHRVM6IFBobG94QXBwSW5mby5ERUZBVUxUX0RBVEFfTEFOR1VBR0VTLFxuICAgICAgQ09VTlRSWV9DT0RFOiBQaGxveEFwcEluZm8uREVGQVVMVF9DT1VOVFJZX0NPREUsXG4gICAgICBERUZBVUxUX1RJTUVfT1VUX0xPR0lOX1VTRVJfU0VTU0lPTjogUGhsb3hBcHBJbmZvLkRFRkFVTFRfVElNRV9PVVRfTE9HSU5fVVNFUl9TRVNTSU9OXG4gICAgfTtcblxuICAgIC8vIGluaXQgZGVmYXVsdCBpMThuXG4gICAgdGhpcy5pMThuID0ge1xuICAgICAgWUVTOiAnWWVzJyxcbiAgICAgIE5POiAnTm8nLFxuICAgICAgT0s6ICdPSycsXG4gICAgICBDQU5DRUw6ICdDYW5jZWwnLFxuICAgICAgQ0xPU0U6ICdDbG9zZScsXG4gICAgICBDT05GSVJNOiAnQ29uZmlybScsXG4gICAgICBMQU5HOiB7XG4gICAgICAgIEVOOiB7IGljb25VUkw6IG51bGwsIGNvZGU6ICdlbicsIG5hbWU6ICdFbmdsaXNoJyB9LFxuICAgICAgICBUSDogeyBpY29uVVJMOiBudWxsLCBjb2RlOiAndGgnLCBuYW1lOiAnVGhhaWxhbmQnIH0sXG4gICAgICAgIEpQOiB7IGljb25VUkw6IG51bGwsIGNvZGU6ICdqYScsIG5hbWU6ICdKYXBhbmVzZScgfSxcbiAgICAgICAgS1I6IHsgaWNvblVSTDogbnVsbCwgY29kZTogJ2tyJywgbmFtZTogJ0tvcmVhbicgfVxuICAgICAgfSxcbiAgICAgIElOVkFMSURfREFUQTogJ0ludmFsaWQgRGF0YSdcbiAgICB9O1xuXG4gICAgLy8gZGVmYXVsdCByZXNvdXJjZXNcbiAgICB0aGlzLnJlc291cmNlcyA9IHtcbiAgICAgIENST1NTX1JPVU5EX0JUTjogJ2h0dHA6Ly9pMjQ5LnBob3RvYnVja2V0LmNvbS9hbGJ1bXMvZ2cyMDIvc291bmRfaG9yaXpvbi9jcm9zc19jaXJjbGUucG5nJ1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXROYW1lKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFnbGluZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRhZ2xpbmU7XG4gIH1cblxuICBwdWJsaWMgc2V0VGFnbGluZSh0YWdsaW5lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRhZ2xpbmUgPSB0YWdsaW5lO1xuICB9XG5cbiAgcHVibGljIGdldFNldHRpbmdzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgc2V0U2V0dGluZ3Moc2V0dGluZ3M6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBnZXRJY29uVVJMKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWNvblVSTDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJY29uVVJMKGljb25VUkw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaWNvblVSTCA9IGljb25VUkw7XG4gIH1cblxuICBwdWJsaWMgZ2V0R3JvdXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ncm91cDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRHcm91cChncm91cDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICB9XG5cbiAgcHVibGljIGdldEkxOG4oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5pMThuO1xuICB9XG5cbiAgcHVibGljIHNldEkxOG4oaTE4bjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pMThuID0gaTE4bjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXNvdXJjZXMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0UmVzb3VyY2VzKHJlc291cmNlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSByZXNvdXJjZXM7XG4gIH1cbn1cbiJdfQ==