com.phloxui
Version:
PhloxUI Ng2+ Framework
990 lines (989 loc) • 67.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { EventEmitter } from '@angular/core';
import { ACTIVATE_EVENT, DEACTIVATE_EVENT, ENABLE_EVENT, DISABLE_EVENT, BEFORE_ACTIVATE_EVENT, BEFORE_DEACTIVATE_EVENT, BEFORE_ENABLE_EVENT, BEFORE_DISABLE_EVENT } from '../../share/CustomEventType';
import { AbstractDataView } from './AbstractDataView';
import { Option } from '../../decorator/Option.decorator';
import { EventUtils } from '../../share/utils/EventUtils';
// unsupported: template constraints.
/**
* @abstract
* @template T
*/
var AbstractAccordion = /** @class */ (function (_super) {
tslib_1.__extends(AbstractAccordion, _super);
function AbstractAccordion(elementRef) {
var _this = _super.call(this, elementRef) || this;
_this.itemStatus = [];
_this.autoInit = false;
_this.multipleExpand = true;
_this.activateEvent = new EventEmitter();
_this.deactivateEvent = new EventEmitter();
_this.enableEvent = new EventEmitter();
_this.disableEvent = new EventEmitter();
_this.beforeActivateEvent = new EventEmitter();
_this.beforeDeactivateEvent = new EventEmitter();
_this.beforeEnableEvent = new EventEmitter();
_this.beforeDisableEvent = new EventEmitter();
return _this;
}
/**
* @return {?}
*/
AbstractAccordion.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setAccordionItems(this.items);
if (this.autoInit !== null && typeof this.autoInit !== 'undefined') {
if (this.autoInit) {
this.init();
}
}
};
/**
* @param {?} item
* @return {?}
*/
AbstractAccordion.prototype.generateItemStatus = /**
* @param {?} item
* @return {?}
*/
function (item) {
var /** @type {?} */ result = {
active: false,
enable: false
};
if (item !== null && typeof item !== 'undefined') {
result.active = item.active;
result.enable = item.enable;
}
return result;
};
/**
* @param {?} index
* @param {?=} exceptIndex
* @return {?}
*/
AbstractAccordion.prototype.collapseItem = /**
* @param {?} index
* @param {?=} exceptIndex
* @return {?}
*/
function (index, exceptIndex) {
if (index !== null && typeof index !== 'undefined') {
if (exceptIndex !== null && exceptIndex !== undefined) {
if (index === exceptIndex) {
return;
}
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item !== null) {
if (item.active) {
item.active = false;
// update status
var /** @type {?} */ status_1 = this.itemStatus[index];
status_1.active = false;
}
this.onAccordionDeactived(index, item);
}
}
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype._activateItem = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || index === undefined || index <= -1) {
return null;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item !== null) {
if (!item.active) {
item.active = true;
// update status
var /** @type {?} */ status_2 = this.itemStatus[index];
status_2.active = true;
if (!this.multipleExpand) {
this.collapseItemAllExceptIndex(index);
}
this.onAccordionActived(index, item);
return item;
}
}
return null;
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype._deactivateItem = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || index === undefined || index <= -1) {
return null;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item !== null) {
if (item.active) {
item.active = false;
// update status
var /** @type {?} */ status_3 = this.itemStatus[index];
status_3.active = false;
this.onAccordionDeactived(index, item);
return item;
}
}
return null;
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype._enableItem = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || index === undefined || index <= -1) {
return null;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item !== null && item !== undefined) {
if (!item.enable) {
item.enable = true;
// update status
var /** @type {?} */ status_4 = this.itemStatus[index];
status_4.enable = true;
this.onAccordionEnabled(index, item);
return item;
}
}
return null;
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype._disableItem = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || index === undefined || index <= -1) {
return null;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item !== null && item !== undefined) {
if (item.enable) {
this.deactivate(index);
item.enable = false;
// update status
var /** @type {?} */ status_5 = this.itemStatus[index];
status_5.enable = false;
this.onAccordionDisabled(index, item);
return item;
}
}
return null;
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitBeforeActivateEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit beforeEvent
var /** @type {?} */ bData = {
item: item,
index: index
};
var /** @type {?} */ beforeEV = EventUtils.newCustomEvent(BEFORE_ACTIVATE_EVENT, this, bData, $event);
this.beforeActivateEvent.emit(beforeEV);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitActivateEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit event
var /** @type {?} */ data = {
item: item,
index: index
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(ACTIVATE_EVENT, this, data, $event);
this.activateEvent.emit(ev);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitBeforeDeactivateEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit beforeEvent
var /** @type {?} */ bData = {
item: item,
index: index
};
var /** @type {?} */ beforeEV = EventUtils.newCustomEvent(BEFORE_DEACTIVATE_EVENT, this, bData, $event);
this.beforeDeactivateEvent.emit(beforeEV);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitDeactivateEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit event
var /** @type {?} */ data = {
item: item,
index: index
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(DEACTIVATE_EVENT, this, data, $event);
this.deactivateEvent.emit(ev);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitBeforeEnableEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit beforeEvent
var /** @type {?} */ bData = {
item: item,
index: index
};
var /** @type {?} */ beforeEV = EventUtils.newCustomEvent(BEFORE_ENABLE_EVENT, this, bData, null);
this.beforeEnableEvent.emit(beforeEV);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitEnableEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit event
var /** @type {?} */ data = {
item: item,
index: index
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(ENABLE_EVENT, this, data, $event);
this.enableEvent.emit(ev);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitBeforeDisableEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit beforeEvent
var /** @type {?} */ bData = {
item: item,
index: index
};
var /** @type {?} */ beforeEV = EventUtils.newCustomEvent(BEFORE_DISABLE_EVENT, this, bData, null);
this.beforeDisableEvent.emit(beforeEV);
};
/**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
AbstractAccordion.prototype.emitDisableEvent = /**
* @param {?} item
* @param {?} index
* @param {?=} $event
* @return {?}
*/
function (item, index, $event) {
// emit event
var /** @type {?} */ data = {
item: item,
index: index
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(DISABLE_EVENT, this, data, $event);
this.disableEvent.emit(ev);
};
/**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
AbstractAccordion.prototype.activate = /**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
function (index, $event, fireEvent) {
var _this = this;
if (fireEvent === null || fireEvent === undefined) {
fireEvent = true;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (!item.active) {
EventUtils.handleBrowserEvent(this, 'beforeActivateEvent', $event, fireEvent, function ($event) {
// doEvent
// doEvent
_this._activateItem(index);
}, function ($event) {
// emitBeforeEvent
// emitBeforeEvent
_this.emitBeforeActivateEvent(item, index, $event);
}, function ($event) {
// emitAfterEvent
// emitAfterEvent
_this.emitActivateEvent(item, index, $event);
}, function ($event) {
// doPrevented
});
return true;
}
else {
return false;
}
};
/**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
AbstractAccordion.prototype.deactivate = /**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
function (index, $event, fireEvent) {
var _this = this;
if (fireEvent === null || fireEvent === undefined) {
fireEvent = true;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item.active) {
EventUtils.handleBrowserEvent(this, 'beforeDeactivateEvent', $event, fireEvent, function ($event) {
// doEvent
// doEvent
_this._deactivateItem(index);
}, function ($event) {
// emitBeforeEvent
// emitBeforeEvent
_this.emitBeforeDeactivateEvent(item, index, $event);
}, function ($event) {
// emitAfterEvent
// emitAfterEvent
_this.emitDeactivateEvent(item, index, $event);
}, function ($event) {
// doPrevented
});
return true;
}
else {
return false;
}
};
/**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
AbstractAccordion.prototype.enable = /**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
function (index, $event, fireEvent) {
var _this = this;
if (index === null || index === undefined || index <= -1) {
return null;
}
if (fireEvent === null || fireEvent === undefined) {
fireEvent = true;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (!item.enable) {
EventUtils.handleBrowserEvent(this, 'beforeEnableEvent', $event, fireEvent, function ($event) {
// doEvent
// doEvent
_this._enableItem(index);
}, function ($event) {
// emitBeforeEvent
// emitBeforeEvent
_this.emitBeforeEnableEvent(item, index, $event);
}, function ($event) {
// emitAfterEvent
// emitAfterEvent
_this.emitEnableEvent(item, index, $event);
}, function ($event) {
// doPrevented
});
return true;
}
else {
return false;
}
};
/**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
AbstractAccordion.prototype.disable = /**
* @param {?} index
* @param {?=} $event
* @param {?=} fireEvent
* @return {?}
*/
function (index, $event, fireEvent) {
var _this = this;
if (index === null || index === undefined || index <= -1) {
return null;
}
if (fireEvent === null || fireEvent === undefined) {
fireEvent = true;
}
var /** @type {?} */ item = this.getAccordionItem(index);
if (item.enable) {
EventUtils.handleBrowserEvent(this, 'beforeDisableEvent', $event, fireEvent, function ($event) {
// doEvent
// doEvent
_this._disableItem(index);
}, function ($event) {
// emitBeforeEvent
// emitBeforeEvent
_this.emitBeforeDisableEvent(item, index, $event);
}, function ($event) {
// emitAfterEvent
// emitAfterEvent
_this.emitDisableEvent(item, index, $event);
}, function ($event) {
// doPrevented
});
return true;
}
else {
return false;
}
};
/**
* @param {?} items
* @return {?}
*/
AbstractAccordion.prototype.setAccordionItems = /**
* @param {?} items
* @return {?}
*/
function (items) {
this.items = items;
this.itemStatus = [];
if (this.items !== null && typeof this.items !== 'undefined') {
try {
for (var _a = tslib_1.__values(this.items), _b = _a.next(); !_b.done; _b = _a.next()) {
var item = _b.value;
// change status
if (!item.enable) {
item.active = false;
}
var /** @type {?} */ wrapItem = this.generateItemStatus(item);
this.itemStatus.push(wrapItem);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_1) throw e_1.error; }
}
}
var e_1, _c;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getAccordionItems = /**
* @return {?}
*/
function () {
return this.items;
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype.getAccordionItem = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (this.items !== null && typeof this.items !== 'undefined') {
if (index < this.items.length) {
var /** @type {?} */ item = this.items[index];
return item;
}
}
return null;
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype.isActive = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index !== null && typeof index !== 'undefined') {
if (index < this.items.length) {
return this.items[index].active;
}
}
return false;
};
/**
* @param {?} index
* @return {?}
*/
AbstractAccordion.prototype.isEnable = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index !== null && typeof index !== 'undefined') {
if (index < this.items.length) {
return this.items[index].enable;
}
}
return false;
};
/**
* @param {?} item
* @return {?}
*/
AbstractAccordion.prototype.getAccordionIndex = /**
* @param {?} item
* @return {?}
*/
function (item) {
if (item !== null && item !== undefined) {
var /** @type {?} */ items = this.getAccordionItems();
return items.indexOf(item);
}
return -1;
};
/**
* @param {?=} exceptIndex
* @return {?}
*/
AbstractAccordion.prototype.collapseItemAllExceptIndex = /**
* @param {?=} exceptIndex
* @return {?}
*/
function (exceptIndex) {
var /** @type {?} */ items = this.getAccordionItems();
if (items !== null && items !== undefined) {
try {
for (var _a = tslib_1.__values(this.items), _b = _a.next(); !_b.done; _b = _a.next()) {
var item = _b.value;
var /** @type {?} */ index = this.getAccordionIndex(item);
this.collapseItem(index, exceptIndex);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_2) throw e_2.error; }
}
}
var e_2, _c;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.isFixedHeight = /**
* @return {?}
*/
function () {
if (this.fixedHeight === null || typeof this.fixedHeight === 'undefined' || this.fixedHeight === '') {
return false;
}
return true;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getFixedHeight = /**
* @return {?}
*/
function () {
return this.fixedHeight;
};
/**
* @param {?} fixedHeight
* @return {?}
*/
AbstractAccordion.prototype.setFixedHeight = /**
* @param {?} fixedHeight
* @return {?}
*/
function (fixedHeight) {
this.fixedHeight = fixedHeight;
};
/**
* @param {?} activateEvent
* @return {?}
*/
AbstractAccordion.prototype.setActivateEvent = /**
* @param {?} activateEvent
* @return {?}
*/
function (activateEvent) {
this.activateEvent = activateEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getActivateEvent = /**
* @return {?}
*/
function () {
return this.activateEvent;
};
/**
* @param {?} deactivateEvent
* @return {?}
*/
AbstractAccordion.prototype.setDeactivateEvent = /**
* @param {?} deactivateEvent
* @return {?}
*/
function (deactivateEvent) {
this.deactivateEvent = deactivateEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getDeactivateEvent = /**
* @return {?}
*/
function () {
return this.deactivateEvent;
};
/**
* @param {?} enableEvent
* @return {?}
*/
AbstractAccordion.prototype.setEnableEvent = /**
* @param {?} enableEvent
* @return {?}
*/
function (enableEvent) {
this.enableEvent = enableEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getEnableEvent = /**
* @return {?}
*/
function () {
return this.enableEvent;
};
/**
* @param {?} disableEvent
* @return {?}
*/
AbstractAccordion.prototype.setDisableEvent = /**
* @param {?} disableEvent
* @return {?}
*/
function (disableEvent) {
this.disableEvent = disableEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getDisableEvent = /**
* @return {?}
*/
function () {
return this.disableEvent;
};
/**
* @param {?} beforeActivateEvent
* @return {?}
*/
AbstractAccordion.prototype.setBeforeActivateEvent = /**
* @param {?} beforeActivateEvent
* @return {?}
*/
function (beforeActivateEvent) {
this.beforeActivateEvent = beforeActivateEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getBeforeActivateEvent = /**
* @return {?}
*/
function () {
return this.beforeActivateEvent;
};
/**
* @param {?} beforeDeactivateEvent
* @return {?}
*/
AbstractAccordion.prototype.setBeforeDeactivateEvent = /**
* @param {?} beforeDeactivateEvent
* @return {?}
*/
function (beforeDeactivateEvent) {
this.beforeDeactivateEvent = beforeDeactivateEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getBeforeDeactivateEvent = /**
* @return {?}
*/
function () {
return this.beforeDeactivateEvent;
};
/**
* @param {?} beforeEnableEvent
* @return {?}
*/
AbstractAccordion.prototype.setBeforeEnableEvent = /**
* @param {?} beforeEnableEvent
* @return {?}
*/
function (beforeEnableEvent) {
this.beforeEnableEvent = beforeEnableEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getBeforeEnableEvent = /**
* @return {?}
*/
function () {
return this.beforeEnableEvent;
};
/**
* @param {?} beforeDisableEvent
* @return {?}
*/
AbstractAccordion.prototype.setBeforeDisableEvent = /**
* @param {?} beforeDisableEvent
* @return {?}
*/
function (beforeDisableEvent) {
this.beforeDisableEvent = beforeDisableEvent;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.getBeforeDisableEvent = /**
* @return {?}
*/
function () {
return this.beforeDisableEvent;
};
/**
* @param {?} isAutoInit
* @return {?}
*/
AbstractAccordion.prototype.setAutoInit = /**
* @param {?} isAutoInit
* @return {?}
*/
function (isAutoInit) {
this.autoInit = isAutoInit;
};
/**
* @return {?}
*/
AbstractAccordion.prototype.isAutoInit = /**
* @return {?}
*/
function () {
return this.autoInit;
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], AbstractAccordion.prototype, "fixedHeight", void 0);
tslib_1.__decorate([
Option('beforeActivate'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "beforeActivateEvent", void 0);
tslib_1.__decorate([
Option('activate'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "activateEvent", void 0);
tslib_1.__decorate([
Option('beforeDeactivate'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "beforeDeactivateEvent", void 0);
tslib_1.__decorate([
Option('deactivate'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "deactivateEvent", void 0);
tslib_1.__decorate([
Option('beforeEnable'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "beforeEnableEvent", void 0);
tslib_1.__decorate([
Option('enable'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "enableEvent", void 0);
tslib_1.__decorate([
Option('beforeDisable'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "beforeDisableEvent", void 0);
tslib_1.__decorate([
Option('disable'),
tslib_1.__metadata("design:type", EventEmitter)
], AbstractAccordion.prototype, "disableEvent", void 0);
return AbstractAccordion;
}(AbstractDataView));
export { AbstractAccordion };
function AbstractAccordion_tsickle_Closure_declarations() {
/** @type {?} */
AbstractAccordion.prototype.itemStatus;
/** @type {?} */
AbstractAccordion.prototype.items;
/** @type {?} */
AbstractAccordion.prototype.fixedHeight;
/** @type {?} */
AbstractAccordion.prototype.beforeActivateEvent;
/** @type {?} */
AbstractAccordion.prototype.activateEvent;
/** @type {?} */
AbstractAccordion.prototype.beforeDeactivateEvent;
/** @type {?} */
AbstractAccordion.prototype.deactivateEvent;
/** @type {?} */
AbstractAccordion.prototype.beforeEnableEvent;
/** @type {?} */
AbstractAccordion.prototype.enableEvent;
/** @type {?} */
AbstractAccordion.prototype.beforeDisableEvent;
/** @type {?} */
AbstractAccordion.prototype.disableEvent;
/** @type {?} */
AbstractAccordion.prototype.autoInit;
/** @type {?} */
AbstractAccordion.prototype.multipleExpand;
/**
* @abstract
* @return {?}
*/
AbstractAccordion.prototype.init = function () { };
/**
* @abstract
* @param {?} index
* @param {?} item
* @return {?}
*/
AbstractAccordion.prototype.onAccordionActived = function (index, item) { };
/**
* @abstract
* @param {?} index
* @param {?} item
* @return {?}
*/
AbstractAccordion.prototype.onAccordionDeactived = function (index, item) { };
/**
* @abstract
* @param {?} index
* @param {?} item
* @return {?}
*/
AbstractAccordion.prototype.onAccordionEnabled = function (index, item) { };
/**
* @abstract
* @param {?} index
* @param {?} item
* @return {?}
*/
AbstractAccordion.prototype.onAccordionDisabled = function (index, item) { };
/**
* @abstract
* @return {?}
*/
AbstractAccordion.prototype.reload = function () { };
/**
* @abstract
* @return {?}
*/
AbstractAccordion.prototype.reRender = function () { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RBY2NvcmRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZGF0YXZpZXcvQWJzdHJhY3RBY2NvcmRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQVUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFDTCxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFDN0QscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQzFGLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztJQUVvQiw2Q0FBZ0I7SUF5QjVGLDJCQUFZLFVBQXNCO1FBQWxDLFlBQ0Usa0JBQU0sVUFBVSxDQUFDLFNBWWxCO1FBWEMsS0FBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsS0FBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsS0FBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEtBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxLQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsS0FBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlDLEtBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJ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LElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDOzs7OztJQUd0QixzQ0FBVTs7OztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDOzs7UUFwaEJ0QixNQUFNLEVBQUU7Ozs7UUFFUixNQUFNLENBQUMsZ0JBQWdCLENBQUM7MENBQ00sWUFBWTs7O1FBQzFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7MENBQ00sWUFBWTs7O1FBQ3BDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQzswQ0FDTSxZQUFZOzs7UUFDNUMsTUFBTSxDQUFDLFlBQVksQ0FBQzswQ0FDTSxZQUFZOzs7UUFDdEMsTUFBTSxDQUFDLGNBQWMsQ0FBQzswQ0FDTSxZQUFZOzs7UUFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQ0FDTSxZQUFZOzs7UUFDbEMsTUFBTSxDQUFDLGVBQWUsQ0FBQzswQ0FDTSxZQUFZOzs7UUFDekMsTUFBTSxDQUFDLFNBQVMsQ0FBQzswQ0FDTSxZQUFZOzs0QkEvQnRDO0VBVThFLGdCQUFnQjtTQUF4RSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSXRlbU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvQWNjb3JkaW9uSXRlbU1vZGVsJztcbmltcG9ydCB7XHJcbiAgQUNUSVZBVEVfRVZFTlQsIERFQUNUSVZBVEVfRVZFTlQsIEVOQUJMRV9FVkVOVCwgRElTQUJMRV9FVkVOVCxcbiAgQkVGT1JFX0FDVElWQVRFX0VWRU5ULCBCRUZPUkVfREVBQ1RJVkFURV9FVkVOVCwgQkVGT1JFX0VOQUJMRV9FVkVOVCwgQkVGT1JFX0RJU0FCTEVfRVZFTlRcclxufSBmcm9tICcuLi8uLi9zaGFyZS9DdXN0b21FdmVudFR5cGUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYXRhVmlldyB9IGZyb20gJy4vQWJzdHJhY3REYXRhVmlldyc7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi8uLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XG5pbXBvcnQgeyBFdmVudFV0aWxzIH0gZnJvbSAnLi4vLi4vc2hhcmUvdXRpbHMvRXZlbnRVdGlscyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEFjY29yZGlvbjxUIGV4dGVuZHMgQWNjb3JkaW9uSXRlbU1vZGVsPiBleHRlbmRzIEFic3RyYWN0RGF0YVZpZXcgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgaXRlbVN0YXR1czogYW55W107XG4gIHByb3RlY3RlZCBpdGVtczogVFtdO1xuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGZpeGVkSGVpZ2h0OiBzdHJpbmc7IC8vIGhlaWdodCBmb3IgZGV0ZXJtaW5lIGlmIGFjY29yZGlhbiBpbiBmaXhIZWlnaHQgb3Igbm90LlxuICBAT3B0aW9uKCdiZWZvcmVBY3RpdmF0ZScpXG4gIHByb3RlY3RlZCBiZWZvcmVBY3RpdmF0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE9wdGlvbignYWN0aXZhdGUnKVxuICBwcm90ZWN0ZWQgYWN0aXZhdGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPcHRpb24oJ2JlZm9yZURlYWN0aXZhdGUnKVxuICBwcm90ZWN0ZWQgYmVmb3JlRGVhY3RpdmF0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE9wdGlvbignZGVhY3RpdmF0ZScpXG4gIHByb3RlY3RlZCBkZWFjdGl2YXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3B0aW9uKCdiZWZvcmVFbmFibGUnKVxuICBwcm90ZWN0ZWQgYmVmb3JlRW5hYmxlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3B0aW9uKCdlbmFibGUnKVxuICBwcm90ZWN0ZWQgZW5hYmxlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3B0aW9uKCdiZWZvcmVEaXNhYmxlJylcbiAgcHJvdGVjdGVkIGJlZm9yZURpc2FibGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPcHRpb24oJ2Rpc2FibGUnKVxuICBwcm90ZWN0ZWQgZGlzYWJsZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgcHJvdGVjdGVkIGF1dG9Jbml0OiBib29sZWFuO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGVFeHBhbmQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIHRoaXMuaXRlbVN0YXR1cyA9IFtdO1xuICAgIHRoaXMuYXV0b0luaXQgPSBmYWxzZTtcbiAgICB0aGlzLm11bHRpcGxlRXhwYW5kID0gdHJ1ZTtcbiAgICB0aGlzLmFjdGl2YXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5kZWFjdGl2YXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5lbmFibGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmRpc2FibGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmJlZm9yZUFjdGl2YXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5iZWZvcmVEZWFjdGl2YXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5iZWZvcmVFbmFibGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmJlZm9yZURpc2FibGVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFjY29yZGlvbkl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIGlmICh0aGlzLmF1dG9Jbml0ICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmF1dG9Jbml0ICE9PSAndW5kZWZpbmVkJykge1xuI