com.phloxui
Version:
PhloxUI Ng2+ Framework
664 lines (663 loc) • 68.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, Output, ViewChild, EventEmitter } from '@angular/core';
import { AbstractDialogController } from './AbstractDialogController';
import { StringDataView } from './dataview/StringDataView.component';
import { DateTimeUtils } from '../share/utils/DateTimeUtils';
import { Option } from '../decorator/Option.decorator';
import { I18N } from '../decorator/I18N.decorator';
import { ButtonModel } from './model/ComponentDialogModel';
import { DefaultSelectItemModel } from './model/DefaultSelectItemModel';
import { PhloxAppInfoService } from '../service/PhloxAppInfoService.service';
import { DatePicker } from './dataview/input/DatePicker.component';
const /** @type {?} */ TYPE_NAME = "phx-version-history";
export class VersionHistory extends AbstractDialogController {
/**
* @param {?} phloxAppService
* @param {?} elementRef
*/
constructor(phloxAppService, elementRef) {
super(elementRef);
this.currentIndex = 0;
this.dataRecords = [];
this.currentVersionData = null;
this.selectedVersionData = null;
if (phloxAppService != null) {
phloxAppService.getAppInfo().then((result) => {
this.phloxAppInfo = result;
});
}
//default dropdown
this.dropdownCompoType = StringDataView;
this.currentDropdownIdx = 0;
this.dropdownComparator = [];
this._items = [];
this.defaultAscComparator = (obj1, obj2) => {
return -this.compareCreatedDate(obj1, obj2);
};
this.defaultDescComparator = (obj1, obj2) => {
return this.compareCreatedDate(obj1, obj2);
};
this.dropdownComparator.push(this.defaultAscComparator);
this.dropdownComparator.push(this.defaultDescComparator);
this._items.push(new DefaultSelectItemModel("Newest First", 0));
this._items.push(new DefaultSelectItemModel("Oldest First", 1));
}
/**
* @return {?}
*/
ngOnInit() {
super.ngOnInit();
if (this.data !== null && typeof this.data !== 'undefined') {
this.editor = this.data.editor;
}
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model.sortOptions !== null && typeof this.model.sortOptions !== 'undefined') {
if (this.model.sortOptions.length > 0) {
this._items = [];
this.dropdownComparator = [];
this.currentDropdownIdx = 0;
for (let /** @type {?} */ sortOpt of this.model.sortOptions) {
let /** @type {?} */ label = sortOpt.label;
let /** @type {?} */ sortFunc = sortOpt.comparator;
this._items.push(new DefaultSelectItemModel(label, 0));
this.dropdownComparator.push(sortFunc);
}
}
}
}
let /** @type {?} */ closeHandler = () => { this.result = null; this.editor.hideDialog(); };
this.dialogButtons = [new ButtonModel(this.getI18NMessage('CLOSE'), null, closeHandler, ['dialog-btn', 'cancel'])];
this.refreshDataRecord();
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
if (changes['data'] !== null && typeof changes['data'] !== 'undefined') {
let /** @type {?} */ oldData = changes['data'].previousValue;
let /** @type {?} */ newData = changes['data'].currentValue;
if (oldData !== newData) {
this.refreshDataRecord();
}
}
}
/**
* @param {?} obj1
* @param {?} obj2
* @return {?}
*/
compareCreatedDate(obj1, obj2) {
if ((obj1 === null || typeof obj1 === 'undefined') && (obj2 !== null && typeof obj2 !== 'undefined')) {
return 1;
}
else if ((obj1 !== null && typeof obj1 !== 'undefined') && (obj2 === null || typeof obj2 === 'undefined')) {
return -1;
}
else if ((obj1 === null || typeof obj1 === 'undefined') && (obj2 === null || typeof obj2 === 'undefined')) {
return 0;
}
let /** @type {?} */ fromDate1 = DateTimeUtils.getDateFromAny(obj1._versionCreated);
let /** @type {?} */ fromDate2 = DateTimeUtils.getDateFromAny(obj2._versionCreated);
if ((fromDate1 === null || typeof fromDate1 === 'undefined') && (fromDate2 !== null && typeof fromDate2 !== 'undefined')) {
return 1;
}
else if ((fromDate1 !== null && typeof fromDate1 !== 'undefined') && (fromDate2 === null || typeof fromDate2 === 'undefined')) {
return -1;
}
else if ((fromDate1 === null || typeof fromDate1 === 'undefined') && (fromDate2 === null || typeof fromDate2 === 'undefined')) {
return 0;
}
if (fromDate1.isBefore(fromDate2)) {
return -1;
}
else if (fromDate1.isAfter(fromDate2)) {
return 1;
}
return 0;
}
/**
* @return {?}
*/
refreshDataRecord() {
this.dataRecords = [];
if (this.editor !== null && typeof this.editor !== 'undefined') {
if (this.data !== null && typeof this.data !== 'undefined') {
let /** @type {?} */ data = this.data.data;
let /** @type {?} */ startTime = (new Date()).clearTime();
let /** @type {?} */ endTime = null;
if (this.currentIndex === 0) {
// today
endTime = new Date(startTime);
}
else if (this.currentIndex === 1) {
// 3 days ago
endTime = new Date(startTime).addDays(-3);
}
else if (this.currentIndex === 2) {
// a month ago
endTime = new Date(startTime).addDays(-30);
}
else if (this.currentIndex === 3) {
// 3 months ago
endTime = new Date(startTime).addDays(-90);
}
this.editor.getVersionHistory(data, startTime, endTime).then((result) => {
if (result !== null && result !== undefined) {
for (let /** @type {?} */ d of result) {
this.dataRecords.push(d);
}
if (this.dataRecords.length > 0) {
this.currentVersionData = this.dataRecords[0];
}
this.sortData();
}
});
}
}
}
/**
* @return {?}
*/
sortData() {
if (this.dataRecords === null || typeof this.dataRecords === 'undefined') {
return;
}
let /** @type {?} */ comparator = null;
if (this.currentDropdownIdx < this.dropdownComparator.length) {
comparator = this.dropdownComparator[this.currentDropdownIdx];
}
if (comparator !== null) {
this.dataRecords.sort(comparator);
}
}
/**
* @param {?} key
* @return {?}
*/
getI18NMessage(key) {
if (this.phloxAppInfo != null && this.phloxAppInfo.i18n != null) {
if (this.phloxAppInfo.i18n[key] !== null && typeof this.phloxAppInfo.i18n[key] !== 'undefined') {
return this.phloxAppInfo.i18n[key];
}
}
return key;
}
/**
* @param {?} data
* @return {?}
*/
_isSelectedVersion(data) {
if (this.selectedVersionData !== null && typeof this.selectedVersionData !== 'undefined') {
if (this.selectedVersionData === data) {
return true;
}
}
return false;
}
/**
* @param {?} dateString
* @return {?}
*/
_getDateString(dateString) {
if (dateString !== null && typeof dateString !== 'undefined') {
let /** @type {?} */ date = DateTimeUtils.getDateFromAny(dateString);
if (date !== null) {
return date.toString("dd/MM/yyyy");
}
}
return "";
}
/**
* @param {?} dateString
* @return {?}
*/
_getTimeString(dateString) {
if (dateString !== null && typeof dateString !== 'undefined') {
let /** @type {?} */ date = DateTimeUtils.getDateFromAny(dateString);
if (date !== null) {
return date.toString("hh:mm:ss");
}
}
return "";
}
/**
* @param {?} data
* @return {?}
*/
_isCurrentVersion(data) {
if (this.currentVersionData !== null && typeof this.currentVersionData !== 'undefined') {
if (this.currentVersionData === data) {
return true;
}
}
return false;
}
/**
* @param {?} index
* @return {?}
*/
_isActiveTab(index) {
if (this.currentIndex === index) {
return true;
}
return false;
}
/**
* @return {?}
*/
_getDropdownCompoType() {
return this.dropdownCompoType;
}
/**
* @return {?}
*/
_getCurrentDropdownIdx() {
return this.currentDropdownIdx;
}
/**
* @return {?}
*/
_getDataRecords() {
return this.dataRecords;
}
/**
* @param {?} index
* @return {?}
*/
_setActiveTabIndex(index) {
this.currentIndex = index;
this.refreshDataRecord();
}
/**
* @param {?} $event
* @param {?} data
* @return {?}
*/
onRevertClicked($event, data) {
if (this.selectedVersionData !== null) {
if (this.selectedVersionData === data) {
this.selectedVersionData = null;
if (this.dialogButtons.length >= 2) {
let /** @type {?} */ closeHandler = () => { this.result = null; this.editor.hideDialog(); };
this.dialogButtons = [new ButtonModel(this.getI18NMessage('CLOSE'), null, closeHandler, ['dialog-btn', 'cancel'])];
}
return;
}
}
this.selectedVersionData = data;
// manipulate btn
if (this.dialogButtons === undefined) {
this.dialogButtons = [];
}
if (this.dialogButtons.length <= 1) {
let /** @type {?} */ cancelHandler = () => { this.onRevertClicked(null, this.selectedVersionData); };
let /** @type {?} */ confirmHandler = () => { this.result = this.selectedVersionData; this.editor.hideDialog(); };
this.dialogButtons = [new ButtonModel(this.getI18NMessage('CANCEL'), null, cancelHandler, ['dialog-btn', 'cancel']),
new ButtonModel(this.getI18NMessage('CONFIRM'), null, confirmHandler, ['dialog-btn', 'confirm'])];
}
}
/**
* @param {?} $event
* @return {?}
*/
onDropdownChange($event) {
if ($event === null || typeof $event === 'undefined') {
return;
}
let /** @type {?} */ newIndex = $event.detail.data.newIndex;
this.currentDropdownIdx = newIndex;
this.sortData();
}
/**
* @return {?}
*/
hasModel() {
if (this.model !== null && typeof this.model !== 'undefined') {
return true;
}
return false;
}
/**
* @return {?}
*/
getModel() {
return this.model;
}
/**
* @param {?} model
* @return {?}
*/
setModel(model) {
this.model = model;
}
/**
* @return {?}
*/
isSelfDataDirty() {
return false;
}
/**
* @param {?} data
* @return {?}
*/
selfSaveData(data) {
}
/**
* @return {?}
*/
selfResetData() {
}
}
VersionHistory.TYPE_NAME = TYPE_NAME;
VersionHistory.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: `<div class="phx-version-history">
<div class="header">
<div class="wrapper">
<div class="left">
<!-- first zone -->
<div>
<div class="title" *ngIf="hasModel()">
<h3>{{getModel().title}}</h3>
</div>
<div class="description" *ngIf="hasModel()">
{{getModel().description}}
</div>
</div>
<!-- second zone -->
<div>
<div class="tab" [class.active]="_isActiveTab(0)" (click)="_setActiveTabIndex(0)">Today</div>
<div class="tab" [class.active]="_isActiveTab(1)" (click)="_setActiveTabIndex(1)">3 days ago</div>
<div class="tab" [class.active]="_isActiveTab(2)" (click)="_setActiveTabIndex(2)">a month ago</div>
<div class="tab" [class.active]="_isActiveTab(3)" (click)="_setActiveTabIndex(3)">3 months ago</div>
</div>
</div>
<div class="right">
<!-- first zone -->
<div>
<div class="sorting">
<phx-component-dropdown #orderingDropdown [type]="_getDropdownCompoType()" [items]="_items"
[defaultIdx]="_getCurrentDropdownIdx()" (phxChange)="onDropdownChange($event)"></phx-component-dropdown>
</div>
<div class="sorting-label">
<div class="table-wrapper fluid">
<div class="table-cell-wrapper middle">
Sorting :
</div>
</div>
</div>
</div>
<!-- second zone -->
<div>
<div class="logo">
<!-- LOGO -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve" class="calendar">
<g>
<path style="fill:#b1b1b1;" d="M8.585,8.599h0.386c0.587,0,1.064-0.476,1.064-1.064V3.503c0-0.587-0.476-1.064-1.064-1.064H8.585
c-0.587,0-1.064,0.476-1.064,1.064v4.033C7.522,8.123,7.998,8.599,8.585,8.599L8.585,8.599z M8.585,8.599"/>
<g>
<path style="fill:#b1b1b1;" d="M22.227,8.572h0.387c0.587,0,1.063-0.476,1.063-1.064V3.476c0-0.587-0.476-1.063-1.063-1.063
h-0.387c-0.588,0-1.064,0.476-1.064,1.063v4.033C21.163,8.096,21.64,8.572,22.227,8.572L22.227,8.572z M22.227,8.572"/>
<path style="fill:#b1b1b1;" d="M27.271,4.6h-2.729v3.187c0,1.063-0.865,1.65-1.928,1.65h-0.387c-1.063,0-1.928-0.865-1.928-1.928
V4.6H10.9v2.935c0,1.063-0.865,1.928-1.928,1.928H8.585c-1.063,0-1.928-0.865-1.928-1.928V4.6H3.712
c-0.953,0-1.729,0.776-1.729,1.729v20.893c0,0.953,0.776,1.729,1.729,1.729h23.559c0.953,0,1.729-0.775,1.729-1.729V6.329
C29,5.376,28.224,4.6,27.271,4.6L27.271,4.6z M27.271,27.222H3.712V11.444h23.559l0.001,15.778H27.271L27.271,27.222z
M27.271,27.222"/>
</g>
<path style="fill:#b1b1b1;" d="M16.384,16.737h3.105c0.123,0,0.223-0.1,0.223-0.223v-2.688c0-0.123-0.1-0.223-0.223-0.223h-3.105
c-0.123,0-0.223,0.1-0.223,0.223v2.688C16.161,16.637,16.261,16.737,16.384,16.737L16.384,16.737z M16.384,16.737"/>
<path style="fill:#b1b1b1;" d="M21.451,16.737h3.105c0.123,0,0.223-0.1,0.223-0.223v-2.688c0-0.123-0.1-0.223-0.223-0.223h-3.105
c-0.123,0-0.223,0.1-0.223,0.223v2.688C21.228,16.637,21.328,16.737,21.451,16.737L21.451,16.737z M21.451,16.737"/>
<path style="fill:#b1b1b1;" d="M6.252,21.138h3.105c0.123,0,0.223-0.1,0.223-0.223v-2.688c0-0.123-0.1-0.223-0.223-0.223H6.252
c-0.123,0-0.223,0.1-0.223,0.223v2.688C6.029,21.038,6.129,21.138,6.252,21.138L6.252,21.138z M6.252,21.138"/>
<path style="fill:#b1b1b1;" d="M11.318,21.138h3.105c0.123,0,0.223-0.1,0.223-0.223v-2.688c0-0.123-0.1-0.223-0.223-0.223h-3.105
c-0.123,0-0.223,0.1-0.223,0.223v2.688C11.095,21.038,11.195,21.138,11.318,21.138L11.318,21.138z M11.318,21.138"/>
<path style="fill:#b1b1b1;" d="M16.385,21.138h3.104c0.123,0,0.223-0.1,0.223-0.223v-2.688c0-0.123-0.1-0.223-0.223-0.223h-3.104
c-0.123,0-0.223,0.1-0.223,0.223v2.688C16.161,21.038,16.261,21.138,16.385,21.138L16.385,21.138z M16.385,21.138"/>
<path style="fill:#b1b1b1;" d="M21.451,21.138h3.105c0.123,0,0.223-0.1,0.223-0.223v-2.688c0-0.123-0.1-0.223-0.223-0.223h-3.105
c-0.123,0-0.223,0.1-0.223,0.223v2.688C21.228,21.038,21.328,21.138,21.451,21.138L21.451,21.138z M21.451,21.138"/>
<path style="fill:#b1b1b1;" d="M9.356,22.405H6.252c-0.123,0-0.223,0.1-0.223,0.223v2.688c0,0.123,0.1,0.223,0.223,0.223h3.105
c0.123,0,0.223-0.1,0.223-0.223v-2.688C9.579,22.505,9.479,22.405,9.356,22.405L9.356,22.405z M9.356,22.405"/>
<path style="fill:#b1b1b1;" d="M14.422,22.405h-3.105c-0.123,0-0.223,0.1-0.223,0.223v2.688c0,0.123,0.1,0.223,0.223,0.223h3.105
c0.123,0,0.223-0.1,0.223-0.223v-2.688C14.645,22.505,14.546,22.405,14.422,22.405L14.422,22.405z M14.422,22.405"/>
<path style="fill:#b1b1b1;" d="M19.489,22.405h-3.104c-0.123,0-0.223,0.1-0.223,0.223v2.688c0,0.123,0.1,0.223,0.223,0.223h3.104
c0.123,0,0.223-0.1,0.223-0.223v-2.688C19.712,22.505,19.612,22.405,19.489,22.405L19.489,22.405z M19.489,22.405"/>
<path style="fill:#b1b1b1;" d="M24.555,22.405h-3.105c-0.123,0-0.223,0.1-0.223,0.223v2.688c0,0.123,0.1,0.223,0.223,0.223h3.105
c0.123,0,0.223-0.1,0.223-0.223v-2.688C24.778,22.505,24.678,22.405,24.555,22.405L24.555,22.405z M24.555,22.405"/>
</g>
</svg>
</div>
<div class="date"><phx-date-picker #fromTimeField [dataParent]="this"></phx-date-picker></div>
<div>
<div class="table-wrapper fluid">
<div class="table-cell-wrapper middle">
to
</div>
</div>
</div>
<div class="date"><phx-date-picker #toTimeField [dataParent]="this"></phx-date-picker></div>
</div>
</div>
</div>
</div>
<div class="body">
<div class="wrapper">
<table class="table table-striped">
<tbody>
<tr><td colspan="6"></td></tr>
<tr><td colspan="6"></td></tr>
<tr *ngFor="let item of _getDataRecords(); let i = index" [class.selected]="_isSelectedVersion(item)">
<td class="highlight">{{item._lang}}</td>
<td class="highlight">{{_getDateString(item._versionCreated)}}</td>
<td class="highlight">{{_getTimeString(item._versionCreated)}}</td>
<td>Version: {{item._version}}</td>
<td>By Admin</td>
<td>
<div *ngIf="!_isCurrentVersion(item)">
<a *ngIf="!_isSelectedVersion(item)" (click)="onRevertClicked($event, item)">Revert</a>
<div *ngIf="_isSelectedVersion(item)" (click)="onRevertClicked($event, item)"><div class="heavy-check-mark"></div></div>
</div>
<div *ngIf="_isCurrentVersion(item)" class="current">Current</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
`
},] },
];
/** @nocollapse */
VersionHistory.ctorParameters = () => [
{ type: PhloxAppInfoService, },
{ type: ElementRef, },
];
VersionHistory.propDecorators = {
"dataParent": [{ type: Input },],
"ignoreParentData": [{ type: Input },],
"data": [{ type: Input },],
"ignoreParentDisabled": [{ type: Input },],
"delegateHistory": [{ type: Input },],
"onDisabled": [{ type: Input },],
"onEnabled": [{ type: Input },],
"loadingEnabled": [{ type: Input },],
"i18nKey": [{ type: Input },],
"bypass": [{ type: Input, args: ['i18nBypass',] },],
"options": [{ type: Input },],
"disabled": [{ type: Input },],
"help": [{ type: Input },],
"beforeResultChangeEvent": [{ type: Output, args: ['phxBeforeResultChange',] },],
"resultChangeEvent": [{ type: Output, args: ['phxResultChange',] },],
"beforeErrorChangeEvent": [{ type: Output, args: ['phxBeforeErrorChange',] },],
"errorChangeEvent": [{ type: Output, args: ['phxErrorChange',] },],
"beforeButtonsChangeEvent": [{ type: Output, args: ['phxBeforeButtonsChange',] },],
"buttonsChangeEvent": [{ type: Output, args: ['phxButtonsChange',] },],
"fromTimeField": [{ type: ViewChild, args: ['fromTimeField',] },],
"toTimeField": [{ type: ViewChild, args: ['toTimeField',] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], VersionHistory.prototype, "dataParent", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], VersionHistory.prototype, "ignoreParentData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], VersionHistory.prototype, "data", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], VersionHistory.prototype, "ignoreParentDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], VersionHistory.prototype, "delegateHistory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], VersionHistory.prototype, "onDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], VersionHistory.prototype, "onEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], VersionHistory.prototype, "loadingEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], VersionHistory.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], VersionHistory.prototype, "bypass", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], VersionHistory.prototype, "disabled", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", Object)
], VersionHistory.prototype, "help", void 0);
tslib_1.__decorate([
Option('beforeResultChange'),
tslib_1.__metadata("design:type", EventEmitter)
], VersionHistory.prototype, "beforeResultChangeEvent", void 0);
tslib_1.__decorate([
Option('resultChange'),
tslib_1.__metadata("design:type", EventEmitter)
], VersionHistory.prototype, "resultChangeEvent", void 0);
tslib_1.__decorate([
Option('beforeErrorChange'),
tslib_1.__metadata("design:type", EventEmitter)
], VersionHistory.prototype, "beforeErrorChangeEvent", void 0);
tslib_1.__decorate([
Option('errorChange'),
tslib_1.__metadata("design:type", EventEmitter)
], VersionHistory.prototype, "errorChangeEvent", void 0);
tslib_1.__decorate([
Option('beforeButtonsChange'),
tslib_1.__metadata("design:type", EventEmitter)
], VersionHistory.prototype, "beforeButtonsChangeEvent", void 0);
tslib_1.__decorate([
Option('buttonsChange'),
tslib_1.__metadata("design:type", EventEmitter)
], VersionHistory.prototype, "buttonsChangeEvent", void 0);
function VersionHistory_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
VersionHistory.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
VersionHistory.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
VersionHistory.propDecorators;
/** @type {?} */
VersionHistory.TYPE_NAME;
/** @type {?} */
VersionHistory.prototype.dataParent;
/** @type {?} */
VersionHistory.prototype.ignoreParentData;
/** @type {?} */
VersionHistory.prototype.data;
/** @type {?} */
VersionHistory.prototype.ignoreParentDisabled;
/** @type {?} */
VersionHistory.prototype.delegateHistory;
/** @type {?} */
VersionHistory.prototype.onDisabled;
/** @type {?} */
VersionHistory.prototype.onEnabled;
/** @type {?} */
VersionHistory.prototype.loadingEnabled;
/** @type {?} */
VersionHistory.prototype.i18nKey;
/** @type {?} */
VersionHistory.prototype.bypass;
/** @type {?} */
VersionHistory.prototype.options;
/** @type {?} */
VersionHistory.prototype.disabled;
/** @type {?} */
VersionHistory.prototype.help;
/** @type {?} */
VersionHistory.prototype.beforeResultChangeEvent;
/** @type {?} */
VersionHistory.prototype.resultChangeEvent;
/** @type {?} */
VersionHistory.prototype.beforeErrorChangeEvent;
/** @type {?} */
VersionHistory.prototype.errorChangeEvent;
/** @type {?} */
VersionHistory.prototype.beforeButtonsChangeEvent;
/** @type {?} */
VersionHistory.prototype.buttonsChangeEvent;
/** @type {?} */
VersionHistory.prototype.model;
/** @type {?} */
VersionHistory.prototype.currentIndex;
/** @type {?} */
VersionHistory.prototype.currentVersionData;
/** @type {?} */
VersionHistory.prototype.selectedVersionData;
/** @type {?} */
VersionHistory.prototype.dataRecords;
/** @type {?} */
VersionHistory.prototype.editor;
/** @type {?} */
VersionHistory.prototype.dropdownCompoType;
/** @type {?} */
VersionHistory.prototype.dropdownComparator;
/** @type {?} */
VersionHistory.prototype.defaultAscComparator;
/** @type {?} */
VersionHistory.prototype.defaultDescComparator;
/** @type {?} */
VersionHistory.prototype.currentDropdownIdx;
/** @type {?} */
VersionHistory.prototype.orderingDropdown;
/** @type {?} */
VersionHistory.prototype.fromTimeField;
/** @type {?} */
VersionHistory.prototype.toTimeField;
/** @type {?} */
VersionHistory.prototype.phloxAppInfo;
/** @type {?} */
VersionHistory.prototype._items;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmVyc2lvbkhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L1ZlcnNpb25IaXN0b3J5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWdCLFNBQVMsRUFBUSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJbkUsdUJBQU0sU0FBUyxHQUFXLHFCQUFxQixDQUFDO0FBMEhoRCxNQUFNLHFCQUFzQixTQUFRLHdCQUF3Qjs7Ozs7SUFxRjFELFlBQVksZUFBb0MsRUFBRSxVQUFzQjtRQUN0RSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJ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SztxQ0FHTCxLQUFLO2dDQUdMLEtBQUs7MkJBR0wsS0FBSzswQkFHTCxLQUFLOytCQUdMLEtBQUs7d0JBR0wsS0FBSzt1QkFHTCxLQUFLLFNBQUMsWUFBWTt3QkFHbEIsS0FBSzt5QkFFTCxLQUFLO3FCQUlMLEtBQUs7d0NBS0wsTUFBTSxTQUFDLHVCQUF1QjtrQ0FHOUIsTUFBTSxTQUFDLGlCQUFpQjt1Q0FHeEIsTUFBTSxTQUFDLHNCQUFzQjtpQ0FHN0IsTUFBTSxTQUFDLGdCQUFnQjt5Q0FHdkIsTUFBTSxTQUFDLHdCQUF3QjttQ0FHL0IsTUFBTSxTQUFDLGtCQUFrQjs4QkFnQnpCLFNBQVMsU0FBQyxlQUFlOzRCQUV6QixTQUFTLFNBQUMsYUFBYTs7O0lBekV2QixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUU7c0NBQ2EsUUFBUTs7O0lBRTdCLE1BQU0sRUFBRTtzQ0FDWSxRQUFROzs7SUFFNUIsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxDQUFDLFlBQVksQ0FBQzs7OztJQUtwQixNQUFNLEVBQUU7Ozs7SUFJUixJQUFJLEVBQUU7SUFDTixNQUFNLEVBQUU7Ozs7SUFJUixNQUFNLENBQUMsb0JBQW9CLENBQUM7c0NBQ00sWUFBWTs7O0lBRTlDLE1BQU0sQ0FBQyxjQUFjLENBQUM7c0NBQ00sWUFBWTs7O0lBRXhDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztzQ0FDTSxZQUFZOzs7SUFFN0MsTUFBTSxDQUFDLGFBQWEsQ0FBQztzQ0FDTSxZQUFZOzs7SUFFdkMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO3NDQUNNLFlBQVk7OztJQUUvQyxNQUFNLENBQUMsZUFBZSxDQUFDO3NDQUNNLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIFR5cGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REaWFsb2dDb250cm9sbGVyIH0gZnJvbSAnLi9BYnN0cmFjdERpYWxvZ0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgQWJzdHJhY3REYXRhRWRpdG9yIH0gZnJvbSAnLi9lZGl0b3IvQWJzdHJhY3REYXRhRWRpdG9yJztcbmltcG9ydCB7IFN0cmluZ0RhdGFWaWV3IH0gZnJvbSAnLi9kYXRhdmlldy9TdHJpbmdEYXRhVmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUhhc01vZGVsIH0gZnJvbSAnLi9JSGFzTW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50RHJvcGRvd25MaXN0IH0gZnJvbSAnLi9kYXRhdmlldy9pbnB1dC9Db21wb25lbnREcm9wZG93bkxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsVGV4dEJveCB9IGZyb20gJy4uL3RoZW1lL21hdGVyaWFsL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9NYXRlcmlhbFRleHRCb3guY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVUaW1lVXRpbHMgfSBmcm9tICcuLi9zaGFyZS91dGlscy9EYXRlVGltZVV0aWxzJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi9kZWNvcmF0b3IvSTE4Ti5kZWNvcmF0b3InO1xuaW1wb3J0IHsgSUhhc0RhdGEgfSBmcm9tICcuL0lIYXNEYXRhJztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi9tb2RlbC9Db21wb25lbnREaWFsb2dNb2RlbCc7XG5pbXBvcnQgeyBQaGxveEFwcEluZm8gfSBmcm9tICcuLi9jb21wb25lbnQvbW9kZWwvUGhsb3hBcHBJbmZvJztcbmltcG9ydCB7IERlZmF1bHRTZWxlY3RJdGVtTW9kZWwgfSBmcm9tICcuL21vZGVsL0RlZmF1bHRTZWxlY3RJdGVtTW9kZWwnO1xuaW1wb3J0IHsgUGhsb3hBcHBJbmZvU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvUGhsb3hBcHBJbmZvU2VydmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tICcuL2RhdGF2aWV3L2lucHV0L0RhdGVQaWNrZXIuY29tcG9uZW50JztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwicGh4LXZlcnNpb24taGlzdG9yeVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicGh4LXZlcnNpb24taGlzdG9yeVwiPlxuXHQ8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG5cdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG5cdFx0XHRcdDwhLS0gZmlyc3Qgem9uZSAtLT5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGl0bGVcIiAqbmdJZj1cImhhc01vZGVsKClcIj5cblx0XHRcdFx0XHRcdDxoMz57e2dldE1vZGVsKCkudGl0bGV9fTwvaDM+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgKm5nSWY9XCJoYXNNb2RlbCgpXCI+XG5cdFx0XHRcdFx0XHR7e2dldE1vZGVsKCkuZGVzY3JpcHRpb259fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PCEtLSBzZWNvbmQgem9uZSAtLT5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiXCIgW2NsYXNzLmFjdGl2ZV09XCJfaXNBY3RpdmVUYWIoMClcIiAoY2xpY2spPVwiX3NldEFjdGl2ZVRhYkluZGV4KDApXCI+VG9kYXk8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFiXCIgW2NsYXNzLmFjdGl2ZV09XCJfaXNBY3RpdmVUYWIoMSlcIiAoY2xpY2spPVwiX3NldEFjdGl2ZVRhYkluZGV4KDEpXCI+MyBkYXlzIGFnbzwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJcIiBbY2xhc3MuYWN0aXZlXT1cIl9pc0FjdGl2ZVRhYigyKVwiIChjbGljayk9XCJfc2V0QWN0aXZlVGFiSW5kZXgoMilcIj5hIG1vbnRoIGFnbzwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJcIiBbY2xhc3MuYWN0aXZlXT1cIl9pc0FjdGl2ZVRhYigzKVwiIChjbGljayk9XCJfc2V0QWN0aXZlVGFiSW5kZXgoMylcIj4zIG1vbnRocyBhZ288L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuXHRcdFx0XHQ8IS0tIGZpcnN0IHpvbmUgLS0+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInNvcnRpbmdcIj5cblx0XHRcdFx0XHRcdDxwaHgtY29tcG9uZW50LWRyb3Bkb3duICNvcmRlcmluZ0Ryb3Bkb3duIFt0eXBlXT1cIl9nZXREcm9wZG93bkNvbXBvVHlwZSgpXCIgW2l0ZW1zXT1cIl9pdGVtc1wiXG5cdFx0XHRcdFx0XHRbZGVmYXVsdElkeF09XCJfZ2V0Q3VycmVudERyb3Bkb3duSWR4KClcIiAocGh4Q2hhbmdlKT1cIm9uRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiPjwvcGh4LWNvbXBvbmVudC1kcm9wZG93bj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwic29ydGluZy1sYWJlbFwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXIgZmx1aWRcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLWNlbGwtd3JhcHBlciBtaWRkbGVcIj5cblx0XHRcdFx0XHRcdFx0XHRTb3J0aW5nIDpcblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwhLS0gc2Vjb25kIHpvbmUgLS0+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImxvZ29cIj5cblx0XHRcdFx0XHRcdDwhLS0gTE9HTyAtLT5cblx0XHRcdFx0XHRcdDxzdmcgdmVyc2lvbj1cIjEuMVwiIGlkPVwiTGF5ZXJfMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiXG5cdFx0XHRcdFx0XHRcdCB2aWV3Qm94PVwiMCAwIDMwIDMwXCIgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwO1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCIgY2xhc3M9XCJjYWxlbmRhclwiPlxuXHRcdFx0XHRcdFx0XHRcdDxnPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5bGU9XCJmaWxsOiNiMWIxYjE7XCIgZD1cIk04LjU4NSw4LjU5OWgwLjM4NmMwLjU4NywwLDEuMDY0LTAuNDc2LDEuMDY0LTEuMDY0VjMuNTAzYzAtMC41ODctMC40NzYtMS4wNjQtMS4wNjQtMS4wNjRIOC41ODVcblx0XHRcdFx0XHRcdFx0XHRcdFx0Yy0wLjU4NywwLTEuMDY0LDAuNDc2LTEuMDY0LDEuMDY0djQuMDMzQzcuNTIyLDguMTIzLDcuOTk4LDguNTk5LDguNTg1LDguNTk5TDguNTg1LDguNTk5eiBNOC41ODUsOC41OTlcIi8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Zz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5bGU9XCJmaWxsOiNiMWIxYjE7XCIgZD1cIk0yMi4yMjcsOC41NzJoMC4zODdjMC41ODcsMCwxLjA2My0wLjQ3NiwxLjA2My0xLjA2NFYzLjQ3NmMwLTAuNTg3LTAuNDc2LTEuMDYzLTEuMDYzLTEuMDYzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aC0wLjM4N2MtMC41ODgsMC0xLjA2NCwwLjQ3Ni0xLjA2NCwxLjA2M3Y0LjAzM0MyMS4xNjMsOC4wOTYsMjEuNjQsOC41NzIsMjIuMjI3LDguNTcyTDIyLjIyNyw4LjU3MnogTTIyLjIyNyw4LjU3MlwiLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5bGU9XCJmaWxsOiNiMWIxYjE7XCIgZD1cIk0yNy4yNzEsNC42aC0yLjcyOXYzLjE4N2MwLDEuMDYzLTAuODY1LDEuNjUtMS45MjgsMS42NWgtMC4zODdjLTEuMDYzLDAtMS45MjgtMC44NjUtMS45MjgtMS45Mjhcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRWNC42SDEwLjl2Mi45MzVjMCwxLjA2My0wLjg2NSwxLjkyOC0xLjkyOCwxLjkyOEg4LjU4NWMtMS4wNjMsMC0xLjkyOC0wLjg2NS0xLjkyOC0xLjkyOFY0LjZIMy43MTJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjLTAuOTUzLDAtMS43MjksMC43NzYtMS43MjksMS43Mjl2MjAuODkzYzAsMC45NTMsMC43NzYsMS43MjksMS43MjksMS43MjloMjMuNTU5YzAuOTUzLDAsMS43MjktMC43NzUsMS43MjktMS43MjlWNi4zMjlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRDMjksNS4zNzYsMjguMjI0LDQuNiwyNy4yNzEsNC42TDI3LjI3MSw0LjZ6IE0yNy4yNzEsMjcuMjIySDMuNzEyVjExLjQ0NGgyMy41NTlsMC4wMDEsMTUuNzc4SDI3LjI3MUwyNy4yNzEsMjcuMjIyelxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCBNMjcuMjcxLDI3LjIyMlwiLz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZz5cblx0XHRcdFx0XHRcdFx0XHRcdDxwYXRoIHN0eWxlPVwiZmlsbDojYjFiMWIxO1wiIGQ9XCJNMTYuMzg0LDE2LjczN2gzLjEwNWMwLjEyMywwLDAuMjIzLTAuMSwwLjIyMy0wLjIyM3YtMi42ODhjMC0wLjEyMy0wLjEtMC4yMjMtMC4yMjMtMC4yMjNoLTMuMTA1XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGMtMC4xMjMsMC0wLjIyMywwLjEtMC4yMjMsMC4yMjN2Mi42ODhDMTYuMTYxLDE2LjYzNywxNi4yNjEsMTYuNzM3LDE2LjM4NCwxNi43MzdMMTYuMzg0LDE2LjczN3ogTTE2LjM4NCwxNi43MzdcIi8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8cGF0aCBzdHlsZT1cImZpbGw6I2IxYjFiMTtcIiBkPVwiTTIxLjQ1MSwxNi43MzdoMy4xMDVjMC4xMjMsMCwwLjIyMy0wLjEsMC4yMjMtMC4yMjN2LTIuNjg4YzAtMC4xMjMtMC4xLTAuMjIzLTAuMjIzLTAuMjIzaC0zLjEwNVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjLTAuMTIzLDAtMC4yMjMsMC4xLTAuMjIzLDAuMjIzdjIuNjg4QzIxLjIyOCwxNi42MzcsMjEuMzI4LDE2LjczNywyMS40NTEsMTYuNzM3TDIxLjQ1MSwxNi43Mzd6IE0yMS40NTEsMTYuNzM3XCIvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5bGU9XCJmaWxsOiNiMWIxYjE7XCIgZD1cIk02LjI1MiwyMS4xMzhoMy4xMDVjMC4xMjMsMCwwLjIyMy0wLjEsMC4yMjMtMC4yMjN2LTIuNjg4YzAtMC4xMjMtMC4xLTAuMjIzLTAuMjIzLTAuMjIzSDYuMjUyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGMtMC4xMjMsMC0wLjIyMywwLjEtMC4yMjMsMC4yMjN2Mi42ODhDNi4wMjksMjEuMDM4LDYuMTI5LDIxLjEzOCw2LjI1MiwyMS4xMzhMNi4yNTIsMjEuMTM4eiBNNi4yNTIsMjEuMTM4XCIvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5bGU9XCJmaWxsOiNiMWIxYjE7XCIgZD1cIk0xMS4zMTgsMjEuMTM4aDMuMTA1YzAuMTIzLDAsMC4yMjMtMC4xLDAuMjIzLTAuMjIzdi0yLjY4OGMwLTAuMTIzLTAuMS0wLjIyMy0wLjIyMy0wLjIyM2gtMy4xMDVcblx0XHRcdFx0XHRcdFx0XHRcdFx0Yy0wLjEyMywwLTAuMjIzLDAuMS0wLjIyMywwLjIyM3YyLjY4OEMxMS4wOTUsMjEuMDM4LDExLjE5NSwyMS4xMzgsMTEuMzE4LDIxLjEzOEwxMS4zMTgsMjEuMTM4eiBNMTEuMzE4LDIxLjEzOFwiLz5cblx0XHRcdFx0XHRcdFx0XHRcdDxwYXRoIHN0eWxlPVwiZmlsbDojYjFiMWIxO1wiIGQ9XCJNMTYuMzg1LDIxLjEzOGgzLjEwNGMwLjEyMywwLDAuMjIzLTAuMSwwLjIyMy0wLjIyM3YtMi42ODhjMC0wLjEyMy0wLjEtMC4yMjMtMC4yMjMtMC4yMjNoLTMuMTA0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGMtMC4xMjMsMC0wLjIyMywwLjEtMC4yMjMsMC4yMjN2Mi42ODhDMTYuMTYxLDIxLjAzOCwxNi4yNjEsMjEuMTM4LDE2LjM4NSwyMS4xMzhMMTYuMzg1LDIxLjEzOHogTTE2LjM4NSwyMS4xMzhcIi8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8cGF0aCBzdHlsZT1cImZpbGw6I2IxYjFiMTtcIiBkPVwiTTIxLjQ1MSwyMS4xMzhoMy4xMDVjMC4xMjMsMCwwLjIyMy0wLjEsMC4yMjMtMC4yMjN2LTIuNjg4YzAtMC4xMjMtMC4xLTAuMjIzLTAuMjIzLTAuMjIzaC0zLjEwNVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjLTAuMTIzLDAtMC4yMjMsMC4xLTAuMjIzLDAuMjIzdjIuNjg4QzIxLjIyOCwyMS4wMzgsMjEuMzI4LDIxLjEzOCwyMS40NTEsMjEuMTM4TDIxLjQ1MSwyMS4xMzh6IE0yMS40NTEsMjEuMTM4XCIvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5bGU9XCJmaWxsOiNiMWIxYjE7XCIgZD1cIk05LjM1NiwyMi40MDVINi4yNTJjLTAuMTIzLDAtMC4yMjMsMC4xLTAuMjIzLDAuMjIzdjIuNjg4YzAsMC4xMjMsMC4xLDAuMjIzLDAuMjIzLDAuMjIzaDMuMTA1XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGMwLjEyMywwLDAuMjIzLTAuMSwwLjIyMy0wLjIyM3YtMi42ODhDOS41NzksMjIuNTA1LDkuNDc5LDIyLjQwNSw5LjM1NiwyMi40MDVMOS4zNTYsMjIuNDA1eiBNOS4zNTYsMjIuNDA1XCIvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHBhdGggc3R5b