com.phloxui
Version:
PhloxUI Ng2+ Framework
333 lines (332 loc) • 24 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGhsb3hBcHBJbmZvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvbW9kZWwvUGhsb3hBcHBJbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQTJFRSxzQkFBWSxJQUF5QixFQUFFLE9BQStCLEVBQUUsS0FBYSxFQUFFLE9BQWU7UUFBMUYscUJBQUEsRUFBQSxpQkFBeUI7UUFBRSx3QkFBQSxFQUFBLHVCQUErQjtRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzs7UUFHbkIsSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLHNCQUFzQixFQUFFLFlBQVksQ0FBQyw4QkFBOEI7WUFDbkUseUJBQXlCLEVBQUUsWUFBWSxDQUFDLGlDQUFpQztZQUN6RSwwQkFBMEIsRUFBRSxZQUFZLENBQUMsa0NBQWtDO1lBQzNFLDZCQUE2QixFQUFFLFlBQVksQ0FBQyxxQ0FBcUM7WUFDakYsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLGtDQUFrQztZQUMzRSxvQkFBb0IsRUFBRSxZQUFZLENBQUMsNEJBQTRCO1lBQy9ELG9CQUFvQixFQUFFLFlBQVksQ0FBQyw0QkFBNEI7WUFDL0Qsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLDRCQUE0QjtZQUMvRCxrQkFBa0IsRUFBRSxZQUFZLENBQUMsMEJBQTBCO1lBQzNELHdCQUF3QixFQUFFLFlBQVksQ0FBQyxnQ0FBZ0M7WUFDdkUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLDJCQUEyQjtZQUM3RCxpQkFBaUIsRUFBRSxZQUFZLENBQUMseUJBQXlCO1lBQ3pELG1CQUFtQixFQUFFLFlBQVksQ0FBQywyQkFBMkI7WUFDN0QsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLHlC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QUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuRixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNsRixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuRixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtLQUNsRjt3Q0FDcUQsSUFBSTtrREFDTSxHQUFHO3FEQUNBLEdBQUc7c0RBQ0YsR0FBRzt5REFDQSxHQUFHO3NEQUNOLEdBQUc7Z0RBQ1QsR0FBRztnREFDSCxHQUFHO2dEQUNILE9BQU87K0NBQ1IsT0FBTzs4Q0FDUixJQUFJO29EQUNFLEVBQUU7K0NBQ1AsR0FBRzs2Q0FDTCxFQUFFOzZDQUNGLElBQUk7OENBQ0gsR0FBRzt3Q0FDVCxZQUFZO3dDQUNaLFVBQVU7dUNBQ1gsR0FBRztvQ0FDTixHQUFHO2tEQUNXLHFCQUFxQjs2Q0FDMUIsWUFBWTs2Q0FDWixVQUFVOzBDQUNiLEdBQUc7dURBQ1UsS0FBSzt1QkE1QzVFOztTQVlhLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaGxveE1haW5NZW51SXRlbSB9IGZyb20gJy4vUGhsb3hNYWluTWVudUl0ZW0nO1xuXG4vKipcbiAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDJlbTtcIj5cbiAqIEEgbW9kZWwgY2xhc3MgcmVwcmVzZW50aW5nIGEgc2luZ2xlIDxjb2RlPlBobG94IEFwcGxpY2F0aW9uPC9jb2RlPi4gQW4gPGNvZGU+YXBwbGljYXRpb248L2NvZGU+IG1heSBhbHNvIGNvbnNpc3Qgb2YgaXRzIDxjb2RlPnNldHRpbmdzPC9jb2RlPiBhbmRcbiAqIGNvbW1vbiA8Y29kZT5JMThOPC9jb2RlPi4gQW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBpcyB1c3VhbGx5IG9idGFpbmVkIGZyb20gW1tQaGxveEFwcEluZm9TZXJ2aWNlLmdldEFwcEluZm9dXSB3aGljaCBtYXkgbG9hZCB0aGUgaW5mbyBmcm9tIGJhY2tlbmRcbiAqIHNlcnZlciB0byByZXR1cm4gdGhlIHVzZXIgY29uZmlndXJhdGlvbnMgc3VjaCBhcyBsYW5ndWFnZSBzZXR0aW5ncywgdXNlciBwcmVmZXJlbmNlcywgZXRjLlxuICogPC9wPlxuICpcbiAqIEBhdXRob3Igc2hpb3JpbiwgdGVlNGN1dGVcbiAqIEBzZWUgW1tQaGxveEFwcEluZm9TZXJ2aWNlXV1cbiAqL1xuZXhwb3J0IGNsYXNzIFBobG94QXBwSW5mbyB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RBVEFfTEFOR1VBR0VTOiBhbnlbXSA9IFtcbiAgICB7IGljb25VUkw6IG51bGwsIGNvZGU6ICd0aCcsIGNvdW50cnk6ICdUSCcsIGxhYmVsOiAnVGhhaWxhbmQnLCBjb3VudHJ5Q29kZTogJys2NicgfSxcbiAgICB7IGljb25VUkw6IG51bGwsIGNvZGU6ICdlbicsIGNvdW50cnk6ICdFTicsIGxhYmVsOiAnRW5nbGlzaCcsIGNvdW50cnlDb2RlOiAnKzQ0JyB9LFxuICAgIHsgaWNvblVSTDogbnVsbCwgY29kZTogJ2phJywgY291bnRyeTogJ0pQJywgbGFiZWw6ICdKYXBhbmVzZScsIGNvdW50cnlDb2RlOiAnKzgxJyB9LFxuICAgIHsgaWNvblVSTDogbnVsbCwgY29kZTogJ2tyJywgY291bnRyeTogJ0tSJywgbGFiZWw6ICdLb3JlYW4nLCBjb3VudHJ5Q29kZTogJys4MicgfVxuICBdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQ09VTlRSWV9DT0RFOiBzdHJpbmcgPSAnVEgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUklQUExFX0VGRkVDVF9EVVJBVElPTjogbnVtYmVyID0gMS41O1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUklQUExFX0VGRkVDVF9XSURUSF9SQVRJTzogbnVtYmVyID0gMC41O1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUklQUExFX0VGRkVDVF9IRUlHSFRfUkFUSU86IG51bWJlciA9IDAuNTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JJUFBMRV9FRkZFQ1RfUkVNT1ZFX0RVUkFUSU9OOiBudW1iZXIgPSAwLjg7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BUFBfU1dJVENIRVJfUE9QT1ZFUl9ERUxBWTogbnVtYmVyID0gODAwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfV0laQVJEX0hFQURFUl9IRUlHSFQ6IG51bWJlciA9IDE0MDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1dJWkFSRF9GT09URVJfSEVJR0hUOiBudW1iZXIgPSAxNDA7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9PQkpFQ1RfSURfRklFTERfTkFNRTogc3RyaW5nID0gJ191dWlkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0xBTkdVQUdFX0ZJRUxEX05BTUU6IHN0cmluZyA9ICdfbGFuZyc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQ6IG51bWJlciA9IDcwMDA7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9VSV9TWVNURU1fQ0xPQ0tfSU5URVJWQUw6IG51bWJlciA9IDIwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVUlfQU5JTUFURV9JTlRFUlZBTDogbnVtYmVyID0gNjAwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTUFYX05PVElGSUNBVElPTlM6IG51bWJlciA9IDUwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUEFHRV9MT0FEX1RJTUVPVVQ6IG51bWJlciA9IDgwMDA7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9TWVNURU1fWUVBUl9PRkZTRVQ6IG51bWJlciA9IDU0MztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RBVEVfUEFUVEVSTjogc3RyaW5nID0gJ2RkL01NL3l5eXknO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVElNRV9QQVRURVJOOiBzdHJpbmcgPSAnSEg6bW06c3MnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfWUVBUl9PRkZTRVQ6IG51bWJlciA9IDU0MztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJTUVaT05FOiBudW1iZXIgPSA3MDA7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9EQVRBX0RBVEVfVElNRV9QQVRURVJOOiBzdHJpbmcgPSAneXl5eS1NTS1kZCBISDptbTpzcyc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9EQVRBX0RBVEVfUEFUVEVSTjogc3RyaW5nID0gJ3l5eXktTU0tZGQnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfREFUQV9USU1FX1BBVFRFUk46IHN0cmluZyA9ICdISDptbTpzcyc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9EQVRBX1RJTUVfWk9ORTogbnVtYmVyID0gNzAwO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVElNRV9PVVRfTE9HSU5fVVNFUl9TRVNTSU9OOiBudW1iZXIgPSAxMDAwMDtcblxuICAvKipcbiAgICogQW4gYXBwbGljYXRpb24gbmFtZS5cbiAgICovXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcHBsaWNhdGlvbiB0YWdsaW5lLlxuICAgKi9cbiAgcHVibGljIHRhZ2xpbmU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIGFwcGxpY2F0aW9uIGljb24gdXJsLlxuICAgKi9cbiAgcHVibGljIGljb25VUkw6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIGFwcGxpY2F0aW9uIGdyb3VwLlxuICAgKi9cbiAgcHVibGljIGdyb3VwOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcHBsaWNhdGlvbiBzZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc2V0dGluZ3M6IGFueTtcbiAgLyoqXG4gICAqIEFuIGFwcGxpY2F0aW9uIEkxOE4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGkxOG46IGFueTtcbiAgLyoqXG4gICAqIEFuIGFwcGxpY2F0aW9uIHJlc291cmNlcyBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgcmVzb3VyY2VzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nID0gJ0FwcCBOYW1lJywgdGFnbGluZTogc3RyaW5nID0gJ0FwcCBUYWdsaW5lJywgZ3JvdXA6IHN0cmluZywgaWNvblVSTDogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnRhZ2xpbmUgPSB0YWdsaW5lO1xuICAgIHRoaXMuaWNvblVSTCA9IGljb25VUkw7XG4gICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuXG4gICAgLy8gSW5pdCBkZWZhdWx0IHNldHRpbmdzXG4gICAgdGhpcy5zZXR0aW5ncyA9IHtcbiAgICAgIFJJUFBMRV9FRkZFQ1RfRFVSQVRJT046IFBobG94QXBwSW5mby5ERUZBVUxUX1JJUFBMRV9FRkZFQ1RfRFVSQVRJT04sXG4gICAgICBSSVBQTEVfRUZGRUNUX1dJRFRIX1JBVElPOiBQaGxveEFwcEluZm8uREVGQVVMVF9SSVBQTEVfRUZGRUNUX1dJRFRIX1JBVElPLFxuICAgICAgUklQUExFX0VGRkVDVF9IRUlHSFRfUkFUSU86IFBobG94QXBwSW5mby5ERUZBVUxUX1JJUFBMRV9FRkZFQ1RfSEVJR0hUX1JBVElPLFxuICAgICAgUklQUExFX0VGRkVDVF9SRU1PVkVfRFVSQVRJT046IFBobG94QXBwSW5mby5ERUZBVUxUX1JJUFBMRV9FRkZFQ1RfUkVNT1ZFX0RVUkFUSU9OLFxuICAgICAgQVBQX1NXSVRDSEVSX1BPUE9WRVJfREVMQVk6IFBobG94QXBwSW5mby5ERUZBVUxUX0FQUF9TV0lUQ0hFUl9QT1BPVkVSX0RFTEFZLFxuICAgICAgV0laQVJEX0hFQURFUl9IRUlHSFQ6IFBobG94QXBwSW5mby5ERUZBVUxUX1dJWkFSRF9IRUFERVJfSEVJR0hULFxuICAgICAgV0laQVJEX0ZPT1RFUl9IRUlHSFQ6IFBobG94QXBwSW5mby5ERUZBVUxUX1dJWkFSRF9GT09URVJfSEVJR0hULFxuICAgICAgT0JKRUNUX0lEX0ZJRUxEX05BTUU6IFBobG94QXBwSW5mby5ERUZBVUxUX09CSkVDVF9JRF9GSUVMRF9OQU1FLFxuICAgICAgQ09OTkVDVElPTl9USU1FT1VUOiBQaGxveEFwcEluZm8uREVGQVVMVF9DT05ORUNUSU9OX1RJTUVPVVQsXG4gICAgICBVSV9TWVNURU1fQ0xPQ0tfSU5URVJWQUw6IFBobG94QXBwSW5mby5ERUZBVUxUX1VJX1NZU1RFTV9DTE9DS19JTlRFUlZBTCxcbiAgICAgIFVJX0FOSU1BVEVfSU5URVJWQUw6IFBobG94QXBwSW5mby5ERUZBVUxUX1VJX0FOSU1BVEVfSU5URVJWQUwsXG4gICAgICBNQVhfTk9USUZJQ0FUSU9OUzogUGhsb3hBcHBJbmZvLkRFRkFVTFRfTUFYX05PVElGSUNBVElPTlMsXG4gICAgICBMQU5HVUFHRV9GSUVMRF9OQU1FOiBQaGxveEFwcEluZm8uREVGQVVMVF9MQU5HVUFHRV9GSUVMRF9OQU1FLFxuICAgICAgUEFHRV9MT0FEX1RJTUVPVVQ6IFBobG94QXBwSW5mby5ERUZBVUxUX1BBR0VfTE9BRF9USU1FT1VULFxuICAgICAgU1lTVEVNX1lFQVJfT0ZGU0VUOiBQaGxveEFwcEluZm8uREVGQVVMVF9TWVNURU1fWUVBUl9PRkZTRVQsXG4gICAgICBEQVRFX1BBVFRFUk46IFBobG94QXBwSW5mby5ERUZBVUxUX0RBVEVfUEFUVEVSTixcbiAgICAgIFlFQVJfT0ZGU0VUOiBQaGxveEFwcEluZm8uREVGQVVMVF9ZRUFSX09GRlNFVCxcbiAgICAgIFRJTUVaT05FOiBQaGxveEFwcEluZm8uREVGQVVMVF9USU1FWk9ORSxcbiAgICAgIFRJTUVfUEFUVEVSTjogUGhsb3hBcHBJbmZvLkRFRkFVTFRfVElNRV9QQVRURVJOLFxuICAgICAgREVGQVVMVF9EQVRBX0xBTkdVQUdFUzogUGhsb3hBcHBJbmZvLkRFRkFVTFRfREFUQV9MQU5HVUFHRVMsXG4gICAgICBDT1VOVFJZX0NPREU6IFBobG94QXBwSW5mby5ERUZBVUxUX0NPVU5UUllfQ09ERSxcbiAgICAgIERFRkFVTFRfVElNRV9PVVRfTE9HSU5fVVNFUl9TRVNTSU9OOiBQaGxveEFwcEluZm8uREVGQVVMVF9USU1FX09VVF9MT0dJTl9VU0VSX1NFU1NJT05cbiAgICB9O1xuXG4gICAgLy8gaW5pdCBkZWZhdWx0IGkxOG5cbiAgICB0aGlzLmkxOG4gPSB7XG4gICAgICBZRVM6ICdZZXMnLFxuICAgICAgTk86ICdObycsXG4gICAgICBPSzogJ09LJyxcbiAgICAgIENBTkNFTDogJ0NhbmNlbCcsXG4gICAgICBDTE9TRTogJ0Nsb3NlJyxcbiAgICAgIENPTkZJUk06ICdDb25maXJtJyxcbiAgICAgIExBTkc6IHtcbiAgICAgICAgRU46IHsgaWNvblVSTDogbnVsbCwgY29kZTogJ2VuJywgbmFtZTogJ0VuZ2xpc2gnIH0sXG4gICAgICAgIFRIOiB7IGljb25VUkw6IG51bGwsIGNvZGU6ICd0aCcsIG5hbWU6ICdUaGFpbGFuZCcgfSxcbiAgICAgICAgSlA6IHsgaWNvblVSTDogbnVsbCwgY29kZTogJ2phJywgbmFtZTogJ0phcGFuZXNlJyB9LFxuICAgICAgICBLUjogeyBpY29uVVJMOiBudWxsLCBjb2RlOiAna3InLCBuYW1lOiAnS29yZWFuJyB9XG4gICAgICB9LFxuICAgICAgSU5WQUxJRF9EQVRBOiAnSW52YWxpZCBEYXRhJ1xuICAgIH07XG5cbiAgICAvLyBkZWZhdWx0IHJlc291cmNlc1xuICAgIHRoaXMucmVzb3VyY2VzID0ge1xuICAgICAgQ1JPU1NfUk9VTkRfQlROOiAnaHR0cDovL2kyNDkucGhvdG9idWNrZXQuY29tL2FsYnVtcy9nZzIwMi9zb3VuZF9ob3Jpem9uL2Nyb3NzX2NpcmNsZS5wbmcnXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgcHVibGljIHNldE5hbWUobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUYWdsaW5lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGFnbGluZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUYWdsaW5lKHRhZ2xpbmU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudGFnbGluZSA9IHRhZ2xpbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2V0dGluZ3MoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZXR0aW5ncyhzZXR0aW5nczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICB9XG5cbiAgcHVibGljIGdldEljb25VUkwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pY29uVVJMO1xuICB9XG5cbiAgcHVibGljIHNldEljb25VUkwoaWNvblVSTDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pY29uVVJMID0gaWNvblVSTDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHcm91cCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdyb3VwO1xuICB9XG5cbiAgcHVibGljIHNldEdyb3VwKGdyb3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyb3VwID0gZ3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0STE4bigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmkxOG47XG4gIH1cblxuICBwdWJsaWMgc2V0STE4bihpMThuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmkxOG4gPSBpMThuO1xuICB9XG5cbiAgcHVibGljIGdldFJlc291cmNlcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZXNvdXJjZXMocmVzb3VyY2VzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlc291cmNlcyA9IHJlc291cmNlcztcbiAgfVxufVxuIl19