UNPKG

ornamentum

Version:
279 lines 22.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Inject, Injectable, InjectionToken } from '@angular/core'; /** @type {?} */ export const DATA_TABLE_CONFIG = new InjectionToken('dataTableConfig'); /** * Data table config service * Manage all the global configurations of grid which can be overridden while importing the module. */ export class DataTableConfigService { /** * @param {?} dataTableConfig */ constructor(dataTableConfig) { this.dataTableConfig = dataTableConfig; // Table base config this.persistTableState = false; this.storageMode = 'session'; this.multiColumnSortable = false; this.showHeader = false; this.title = ''; this.width = undefined; this.minContentHeight = 200; this.minContentWidth = undefined; this.contentHeight = undefined; this.pageable = false; this.loadOnScroll = false; this.loadViewDistanceRatio = 1; this.showIndexColumn = false; this.indexColumnTitle = '#'; this.rowSelectable = false; this.selectMode = 'single'; this.showRowSelectCheckbox = true; this.showRowSelectAllCheckbox = false; this.showSubstituteRows = false; this.expandableRows = false; this.selectOnRowClick = false; this.expandOnRowClick = false; this.autoFetch = true; this.showLoadingSpinner = true; this.selectTrackBy = 'id'; this.filterDebounceTime = 500; this.filterDebounce = true; this.showRefreshButton = false; this.showColumnSelector = false; this.columnSelectorWidth = 240; this.expanderColumnWidth = 30; this.indexColumnWidth = 30; this.selectionColumnWidth = 30; this.showRowExpandLoadingSpinner = false; this.offset = 0; this.limit = 10; this.maxLimit = 100; this.stateKeyPrefix = 'grid_state_'; this.baseTranslations = { noDataMessage: { header: 'Whoops!', body: 'No data to display. Added data will appear here.', }, pagination: { limit: 'Limit:', rangeKey: 'Results:', rangeSeparator: 'of', nextTooltip: 'Next', previousTooltip: 'Previous', lastTooltip: 'Last', firstTooltip: 'First' }, columnSelector: { header: 'Show/Hide Column' }, dropdownFilter: { noDataMessage: 'No Results Available', filterPlaceholder: 'Search', selectedOptionWrapPlaceholder: 'Options', selectPlaceholder: 'Select' } }; // Table column config this.sortable = false; this.sortOrder = ''; this.filterable = false; this.filterPlaceholder = 'Search'; this.columnResizable = false; this.columnVisible = true; this.showDropdownFilter = false; this.showFilterClearButton = true; // Column dropdown filter options this.dropdownFilterMenuPosition = 'bottom-left'; this.dropdownFilterSelectMode = 'multi'; this.dropdownFilterSearchable = true; this.dropdownFilterSearchDebounceTime = 500; this.dropdownFilterSearchDebounce = true; this.dropdownFilterWrapDisplaySelectLimit = 1; this.dropdownFilterGroupByField = undefined; this.dropdownFilterShowSelectedOptionRemoveButton = false; this.dropdownFilterShowClearSelectionButton = true; this.dropdownFilterMenuWidth = 320; this.dropdownFilterMenuHeight = 250; this.dropdownFilterMultiSelectOptionMaxWidth = 135; this.dropdownFilterCloseMenuOnSelect = true; this.dropdownFilterDynamicDimensionCalculation = true; this.dropdownFilterDynamicWidthRatio = 1.25; this.dropdownFilterDynamicHeightRatio = 1.25; if (dataTableConfig) { Object.assign(this, dataTableConfig); } } /** * @param {?} value * @return {?} */ set translations(value) { if (!value) { return; } // all keys are object type. for (const [key, val] of Object.entries(value)) { this.baseTranslations[key] = Object.assign({}, this.baseTranslations[key], val); } } /** * Returns translations. * @return {?} */ get translations() { return this.baseTranslations; } /** * Get row select checkbox column. * @return {?} */ get showRowSelectCheckboxColumn() { return this.rowSelectable && this.showRowSelectCheckbox; } } DataTableConfigService.decorators = [ { type: Injectable } ]; /** @nocollapse */ DataTableConfigService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [DATA_TABLE_CONFIG,] }] } ]; if (false) { /** @type {?} */ DataTableConfigService.prototype.persistTableState; /** @type {?} */ DataTableConfigService.prototype.storageMode; /** @type {?} */ DataTableConfigService.prototype.multiColumnSortable; /** @type {?} */ DataTableConfigService.prototype.showHeader; /** @type {?} */ DataTableConfigService.prototype.title; /** @type {?} */ DataTableConfigService.prototype.width; /** @type {?} */ DataTableConfigService.prototype.minContentHeight; /** @type {?} */ DataTableConfigService.prototype.minContentWidth; /** @type {?} */ DataTableConfigService.prototype.contentHeight; /** @type {?} */ DataTableConfigService.prototype.pageable; /** @type {?} */ DataTableConfigService.prototype.loadOnScroll; /** @type {?} */ DataTableConfigService.prototype.loadViewDistanceRatio; /** @type {?} */ DataTableConfigService.prototype.showIndexColumn; /** @type {?} */ DataTableConfigService.prototype.indexColumnTitle; /** @type {?} */ DataTableConfigService.prototype.rowSelectable; /** @type {?} */ DataTableConfigService.prototype.selectMode; /** @type {?} */ DataTableConfigService.prototype.showRowSelectCheckbox; /** @type {?} */ DataTableConfigService.prototype.showRowSelectAllCheckbox; /** @type {?} */ DataTableConfigService.prototype.showSubstituteRows; /** @type {?} */ DataTableConfigService.prototype.expandableRows; /** @type {?} */ DataTableConfigService.prototype.selectOnRowClick; /** @type {?} */ DataTableConfigService.prototype.expandOnRowClick; /** @type {?} */ DataTableConfigService.prototype.autoFetch; /** @type {?} */ DataTableConfigService.prototype.showLoadingSpinner; /** @type {?} */ DataTableConfigService.prototype.selectTrackBy; /** @type {?} */ DataTableConfigService.prototype.filterDebounceTime; /** @type {?} */ DataTableConfigService.prototype.filterDebounce; /** @type {?} */ DataTableConfigService.prototype.showRefreshButton; /** @type {?} */ DataTableConfigService.prototype.showColumnSelector; /** @type {?} */ DataTableConfigService.prototype.columnSelectorWidth; /** @type {?} */ DataTableConfigService.prototype.expanderColumnWidth; /** @type {?} */ DataTableConfigService.prototype.indexColumnWidth; /** @type {?} */ DataTableConfigService.prototype.selectionColumnWidth; /** @type {?} */ DataTableConfigService.prototype.showRowExpandLoadingSpinner; /** @type {?} */ DataTableConfigService.prototype.offset; /** @type {?} */ DataTableConfigService.prototype.limit; /** @type {?} */ DataTableConfigService.prototype.maxLimit; /** @type {?} */ DataTableConfigService.prototype.stateKeyPrefix; /** @type {?} */ DataTableConfigService.prototype.baseTranslations; /** @type {?} */ DataTableConfigService.prototype.sortable; /** @type {?} */ DataTableConfigService.prototype.sortOrder; /** @type {?} */ DataTableConfigService.prototype.filterable; /** @type {?} */ DataTableConfigService.prototype.filterPlaceholder; /** @type {?} */ DataTableConfigService.prototype.columnResizable; /** @type {?} */ DataTableConfigService.prototype.columnVisible; /** @type {?} */ DataTableConfigService.prototype.showDropdownFilter; /** @type {?} */ DataTableConfigService.prototype.showFilterClearButton; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterMenuPosition; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterSelectMode; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterSearchable; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterSearchDebounceTime; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterSearchDebounce; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterWrapDisplaySelectLimit; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterGroupByField; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterShowSelectedOptionRemoveButton; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterShowClearSelectionButton; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterMenuWidth; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterMenuHeight; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterMultiSelectOptionMaxWidth; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterCloseMenuOnSelect; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterDynamicDimensionCalculation; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterDynamicWidthRatio; /** @type {?} */ DataTableConfigService.prototype.dropdownFilterDynamicHeightRatio; /** * @type {?} * @private */ DataTableConfigService.prototype.dataTableConfig; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL29ybmFtZW50dW0vIiwic291cmNlcyI6WyJkYXRhLXRhYmxlL3NlcnZpY2VzL2RhdGEtdGFibGUtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXbkUsTUFBTSxPQUFPLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFrQixpQkFBaUIsQ0FBQzs7Ozs7QUFPdkYsTUFBTSxPQUFPLHNCQUFzQjs7OztJQTZGakMsWUFBK0MsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCOztRQTNGeEUsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQXlCLFNBQVMsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsVUFBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixxQkFBZ0IsR0FBb0IsR0FBRyxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsU0FBUyxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsU0FBUyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixlQUFVLEdBQXdCLFFBQVEsQ0FBQztRQUMzQywwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixtQkFBYyxH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QXVCRTs7SUFHRiwwQ0FBd0I7O0lBQ3hCLDJDQUEwQzs7SUFDMUMsNENBQTBCOztJQUMxQixtREFBb0M7O0lBQ3BDLGlEQUErQjs7SUFDL0IsK0NBQTRCOztJQUM1QixvREFBa0M7O0lBQ2xDLHVEQUFvQzs7SUFHcEMsNERBQWdFOztJQUNoRSwwREFBOEQ7O0lBQzlELDBEQUF1Qzs7SUFDdkMsa0VBQThDOztJQUM5Qyw4REFBMkM7O0lBQzNDLHNFQUFnRDs7SUFDaEQsNERBQThDOztJQUM5Qyw4RUFBNEQ7O0lBQzVELHdFQUFxRDs7SUFDckQseURBQXFDOztJQUNyQywwREFBc0M7O0lBQ3RDLHlFQUFxRDs7SUFDckQsaUVBQThDOztJQUM5QywyRUFBd0Q7O0lBQ3hELGlFQUE4Qzs7SUFDOUMsa0VBQStDOzs7OztJQUVuQyxpREFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERhdGFUYWJsZVRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL21vZGVscy9kYXRhLXRhYmxlLXRyYW5zbGF0aW9ucy5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS10YWJsZS1jb25maWcubW9kZWwnO1xuXG5pbXBvcnQgeyBEYXRhVGFibGVTdG9yYWdlTW9kZSB9IGZyb20gJy4uL21vZGVscy9kYXRhLXRhYmxlLXN0b3JhZ2UtbW9kZS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhVGFibGVTb3J0T3JkZXIgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS10YWJsZS1zb3J0LW9yZGVyLm1vZGVsJztcbmltcG9ydCB7IERhdGFUYWJsZVNlbGVjdE1vZGUgfSBmcm9tICcuLi9tb2RlbHMvZGF0YS10YWJsZS1zZWxlY3QtbW9kZS5tb2RlbCc7XG5pbXBvcnQgeyBEcm9wZG93blNlbGVjdE1vZGUgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi5tb2R1bGUnO1xuaW1wb3J0IHsgVmlld1Bvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9tb2RlbHMvdmlldy1wb3NpdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBEQVRBX1RBQkxFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRhVGFibGVDb25maWc+KCdkYXRhVGFibGVDb25maWcnKTtcblxuLyoqXG4gKiBEYXRhIHRhYmxlIGNvbmZpZyBzZXJ2aWNlXG4gKiBNYW5hZ2UgYWxsIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvbnMgb2YgZ3JpZCB3aGljaCBjYW4gYmUgb3ZlcnJpZGRlbiB3aGlsZSBpbXBvcnRpbmcgdGhlIG1vZHVsZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UgaW1wbGVtZW50cyBEYXRhVGFibGVDb25maWcge1xuICAvLyBUYWJsZSBiYXNlIGNvbmZpZ1xuICBwdWJsaWMgcGVyc2lzdFRhYmxlU3RhdGUgPSBmYWxzZTtcbiAgcHVibGljIHN0b3JhZ2VNb2RlOiBEYXRhVGFibGVTdG9yYWdlTW9kZSA9ICdzZXNzaW9uJztcbiAgcHVibGljIG11bHRpQ29sdW1uU29ydGFibGUgPSBmYWxzZTtcbiAgcHVibGljIHNob3dIZWFkZXIgPSBmYWxzZTtcbiAgcHVibGljIHRpdGxlID0gJyc7XG4gIHB1YmxpYyB3aWR0aCA9IHVuZGVmaW5lZDtcbiAgcHVibGljIG1pbkNvbnRlbnRIZWlnaHQ6IHN0cmluZyB8IG51bWJlciA9IDIwMDtcbiAgcHVibGljIG1pbkNvbnRlbnRXaWR0aCA9IHVuZGVmaW5lZDtcbiAgcHVibGljIGNvbnRlbnRIZWlnaHQgPSB1bmRlZmluZWQ7XG4gIHB1YmxpYyBwYWdlYWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZE9uU2Nyb2xsID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkVmlld0Rpc3RhbmNlUmF0aW8gPSAxO1xuICBwdWJsaWMgc2hvd0luZGV4Q29sdW1uID0gZmFsc2U7XG4gIHB1YmxpYyBpbmRleENvbHVtblRpdGxlID0gJyMnO1xuICBwdWJsaWMgcm93U2VsZWN0YWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgc2VsZWN0TW9kZTogRGF0YVRhYmxlU2VsZWN0TW9kZSA9ICdzaW5nbGUnO1xuICBwdWJsaWMgc2hvd1Jvd1NlbGVjdENoZWNrYm94ID0gdHJ1ZTtcbiAgcHVibGljIHNob3dSb3dTZWxlY3RBbGxDaGVja2JveCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1N1YnN0aXR1dGVSb3dzID0gZmFsc2U7XG4gIHB1YmxpYyBleHBhbmRhYmxlUm93cyA9IGZhbHNlO1xuICBwdWJsaWMgc2VsZWN0T25Sb3dDbGljayA9IGZhbHNlO1xuICBwdWJsaWMgZXhwYW5kT25Sb3dDbGljayA9IGZhbHNlO1xuICBwdWJsaWMgYXV0b0ZldGNoID0gdHJ1ZTtcbiAgcHVibGljIHNob3dMb2FkaW5nU3Bpbm5lciA9IHRydWU7XG4gIHB1YmxpYyBzZWxlY3RUcmFja0J5ID0gJ2lkJztcbiAgcHVibGljIGZpbHRlckRlYm91bmNlVGltZSA9IDUwMDtcbiAgcHVibGljIGZpbHRlckRlYm91bmNlID0gdHJ1ZTtcbiAgcHVibGljIHNob3dSZWZyZXNoQnV0dG9uID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93Q29sdW1uU2VsZWN0b3IgPSBmYWxzZTtcbiAgcHVibGljIGNvbHVtblNlbGVjdG9yV2lkdGggPSAyNDA7XG4gIHB1YmxpYyBleHBhbmRlckNvbHVtbldpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSAzMDtcbiAgcHVibGljIGluZGV4Q29sdW1uV2lkdGg6IHN0cmluZyB8IG51bWJlciA9IDMwO1xuICBwdWJsaWMgc2VsZWN0aW9uQ29sdW1uV2lkdGg6IHN0cmluZyB8IG51bWJlciA9IDMwO1xuICBwdWJsaWMgc2hvd1Jvd0V4cGFuZExvYWRpbmdTcGlubmVyID0gZmFsc2U7XG4gIHB1YmxpYyBvZmZzZXQgPSAwO1xuICBwdWJsaWMgbGltaXQgPSAxMDtcbiAgcHVibGljIG1heExpbWl0ID0gMTAwO1xuICBwdWJsaWMgc3RhdGVLZXlQcmVmaXggPSAnZ3JpZF9zdGF0ZV8nO1xuICBwdWJsaWMgYmFzZVRyYW5zbGF0aW9uczogRGF0YVRhYmxlVHJhbnNsYXRpb25zID0ge1xuICAgIG5vRGF0YU1lc3NhZ2U6IHtcbiAgICAgIGhlYWRlcjogJ1dob29wcyEnLFxuICAgICAgYm9keTogJ05vIGRhdGEgdG8gZGlzcGxheS4gQWRkZWQgZGF0YSB3aWxsIGFwcGVhciBoZXJlLicsXG4gICAgfSxcbiAgICBwYWdpbmF0aW9uOiB7XG4gICAgICBsaW1pdDogJ0xpbWl0OicsXG4gICAgICByYW5nZUtleTogJ1Jlc3VsdHM6JyxcbiAgICAgIHJhbmdlU2VwYXJhdG9yOiAnb2YnLFxuICAgICAgbmV4dFRvb2x0aXA6ICdOZXh0JyxcbiAgICAgIHByZXZpb3VzVG9vbHRpcDogJ1ByZXZpb3VzJyxcbiAgICAgIGxhc3RUb29sdGlwOiAnTGFzdCcsXG4gICAgICBmaXJzdFRvb2x0aXA6ICdGaXJzdCdcbiAgICB9LFxuICAgIGNvbHVtblNlbGVjdG9yOiB7XG4gICAgICBoZWFkZXI6ICdTaG93L0hpZGUgQ29sdW1uJ1xuICAgIH0sXG4gICAgZHJvcGRvd25GaWx0ZXI6IHtcbiAgICAgIG5vRGF0YU1lc3NhZ2U6ICdObyBSZXN1bHRzIEF2YWlsYWJsZScsXG4gICAgICBmaWx0ZXJQbGFjZWhvbGRlcjogJ1NlYXJjaCcsXG4gICAgICBzZWxlY3RlZE9wdGlvbldyYXBQbGFjZWhvbGRlcjogJ09wdGlvbnMnLFxuICAgICAgc2VsZWN0UGxhY2Vob2xkZXI6ICdTZWxlY3QnXG4gICAgfVxuICB9O1xuXG4gIC8vIFRhYmxlIGNvbHVtbiBjb25maWdcbiAgcHVibGljIHNvcnRhYmxlID0gZmFsc2U7XG4gIHB1YmxpYyBzb3J0T3JkZXI6IERhdGFUYWJsZVNvcnRPcmRlciA9ICcnO1xuICBwdWJsaWMgZmlsdGVyYWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgZmlsdGVyUGxhY2Vob2xkZXIgPSAnU2VhcmNoJztcbiAgcHVibGljIGNvbHVtblJlc2l6YWJsZSA9IGZhbHNlO1xuICBwdWJsaWMgY29sdW1uVmlzaWJsZSA9IHRydWU7XG4gIHB1YmxpYyBzaG93RHJvcGRvd25GaWx0ZXIgPSBmYWxzZTtcbiAgcHVibGljIHNob3dGaWx0ZXJDbGVhckJ1dHRvbiA9IHRydWU7XG5cbiAgLy8gQ29sdW1uIGRyb3Bkb3duIGZpbHRlciBvcHRpb25zXG4gIHB1YmxpYyBkcm9wZG93bkZpbHRlck1lbnVQb3NpdGlvbjogVmlld1Bvc2l0aW9uID0gJ2JvdHRvbS1sZWZ0JztcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyU2VsZWN0TW9kZTogRHJvcGRvd25TZWxlY3RNb2RlID0gJ211bHRpJztcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyU2VhcmNoYWJsZSA9IHRydWU7XG4gIHB1YmxpYyBkcm9wZG93bkZpbHRlclNlYXJjaERlYm91bmNlVGltZSA9IDUwMDtcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyU2VhcmNoRGVib3VuY2UgPSB0cnVlO1xuICBwdWJsaWMgZHJvcGRvd25GaWx0ZXJXcmFwRGlzcGxheVNlbGVjdExpbWl0ID0gMTtcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyR3JvdXBCeUZpZWxkID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgZHJvcGRvd25GaWx0ZXJTaG93U2VsZWN0ZWRPcHRpb25SZW1vdmVCdXR0b24gPSBmYWxzZTtcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyU2hvd0NsZWFyU2VsZWN0aW9uQnV0dG9uID0gdHJ1ZTtcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyTWVudVdpZHRoID0gMzIwO1xuICBwdWJsaWMgZHJvcGRvd25GaWx0ZXJNZW51SGVpZ2h0ID0gMjUwO1xuICBwdWJsaWMgZHJvcGRvd25GaWx0ZXJNdWx0aVNlbGVjdE9wdGlvbk1heFdpZHRoID0gMTM1O1xuICBwdWJsaWMgZHJvcGRvd25GaWx0ZXJDbG9zZU1lbnVPblNlbGVjdCA9IHRydWU7XG4gIHB1YmxpYyBkcm9wZG93bkZpbHRlckR5bmFtaWNEaW1lbnNpb25DYWxjdWxhdGlvbiA9IHRydWU7XG4gIHB1YmxpYyBkcm9wZG93bkZpbHRlckR5bmFtaWNXaWR0aFJhdGlvID0gMS4yNTtcbiAgcHVibGljIGRyb3Bkb3duRmlsdGVyRHluYW1pY0hlaWdodFJhdGlvID0gMS4yNTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERBVEFfVEFCTEVfQ09ORklHKSBwcml2YXRlIGRhdGFUYWJsZUNvbmZpZzogRGF0YVRhYmxlQ29uZmlnKSB7XG4gICAgaWYgKGRhdGFUYWJsZUNvbmZpZykge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhVGFibGVDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgdHJhbnNsYXRpb25zKHZhbHVlOiBEYXRhVGFibGVUcmFuc2xhdGlvbnMpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYWxsIGtleXMgYXJlIG9iamVjdCB0eXBlLlxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuYmFzZVRyYW5zbGF0aW9uc1trZXldID0geyAuLi50aGlzLmJhc2VUcmFuc2xhdGlvbnNba2V5XSwgLi4udmFsIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJhbnNsYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGdldCB0cmFuc2xhdGlvbnMoKTogRGF0YVRhYmxlVHJhbnNsYXRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlVHJhbnNsYXRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByb3cgc2VsZWN0IGNoZWNrYm94IGNvbHVtbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd1Jvd1NlbGVjdENoZWNrYm94Q29sdW1uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvd1NlbGVjdGFibGUgJiYgdGhpcy5zaG93Um93U2VsZWN0Q2hlY2tib3g7XG4gIH1cbn1cblxuIl19